From 1cbed3b669465b44eb28fa8c3593389aeda257ef Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 16:18:24 -0500 Subject: [PATCH 01/55] Orphaned assets check failed when there are none (#47652) --- .github/workflows/orphaned-assets-check.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/orphaned-assets-check.yml b/.github/workflows/orphaned-assets-check.yml index fd218d2ffd..65624da3b3 100644 --- a/.github/workflows/orphaned-assets-check.yml +++ b/.github/workflows/orphaned-assets-check.yml @@ -41,7 +41,9 @@ jobs: run: | set -e - filesToRemove=`npm run find-orphaned-assets` + # The `-s` is to make npm run silent and not print verbose + # information about the npm script alias. + filesToRemove=`npm run -s find-orphaned-assets` [ -z "$filesToRemove" ] && exit 0 echo $filesToRemove | xargs git rm From 1aac8c5bc87466d857af70fff33af66f9ee61ca0 Mon Sep 17 00:00:00 2001 From: Mark Maxwell <138938022+mark-mxwl@users.noreply.github.com> Date: Mon, 11 Dec 2023 15:05:13 -0800 Subject: [PATCH 02/55] Update generating-a-json-web-token-jwt-for-a-github-app.md (#30554) Co-authored-by: Sarah Edwards --- ...g-a-json-web-token-jwt-for-a-github-app.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md index 038a8d2bde..487eb7fa48 100644 --- a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md +++ b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md @@ -126,3 +126,52 @@ print(f"JWT: {encoded_jwt}") ``` This script will prompt you for the file path where your private key is stored and for the ID of your app. Alternatively, you can pass those values as inline arguments when you execute the script. + +### Example: Using Bash to generate a JWT + +{% note %} + +**Note:** You must pass your App ID and the file path where your private key is stored as arguments when running this script. + +{% endnote %} + +```bash copy +#!/usr/bin/env bash + +set -o pipefail + +app_id=$1 # App ID as first argument +pem=$( cat $2 ) # file path of the private key as second argument + +now=$(date +%s) +iat=$((${now} - 60)) # Issues 60 seconds in the past +exp=$((${now} + 600)) # Expires 10 minutes in the future + +b64enc() { openssl base64 | tr -d '=' | tr '/+' '_-' | tr -d '\n'; } + +header_json='{ + "typ":"JWT", + "alg":"RS256" +}' +# Header encode +header=$( echo -n "${header_json}" | b64enc ) + +payload_json='{ + "iat":'"${iat}"', + "exp":'"${exp}"', + "iss":'"${app_id}"' +}' +# Payload encode +payload=$( echo -n "${payload_json}" | b64enc ) + +# Signature +header_payload="${header}"."${payload}" +signature=$( + openssl dgst -sha256 -sign <(echo -n "${pem}") \ + <(echo -n "${header_payload}") | b64enc +) + +# Create JWT +JWT="${header_payload}"."${signature}" +printf '%s\n' "JWT: $JWT" +``` From c617acc6035be5e83f06672dac66f29ffc16db8e Mon Sep 17 00:00:00 2001 From: Maurice Date: Tue, 12 Dec 2023 01:27:43 +0100 Subject: [PATCH 03/55] Update getting-started-with-the-rest-api.md (#30472) Co-authored-by: Sarah Edwards --- content/rest/guides/getting-started-with-the-rest-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/rest/guides/getting-started-with-the-rest-api.md b/content/rest/guides/getting-started-with-the-rest-api.md index aa7dc9790d..16c54db785 100644 --- a/content/rest/guides/getting-started-with-the-rest-api.md +++ b/content/rest/guides/getting-started-with-the-rest-api.md @@ -34,7 +34,7 @@ The REST API reference documentation describes the HTTP method, path, and parame The HTTP method of an endpoint defines the type of action it performs on a given resource. Some common HTTP methods are `GET`, `POST`, `DELETE`, and `PATCH`. The REST API reference documentation provides the HTTP method for every endpoint. -For example, the HTTP method for the ["List repository issues" endpoint]([AUTOTITLE](/rest/issues/issues#list-repository-issues) is `GET`." +For example, the HTTP method for the ["List repository issues" endpoint](/rest/issues/issues#list-repository-issues) is `GET`." Where possible, the {% data variables.product.product_name %} REST API strives to use an appropriate HTTP method for each action. From 3e136b615bb1932fbeecc3d5d1344029aaba9d91 Mon Sep 17 00:00:00 2001 From: Jess Hosman <1183847+jhosman@users.noreply.github.com> Date: Mon, 11 Dec 2023 17:38:39 -0700 Subject: [PATCH 04/55] Restructure REST docs (#44602) Co-authored-by: Rachael Sewell Co-authored-by: Sarah Edwards --- ...ndpoints-for-the-github-marketplace-api.md | 2 +- ...he-openapi-description-for-the-rest-api.md | 1 + .../api-versions.md | 2 ++ .../breaking-changes.md | 2 ++ ...paring-githubs-rest-api-and-graphql-api.md | 1 + content/rest/about-the-rest-api/index.md | 19 +++++++++++ .../authenticating-to-the-rest-api.md | 1 + ...for-fine-grained-personal-access-tokens.md | 4 ++- ...r-github-app-installation-access-tokens.md | 1 + ...lable-for-github-app-user-access-tokens.md | 4 ++- .../{overview => authentication}/index.md | 20 ++---------- .../keeping-your-api-credentials-secure.md | 4 ++- ...for-fine-grained-personal-access-tokens.md | 4 ++- .../permissions-required-for-github-apps.md | 1 + content/rest/guides/index.md | 3 -- content/rest/index.md | 32 ++++++++++--------- .../best-practices-for-using-the-rest-api.md | 1 + .../getting-started-with-the-rest-api.md | 4 ++- .../github-event-types.md | 1 + content/rest/using-the-rest-api/index.md | 22 +++++++++++++ .../issue-event-types.md | 1 + .../libraries-for-the-rest-api.md | 1 + .../media-types.md | 1 + .../rate-limits-for-the-rest-api.md | 2 ++ .../resources-in-the-rest-api.md | 1 + .../troubleshooting-the-rest-api.md | 1 + .../using-pagination-in-the-rest-api.md | 1 + ...aring-githubs-rest-api-and-graphql-api.md} | 0 .../{overview => about-the-rest-api}/index.md | 2 +- src/fixtures/fixtures/content/rest/index.md | 6 ++-- src/fixtures/fixtures/rest-redirects.json | 8 ++--- src/fixtures/tests/playwright-a11y.spec.ts | 2 +- src/github-apps/lib/config.json | 12 +++---- .../[...restPage].tsx | 0 .../index.tsx | 0 .../rest/authentication/[...restPage].tsx | 1 + ...or-fine-grained-personal-access-tokens.tsx | 0 ...-github-app-installation-access-tokens.tsx | 0 ...able-for-github-app-user-access-tokens.tsx | 0 .../[versionId]/rest/authentication/index.tsx | 1 + ...or-fine-grained-personal-access-tokens.tsx | 0 .../permissions-required-for-github-apps.tsx | 0 .../rest/using-the-rest-api/[...restPage].tsx | 1 + .../rest/using-the-rest-api/index.tsx | 1 + .../lib/static/redirect-exceptions.txt | 2 +- src/rest/lib/config.js | 10 ++++-- src/rest/lib/config.json | 6 ++-- ...paring-githubs-rest-api-and-graphql-api.md | 13 ++++++++ .../content/rest/about-the-rest-api/index.md | 12 +++++++ 49 files changed, 153 insertions(+), 61 deletions(-) rename content/rest/{overview => about-the-rest-api}/about-the-openapi-description-for-the-rest-api.md (97%) rename content/rest/{overview => about-the-rest-api}/api-versions.md (98%) rename content/rest/{overview => about-the-rest-api}/breaking-changes.md (96%) rename content/rest/{overview => about-the-rest-api}/comparing-githubs-rest-api-and-graphql-api.md (98%) create mode 100644 content/rest/about-the-rest-api/index.md rename content/rest/{overview => authentication}/authenticating-to-the-rest-api.md (99%) rename content/rest/{overview => authentication}/endpoints-available-for-fine-grained-personal-access-tokens.md (68%) rename content/rest/{overview => authentication}/endpoints-available-for-github-app-installation-access-tokens.md (91%) rename content/rest/{overview => authentication}/endpoints-available-for-github-app-user-access-tokens.md (76%) rename content/rest/{overview => authentication}/index.md (50%) rename content/rest/{overview => authentication}/keeping-your-api-credentials-secure.md (97%) rename content/rest/{overview => authentication}/permissions-required-for-fine-grained-personal-access-tokens.md (89%) rename content/rest/{overview => authentication}/permissions-required-for-github-apps.md (96%) rename content/rest/{guides => using-the-rest-api}/best-practices-for-using-the-rest-api.md (99%) rename content/rest/{guides => using-the-rest-api}/getting-started-with-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/github-event-types.md (99%) create mode 100644 content/rest/using-the-rest-api/index.md rename content/rest/{overview => using-the-rest-api}/issue-event-types.md (99%) rename content/rest/{overview => using-the-rest-api}/libraries-for-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/media-types.md (99%) rename content/rest/{overview => using-the-rest-api}/rate-limits-for-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/resources-in-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/troubleshooting-the-rest-api.md (99%) rename content/rest/{guides => using-the-rest-api}/using-pagination-in-the-rest-api.md (99%) rename src/fixtures/fixtures/content/rest/{overview/about-githubs-apis.md => about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md} (100%) rename src/fixtures/fixtures/content/rest/{overview => about-the-rest-api}/index.md (84%) rename src/pages/[versionId]/rest/{overview => about-the-rest-api}/[...restPage].tsx (100%) rename src/pages/[versionId]/rest/{overview => about-the-rest-api}/index.tsx (100%) create mode 100644 src/pages/[versionId]/rest/authentication/[...restPage].tsx rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-fine-grained-personal-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-github-app-installation-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-github-app-user-access-tokens.tsx (100%) create mode 100644 src/pages/[versionId]/rest/authentication/index.tsx rename src/pages/[versionId]/rest/{overview => authentication}/permissions-required-for-fine-grained-personal-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/permissions-required-for-github-apps.tsx (100%) create mode 100644 src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx create mode 100644 src/pages/[versionId]/rest/using-the-rest-api/index.tsx create mode 100644 tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md create mode 100644 tests/fixtures/content/rest/about-the-rest-api/index.md diff --git a/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md b/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md index ae54e9437d..a474c2f2b6 100644 --- a/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md +++ b/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md @@ -32,6 +32,6 @@ See these pages for details on how to authenticate when using the {% data variab {% note %} -**Note:** [Rate limits for the REST API](/rest/overview/rate-limits-for-the-rest-api) apply to all {% data variables.product.prodname_marketplace %} API endpoints. +**Note:** [Rate limits for the REST API](/rest/using-the-rest-api/rate-limits-for-the-rest-api) apply to all {% data variables.product.prodname_marketplace %} API endpoints. {% endnote %} diff --git a/content/rest/overview/about-the-openapi-description-for-the-rest-api.md b/content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md similarity index 97% rename from content/rest/overview/about-the-openapi-description-for-the-rest-api.md rename to content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md index 7afa6d06f3..a3d04d7015 100644 --- a/content/rest/overview/about-the-openapi-description-for-the-rest-api.md +++ b/content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md @@ -10,6 +10,7 @@ topics: - API redirect_from: - /rest/overview/openapi-description + - /rest/overview/about-the-openapi-description-for-the-rest-api --- ## About OpenAPI diff --git a/content/rest/overview/api-versions.md b/content/rest/about-the-rest-api/api-versions.md similarity index 98% rename from content/rest/overview/api-versions.md rename to content/rest/about-the-rest-api/api-versions.md index 9cb4ea02f2..e767e7fd72 100644 --- a/content/rest/overview/api-versions.md +++ b/content/rest/about-the-rest-api/api-versions.md @@ -4,6 +4,8 @@ shortTitle: API Versions intro: Learn how to specify which REST API version to use whenever you make a request to the REST API. versions: feature: api-date-versioning +redirect_from: + - /rest/overview/api-versions --- ## About API versioning diff --git a/content/rest/overview/breaking-changes.md b/content/rest/about-the-rest-api/breaking-changes.md similarity index 96% rename from content/rest/overview/breaking-changes.md rename to content/rest/about-the-rest-api/breaking-changes.md index 684729e464..619c3b9a22 100644 --- a/content/rest/overview/breaking-changes.md +++ b/content/rest/about-the-rest-api/breaking-changes.md @@ -4,6 +4,8 @@ shortTitle: Breaking changes intro: Learn about breaking changes that were introduced in each REST API version. versions: feature: api-date-versioning +redirect_from: + - /rest/overview/breaking-changes --- ## About breaking changes in the REST API diff --git a/content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md similarity index 98% rename from content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md rename to content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md index 4b66784181..5a67662770 100644 --- a/content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md +++ b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md @@ -8,6 +8,7 @@ redirect_from: - /github/extending-github/getting-started-with-the-api - /developers/overview/about-githubs-apis - /rest/overview/about-githubs-apis + - /rest/overview/comparing-githubs-rest-api-and-graphql-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/about-the-rest-api/index.md b/content/rest/about-the-rest-api/index.md new file mode 100644 index 0000000000..4ecfeadf34 --- /dev/null +++ b/content/rest/about-the-rest-api/index.md @@ -0,0 +1,19 @@ +--- +title: About the REST API +intro: 'Learn more about the {% data variables.product.prodname_dotcom %} REST API and what you can do with it.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +children: + - /comparing-githubs-rest-api-and-graphql-api + - /api-versions + - /breaking-changes + - /about-the-openapi-description-for-the-rest-api +autogenerated: rest +--- + + diff --git a/content/rest/overview/authenticating-to-the-rest-api.md b/content/rest/authentication/authenticating-to-the-rest-api.md similarity index 99% rename from content/rest/overview/authenticating-to-the-rest-api.md rename to content/rest/authentication/authenticating-to-the-rest-api.md index 4636a96d48..1d34f2af44 100644 --- a/content/rest/overview/authenticating-to-the-rest-api.md +++ b/content/rest/authentication/authenticating-to-the-rest-api.md @@ -4,6 +4,7 @@ intro: You can authenticate to the REST API to access more endpoints and have a redirect_from: - /v3/auth - /rest/overview/other-authentication-methods + - /rest/overview/authenticating-to-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md b/content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md similarity index 68% rename from content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md rename to content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md index daa5c382a8..c3cdc9b21e 100644 --- a/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md @@ -3,8 +3,10 @@ title: Endpoints available for fine-grained personal access tokens intro: 'Your {% data variables.product.pat_v2 %} can make requests to the following REST endpoints.' versions: feature: pat-v2 -shortTitle: 'Endpoints for fine-grained PATs' +shortTitle: Endpoints for fine-grained PATs autogenerated: github-apps +redirect_from: + - /rest/overview/endpoints-available-for-fine-grained-personal-access-tokens --- diff --git a/content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md b/content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md similarity index 91% rename from content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md rename to content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md index a9409a9b22..9397d5b395 100644 --- a/content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md @@ -7,6 +7,7 @@ redirect_from: - /v3/apps/available-endpoints - /rest/reference/endpoints-available-for-github-apps - /rest/overview/endpoints-available-for-github-apps + - /rest/overview/endpoints-available-for-github-app-installation-access-tokens versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md b/content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md similarity index 76% rename from content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md rename to content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md index b6672fda18..b2970dd1f6 100644 --- a/content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md @@ -1,7 +1,7 @@ --- title: Endpoints available for GitHub App user access tokens shortTitle: Endpoints for GitHub App user tokens -intro: 'Your GitHub App can make requests to the following REST endpoints with a user access token.' +intro: Your GitHub App can make requests to the following REST endpoints with a user access token. permissions: 'You can use a user access token to access these endpoints using your {% data variables.product.prodname_github_app %}. For more information, see "[AUTOTITLE](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user)."' versions: fpt: '*' @@ -12,6 +12,8 @@ topics: - API - GitHub Apps autogenerated: github-apps +redirect_from: + - /rest/overview/endpoints-available-for-github-app-user-access-tokens --- diff --git a/content/rest/overview/index.md b/content/rest/authentication/index.md similarity index 50% rename from content/rest/overview/index.md rename to content/rest/authentication/index.md index 1fa5e8699b..ef89d85e04 100644 --- a/content/rest/overview/index.md +++ b/content/rest/authentication/index.md @@ -1,7 +1,7 @@ --- -title: REST API overview -shortTitle: Overview -intro: 'Learn about resources, libraries, previews and troubleshooting for {% data variables.product.prodname_dotcom %}''s REST API.' +title: Authenticating to the REST API +shortTitle: Authentication +intro: 'Learn how to authenticate your REST API requests.' versions: fpt: '*' ghes: '*' @@ -10,25 +10,11 @@ versions: topics: - API children: - - /comparing-githubs-rest-api-and-graphql-api - - /resources-in-the-rest-api - - /rate-limits-for-the-rest-api - - /api-versions - - /media-types - /authenticating-to-the-rest-api - /keeping-your-api-credentials-secure - - /troubleshooting-the-rest-api - - /libraries-for-the-rest-api - - /about-the-openapi-description-for-the-rest-api - - /issue-event-types - - /github-event-types - /endpoints-available-for-github-app-installation-access-tokens - /endpoints-available-for-github-app-user-access-tokens - /endpoints-available-for-fine-grained-personal-access-tokens - /permissions-required-for-github-apps - /permissions-required-for-fine-grained-personal-access-tokens - - /breaking-changes -redirect_from: - - /developers/overview --- - diff --git a/content/rest/overview/keeping-your-api-credentials-secure.md b/content/rest/authentication/keeping-your-api-credentials-secure.md similarity index 97% rename from content/rest/overview/keeping-your-api-credentials-secure.md rename to content/rest/authentication/keeping-your-api-credentials-secure.md index 95f6b39c6d..d0d3b0188c 100644 --- a/content/rest/overview/keeping-your-api-credentials-secure.md +++ b/content/rest/authentication/keeping-your-api-credentials-secure.md @@ -1,7 +1,7 @@ --- title: Keeping your API credentials secure shortTitle: Keeping API credentials secure -intro: 'Follow these best practices to keep your API credentials and tokens secure.' +intro: Follow these best practices to keep your API credentials and tokens secure. versions: fpt: '*' ghes: '*' @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/overview/keeping-your-api-credentials-secure --- ## Choose an appropriate authentication method diff --git a/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md b/content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md similarity index 89% rename from content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md rename to content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md index 4d65c545be..1a701245ce 100644 --- a/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md +++ b/content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md @@ -3,8 +3,10 @@ title: Permissions required for fine-grained personal access tokens intro: 'These are the permissions required for a {% data variables.product.pat_v2 %} to use each REST API endpoint that works with {% data variables.product.pat_v2 %}s.' versions: feature: pat-v2 -shortTitle: 'Permissions for fine-grained PATs' +shortTitle: Permissions for fine-grained PATs autogenerated: github-apps +redirect_from: + - /rest/overview/permissions-required-for-fine-grained-personal-access-tokens --- ## About permissions required for {% data variables.product.pat_v2 %} diff --git a/content/rest/overview/permissions-required-for-github-apps.md b/content/rest/authentication/permissions-required-for-github-apps.md similarity index 96% rename from content/rest/overview/permissions-required-for-github-apps.md rename to content/rest/authentication/permissions-required-for-github-apps.md index 3f1ad9cbc4..4e9d7aa54a 100644 --- a/content/rest/overview/permissions-required-for-github-apps.md +++ b/content/rest/authentication/permissions-required-for-github-apps.md @@ -4,6 +4,7 @@ intro: 'These are the permissions required for a {% data variables.product.prodn redirect_from: - /v3/apps/permissions - /rest/reference/permissions-required-for-github-apps + - /rest/overview/permissions-required-for-github-apps versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/index.md b/content/rest/guides/index.md index c2ec86152c..d77919954e 100644 --- a/content/rest/guides/index.md +++ b/content/rest/guides/index.md @@ -12,16 +12,13 @@ versions: topics: - API children: - - /getting-started-with-the-rest-api - /scripting-with-the-rest-api-and-javascript - /scripting-with-the-rest-api-and-ruby - /discovering-resources-for-a-user - /delivering-deployments - /rendering-data-as-graphs - /working-with-comments - - /using-pagination-in-the-rest-api - /building-a-ci-server - - /best-practices-for-using-the-rest-api - /using-the-rest-api-to-interact-with-your-git-database - /using-the-rest-api-to-interact-with-checks - /encrypting-secrets-for-the-rest-api diff --git a/content/rest/index.md b/content/rest/index.md index 59946f3169..12a94b71f6 100644 --- a/content/rest/index.md +++ b/content/rest/index.md @@ -1,35 +1,35 @@ --- title: GitHub REST API documentation shortTitle: REST API -intro: >- - To create integrations, retrieve data, and automate your workflows, build with - the {% data variables.product.prodname_dotcom %} REST API. +intro: 'Create integrations, retrieve data, and automate your workflows with the {% data variables.product.prodname_dotcom %} REST API.' introLinks: quickstart: /rest/quickstart - overview: /rest/guides/getting-started-with-the-rest-api + overview: /rest/using-the-rest-api/getting-started-with-the-rest-api featuredLinks: startHere: - - /rest/guides/getting-started-with-the-rest-api - - /rest/overview/authenticating-to-the-rest-api - - /rest/guides/best-practices-for-using-the-rest-api - - /rest/guides/using-pagination-in-the-rest-api + - /rest/using-the-rest-api/getting-started-with-the-rest-api + - /rest/authentication/authenticating-to-the-rest-api + - /rest/using-the-rest-api/best-practices-for-using-the-rest-api + - /rest/using-the-rest-api/using-pagination-in-the-rest-api popular: - - /rest/overview/rate-limits-for-the-rest-api - - /rest/overview/api-versions - - /rest/overview/authenticating-to-the-rest-api - - /rest/overview/troubleshooting-the-rest-api + - /rest/using-the-rest-api/rate-limits-for-the-rest-api + - /rest/about-the-rest-api/api-versions + - /rest/authentication/authenticating-to-the-rest-api + - /rest/using-the-rest-api/troubleshooting-the-rest-api - /rest/guides/scripting-with-the-rest-api-and-javascript - - /rest/overview/keeping-your-api-credentials-secure + - /rest/authentication/keeping-your-api-credentials-secure guideCards: - /rest/guides/delivering-deployments - /rest/guides/using-the-rest-api-to-interact-with-checks - - /rest/guides/using-pagination-in-the-rest-api + - /rest/using-the-rest-api/using-pagination-in-the-rest-api changelog: label: 'api, apis' layout: product-landing redirect_from: - /v3 - /rest/reference + - /rest/overview + - /developers/overview versions: fpt: '*' ghes: '*' @@ -37,7 +37,9 @@ versions: ghec: '*' children: - /quickstart - - /overview + - /about-the-rest-api + - /using-the-rest-api + - /authentication - /guides - /actions - /activity diff --git a/content/rest/guides/best-practices-for-using-the-rest-api.md b/content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md similarity index 99% rename from content/rest/guides/best-practices-for-using-the-rest-api.md rename to content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md index 0cec5eaf87..e22bd61637 100644 --- a/content/rest/guides/best-practices-for-using-the-rest-api.md +++ b/content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md @@ -5,6 +5,7 @@ redirect_from: - /guides/best-practices-for-integrators - /v3/guides/best-practices-for-integrators - /rest/guides/best-practices-for-integrators + - /rest/guides/best-practices-for-using-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/getting-started-with-the-rest-api.md b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md similarity index 99% rename from content/rest/guides/getting-started-with-the-rest-api.md rename to content/rest/using-the-rest-api/getting-started-with-the-rest-api.md index aa7dc9790d..39843d7344 100644 --- a/content/rest/guides/getting-started-with-the-rest-api.md +++ b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md @@ -1,6 +1,6 @@ --- title: Getting started with the REST API -shortTitle: Using the API +shortTitle: Getting started intro: 'Learn how to use the {% data variables.product.prodname_dotcom %} REST API.' versions: fpt: '*' @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/guides/getting-started-with-the-rest-api --- ## Introduction diff --git a/content/rest/overview/github-event-types.md b/content/rest/using-the-rest-api/github-event-types.md similarity index 99% rename from content/rest/overview/github-event-types.md rename to content/rest/using-the-rest-api/github-event-types.md index 958462a5ca..ec241435b1 100644 --- a/content/rest/overview/github-event-types.md +++ b/content/rest/using-the-rest-api/github-event-types.md @@ -7,6 +7,7 @@ redirect_from: - /developers/webhooks-and-events/events/github-event-types - /webhooks-and-events/events/github-event-types - /developers/webhooks-and-events/events + - /rest/overview/github-event-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/using-the-rest-api/index.md b/content/rest/using-the-rest-api/index.md new file mode 100644 index 0000000000..3a4755645b --- /dev/null +++ b/content/rest/using-the-rest-api/index.md @@ -0,0 +1,22 @@ +--- +title: Using the REST API +intro: 'Learn how to use the {% data variables.product.prodname_dotcom %} REST API, follow best practices, and troubleshoot problems.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +children: + - /getting-started-with-the-rest-api + - /rate-limits-for-the-rest-api + - /resources-in-the-rest-api + - /using-pagination-in-the-rest-api + - /libraries-for-the-rest-api + - /media-types + - /best-practices-for-using-the-rest-api + - /troubleshooting-the-rest-api + - /issue-event-types + - /github-event-types +--- diff --git a/content/rest/overview/issue-event-types.md b/content/rest/using-the-rest-api/issue-event-types.md similarity index 99% rename from content/rest/overview/issue-event-types.md rename to content/rest/using-the-rest-api/issue-event-types.md index 121c4fed8f..b36926590c 100644 --- a/content/rest/overview/issue-event-types.md +++ b/content/rest/using-the-rest-api/issue-event-types.md @@ -6,6 +6,7 @@ redirect_from: - /developers/webhooks-and-events/issue-event-types - /developers/webhooks-and-events/events/issue-event-types - /webhooks-and-events/events/issue-event-types + - /rest/overview/issue-event-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/libraries-for-the-rest-api.md b/content/rest/using-the-rest-api/libraries-for-the-rest-api.md similarity index 99% rename from content/rest/overview/libraries-for-the-rest-api.md rename to content/rest/using-the-rest-api/libraries-for-the-rest-api.md index 7fea288445..78f7705c9b 100644 --- a/content/rest/overview/libraries-for-the-rest-api.md +++ b/content/rest/using-the-rest-api/libraries-for-the-rest-api.md @@ -6,6 +6,7 @@ redirect_from: - /libraries - /v3/libraries - /rest/overview/libraries + - /rest/overview/libraries-for-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/media-types.md b/content/rest/using-the-rest-api/media-types.md similarity index 99% rename from content/rest/overview/media-types.md rename to content/rest/using-the-rest-api/media-types.md index a577a59d72..1e978757e3 100644 --- a/content/rest/overview/media-types.md +++ b/content/rest/using-the-rest-api/media-types.md @@ -3,6 +3,7 @@ title: Media types intro: Learn about media types for specifying the format of the data you want to consume. redirect_from: - /v3/media + - /rest/overview/media-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/rate-limits-for-the-rest-api.md b/content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md similarity index 99% rename from content/rest/overview/rate-limits-for-the-rest-api.md rename to content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md index 42b314e33f..6fcaab4c98 100644 --- a/content/rest/overview/rate-limits-for-the-rest-api.md +++ b/content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/overview/rate-limits-for-the-rest-api --- {% ifversion ghes %} diff --git a/content/rest/overview/resources-in-the-rest-api.md b/content/rest/using-the-rest-api/resources-in-the-rest-api.md similarity index 99% rename from content/rest/overview/resources-in-the-rest-api.md rename to content/rest/using-the-rest-api/resources-in-the-rest-api.md index e6b887f102..8904961ba1 100644 --- a/content/rest/overview/resources-in-the-rest-api.md +++ b/content/rest/using-the-rest-api/resources-in-the-rest-api.md @@ -3,6 +3,7 @@ title: Resources in the REST API intro: 'Learn how to navigate the resources provided by the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.' redirect_from: - /rest/initialize-the-repo + - /rest/overview/resources-in-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/troubleshooting-the-rest-api.md b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md similarity index 99% rename from content/rest/overview/troubleshooting-the-rest-api.md rename to content/rest/using-the-rest-api/troubleshooting-the-rest-api.md index 3a855334c8..75345d452a 100644 --- a/content/rest/overview/troubleshooting-the-rest-api.md +++ b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md @@ -5,6 +5,7 @@ intro: Learn how to diagnose and resolve common problems for the REST API. redirect_from: - /v3/troubleshooting - /rest/overview/troubleshooting + - /rest/overview/troubleshooting-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/using-pagination-in-the-rest-api.md b/content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md similarity index 99% rename from content/rest/guides/using-pagination-in-the-rest-api.md rename to content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md index 832d07bf15..c1487dd269 100644 --- a/content/rest/guides/using-pagination-in-the-rest-api.md +++ b/content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md @@ -5,6 +5,7 @@ redirect_from: - /guides/traversing-with-pagination - /v3/guides/traversing-with-pagination - /rest/guides/traversing-with-pagination + - /rest/guides/using-pagination-in-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/src/fixtures/fixtures/content/rest/overview/about-githubs-apis.md b/src/fixtures/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md similarity index 100% rename from src/fixtures/fixtures/content/rest/overview/about-githubs-apis.md rename to src/fixtures/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md diff --git a/src/fixtures/fixtures/content/rest/overview/index.md b/src/fixtures/fixtures/content/rest/about-the-rest-api/index.md similarity index 84% rename from src/fixtures/fixtures/content/rest/overview/index.md rename to src/fixtures/fixtures/content/rest/about-the-rest-api/index.md index 3562c0e096..36340c4bbd 100644 --- a/src/fixtures/fixtures/content/rest/overview/index.md +++ b/src/fixtures/fixtures/content/rest/about-the-rest-api/index.md @@ -8,5 +8,5 @@ versions: ghae: '*' ghec: '*' children: - - /about-githubs-apis + - /comparing-githubs-rest-api-and-graphql-api --- diff --git a/src/fixtures/fixtures/content/rest/index.md b/src/fixtures/fixtures/content/rest/index.md index 678acad855..e591e8931b 100644 --- a/src/fixtures/fixtures/content/rest/index.md +++ b/src/fixtures/fixtures/content/rest/index.md @@ -5,10 +5,10 @@ intro: >- To create integrations, retrieve data, and automate your workflows, build with the {% data variables.product.prodname_dotcom %} REST API. introLinks: - quickstart: /rest/overview + quickstart: /rest featuredLinks: popular: - - /rest/overview/about-githubs-apis + - /rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api changelog: label: 'api, apis' layout: product-landing @@ -18,7 +18,7 @@ versions: ghae: '*' ghec: '*' children: - - /overview + - /about-the-rest-api - /actions --- diff --git a/src/fixtures/fixtures/rest-redirects.json b/src/fixtures/fixtures/rest-redirects.json index 9178ef1db6..94540bc4a2 100644 --- a/src/fixtures/fixtures/rest-redirects.json +++ b/src/fixtures/fixtures/rest-redirects.json @@ -393,7 +393,7 @@ "/v3/actions/workflow-jobs": "/en/rest/actions/workflow-jobs", "/v3/actions/workflow-runs": "/en/rest/actions/workflow-runs", "/v3/actions/workflows": "/en/rest/actions/workflows", - "/v3/activity/event_types": "/en/rest/overview/github-event-types", + "/v3/activity/event_types": "/en/rest/using-the-rest-api/github-event-types", "/v3/activity/events/types": "/en/webhooks/webhook-events-and-payloads", "/v3/activity/events": "/en/rest/activity/events", "/v3/activity/feeds": "/en/rest/activity/feeds", @@ -401,12 +401,12 @@ "/v3/activity/notifications": "/en/rest/activity/notifications", "/v3/activity/starring": "/en/rest/activity/starring", "/v3/activity/watching": "/en/rest/activity/watching", - "/v3/apps/available-endpoints": "/en/rest/overview/endpoints-available-for-github-app-installation-access-tokens", + "/v3/apps/available-endpoints": "/en/rest/authentication/endpoints-available-for-github-app-installation-access-tokens", "/v3/apps": "/en/rest/apps", "/v3/apps/installations": "/en/rest/apps/installations", "/v3/apps/marketplace": "/en/rest/apps/marketplace", "/v3/apps/oauth_applications": "/en/rest/apps/oauth-applications", - "/v3/apps/permissions": "/en/rest/overview/permissions-required-for-github-apps", + "/v3/apps/permissions": "/en/rest/authentication/permissions-required-for-github-apps", "/v3/checks": "/en/rest/checks", "/v3/checks/runs": "/en/rest/checks/runs", "/v3/checks/suites": "/en/rest/checks/suites", @@ -440,7 +440,7 @@ "/v3/issues/comments": "/en/rest/issues/comments", "/v3/issues/events": "/en/rest/issues/events", "/v3/issues": "/en/rest/issues", - "/v3/issues/issue-event-types": "/en/rest/overview/issue-event-types", + "/v3/issues/issue-event-types": "/en/rest/using-the-rest-api/issue-event-types", "/v3/issues/labels": "/en/rest/issues/labels", "/v3/issues/milestones": "/en/rest/issues/milestones", "/v3/issues/timeline": "/en/rest/issues/timeline", diff --git a/src/fixtures/tests/playwright-a11y.spec.ts b/src/fixtures/tests/playwright-a11y.spec.ts index 6813db989d..44957ed7e5 100644 --- a/src/fixtures/tests/playwright-a11y.spec.ts +++ b/src/fixtures/tests/playwright-a11y.spec.ts @@ -13,7 +13,7 @@ const pages: { [key: string]: string } = { productLanding: '/code-security', restCategory: '/rest/actions/artifacts', restLanding: '/rest', - restOverview: '/rest/overview/about-githubs-apis', + restOverview: '/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api', search: '/search?q=playwright', switchers: '/get-started/liquid/tool-platform-switcher', tableWithHeaders: '/get-started/liquid/table-row-headers', diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 81ea3eedec..4ef0ef64dc 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -1,5 +1,5 @@ { - "targetDirectory": "content/rest/overview", + "targetDirectory": "content/rest/authentication", "pages": { "server-to-server-rest": { "frontmatterDefaults": { @@ -11,7 +11,7 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md" }, "user-to-server-rest": { "frontmatterDefaults": { @@ -23,7 +23,7 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md" }, "server-to-server-permissions": { "frontmatterDefaults": { @@ -35,21 +35,21 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/permissions-required-for-github-apps.md" + "targetFilename": "content/rest/authentication/permissions-required-for-github-apps.md" }, "fine-grained-pat": { "frontmatterDefaults": { "versions": "data/features/pat-v2.yml", "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md" }, "fine-grained-pat-permissions": { "frontmatterDefaults": { "versions": "data/features/pat-v2.yml", "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md" + "targetFilename": "content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md" } }, "api-versions": { diff --git a/src/pages/[versionId]/rest/overview/[...restPage].tsx b/src/pages/[versionId]/rest/about-the-rest-api/[...restPage].tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/[...restPage].tsx rename to src/pages/[versionId]/rest/about-the-rest-api/[...restPage].tsx diff --git a/src/pages/[versionId]/rest/overview/index.tsx b/src/pages/[versionId]/rest/about-the-rest-api/index.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/index.tsx rename to src/pages/[versionId]/rest/about-the-rest-api/index.tsx diff --git a/src/pages/[versionId]/rest/authentication/[...restPage].tsx b/src/pages/[versionId]/rest/authentication/[...restPage].tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/authentication/[...restPage].tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-installation-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-installation-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-user-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-user-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-user-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-user-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/authentication/index.tsx b/src/pages/[versionId]/rest/authentication/index.tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/authentication/index.tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/permissions-required-for-github-apps.tsx b/src/pages/[versionId]/rest/authentication/permissions-required-for-github-apps.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/permissions-required-for-github-apps.tsx rename to src/pages/[versionId]/rest/authentication/permissions-required-for-github-apps.tsx diff --git a/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx b/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/using-the-rest-api/index.tsx b/src/pages/[versionId]/rest/using-the-rest-api/index.tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/using-the-rest-api/index.tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/redirects/lib/static/redirect-exceptions.txt b/src/redirects/lib/static/redirect-exceptions.txt index 9b4c05dd10..030054efae 100644 --- a/src/redirects/lib/static/redirect-exceptions.txt +++ b/src/redirects/lib/static/redirect-exceptions.txt @@ -11,7 +11,7 @@ - /admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise # FPT versioning was removed as part of github/docs-content#5166 -/rest/overview/resources-in-the-rest-api +/rest/using-the-rest-api/resources-in-the-rest-api - /rest/overview/api-previews /enterprise-server@latest/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment diff --git a/src/rest/lib/config.js b/src/rest/lib/config.js index aab2e45105..f72f164bc9 100644 --- a/src/rest/lib/config.js +++ b/src/rest/lib/config.js @@ -5,9 +5,15 @@ // in the JSON file. // These paths must match the paths in src/pages/[versionId]/rest -export const nonAutomatedRestPaths = ['/rest/guides', '/rest/quickstart', '/rest/overview'] +export const nonAutomatedRestPaths = [ + '/rest/quickstart', + '/rest/about-the-rest-api', + '/rest/using-the-rest-api', + '/rest/authentication', + '/rest/guides', +] // This path is used to set the page in the // src/rest/components/ApiVersionPicker.tsx component. That component // has a link to the page that describes what api versioning is. -export const apiVersionPath = '/rest/overview/api-versions' +export const apiVersionPath = '/rest/about-the-rest-api/api-versions' diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 7bd8e350ff..c156cc2e61 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -34,10 +34,12 @@ "content/rest/index.md": { "startsWith": [ "quickstart", - "overview", + "about-the-rest-api", + "using-the-rest-api", + "authentication", "guides" ] } }, "sha": "1fd29675070876e3278e71b47f4f2606601bc698" -} \ No newline at end of file +} diff --git a/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md b/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md new file mode 100644 index 0000000000..c7af7b15be --- /dev/null +++ b/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md @@ -0,0 +1,13 @@ +--- +title: About GitHub's APIs +intro: 'Gentle and fun intro about APIs' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +## About {% data variables.product.company_short %}'s APIs + +First paragraph right here. diff --git a/tests/fixtures/content/rest/about-the-rest-api/index.md b/tests/fixtures/content/rest/about-the-rest-api/index.md new file mode 100644 index 0000000000..36340c4bbd --- /dev/null +++ b/tests/fixtures/content/rest/about-the-rest-api/index.md @@ -0,0 +1,12 @@ +--- +title: REST API overview +shortTitle: Overview +intro: 'Learn about resources, libraries, previews and troubleshooting for {% data variables.product.prodname_dotcom %}''s REST API.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /comparing-githubs-rest-api-and-graphql-api +--- From 47d1eaaeb50d65d8f37b4ce11122ec1bc39c0ac8 Mon Sep 17 00:00:00 2001 From: Cory Calahan Date: Tue, 12 Dec 2023 00:29:19 -0800 Subject: [PATCH 05/55] Update configuring-private-networking-for-github-hosted-runners.md (#47654) --- .../configuring-private-networking-for-github-hosted-runners.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md b/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md index d81d1c5373..e7d6f2e0b6 100644 --- a/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md +++ b/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md @@ -222,7 +222,7 @@ To use the script, fill in the placeholder environment variable values with the # - Resource group # - Network Security Group rules # - Virtual network (vnet) and subnet -# - Network Settings with specified subnet and GitHub Enterprise databse ID +# - Network Settings with specified subnet and GitHub Enterprise database ID # # It also registers the `GitHub.Network` resource provider with the subscription, # delegates the created subnet to the Actions service via the `GitHub.Network/NetworkSettings` From e5ffb9c18455103c6e7d14f9cc95736aa63c473a Mon Sep 17 00:00:00 2001 From: Daniel Adams Date: Tue, 12 Dec 2023 09:46:52 +0100 Subject: [PATCH 06/55] Update Markdown Alerts (#47602) Co-authored-by: github-actions Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../images/help/writing/alerts-rendered.png | Bin 64537 -> 50447 bytes .../basic-writing-and-formatting-syntax.md | 27 +++++++----------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/assets/images/help/writing/alerts-rendered.png b/assets/images/help/writing/alerts-rendered.png index 9f2d50f797b29f7709c260755e3d1eda3c57b736..012a081f562f7e569073e37bde102e0355a93b82 100644 GIT binary patch literal 50447 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 literal 64537 zcmeFZc~p|?`!|YOnGIUI!OAIjyG%_@P0bO@-K<$@Iii)3nFBe82-vW*T{%=L<%A7t zW{NWjDoswHVwxf%Vku6bs0auMoX5WJ?|siY>-=-hU*~t$>sl_J_3+&Hb6?ke&DZ_m z-*abAY+Sc%9S8*4c!eRK2(*67%D)mQJ9h^N zqy!CdaXI&QNc63+EAZXtEJ2{#xv}YuXTF}>+U#C>q1*1Ex{kKRzb-#|*2P8MFy4CX zpy%pRk8G4$c;a7%7b3TK87}F0fA+am@zC>Dclh(PN#zN)&Q&~@4zrC&fK^Q~aOV0Orf4%D6>jUfLG9rinT`=ta(8rA!w~6lV zkLfbS#N{h{pk@e^^AWJu;pCF`9$YD3i8_hx4|*2*1^3HaK`x<#67s z=Y5R9+pBi$0!2)_T6vzBekB}_`Xp65_(J&sZ-4cb@h|%E2=st5}0T65msQAMw0B$YuVE55IWDU|QmJvtgH&h0z;{b>`1AWN#t>Rd~(~ zZT&k~cjYDs@f4Jx98&KeS6TT&SB__8>%a1w*RLb=h-gH3 z(6n3#%#-hOl~gS^s+CgG;~$kD&Q_jur6Tz8S-#dvhgMcu0W9j*m zJy+o4HTT6mb)< zz5WWW4Zhs(D7$I&iaArrN7N-Mx&nvo5iO^@;!(USX0m<)b(&Zcvd{$T9oc z<(91^FV$`zoI><62QOfN`?L=Ll#_1LXZ*(LR)AoH*ek{OI)caMC~J^5l-tAX_>Xog zvwX5vE5MgLZpF0Lwi<@FWvQ&4)IJJ&2Qnq3s(N}gIamfNmvQpoAt$Ph{A7P3^1ipc?8-v<=?a%0ccVCTa!}7lYS*c+~(75E}0-<+RF%W zO0#Hz5frknV06CKzjBJDp#H>!PX)qHg7OOR>eZB6wh>G1W;TKpW*<#pac@)pd}dCa zwoTy2u;{>EwKl~hJO?d3#{1avKi}l|Yau*1uSnkM6s{CQsA}7NKUSn&*aVVziH1mp zoD>b@d}|6NQY=C>K^gu-2M><`dldA(pXxKbPfbK&yBhzNv&*r7%3)yd2&)$()C)%W zn4vl-oZ|FMsyvy7oH59e=O0;1Y~V6!5t3yJD|#l2x?y8MZ_06Ty{Z%5-V^nu(hK;e zkhVN@@iz}Htw>61)AT|iapZRU8Gk07IJu|ZEJ;qRj_`gT`nb2L zrk?WT{+HTUN{je%=HP2PPQP^@Bq?!mIR~-n&inLjPA z>fWE8s1&8~L+`9;^af!g2)$RT_`Z@*q$?vV%p365}YIj6mweH3&uUK=tUv9D+{A?Qjb$gbzn z?UNuKwG_SBZ(#Lx*ezj!@UMA!B;=S>ghzo%7f+v=_{tJ8KmQa>1va(!{pL>HDUf3o zl0}L>vo`OJ8YX089yLov-So>u2f~O4j*lM5b53~o23%pg79|R1kaBh}nM@2F<_*6N zK^L*udsy+ztnD4)d^;%z-=S_h{b(4J@H2OPM99X^y?;n>?oA1Cqh+Kh=Xgq0&bOBF8yw1 zEx8uZ?^&k9P%q-bN zj}3=^i*JRx^5nmT?1dGd>A5M7I&QCewKRC;`H>O*q<}Xug7nMc5(6&d$FUP~dqvz( z2#pHjq0qWbp!zza`$X&?;!Eflq3RR0=%Nwpfb`teE#xut_p%cqgY8XMZIq0L{Ov87}ebulC2? zzd@1mFE;=Bm0Y3{;nq)7A}^Thc2WiJ0&cer!1`mEqh3#wUp^M+Nt#G3OU9LssNNrOueqy7 zd=uv~AnHPC$Jrn4S8#yY8}q=5xh==`xi@4*j;4SIVxCIqRC!1*3)d(lxS`RX*9TSw zM+`$UdmFN=Zri<>A}NMd_OaZ9)_8hBYGK0Hn1(Q?M){ZxZ^?XVScJaZD?u)E-CZRJ zutH45ucD&G-wdeg_RG!uOW(uXQ%joXGlR-HJ+Sf)H|cI1QRfNc3YU*KfL$6Zw#fo3 zQce%uxrSfUP4Tx;uj>wCLUDmZu{3V88B&}WIELmcKASgxMwvLJQ%vp8x3b*&AqL5f ze}f#K8LCXSg_e^8Se3!@V`#vMlRAdJXoA*?=DrHlzOl94?JV0AC&Nt)AD&o!iQ>ZW@shecboaX#@nXd9pSJZ<40 zN{c4}cP*OkL~zMdaXM{Ei-bmT20r`)S~vAzd93Pw)h}_IoTGPN`W0uXRMY(?tzuK_ zRz#(GDfhLy@)LKEBQQgPQ88n0k}mZr&hC1UOauM>48-lkzN7$@{n~=_|N5Ez-;R4$ zqB2=Z;xp;Z7=JtLiuUI5&lo5s&@*@8Y?I8d8i{jX`RDIw<|!tu(wiHyCC9^va28U; ztX|&~`7`k^M#D7LRCAW3kcVG9i(Y)A2RlGXS03Bu6<}pQ^Q8KED|SgjXRySxVo(aZ zAVrKAk8Ll+bj~*NnoL+Qql)V~RXW4sS&xab1ha<8Ut&U?SO^YqQltc>Nhe~ZOtchh z-M^=|(?;=DASFrqaN`tFxu_vt7>@(PQCxrY*Nu&gD)%O=ESE*K=%4*KTC7FEu>9JD zl+X(X%S^5DR@Z>%rxjgpvkm;N6nF+wqnI}lCFA>rFEFOobKGEX4mZ{y_mFfX`D~72 zJpHp_6?QwR@^;=7V4_~?VGJ67rto9i#6R#|fIZ`IKcppwp|tb(|GIakef3SnYOlBL z=hv^8jA}nvW9*!~O~Pd<8tDd3f+_mH26+xFmL`(_tE*{Uw5w^BP3w=V(s6IUWhuT% zFyqE*Z}MF>A<+yNGo=%GU<8YWz7;n#Z_uUMa+388ESXP3knCH`57k7~bK`b!mLs0s zxmt|^mdpq?AWdb^F-^;vU7O3IQvwc5=%*o-%w@r<^6JqoR8(K@l-F{)uqPV&yz zCWe<2BNWRo+8a%Jee`6vdGcNFaokMl#<>JYJ6jGlO9W!FX~KtSxMzxYbeba~b7e&ST zN6*yqr6H+}8P7?G&RWLcC9(WCeZq$Esx%+J8jn((0u=EjJM~+dJ4W`z~Zof5jb(=-h>U;e{#D*Xs;M&i7vg3vV;qx zH9~WPkJq~Gjp_pt!gO9x>*#piG~Gp4GS>nyx#K^@O-a+t;wD&cJbB8{ z-M(gi4Rev6aGEnxbXsAVFXs01#y(CB;$4hb?B$z=LkHwpr%@3<(h?W-%cQl2bEouU z+9V`}ir(M?lY;wLB@k`rV4J##W49rRPOXva!Uc&JY{UH~hHmug`SkLN57zH@eOr~K zWSQ-RY3h&|k?Q9$6km740jrA}$o#@kBb6Ujdr{+zi%;8y)4t_lZ^}0zo&?=^c(LxQ z_e4Bo^J&&#I0+jXzU~Et)?IG6nsbq7sgc<2Vh7F%x_wg9*6#3R0%(3RPVlyP&*p57f#RF6Gdyi$i0Iyg1Fxb>H8-}N!0~UJf2O)ndV9`Ael5rezN1HYt7f^e z?oLkihH$~SIj6!SGqT9Y-rXl|ipYbWc5F<%QNcy-n@IE!?{6Lb<$bau2lTNlOo2B; zvqyp)rG+6*^+HqKaf8V&2S(i$#>ib{?1I07jMT+BO!t+Mq8H6uh1U7)RsAZx7!TnQ zA=Mj}eFx+Va)fPkc)O6fy_mA98=^VflrykHDQ4X+i2m2B?_npAN-Xg>&6Ou>_U~F~Y_@hU9dG*LLRUrtMHvC|+Z*`@ zK0bOw)}1qqjH8!4Dl+e$r*)Fl%}DXGjiG7QL_=1BlTi@%}yZuX&_rK8VP*xMdxCc;5NM05;fAlv9W?3}#M(idVpnw=QfnL!85R>VY45LG@jYE<_4dX(l;miGDWfqM z(?hs5=~%}Z1h*u%5GLHWIpd@+cJ;<}eb;K8o;EAZ3eEw*a=WTw%>4<}FtBaaIgr-yMamlORt^v>e5LY)` zU4%_iSLcDxE|7Hc!>allMaLrjnk&tc0$kxn=#ENU4mk3x@jwD9R>}P5O%yS#Gc!B~ z?dKZ%s$ShQAad+GfBQ|twsAb?iyNynl>ro5*RO zM)ZeF4)zmLA9um(;-;!$HE|E}1Tt*jwJBqV49e0A7x`5u5{C5aom<)6?0#GRN%nq7 z@7Uq@XvDn2W7FyNr43i(7tL|Z3;JE6P(kP`I__m_vO73hF5XJuMAy{Z{xcAqNv*6~ z5^;+cYCr2M#V{p%7`roP@7KV81>kGQFdLnFLE0`ZAF6a(>_~ekelXkzFWo4plP#Jv zT9jyF#|k_UO#kJifaDuc@+X4UBu@!nsYgZSj&I{>mkJoWY*TaAHE1l|0}n3NFDpF% zy71I(^}FG-Zm)cLBWt~jhW13k+K^!#P`%gO3DoBFqHSjbzIT*9jctBgQhUkc^0UxW zS%$c8<4dKyNVO|DV|+K0nW_WuTQBjJ(PGi!@?Wu-8s@wp8%hRsrvNpQhAwwa1X>y7>R^+ zHNGpM{96*KM$(xAn>jRdanY5mG{#6|v$q|Hh*l{zUxrXE} zk4y+qgyS31>^G`r6VCXsot{S>-?amp)5m!0aH(1^%9L%F7aG^7M=n20NEP@8dNg%d z)eW1nCp=QygR4l>$ysi#e89XziYT_2g#cktV*s3w*==gCkj@F;i}7<2}Fp|&XN8{kBWydIOw9md^5A17V@0J6(WA*B19 zVV9RcIq4w6l;PA&{7~i8QRenF8+7g;yb{Jrar);8fl3DA_MsoylEU}vYt@*Nb%zZ* zYDuW;#F1khq}ah@7t?HEn!o1XhbbpE8q|WmsFY;{X-Mr4s%a^0cKOD?4{koc@Np zMXambl8`CNFXH3W3$|SDn@BXOXWN+sv>sq@n_jq0L1Sc0Gks_mqOthq3hP>=pMJ8QB-ZfTt>XN<9b4KODJ7I7zi10Lw6A)HUAmM@GGSZ2Uoeq z(r(*c&l%2oPqAuuBvTJDMI1nSinw^Yw$6<1rb~G5a@>*9Ro!lY334#Ri=O8%FP4ek z-PB^=aqe}YANsP{c~6p)v&!VmS<0Gj_#Zx`gyDU%Ia4j?i9Z=d4d-kcFVyCN?A$#l zk0T;H!>c-{LDgnSU8@OhYyO@>TmTv~1qx}dtgtA0O@z~G&3#=X`8$M;Q5eXSP**Vmb6HM*CZur1i(nfpSRS$9BuEw{{} zsy{G%+>~5bO@quT4HUSSmg$#W&NkW;8_I}X)2&uZ7Qoi~RW))dP&!I6!!LZa_du9` zW-w|>wuO0s^5*LO6+c)>HaB z>yv9XE@T`mPuyQ|6Tcpi8IH{sg5<7Sdgat-@9&wPz4<%&`Curhu{`MJfuQ_1Y{w6V zOCPA;7e|LKJ!oIXh3!nV7JaTFCKp9GkfUOCztm)wa*|+~pBKnMyC?jSCZ^JnaE23G z>!y#$?uJ&iy8XqS!Q?9bRw$;~@lfo$g`wQE!k+UQe&bHhM=Q!gF;(kv<%j^f8AA7F zybi~0;!7fN2qi5b{QYIRobvlI6{^st{PUny6vd=bONIj{REgh zvgguwpLeQBrzkkXv{yjoWhS5HlA+R24qgH=`)9r#wRMj1z#Mn^`lV*= z0WfCG7RYq@?FSo1Y?~d44mL#HMAO-JHKU#$^NB0)GOZw|AQr!PT>&i?2&+4y4>8+g zV!xh`Cp}I6RakSEdvmkTd*aIy>68h&xb*2s-=a7H)$#8yUCknX!P|^-7jpTV!Mk6g z4rCWa(Y#{^O2~&f`|Z;paqW(a&(4@JV!}^})RD0S=&U6~riH0Lru(kOu(j=moi#bA zu{3R_YPtJjgduC)JKlOg!NXza``Hzejr9&sbR?G#Oe;C8?p|AZiGQ@o={8pFdgyd~V+eJ=I^=1+NVyehv_m zhtmP$Y7KE3`*~^|C&cz5Dc=?fLQ+id>ZT)yw)t~t8(WcUja_&8Af61j>#x$dC<4FW+&0RB zudYS8#hl!0s&RmjQRY2;$Dfkr4blI6lwM_S@;>g*q;g|BBn?Yo_n%$e4VM~eSpDHY z2B^yW2G&Nk0*d*c7PYnK{P#7SiR!F~9| zY3G=iqc@*G^^8nLDPG{5HMmndhJ}MSApdggQ53I24v63ou;quKU8Soo3j(MwXVdjI zLGg#BGRvf{(q=Vlf>301&qgE=uws~yxYMLmk2T#8ljc7)&@F4%6I1E>w0ZrB=B*;G zdDa!cUn8klqyPBpO6vFWneXu^b=$LyB7&8`f<3)(rP)X+2AM)FNPW7UAjmlie_U3g zRkE-v&w0f&pUsSH`K^s5#S*uFOL&$ZKmyvD0Dlq}+i3+D3tC(G?CY|OkGWp3n-^UdoQa%wvn0I&c&sV%AL|~!jCq&uAc;4&*Mi&=z7ijjdgBp@P=fwmhhSHE1Rnh8r98QiZLyetK3`E*rhB7-~p%cI9-1{l%7@rCf*W^umy7MCl1oV?MCO4=npsh}MSE0!<)7+3t+n z>Wo=ktIyPa3mphpTR_RV6^QkDdZ~qIn-tI{m(5KDcS+5|cg@55yiUaj0bKK-StYd| z^?en~JQ*Ji${VeY$b2UMyl`&+5g!R#^34G3h%Ur)pFsiXoc(ILTH-VX!_D03|NMtD zMt|Vfwt-w6{MbRp?y}yV6G-~Hc>L<_spu-)>r1BAY+GuXCFVhth-eYF{H*1a$p`UT%Xz`59EOCXiw}aZcbC;^vmRA zu_(`-Zv9v>43yYZ{!B8(&!@^eb>j|Ba;J3vkmFb@Xg0+4LG z8v#$C>7!-1vtB4OM(j&yNo#|5JP1~PbjRZA94{_~z+WrGWok}r|yF0~! z#LKt-LD;Bv*UF?Me94^EwTkzR0AG={0s&$>lojm8smM{8tXh47_30e+a|9V=r-Z6^ zMarbd=*+*F28_>}oP(3{qnt{X>je7V0jz!5pxad%Q_Jd_h#|I3D>UHqCwg z2WUB1aM=#<^pq^;sk^UcGRLa?5B-&Nw(y`*Fytq!R69#VmI!7Hxh;Tjgx2E@7M%Y@_D)MBCOFHD+#9!aki5%=7;}yZ7N6KGS1y*%(TH z^()E0vvxoRc;slE$44EDPs|l1*^HB}@p)KdF|+P2paT%6zkzJgr0-3a22i(J2g?Kz zoRTGLtjW%Y*;Re_VB8oGvv#GV(0k!6C%b=p0O0;C4-Um;AR7hSyea%>z%f;WgGG(4;IpSv|LwrZQRAMDOkU)a`tDL4pdT*HgSj+^A2~ zRhkf~sm9)(KY*5Bo&~EM`pybS=Nl#r(sk|H;I;)40uT)fMc{8+CvNy2$It|Xi!pvL z#XEr>N|7Ba0Pqb6h)>#wG}=ObI$n9ZiVP~n3u5gr>BJQSWh&Kfh6!=ZDF9`raeh^| zy{0pb{k1&Wa_4C{deeW5jTZn*t#1l-Q$$IfxgB? z|D5p9^8)7DSrFFNIhuiQ3L1WG>ydA#VHmT>d?Gvzg5X=)cbkUezF-^4txR+jc^m-RDN;W-m@E>}!mEq?zM<42M>q?Mf{#nemsn^BB>6=e< zrQLHama$NJUbf{ezCx#|tI&CS_~F~IGsf5)n7q9R`3&)EE8yUe9Z2ZO8$&g&K{_W~ zX6M=SSi>?{_SnT?bK~PKPsSY^7uu%85O#Uf>4LFnhjlz zF_BIiryfTes7!h$5K~(((62hQy7-~9b~b!Cpz$FpTnDgBaUOierkR0$c;?29QD{S6 zWl(2u2LeUF(ia~S=B@Rs6v06WTo&9@fFcCUYLNP5tV_+BJ9mjy$ra@A< zDz-CWe6VqU@K~-py)^OUfL9l}9y5RZ!G@b_l_&2VN;(_*uxhuD=@};VmRJ#w05LsZ z1o(g8czvK`T>=b6PC!sd!nP9KQ?~ATp;P=1A8r@weNoX*N)2|DigU7zRr-Ep@*F(( z<`QdA6!Gx_6jmVU`yXCBRvMvSthK(7x7x>Rv!vl-CeRO zL+a#l^kLPu0HbVypFz0jnR)6PebLfFHa$+(4x?=woLSTDg42T9{u#9WN9%VG5OeX|`vdqsL1t6r!#{4A)m@aw zpG0Z_j_V4@QR6Ji<0MS$NBM_`g;w7HbK&vX)NH}c!?e8KIm-qE)WxC>jYlD_`%rRX zeck&s6`uJ$c%Oh*9oFv@PH$OFfH_bAolC~Tt;^r1_1!0PfR2^db0DS*2GclC`3Bo6 zH{864pXIFgnO2_pwJ|BIy6Whlrt=A-cY=nfvXe?>A#XVc;yvEswUzhgb9MsQ?G_g?1d}j2)%r_F>p6%LA^?LX=#(>)=~c(Udt}%3RzYq(spTRqK%U61zjmD3YfzRq?fkI>HeLw? ziF$Z9QB&AN9g-EJr_Db+O>8|u_pNS{AIb|20>l!hwX^MgNH_UFbgzqSCL?Eh&S*3~ z%;+lX^^sS36-B6du;uH=Tl*{G8cjaoCsAn%y|nL4P3Z)Kt3Flkw-fpS8{LG-z*xn zwjh3AQtGvJ5T8>;F?&5DL`57Ax{hbj52Q2TLnHFM0t_9;2Wa7jhYjXVo*Am~-*1+H z02F!alU{`vWTYcuyrt&j6p%|qy#I!0?&cf0dc3MFd0ojpIZJd*O63Jahx5KZ)&D0Q z*ya<=*Y88fDGjCFRq2=J-Sp2DRlPn8#1TtboGByeN6jYFH5Z0HI*K zes3(P)9KWiPJPC1+MT+Qn1|*(I-GK~t^Vc0QY>u-1}Oru8tvcg ztl?NRZJNB$IP>C{c4uSda)9oWjpsGi(X47W4&pt4EahpGctQ9zeXb1Fkq2a%v6z*l z30KNp0Q&INApt(aQ31-6f;HVwZSE%ro zhfC)2}w{KE)X& zn3Zq+NI8m#_yl-RnQyR{bKjvG=iU}PeH0?Q-!OHtWjP@Kg-z{JXWg0gm^#+ZKlwbu zkxbm%2|OX=)per@x1OF`ZM(OwSG#io6ymFBwx|_o5YC}&kaNPFgf6z2VfD$2&V%_~ zv6}GmpwuTiQJ#<5P-%Cj@y3f7K_9v(B5@_S;%Vb=6+vzG<)-^PjnJ z>H6TXvX7_fmPfV!6o&l7&_2;3wSi-26lq-Q)1uwR6V0!m*(?qo9*^B4J^a(h<6Q>( zR4B12RM8#fAv{y>Ko4}29hs013cKxSg%>4Apul|5X=KVijhz0<_?A?%nl-R6@~-Uh z3vDyH!mZ3-lf}`>hXw&pf4mZ&LaxQJyE15*H-Tw&NfgV;Dm(jObBJqs660TMyls z4Qi{1vz9@$EAg+NSYD#TAyACO9DvG=ha9I+1w#t)$Ji7{yG&Cu1whoDMs74CKSI1>GmZ$ayBP7pFr5Y~~W#tlD1yJq~q(jwh<2GON| zee5t^sE>=?i27*ilm8(;%Yc)A`pf&)3GdeL7Bq!FLZZ91OiBO_htQ*DhNq+#vg|cl zqp%%K?ea!kv38B-Sa$kME@vct)Cx<9gv)8BFL)S<6_0tFdbU*2T>p~u^Zl!d-vw&y z=s|wF0BK)F1?rfY$m_+FbQOVir*+%cc5P#ytVLGmQrzn&(FK{19bU6r9)GyjW>vr8 z7yl9@wEoscwx#-63E-T{E~QY}EkABL8oCHi7dKPIo(11f-I|Dpde7Nab%P%};Xj^!k6AkL`EA!GGi> zTelP^oy+zOKpJ91X297#F$nqCtG1_SxBF|(kw*mYD@61TUJ3WWdm(;o=Nh~2Nx ze`93Z|3*CiU+|q*X{y~C_P;*o0RUj&kN6z4YvnWP)Y^jIP=Ocs|2y8GO`eD!I%Lle z4ekt>zvI=BFCKTX>DT`cr0_RlAW7v8C}E>~3Zpn=Kl_0u_z!AP=Qr(*t{}(CGdN;Q zTwAH0?cu}#SMk}V^($XhcmYtx3{ZW*@YiAZ0Jj&Dc-_NGOUzsLlV3uka1XjkO$u6d zn*UrS{U^^UQCNsxuCn~iarL7B7U3^XQ$HsK{d?Mut@|b{#bNY663m3_k=&iF5rgh} zPP{|Gzrj1&*H(3JvHishtgL+E?jSeIn(np5cE)dKQ9=KBBrKeA&vsmXm>hv>T8+U|&>jSfm5!&!>%enW{@(&ZQe{rf9kZt6>ygeWKx)VsVxSMt25X zkC!h@bosB08BhTzI6N8}9C3hU$x56g^KBR1r~@zD$LqKBZ*!)3NWP=SjP(YW@R(f5 z)nL<=FL$T1;B?#c;nUVcrUez)~YU$9jR|jf=xsV=l1AUO;xv|$5#EXA!?b( zBYF$dC%T%XZ$cADb8_Dm7~3qg4@S#MquE1X#tqHnJt;^ZG&?GP*cyo}l6?7p9Q z-C=%-x0@A_ z!WB&6CsW{53GEF5 zqW&USKy)N$IUsTRu?Y zFQ?Lv77Dyv$0FXX81=L9e@Rs6>(w#wAlW00hA04gh6v-;*-C1>>_dNVPTD5t-l=XI zM`W*1-V$%Bz1T=YjxD*d>?dBkM@SGl&U%7ZZ?21m<9RDuGBB`9k{+aMwPGOY`oEW) zytaV8*-a^CijX6uI-!2jtIZOnXR7svCp4gAmV1aOhc zH#pUM{u2<~8rkBEd%3-vv^Qzx2PTqKu%K)m{r}T-q*wr$;>4ck)H zTm4K|;PTZtg-pcQ0s52=z(4M3!InRBLjy^dg+F_#xp@n9@m)?Rp}}>Ge*&E=w4WW= zLct#8>4CZDtI=Y`au+vH#$n|l1r2EKItugFZvSX z==k%LdtP!ckq)0gBYQ0r;?ewD=kor-A(?7g9J!6z?e9G-cS>fIbngZLD1~;MvM@;O zs?Ii^%Br1g9&V1n$QobWlC+unhPz2?P zjP&g%LtbX^_bC|te})(cr4d8w_D4XS0eh1k++%FUCH569FnHh*bZ5S7=sl~R@Qt-G-cH7>!)q{%}5_HSydI8=wRR~lGRFVWQSntIvf zxL}?om4S0fMWTCp%X0;Gr&`vgHZ2w6I&>FDlDh&+m)KsGHq6&s}ay>@_wX_KT6ge%GqXO>C?Ba46ireBu-B#WBFGWswHThjJ z{7x`^F>eJil|oukNd#?5q80IC1<=+pyqJaW3W)!5su}>3)xb4ZxvaSo>P!7NJ{TIz zLn>6S8|23>FAbg<+tw*a`T+Iiki*9l9kY$#Ey>1PV;CAu7z*E_L9 zWbvECP7(m1;($G20_nS^Siu%{fH6U+ml4M=v{Rz4L#o5UiISJqNNM?SP2x(U*e0+a zy)-l~ujMN=IZvU1*GaS$2o`@vumZ+Gp|0D%1@rV(G~8l`pH%9!_)}**i=xXqoxneN z!w2pE7m8?@2En79sLuhTBF?b!k@Uy6#lD?MY!i0XE-q~e1lzO2dAYC&!!@tT@VJ#C z4NqTO=AJm+%b(xSGB=tNakCNsBP#!ZQ%8`FjxCD4%d1v~%}M)#uHqla}arLru$mfMzx0%-I0-_8c~7Jo!t_fP!| zay9$(7}BGbnt?+ z$@&!NTARO(Y}le4qbVq>=Oy~fm#V^0+rnSjU!tGu-}_Tn{65GUS-jzphk01Ec$-(3 zu6WYLcOu91#DzPv7jVH}Fh!_ZOUK!H_iR-P#3Bv&U4uH;DeJp7$oxAa)cxDmR#ESxO< z*ntW>>HXYh-{5$Tz|G4DlG#y7&C&lkyV7t;C01Og;L zKv8g{iS&+25klw$6Pkz=2?QiS=!g&k2|a`m>Rxf)_uJol?BDyxb8LQj+=j63RjzfF z^E|I2mPB!xhWo6xjL-*QV@Q&Oh%QZPBm3{n~Qo30pq-R+3i`)X0K6T0N_Z|jG9ZK$QUC*QfH zS4Y#JZP-r|GE#M-eEgqRw-q{HA;V?!%MNUiGVKPn^~(BRvexdl;SRKeVabk=%Fyf-3bs6XRBaO z5h6rvP3~EToaAk3ZfDXCz^sXdbX7DEQbVk3W6uV`QuuN~$~1?zHN5emFo`+6{#IY}R^bm>kemk5Lm`YKy! zGQ6US_*HrQ?M-bsB8qSJqm&IHqlX^FiFmI?MdhZ5Ik|DAci4 zN2a_p1bPIGfH%wsA{mli8D7*a6$Pc5=duUqkRsXOW~Yj`0N1L&z-l^UP%Ww4e6K2V z*owI)6&Fda-vE4WpyJc^y|CzA`lOsr!ms3S?e+e9zamBZ6aT0-Qu8;=+5ap=B_xqu z2tAa2Ijjd>-`c6EQ0g`QN2bH}ico{!p5=`r7cgQsAE{;FD~0Lx^HrVxr+l@n_`WiN zKsBI?inOtp+TVF%`Z&|-0D5Z^IdpE%50%xUPHmzeFO%%DyBJmqeN4^lkfIpNSo@Zi z7Ec_B3;k^04Lx@;tYd3n`}|bD2~RH@)zIZ)95i)fGSe#x8LG(lLupXkW7JvA|77~? zR^P^b-&KZO2efVMEPq+bgka*k?|pJKZHHBBxqyzox4rbZemF9 z`k#-Z*)#j(QRI_JLio@^!j`owvg3_x8f{t`<_lZzj-s|d8ZXAVcvBY_3KhS1sFMZa zPNvE&p(W9r%pCW+o+vOuR)VK`_D2p&bxRx`sXXjte^~Mbtw39y#Pj1dc`8NtdAVFz zX?Umfb(vk_z~Pnk$>G{;$xZSfwbhxD2e*R@EwN__SXbJ%_x|3pM{%a&VQG!ubPLxK ztZo|)AAu8oV6{&ZUfmgWD@4eAv}NrCn2Du;+uO_VLb)e=_;+1aO=<~Q&Fi;*?%P{_ z7;46+qP<=G1Er;=;P|DfhwPj8VqX+(0JC`l#XryQFwCWn`8(q?VQteR=+xCgJTTR!2;-cs ztu%S-(Lf_Lzm_3*_-iIm*=y(vNf~v9PGg5BQ{i zhH1Y9a2Cz2YXjn)Zxp1HMs>qO zJF7biFYii*^Eh&)8^J<+3M(5@^&$5cBe?J$xuqozxZU&v#X!4eJjU=qkuv=89kC!d z*SO%JYK-p&0vd3ff-bUQVN0Q%gKy750>-tBi7ji(F1+N6GLdz$Bmf4k z&h{{?9W-?7ainCIt4iRPE>Lij8+V*Qo+5VMr-4*iZU9-C)$G9!kejY@Zm@`BigJOGY)N*Gm}b+7zZj=rV2O;=zL{giuFx1W7SLKBPml>-`tw$;FOdX;;S8vWdUX063; zS&U+j44?aN&Ho-v6o92~Oy8j(A2nc4*84BA&X!Sv<-?p))cs0$h)@TOv|AB}dIDu1>94YKjTN=oV$M?ztOophL3@X4WsYpcA) zzTW&O4zJ`PQk_V*VO@Yq**hB@P0=oT72+)sO7R2-2fD|5HI)k(Z=Mh)?~9ILWO~#*^>!*DpYi1R@gNxzSvc z>cP}H(#($3gpilt_WjUlHk|l@TX`2n-3>_*I0jg;FxI(D%W~d?J}Wmfv5p$BWpO=g zM@Xjtq6k<*IFG%B)Lv!i=v6ZOB^>zS^{CmQ<$Dtv3T=91Weh+|)_&XS-?gUlr9>Z% z{{+9))CX`#3)SQQzj?l_ zJ<4Z9yKQ5qg-QA&4|}J={78#2Ccf?0T+->F)!H4W9K7k&^Dqzk@BsW~B4%pjS@rW* z2&JlH<0A#*$2kt@g`{_YfLwX_-epF}y?98l_8%+vgmr6~`E@k)IALAtgS&VeNoah4 zF$c;%T4hYuKC@kKqx|>dQGSOq>T!a30U`MdoC{_*nw-Un8VzCkoec5z;2iv!Fbg0V zVK@s)qvL;78-tZJ(J6)z(ovBoFV?{Kugq%0X7O6)BDw;?FRL`|JEuds;Nu?T^{jf- zVEBlP0;QQ%xpwpJsFxG&WWmKS_n;LGORg--S(sz(+qQI5t^1SmX1m85L{H|r=uTEg zFC))6*KJFJJmROPp!o8pvUhk;=30*Y?}W#!n#yO1*C~!H0g&@XL11i zXzTcC-8gV6!Qmi>qh%Ea+GzmpY>!^-P=oGGRQCN$|kr3Wk#jJa9X02tXVyypF= zqsDE3o!I`V(v0Na;gd&?MwTxC7WXL+FQ~h-&I^$DRDI2xtAEdOJ^k~93KZr2`l zM5lxUly9x?kuURR{=b=7838C_maH=E_Wft=R-#NA8}~Ew7SR6Y_7upcSB4JO<3}Zu zrq=>=R*OuRfm-AOlf!nTI|(;tKbh56FSNB1+;8xj9FXGaoj+G=N*rE1)Z#eFiee}? zf30ZGx)MYVn$T!!pJ6f_w|)~n7iJQ0I)r=u+O^#ErNJX#*M~f9EvGr)|Wk*-gInVK8z(f7#`V$3t`Hkq!*^^Dq;-dy2?UBLtX!~1#rDgk9yRg(I(roX&4z6{+GVKZ>DTvUe^rBaAI@s z1|TEERhSlQh&bNKX&=k*yp#ec2iRgG>v;9=@M4PJ7TBs`i6n!NHDx!lwyHA9b;3Vn ztn1+jvzO^(@*WNN4Ye{ek*zkwbClJU_GQH6mw8HRR?Q(jvp?faZe`rIOnmxS2zUtr zcZ*6^H6_DJI|XnO*}=4-ir1kjdUsPs{Q%^;`a>oqP%_79-p3|oR4v3XTZgbre35v0 z{$8@%atP}T6zduuE+3ZdS9-}!-0I-m^S2ag|KT*!oU1y!B0rO;sPtXvubNd7_rsd? zp5mZox}QetwS#k-ZwCuXOl3fng9XrF{bCXBfdOyNwSGL@A)h-P@*z>>R)YFA+U~o= zI_C1hIfJ+@EHLhd^~Vy_-6ez0ltBk&pH)}Ca=R?_P4J7mDYxJ7HEnvXv8!P6wyu(* z^%8iXUb$p_N)j4sd`7o+;JN$gl7QCEijm0GtRSGas!{+|5A%cwz~rck_+N8-R2d5u zyU4e3uS|VKCF3H42lE(@uh9zlYn=GPPQ)roLeI-7h7rvq9EZjWGy}R%>#7_!n>VkB z^T31QLl9U4DT2=qH7E3K3Xo5suFD|yb~Yunl?G4vt6d6p{~%g8Z~kOtnOaHu=E?=z zT}t%}b~=;)q%~f@EHglK>7lxS_WDY_$uHaHiyc0F6>4<jlNm zp4;vE#&H*uo4q6YN8O;r7e`zul{G*zp}DeQFs#%ws$jPWX$G+h55@r{7UOo;4r@`B zfsq(EaBSatLWQc_S!+Y4NAq3P(&PQItwn|4Z`<$j^j4Kb%BJ|9h8^x5=)1)$ke+wg zi5P--q;b85LX+lR|1dpNz%6;1B~^%(H7ZEW4A>i+B!xYyj%7I5jh}o8pUk2#-GoLZodEIuntQtX z+yG?wC|@q)xpj7Vs=44V9JO5hbzERs#1~wuF+E0|Y#TIQPc%6Zrc^}tmYjMxT3Fdb9a{?Qx;<{=NyJ0R|AWVUaNx)Qcmf56)~JQDrk+!fdMkH zuB`)CBOUS@CFum;`A0%!a8vZFnIA=dFhoCPl8Mv)F!+v$ybSGEKHM9py){%%|7bg! z^PDg5V1KN-2 zRi{hWnFS7yK-hzNeH!zAC!p`@0T5o<9he`=JM9|l8SNvUm4O*MYvr||kat0!Ia@S; zqzE~cE!e}3#>bkZ)5Z&!aQIm8O~{0WoUR0*X)dVf-GU==Zw;beoTT~mR#jx^WGh9 zkvv|c&Aj4Lr$1qpWw|ka=m&h;#dT%_@vprGiv)CH#Hwhh9Rf~@hmobnywy>2a}fXA9ZUYZ`%9FZ{Lk`!#0p zYYG9CB_Zx3ThzF>D>bWg!wRF5iRf-j^!T<8vj?bh$fjkxac?$7wx=P178jtDg^xW@ z6-Q%%T z+1P-IjCh*V{n{t5<4Avx7mxE7_1}yi_23dgG)RVJ`G-P)@%Q|lHM;-lA41?>t=w6t z5GYmG1RIzcGh7bLjeRU|98+xXZr9#hu92z2nsaF_BIkV6Qq;p@`;TY)$qMsH#cCG# zp9X{G)uLTXqIq|9mdOQ*I0h;1KDH4hQ0-T;0MamVH+6mYby&@UZG~)@iP|gI)N#eL zfxT~IOqqTa#@qb4j0PyidEBpFDJf^p)h5M_tKkAM=N#`^K|>ozKc5k*xASeVVx7A- zzM4)Hrq8I}nto0{0b^Z4EYh8S4)#t?AuX|U! z6)Q#Qv9+>Tk~Fv9%yv*8l`@~Vrr-MFQ15`?3_BFGWmuPwk0OnA7~|&&H|#yH6waUh zfDBJeHXdj{N$3;fy)W_gMc{!5*P+$?UH(&N%G?e51+5)%C#w}-OuO8D(X=o*wyVe{Huh@pBB6bU?eRk$bzR+RJ1*q2hnex%&hNBxGN6) zUKXM5@~zLWDsi`@=t4+h7Ps-4d&YHL_G46n!v)@SqY(hs{tJ%zapLj#N=wG9h_i9c zlj*h$&+LE}NJyT4pTF4G)tr^8qSku_8Q#G~u^Bc-Rib!XVo{^YE5>l1;Ah86q;>O~ zGr<|VWs>(h5Cs^|r98$hrFsI6{c+l~c(?xSUK?`)Cz<{ljpUoI=$cvcbs}SfF4<6*iRlkJWRSI&9}^#qlF01~d;i>EGEFTYF1Bo^wy63~ zt}rg-(asxBXe0T`4v?A)&sEupq=>iop&yluxnL8~67Iy9>wDVWhuyO3<(_(YCKupb z9w(gnd?_I0ETus{twar~xDA$wc-EGn#~!&y(Jya5bTydp zp)X<_y$a$pw$3WJObxfJ_sdVWqVp1xv}b5#JVL>Vi1)20QxY)Uq&Z&mgjw! zLt~G!%ze??WXJIlVvgEAC30*b(xz+xbp)SiSs|H|6e3RP5&VmOfsqDJ+I775FF#`ymKG%V+B8loWM$e{dI^Y_+}NtNg*j;F)lxO?+O z7vsyWQ#{#_>(hoYSHmAR9p~P0Nr#3cg7zj{VH92P=r`Si?ioM9D()cj2>p#)@e`0j z2Kc;B*xUc-f5$g$?Dc(507W(LK-Y2gAh}P@C2REb(93&kg^j{oH%>Kk-4p zcOo?VOvxB)?;pm6%$`B_9chamvw!b!e zYV17nR9*fUDe@Cg`{~^;oNuskw`Og94>O(6I=i-@a%3hy)LA%*w&z2619=t+!?YgX6w`D5N>5Zthl_Z zQ~z-Hd-Zj4S4>K*Ko081KpO(Nm!>kSE!PsxYSd(n#8{PzWj@&)X?_K>;)`Yf*bQe` zYAXi1FG?xMFwT^Dh}y1V+Ib{IK00}CQZ4!Thv&1KSGTpUeEdG6ACaSFFdM4q6|i%^ zWyQ;@0f$(bKBIihMD1~Rxw21z2znXy#B=O9k%E^^S)I_x_S&hZW+OtpNfz|T2VTiR ztyC*MqSnUS=EeQh_3!yYBh*@#QA}v?^!LgtF|o6_?S>YYZ1_xgIJDHIlp0K7n;t8S ze?o9nol#(Q8SlShh>Df|JORgb15`t+hE5-xlM7idt$3o`q;%@+%0G2(wT2M(#g{QP zXuEXQgwMzCdHSx@d8}KG=oz^w=D~o*D?`+l0A&-Y<~e#hkz1Ry%A?wxeW()UAs&|fd-28S5I?5W^aY925y2=6 zr7&%$vh9ecOL;Df+wpa$!>6Br;8_gp>DQy#?XOq0S&mQww|59x;adAHd-XEPVJJpS zH)bjXu8Qp0j?g(~G~zF@u>Z-NU}s|Z6Yuz6+gw_?Bq+rDlf=?#em3h~uu}%`(HuLr zlHw*U#Q2x5h~9Fp$L3w9j^qncCpBN96jenVo(wS#5%zgtgchCSbgk zJ{yyO{E`nCOzJZ$@Jc_u8WICb{OeuYk(27E zdL?E(7cw%ZI@!O28l6PkB(DzE1%<3QJCseXhV#XcI;rNY8k)0}edto!{OzKyz5_^z zqd_#j_alC>??8hAljnIqD!clB{`vUth*J2X#IoI+9`~x(Tu3mdZiPvG{FFe}#A@(j zpv$VJAy-3yF=66f4b$^ke+ARhMSQo@a1s6rO_3WcMHW5LIM0gGT}jDfO&N9DQ6l*}mk;H$mSJ`uBGFciN@`%tkffR^6uDksA8~Ls49UMCpBqP3ZUefGtqXdIgEzV_A)RE6Dxm;Fr=61P%ZK;KR~ny6v?8+_^9m$DS@TGd| z2rhM{w9%b~St^7sZv{P378>k8UoW24+50XPGx|1;YirF{RBSss@sLX~6lP-f?{W6| zITYo_`XW{j!P&ix+b?1}bSrq8D%v!8&|zA1Yj{*7cf^xEabW~ zEFr?7Q)2DcfAoiYj;aWq)SZOPk9p6$&T7-pt7pZs=}&;Yyx&@iPSy-7P2L@1oeNOQ z;9T)n0FE_&sh)yMqh6)_DtJcQIkkrIS()?q9xMxtt8wi15mT+oCm;7r_h{)4j#6BI zf%2Kyqn?oJD^K&LS1t5tGPhQkZgNPUQx~mt6lC6wZghhrCT*R?UdakaH}1~dZ^4t> zXW4ayG5fbF$U3|3oLh(|W3Q@pJw3?oY%*o&MAq?%C%X}doD9p}v_f!Eji>#=nG~=m zc}_elP+C)D4Bgnw1a67Hi`y@`XmQ_B?^Xm;rYAJ8bt{d`QsK8zcruxJA5tCQyjR@e*g#cY)sbxMbN z3q|Xl>_n*espu9mR@SZaozWTXobvsHE%HJM*j13>tfJd{9V4OhwPiK7SBrom7d>1D z+6TI;{J^Z6GY;oz+P8-8`F;tt6_OgZQ#@JfOty3x7AgaYXn#t&VQ^!Zu(P zU$H8y%8sufqq)~zB1?tqnX|La2r02*K5y0@m^CrmO3z}7u|dp(-KB^>1NTGgg1o1b z=!Fw)ylu|$u?NlSaF7!-sSUH_bRzQBa6CSl$e#L>8^K1xKw1MEUPLg!M zPI2dag#O&hx-#7BC%RZZ0y!yYJQsd_rlstdq3h0O1YbCxsZ7a|H-vRD+C(BEZBR=G ziTX;=uV=T-J{X@d$jKP#k!*OgMJNhw$b2N+SE)g`T735>W$D1&g>0`W#`?v>|MC;o zE`}|A1?K0kV7v4Gni_XN*w7l@Tq}6+%WiAv-Y{_P#*`K|V~78>#P{hJ!<>ds{5-3l z293G8E1BOLcn?}EEKDieV%{8d>V0Yjo5NJjTmMJjTa&E#OtdN0 zQ{G=4Qv{ak_Ma{~Nf?%|6o&4R!}qr)QI0E<`|V}?DDPdqhG3$I&feGWR-i$OC_lUY z#m9v;sR%|YVs|@q^ZOgj`(+q%_`8_)%G>6$y|P*X9gP+%e$@_P*MHoL7Wqft3)uxe zDIXOL;zR8VOezF45>`6fVl4T~rAzD@oR-qp#+z9BmcMX)`inO=Xl=o_hmT+9$A=2t z3iX{?ul=R(ngrAFtavBcx2xx!k1(`DW7KT#_gSjsQ9)2m-Q ze`dM*FUgdEl%C}Y0@d#~-OzP=ovX@arrJ#NGWu+Oid}lG&JIaupKzbrv#9L;NB55s z)wR^-(z<1}vr9PVfy&{f@`g?UH%i4uX~2H-ce9)c#L6(tU&MW+`s=R`?^1o{UV-XT zF7&`$EG(ouv_GOtlDA^o*P{DSm!4UI%Cc!58zrX9!17G1wVtySD zFw=$MpS3o|f)=zQ&tgB@;dDXp*07wy%EV-%&Pq{s{7ccEB)hq9xWN_C6$G-Y-zfVVd)vvaF zFUar`_Rman?9f(mNy|ZPr8ToB8@)fqGzP6+2$#qX^qFv`=qI}q5^FjFQ(&mp?`h82 zX~>{Qh)R)4fwLgp9-d&rZu>qs>M2%V`NUy5Xs|34>4_qk=n81g_2QcLXC!p8TCu)&e0g-sp7v^8=SmYH^jIt#z-iKTIs_JnTac*=fVl=(pMTxfuB>O5ZDUxJ+rmLQ}v&Q#7t!Sy~Cru`h z_uApUBm&DutQ|^XOHt8hoz>(rS%9We9rp+tTac#BKk}#{wyhhPT0LGBt6*Jn7TQc=8!orOqk!tNuIUP*8^x8pl;-W+ja^yRjM@)Ukt8 z?E5C_k49sgBj?4<6UN+k#`*V$hT?ye?YC(hv9d*2Om7ojYw1178q>_X=}&T=`L;;v zQAMvR;D5>WC26PMbWO6P+;m*u0KgMY#!o^x;sAML04kz0Z72f z!n8ZejKOODd&_%ls(q?zR%^BuJ~L+_PHg{6AtVk{;7h)BU_ky7nt%SW*S+4l-d)t- zw1!@g4ga~RzPyzWXZOb##2loU`>67JaXKb$8iU-sy<)8;x4S3S=v?4%d3$uOA#}5S z*+WEy+U(LPO=(ZTG84qa3)HgrW|t=>Rbzq!s+kH`=ruP}7#$GnLkhdQQ zczlgJZai71R&dgr6Du9+CCG=FT3U`-lYv7pAIY?rp6g+&-=7E0T&x3 z$r%IQWW0$1y2Uiq-&q1+96lMJJcK>`EAOubHaxs+8l*J@<^ zV=ps^`W@rW^Yj)&8`n2RUFcvW4Ow*ziY8HYU4I*@9|2~LH^U&F(ThXCDl?l0~N_I6RtZZ=TxL!5DE9MsE7=_ zmQ`T_tca}FkII<7&ys|_ucjeR6LiO@R?Y03`A3_Krk&9WUH^5~G2YgjYny&BsjOWA z%|P!TUkmvO0p=~wF?*n$(R-|6X!dZnf)y0k7uqBaZKvZ}MO8k!^YD5cNUrJA3>zCEP8 z6@)b#9&t_Q+Tz^n6Y96_r?$UjvHPrMYm^Djg(Yo@?Yz(C2x7&POy6~m100=TT29?*N9 zBh@Yz%Q&G&nZ@X`ETN7^q21F*v0Nk>XLj^q-NR_tVg>O^Z^Bv+eP@B7N8ZQ=? zQ6)2r&z^yk)z}X-=~|d}^yCA$&Xt+7mMmC`M+J$PlM~>PBG$dNvt+=2gBQzP!`bK? z>)8I+R(U8&dicKnj)yC(--0Wv{6kTV0U1<`YurA+Ev`RBS?xGweLhf=sJ(`kOj%p@a_kI`Gu~S#}+md=Tsu#49kYEp6UB88l~yg!OH%9+3>+k{ap-hasZ`6Sk2naJrHWxF?%=0GjH7oKpI@1RX356Y;<>gu(PcLM0Y2ck;Oqx>uf$8_bx!9m?IdbTT-?=# zhCG`kX)IRGxy8uNhCoQ!gu1bSf{Gz{uOnAh!Uz&xQr+U3B9#L|n*Ci%Juu^zrwzeb*M&9x=Jk$%< z^M(Pb$)y6o>QOL9Il(ry-^9*zo+&hHlF7XtSn2ZF;oE?tiN_c9fn*conkdF|-C2HAK!QH@A(mN{RtKAZ6{_V)Z5Zbba5zjya)KQR_gqgIl$I!5=UZLJ@Ed zX3sG+({Cz0rnxrdFgJ-iCYM|8Vu>c33dYWb@B$!ZuQ^dnEt4iZg#V%IReb1`aWe`c zRXFRv5#xG4nbDqCc>Cs>`CUYpIg4pi$~hx8MnSU6K9gyAQ9oCJctqj_`kYIa)<(GX z-Ft=ZdfDU=^{28un1MB4jZn|pijXFk-C3T-waD`7vE}Ky!maZ*B(sO{Zg>CN(YQtL zS-Ykb*WzDPFIi%DhYY5J=kn#y%%8$8|Q7YRuysek;KJHSOPI$hOU zeOzCC2d!YtmDPTYuy{psN3zhSR_h3$S7CgPG*P;o+YR#W2PF)^f0V}6 z(%5dKX!uLI-|zwaj-Gga;z*+zZDu~*rKivZJ}H<=L}Dt25IL=i)U{GpmW#B%h@Y@- zip-SRa=r1O1**Rbp|s7I`}m=>W#{p?i&I;3JGOSC6!o{7LP}bPmEZK~8eb^HtCOi? zcG*WS4xE>Bv*O(Gft%?>}|64^*Dd@0kjDENyC{7<^kN!=98%ZrDT?;dFuF4pr#n5Dus3~*f@B1y() zI=e=yf;}JQge>8v-hb!4L84V{sUmW?*GZ;23ahId*gJoTTvHP1!OeS`CHvpvjeK#b zmX$Y{LvbJ?j@6kbw{%R?hGUJdD;>Jz_9_6*x!T`BA{Av?&7w3MP18}{lKEKI8pWR2 zoME6BoL*x=dC1zfiCexT_OvW{>O=CR^<&A@RFL%93e4EpQHlawFxMRJVIk6GEoKYj zeeZck<4N~z>~yXsD^}eG+Evr`kQ(xqeBAhd%rX7Lyg{_V+PO(Z3|_+E3QWtYW--N) z3%2;W8toh6YSObd?%VM|iWBIGfS@rKY1Ysy*l66D@j1y}=gE&vfJt<8OMjjV8`o6E z-}X1Ymdum%ONSuo)KjIPG) zka9>=h3A|?Sa!9x^SD#h*&g1jb;oigJeK97i;nb?+#?I#N@sl=K;)y@|0MQ5PM`R2 zuqx9q1JXrVroWqbNks4he-hIwAIC;qV~ki7d#MTWbO+ZRgRM>P&iHGQhr1jG|SFqi`GxiTifR&CEoB zgOs%~RG0C&_|@12>efRM)z#VTZ2_!0#p^i$Hg!M4Gdd#?bK<0t?0TS`3HSQL&(GI1 z`+vTyWDB~w)Gf#!GHcO7kJog0tzVB8d1?t1T1wo6hX;Vu$EBWiU->Z9ksUK_s)@Ke zc@T(y!Nj}>T4AEuRVwbM2CtR*|7jyaE0rl0=_ksY6N0mkra5Hyvob!YaVQ!tn;&u&6UpR1pxOq2Pr$%@D9Z{zMmfNbZuXYqf!7UoAg!w z(Z1)IO5>aRplDgzBL(X=h5hNbftx%%2$v=6tL3${DbH)Jaw0lGY|3@@&dV(ovaD@T z_gifi2=TKMj&)_n9P)^|YRomxT*c-eoJ+it`a5V`8~IPQs%dK4;4FOGq){#d3&rkA zx9iok%z$5wO8eiN!l~vp{0b-txm@FdiEa<9T_zzx#5^cgUYNAzLh|iM~ycddtIu#rc4EHTW!n zX6m#peS-_;A);Os>yucM*o6H7RFirLfN3D6U~fdAloG*2^_=HGjfR3IciT3eW)>DE zAvfl8(OapgVJqE~?Ogy2uk@#VIHqrddS7&Izy?^nfRK8oh;CtPP)4QpX32KYfi{pm zfV*eRPCBYup>*+S8wi zNVC+H`-*!N?IM$^c1Rwtx^Ex+ooYSDw+4HRk0w_y8K}iPrx~ln0UOmYY%oMRpG9+z z<6h^aE3mN_;jWfTrf|I#AJB~6*==M1@+Wlsxjg&Pir;G$h%>Td>DDfQCTk3L^3RT2aNM(T#`1f`LbgoWRc zLC5p!XUzPA#d2){Cr+LP`8ZX8t*I;Y)=x)?@Fk*pm@8MhJFWYS6;Nf>V zPw&)BEQ1xd_h1^@VJ zuigA+<>S^gl(Z$oYUiBPBfWRACOs_jhn<^y89ryDlsve`DXW9}0J<-pi!4c`E>%7^ zPzr0@&?(Ir4OlyybaUmR)_`6DfZ_|5hin4#`Y! zV;c;=|AxYmC+umII_KT3!uEoMLiP00{I!NFMU(Msr|PHM33SvUuKQ}>TD&APRt(oX zdBnvVyQ5URzxD-)y(zSO`<~L8-#KLJN|Tzt=8^}3nCzV8>4eYIB~=Ed21zml z`qWo6fg^ER8=KZ)X}ft_BJu=W5gL&*Sp74nV}OV7Q0gDmnM3soqfM_3)1KJy<(|Y^ zYRDV&rplk{Q5`6}v*u?YnXg?;J~0rcWZIh~?hhNvp%1SyGb7P4$9x)P3H|*8UzgVE zs5yIVdq`P+pKE=6avHcfOg~UIJ<(Hq0PifQ8$i<#f@v;)RuWp~wLGaj`%DXd8m$M9 zuN|}?^1rD9~kO~>_OZQ_U7R+p% zDaP!)MNynVnTeE2tC}_eUrz}pk4JlAxc%~CoyRLulON^m^gBn4Hf$ls&rx7mR`}GM z1>XUNs{?5}%TiNWV7G>}H)<%DLnCiK>+q>dnH1nH zMC%2T8Wlj=O^Bh5ap|GJmNZCn4@Jy#Y){t^0WKZkslJEi_Uqq$nHX}FE=ej`N@4HY z+M82cUeo;K#nj3MF)amK(;)l*?g?}zu&6YrK3VLSt*s@4eQ7vdUdP*b%3JO- zpgiDIgAdFR^RE}-GkOZdg~|a|w(>Q|jKp0G@q`Q{b92di@O zn64Z+%!Xg@#4Fag_h3H+jg-wpRQWD#X_EDCPZ~pX)RIea8+huJm#Qm~_!T9%2 z?$!CcIb>z8wb?tecqP5i0P_cdW$6Ydr}?K5EN$5j-ha(oJcSsmEoBC^_3X@C9j=^3 z?hT&bc7#Y-9&D4Z1{r-r_EX8Y4dwCb*#fONiGU}XDRE9JFK#AuRW=aBUU}|+6N#C= zuuz=*Lb6BBg>7ZEmrrNhPGM9%Xo+~>_N@T%buU?;G&;kZT6xj6W`L2mINtg*fRT|n1qH+{NkCkRHM#M>%3 zPL|XiFEA` z$&w)?TlAy4=#BQ0!q%OR16<{ple#Qv%(cFezbMB!h0dwzmoD*1$$yY+-2=phzPRwF zgehbAN0B#k&MzB(M1iUoe>kx~P&Fz(BhpAG&Q!MAZU!qmDz2nemF*Lrno;TT1V(Ao z-fotuozS+OaPjmTjSXLb77dKF;%^70pUzcl^lDh#ctF6kc1;dmqLx>4b)ixjhMx&C zKXc1{@+zZ>;=#}k5>}I!Q0X=E^@U9j4p^3|+YMv#(P_Wq<&r3AgOEIN4E|Nxrng=kbQWMZ>Qyhh!2`d?x1~isW5Bux2bg&JXOrx5`zzD-Zmp*0`{qXmC+uideUIxwoOap6m-;B9*|Ey`B&So zHA(c`ogkRy|J?5SqF zKFSGPI{@nq*cy5FSO~>Q{g9(?!R3JQ;E0pQc+ z>z!vB13Jbg8Ot)mzi!RQ?SA{dA~LD0vNN;gRUI3;FEV-N%zkwEzRwTm^N-{vtM)4D zYSY5!Uhu^cN9E*nrhSP&MR?s=06UgFOUotmx~q{f)06*;yf^<#I*tB@X|E}>WhOJX zY10au*S?nsg=?D%aewMa^8u4HX3{a|0D~Lq(x7LVHLjB*sN?iw>O z^GJwM`1$Qv-jSWap8hc`v+y~YeLQ_~l92;%vRoWV8RwormkOs3)9677)Jv?AV40te z*xY;EE1c<-V!iyqq0Q?HkYi?Umr?!Dq%f#0&e6WKl)3u~eHYR!sK< z1x$e-nuk3yHz%6Gm)yKYj+!yIS}D$qTbCh!bbl;&E7$f6`$XP+NkLI*=7vu~)hm>P z%tt38y}k_XLH;PBx^41E_N(U%!qrvc!5sLeS)$_8t*+_5%~AZXjKj9p^Wgc(Rpx3H zCj;s}nv2o=_agCcetes#MJCt7))s4;?Rq}t8d&zBD-`D!C4DSvCc|T-!yjkp`6o|G z{+6g;8s>u^@wHW7K6Yj59UEGZ9d?E{c6#8U6QYGxs<8W0<~F9{Ri8#0ak_Gzd(ls8 zO$1P(S01wGEj!FRiLM#!160_ZTmjhU8tg{0usv%_@Y$(&k=#A4AJC$C|>I ztSYP!fw`vYQYvD6-_%P*EIV46m7=F;F0S1Z2> z9XM9(bKl)c=HY<8$vjT8op|KUZ(u)p-R9+VIX6YF59559dz832s~-Didkf+B20%Ej zp^d*e;T#t0Ivlx2@s9I57TqhnBajX=T+FDX8G*G80D_MMZ850d2cfOE-H!W5YUkUaqZJkmgfb$$K8`M&~82AElDD3_jsn&^P)!T}z( z$_?gw3x982IZEA()v`U2RO(}JenWw=jg-ZSm(SMMN00=P5X*4j!YXe;IFQg2D6ZUZ z=7yD*6sMM8{dsWre?S^vKdw)1t1wqQW zz!n&Kq$XZkS{$mcgN81R2DtN6&xc*pahZC0UIiXRePWVX z@+CL!M%C9>s}j(*vl~@3<5gdQSTcm1ZIbdTCD!v_G4W_8zu4DgAL4QMP>rsza=kj-nSsRi7~GuERm$*UR^VJN}U`J^0t`kDLaLJzL%4|I!-9<%Au|nm4^Tee-^a z$0^+CcqH1r`!?XXmUuJ3^ZMWaVu|iXd#2PQlK=2!8vT-yHMqE$PU z2gT5)){$^xuum7K=&5B*oDC`b#)~?_j)@Wth@0Dg>s)@>1tT)Vu7i!wf=w?T`gp82 zd|iTL?=KBJyZa+wYeq~Wdz&%}cMA}3qO`Rs*ehCDQu*Es1m0<_SbT?I7@QJDI>|oY zoEdXd=fa^8vP;c^gW(MO|7A+Xz00vOl*@Vi4*#&*Pr`nKQr%|~E=@K7)FfIgVfky@ z%ZTpJwn(Lj#Mw$%g5sTT7SbT!~gRUe*yUYARq^6 zKv;0*bfQ&FF|CurpwbQcjUfXFuI(QU^K82Roj4JuXXBuV7VJ;o+ex7SI)B zzV7k)#gp;?wAD%Od-A^+>-T@IFVL9k?Tfhae2})+=kR1q1auG_!f6Uu0KWe&%ISuK zTl07*CJHTF%wg@y4Ig4%8f_gYZ~-YU*b=`jd~0%}yHCuE1DtlI?ETO8Z?!YNI=nKv zB*DhRt_=wOtwS6~XTjcY_oex(-=uoRwsP)WfN2Acd97qrHuEt+3#u)bmq4Yq!TZk(J$`o(hpom*u28avCewYe}8PDCkVtnuOXEfA2){z%^<0;*1r?Tef zYwKugxTczy;Y)iD=h+vLerjJBt^pg9OXvA*Ee;nZzfha;lpQ4P<>n8)fTKV#G{)$o9p>m-jCxEZ65>)H(fT z167n0%a8v2OfK-5+f()PReh1Wa$~<@H>ZrvI}M|A-^b)WvhEpsM7^O=f{Z@4F1;_@+SW@G{Rw5Y|e? z&=AWYn+&^sGNH$sQo80BC91hotn`Xo_jM;{LT#3wVQ4yj9iWU)S3N@m|6#Ah9|7(c z*7DKNN6na%_vT7f+?i15+JSH8XnEwiHf&T#F*XMpPNlVH@&Jf)?bj&?03G!1^O)6` zS*{8;AQU{KM$1oAqmW3JX&r{WGO66VQG0H{zO~y2;7q!e<1U6FhBKBI(y?Z(`~-1y|Pm={TEjA%+EM^4?Ok4dyQOCwWj(hhLK0Wd$QOacJs!(6oy zougthC*Q?mY{{unML>i)g9XWbw4GL&C;&HJ_riyjkqNU1*jP}kFq-{zSj&8K1j8Hm zO?p(-r5cx`viTC&E!K+&gslvR-D%}CaV4CU&KNwA6#DJck9tiVdy9NLdxmt4^Pq6^ zz0B!sAOaa?fC%1hP@!J!?oi5g-r|eAgj=D~HOF=_r4=ka>xH@Iyw2tmbT9M8aY++= z@r5}vEOh4N2ESspd(MM0bs|E>KX zwtFn2PJT6S9sZBYjla^hSKeJNu<4A<@v4P4Y|sK{tATj@GH1|NFkew!8NB@>8DQPG zV1n~7`M^yD5#(C^?6aWcnNJyJ2jjd_%vp=EtU+;JxgxqXvM}^p1|Gbo=Yo%i+PyVB zA8rF+v$XdOODnA>pEloUb6WQp$!m}dAvaqDwmk1F1&ye^1C4a$a2Exug*^ z63NDYZn%GIb+;wDv)>?%4D{aCVXS47pCzKLcAQ}G{{q~5(*5#L zv-ijR7+v2RIQe>FQVh@?*z^+{(NUah#yb_2En|ht?fyR;KCVnyCNFB^R~si4U5Q9} zfzVWd`EX&UiUpA8IXeFq^>7v-&s&)4E0%XIEG!s~Ik&wo-|XWKf%%vCxRexT1iaky zC7Jb7DKU%SVM{ptI|-(S5A{QhwLp4bEH*SEil`*X$fX5;dui3yZ9we#;K zrg}an*SaYNPI~rit9j7qVoNd-Eh-&;0bS~id0zb*gJQ&Zc*b-@u0=^&{L<{Zel&8P zReG~zVkxP6uXiL9;WutFc!XR^d85NY3mHPuIfNy<->JLqLP|rp5mPC}st`&YC*{`! z4wZ^Fz2>AOR*!3%XqzK3y$I8#D=u+p83LlFuzOZ4KB`Lp-3lxk6 zHL%@;CeKBdGYh61PD)WoR>)Ha7a^(tR>`_S3udvbsdBpH#-Q=Izu(2q$lR#jCXx}o z&^Rv0N~3OI`@wbCsQ0-)c1o9NPuSNHs&zKUk=%KMPP#2S@QTJJQ6F~p1=P;((`1v4;ss3< zgbN?J!_9qE1$X8Y>7?^tL|miS7nSC-+74KG2a#bleplhfv6+1GJ%(}H*@@iA!&qmm zQ<06EuTDb7gS3toBsylmNk2ecr1{#~&$f_+<}@-Da>87iGe_=M_Rnaqt4A62m8Ws{ zSV?3xxQa%SmIESUFSr>4H5yem7C}20z%2Q2(QIjBD5+iMm%|RFEq>Bimsg#GcUbx{ zUCQC8`ceJ{o}$!JhcSL>|0-^Oi}%`EN5&)*$lV9>1;~BZ44q>Av((ei zleutHvEX~80g;0ewt9g3+qkSn36cdBZ+3j-yE{31cj}&^W7iL@5*WUAG+Jp|Vcop`^_;OAM;oTQ+>mZ z6dSGbFG!ac>N;7gja0z;ME3|=&aV1a@JQWXkrU%9M&}%Vr@?o;o7&32+Dw&{Gxk34 zhm8pupBx`z-~nM>c|F1&c^8x?Nd5W_cDi>78Oz#{eMc{ov5y~c*x{gF;zsG}E+0Fn zy0C8`OKTaZdZ9W4@xIKBO&)%l^}ATG=kxp~|1Bedj{X7jZBxp(9G+iYYn*?O_MFwEmU@_og*vT9n+r#u%LKPN4(vW|rxG4(N~#i-0I2DkCTW)igJkZ%LO za#CTnw?alG=?@K*dj;H#u>^MUClCiRA6Me;s8W7=m;<(^6VxYh@xgM7% z5lKsJZe=EmR;T-1uLP#)M!`B&yfUPRU6!sr#6T_>h`6l-P<}oR^7y-svikW3xpEvW zqdm$@&0j!i1p03>bG+kDp3Z;D1$wujn#ZR_hrtdqqt+@&LLkF4E66nN60LSO)rpow z0$Hk+Ukow1gV=!Vd;QWl?$Tv?ZEnAne}P2DUW#HQ7aU9Zc#JartK293X~dYx4GL+J zfT)dPpZgoOwnysa6!qOXS_0EF41@fBT(o*b%t>}}`ZF3C4!LIRWkC|Y>C;~kCib8^ zG6bR@#Y%PxpA*nX)h2Pk4^>bk_8Prpu8G|oW_Mgm zvNC+I{NTllxP{%=;onxLTydqV6@*sbY-dea_bt3}CW7PB#%hYEb9$Ut_v8$=I0IH_ z{tnRhsa6myv(j+=?kICo4#_RrFOw=wHCP%>!BgG3rPE)9XM^TeuDrV<>`~R8F7JKb zhqSot!>Kzb_HgF*GOZ_9r&-nd|H^R@pP|wc(X`Uo(RaoG!Z}k!*nhwM^>P0@#P8|o zx^ao)Zt81Y)Q6OfOAB`08;p|kWPA3ju}W4>hG-dGdN`~;C4B+ACXVq~c>30YW|7g)}XY)PTMwZmX%IKV;2YEEqmj}jU^YW_5j|6t)-`0Cv zaZrl)u9$;uu;e9RIN{|VeI&|w(Ny?#z9i<78wf(m7mjLlQk^K#5Ymq1fxyOvUpwU? zynf<+VWYmc_9O4KfrDb|q1`hCpRnD@GtnNtP@-6r&~0nLARn2;0uwKFS00iuvAl7i z=pAOfMa6k#%(lP`O?W!9E>l^2E={X6|H*2iD4KKocw5k5=}i20%M}Y;=KY}*T^DJ$ zMR8H*!1mwtg8RQ%8GRQtXvV*afhy5g^d_$SD8Ubyt(qhh_iJqi$Hd;swmZ%!tk{^- zy{h4(2fEHvyEuqyMx}+nXc7&2mEm!8 zR?5?1E0&Y0{c#o8o$WRhi&sJBKL*5ULpy!KgB_i1=2Iol| zY!=t8Gk?rzFn(>1#qK&$y-vu=cdR~*{)ja_nioo~ul)F<_t%0uxg`RtAFG`$B>|ix z3LA{gz_!T@wRf`HF=Zf2gPstG;Dw|2b-$SUitXWJhpp8f>xX+69c+I~wY$`g_=}LX z)(c$X!^n!UH<;;&3PNoUn3zSoudU({D&3(;g}KK?(dAnBDIJ2pROeODf;l)ke;&h4 zd{&fLXYK0FN-Aj!c6?N(`@BFG+5ikr4PB+2>~h4sFWl`$;bam|6>8d{!1!{8K1-f_RYY!xG@U;w-) z)DS+Rul34W?+r8HUTD9$oG~$&b#L3J68v&tL49;qq`8RC^#K%v^`wK=Z0Q{aEbG{+ z$;uIXZvMtbN+>FIuTZVOms(G1Nawyd_USV(v55adG|6oM`?{B7k}J-w?|XzV^W$*D z@xetv= zV_((*dty{#Ba+=^Vvsi2YA5oZItb;Y5V}>%Du$96v+Vh#Ne@$uI@TW za@nrl3Xe0P#~`t|K#W<#gUis-puKTHId>{%O9lsphkVL-l{L7ZFI9u%qj?V*c5=me z#U%gTim->tE%O=wtYdVmzi7uTE36RiL$?mQ|NHINk7ZC_$nrw)8 z*eQ@5AT~AP9Ue0A8zN1&-eJiAmVAth21dt@bDfv-hEUq|j65^lQ}wjiwO7AG0w)x~ zWnTW{>1}66uEMxC^0|!s*rdO@6BRcN?=GjDho?GRT&H2}%=11=0L-xX?~d1I zklx?V?X?Emgk0rXJu^FqbUuC}*IccjI)#1ixW-jT$g6HiN9m~96hOKC&&7~lHZQar z5{(|qGNjsh7}q}zsef!eSU0=IBU(#s3RQF2CL+_}X`@jq!PlDh_``S9L8$Y(9?kKZ zz{@O_vk|p&6W1h*spa#i5@+r#T^~EPr4*p!4jJ7C{v#o&I9E$2XKkK+%EwB|be7yF z?`H-f*~jNB1>Go;k6cJ`~2JhoghCDngjh$Zel?%P4I< ziTq>Sh2^*Cs0?o{yachnBN%GwdQh=ZU>@ z#*(?EPL4iI7+9)i>I(wbav_c>V-{N>Lo*#-DN zOQVIllvldz>PK}U<{*?fIz;{?)ZXa=AfDF_xB5cEXh$pT)z2bQpOWE zTfY@X$^IA!E|0yvefcG=TWm3|fX=QMJ0_PDtyl<#TitS7)5GQuHrUNP&-X$cH^4MP zqQ2}GR+1=Zz5-3EvA_Kr?MI7w`+Ekw176OuGpv*_p90tc%;OM2QfF4v>>38g$;#W| zwejw|jM7bqt2V>_Z zS$38rRB1MLRhOG}X02Grnt53Xp!oeFSdLHM!he;l8ARQ>Ek1<}*&J7uXBFWN*&kj^iW4MFygAE#4Z?iGY}179A_{SJJ-=A$`LiEGQFAx_X|HEs5uQUShV z!ukO2aEPZU55p~1-?3fSca&d|zZ3_$0fMyae6HF9%YF+7o~zw(m;nqWYoLsnOWV=_582;l^eeQ?be^8?KV(R z>xXMB*b`9n^m2mq&c1qgINBntm#`u%Kg$xhNAa=_)XdbL1ME7FGy}4x1i>p00KN}Vir`??SGJW>;6QaX%OIX5gmc|x4+rU+m zvNySN^WV1FVMIF}cV)BdAJ}^VZdb!I>Pst8dyj@^sn_K+@J2%PCK&f&`O@Z6(sW|R zn6_Q!xbfzx^xhMz|4ez{XjD&`i(&w3Y;9k!`-FEYs=7dg7;VcHKG+2lmaqC`!VM7E z73`wdX#WXAa=0(=ZrO0rjab0i2Rz~>Rs@K+-is1U$nlywNblcKVxaB8cEQPkQ>Y(n z2*0}t0UQOU8w2jKV!^TvJ$$%{TY>`=*D7i0faZ!fe%b%KjrrCwBRu@zOqb@*yhk=Z zP9nkDuR}iJ>7eLTg*yg8^Z-6E{e5hw9gQj|uj_8h#XrS>#N?F4fQ#zCIzcq6N*Zs+Ws+^$*S9U^d?4{wfd37`p=2OSFhZOE*kcK{TGPY* zd3{ImA{=cP*Dw{k?EL;tE^52HoF7kU#4eASOoZz9-)aWb7_-7`$q?G1zpVS@D)x*TKw7p z99vYa0uP9!jK5a5Q1%T%n{4Ixpum=64=)GRix7|h+&Dp-8r5z_O})hqfs+*}$v|@T z$OgCr%BwNOhe`pOU3O%9aMOA4Q)XQwFf~?f!~{Bgr{hOYau55_nkP5;4}|G%{ecS`_-DQ8$4k3365VD=v&Mj^ zT4p`}Rq)+7tV8~YuBwCMq-jUL#q=-6HVjHi+SXCuSVP3T2Hz=#CMEz1eP8&@rJ@g* z*vjTjfCxOzUUOIPwCYs4&(Y+H%KTr3B0&H9&Q}=x-gS`)VT#3(>kG^mmn(bGO}(UJ z2f63KZomMQF1g_*)pMJp3HrnJpIZ*NvlNaIdnm0GzduA7)BG~Q7*%KT{-4$Bb2b^6 zEN2FLW^$0Pnig5UAR-RPTmjJdlTvNfm6Qwe!EvV{zZDBZ97>hftk!8G47cw8wQj1w z`c6*zc$j&fx0~AbYIRwf_gtok^V7Tu+N77dH~c8~!-30CZ*ce zFT9X8khWfn#jU143t&edz>qpF=lrM+QFv@VoaQzNbd!JtW2DiaO@s>@_}2bP@D2@fcw9zehnbIY3E+MSFZ&{Q=bk$l zl5mn$5_t0m%k4$y`~2TdGVXY21j4|_rcK6<3m1ac7sx66cN#lHcwD-7ty%iVDz`r@ zLZv~Q3)-yLwjC<<=4Zmz^n`1+)52-k$DU`^G;f~*jVTe{gU;+fqoH<}p>F|m&jhDj z9b}||HzfeWgxjS_!1P}&E5-KKRFP{YPvr>r&3t(ka;Z18yv&KN;}!4(MA$@Y97*xl zs<2$`0Cl3i^znnj$dx~@3lO-(@m*fZUUr0)JU3M04g!lCOj7gI^3K-frqu)M3REvg z8U-GvA*x=-u<|0A7K@g!yl;O`AFYIcZzedpV)wQhmWnE$1r(Uk(BB?haN_X*@r3}B z#){~horEa##sZCLtpUXITkVoV@W3Pb2Rz*#P6~V-Q1+V3yRQ0Ey3^AOFU}o4 ztEv)CqaGTria)-Cp*ws5F0Fd@rN*|Ebn|dq&LzIW%tu{voWNJkz&%(1n~t6(If}yV zcZ!YfO{{cTejA1x&X4FStf$6QJyvT&bo~w+Gb>24;&N-8%b!@&t9OHf;+hK>5*9yh?4$f#6z1QBN84?Dg;`!-fm_`2uhT6yeDffg;kNQs3xVcN} zAe@=u(5?}CpOwI65D-GOst^rb(WF%#jJkOCnppdKQ-!Q!z+*!Jw~f?zX%LXr+x4sH zjv8Vg&bpEfW@m*We5$IiB8p873N8Pj;>-PJ^A5$4W(iQknYN|exwmPFVw218d!V9Y z5T%X5g!Kdjjf>`$y%UD(uq_mGn}G^zY*Y(kXG z6icjWvev~q@Tl=Fni=8gAGMp=$ZgjK9t0U3r8v0dwBBHdw`hCoJo3&MI3}S2!J%m5 z=a$&Ax?96sR}hi8d|^n(Ru7qL!mCL=<;GQmfY_VRp}SJFGeI+YFZg}@Xu(<3RTAgV zb-Mk##3{Aq@o$aqRD-AI_Iel4$4}B%EFf8t0)h4hznEKXem<{W2|TldtpeCt?-DHy z7!7GJFNa*rWS5tP0?=aa?#Aqu8A%&$!nS>S$&t8FyGcW_-grOR%E`Z8quS7)M1uMt z652`PJTIW9k6<4|HHv-fg^UfmR+8&Rd_#azq_O)!m|=kl{v z{YX z^d?h3Jl%-5^t`^%+i6qEf0C(@3Pk0WyJGm*+it=o)G_>dsm>l^PY&g}Q6SgE6N4Fi zlS^!hDLcl{2k)YK--k?MfL}G~d2Mif=)^#(e{Lq%D9%eEY<*WeeY4&s zf}8W0ZL%C9nIC=bW_z_+z>n8%B~Tntdr#sFi>Ky!K&5Ak$n3&c=El*5<5WcTlob%( z^PAq*Ib`H`J=YvO%xF-e`s&|KwJ?5Nx&JIR61S=ruds{&nW+(m_1!w1Y94* zJ%{2mIGzdp=5ZQq3!mbt$PE;_OOV8}zuV>>q4I?rV+rJ)KJd1U>%|kMjal9)!(Ml9 zGH30kA7$S^4`~J`Yue$eSpWHfldBypmbzaxy-9Hd=i(huhGyV@dL+c@0xO0gC*|?Q zuh-$^ek9ytq8`C{C0KfY(kA3l1CB(!Y#IlW-O{vk&^_qi7!?@JUj1}S9iVC)_UT#C znbUnww*$}f<4gW-mc{N{ed8t;Q*|dul+??~cB#v8W)sB$ueNN_*OmgF|MZc9mnhMR&^lje^ zYg4J2&jy}^0b2!B^%~1kYN2=?I|p$~f{oydj>Z{xmS?;1E;fL2Up0Aby5uaTd-Uk6 z#~GtEiq@vmwLK+!drOP?p@N0W^x($Jw))IkNZW|3{hcT*!Qq;7-h_{`=d-yN5 zIn!?!ZU>}lrNMTeR#+F)PN;T0nvqRZqOGVq9xM3;bHNzQ#aig*B$IGv4bHC zz2Jaa2ynF+f@Lkl&NM#ArrQF%Si}_zJ7-?HlwHm5vv0)3?&4lI=HmMO99Kj_GHW5B zK-q^8WNGL%99bLP+fd=Qvdyu10Kn$Pw@b_Mj6#6;O=%4+{+1A16-C20R-_sHX7GZ$sZS1PdD~qZ-%75 zxEVS>NWY00oxj9?8M4$=wEK5TJ^^N+Z2yd$8t7lh6KYB!^higi^uX$(#GHjQ?Sjxf zhx9B;+43OEXIBnJ%D9z76y58Hi|=8h^(Ka0JF$+D91S8aQ4uHF0L-gGT-Xvb9gXp#2zI=IO{Rl!+yVSPYH@h>Y!4AEHEjXLgw@_C z;YR=NgVzl;7dg25MI=8P_ATSPdVMHdcPobkBhD<}eGf@oGWveK_=e;@`r{A>b$3@A zqP^jylg){8_@HPB9*gV=_E>wFJx@3LwIz#j@9%!ChAWI;esuqvLcL53}jz0J6z?5rG&b9qH*N436)B_v&jM!pP0Ru;=_7L3+rr+r*#+8FwQB z-=Js>q@}%dhxX*8?1Sa4yE@o=>Se&vLJ80nxZC^&_B;YPb~vOmzd`d^T+Jqn;(O}l z+gsI-(1!I(&?76q@yK{7$ZW&*Q0)`o;OZ<8&i`!dLCQ2!%tA@JtakQ0wb!UIo++T} z-dE!}Q&$)#JkK={b56Hjbzf^5*rzW?odq8~1Mv)Mi!h>ieWOOaIF%pt%?gKN%(&6K=n)%Q%lIxt7&1 zdEu;?t9`&G|Mi8%R~dgGO3#8a5+7_dYPxHa()Tpp=}2-@FZ zR=%D@`QRvP<5X~zl$?g;sYveAk&nhAHUY?oqUYXwxY=$j%c2THEvDRlct|hliW7T} zDaMv_vVQXWg@~kYwh_bKGOwsF6WCOKHXmyle3s9K4Nh%%-KS6Cgn`SCy}8t7b8hDq z^{HA)gYkp#pyQm0=)oB!`~-BD;{`SZmERJd_eh@rdRG zRoRN^p*|zmhui$gcXD{fz}cpRy0eNe7N_j0p6MIRIU(1-6^eIIqQ<^C0C~52g0}r| z1d7^j)}1U2tV??qZSx2? zhgzob-+Ks~-M;fL2xWu2EV_RcNRD+$a0bOC>;X`>Ne3{WGl-wOZ0F(&?pf5j6Zqu*pIs_#X z^yw=>V)%c5y<<{x-gh##I~00U{>Wj8E{SUQ!bi==>Z_xj!KREFQ4_D-(rfB*7a`3d9QXjo6)dG4?22|G%tPo70 z7ZMI9&=TF0uIqo!R`GDFd$tcBkJ<6B;*8vC1rSZ=qzkr|Hw(8&C1`Zqmgvj|X_a0# zNkO2~Dr9Z6ZryrStkyE_8Wg?0zya^S*wmDZ(mSo1CCPow(W-UTrA}5T@mM4&AYy7B zj)eqM01*N-_u=p=iE8#%Xu*=eD$^*vQ3w^?tNp2KvarPtbGK{`fk4Rh|02mJJbX2D z5&gWHHk)_h46Jy_p_?@S#NJoJM9}S(cGA|}3B1MG<=?k6U$Jnubu%_IvvF*TOoM|C z)qTHNr&yNMrgyXvMax%I%(3o&YpD)}&V3@{0>}|wT%@t8-64Y{%*4um{r`Ub<~!im zrHlG?tReu@6~Z0SI7R z*ScXIqwEsVX`}@|r);u7_@4H{>@Q_kIKA6Om6Zp^(qadzed+lCfaSe*B=f$4XMk0V z^0>xG_i^P}+;>IGp?^*7J>zQsT}73;kCFB?2C2EFh%x9&XVM>vof`CXh>zzGYDR`{9Uies82{NC{f zWn&Im^=MGSk}%NOWA{J)Sxsf41-vCU;=PD&VZK%4VwVF=9P=%)x-qD!QeJID`tdQ` zGF(XzY{zDU@2mJXSV&Yx&USBNQW zG48sA9#t_Kc!AYc75>=zN}fA;hz3O|H{Qt1WO9Mm^k~=e35kRJ2?BqYmEQ(#m44RB zxI(tC$)}gSrqZU&raOG@6HH#!I9Q|UTk@kvtiM=f#Xz}LMkOHlGWD#9@;RA&Qst3M z1!{O3nNfH7g6_p}+iBi!o0koT0Z6+qKU~hrNjaYw*%m?M(8-!Gt^G@5TS>Zelf%Qb zm{y*aF}j6EbwUVISj7$zuq05l_`@n8O+o2X-HT`)*Q;B|U%1gtra@^@vY7g(kAb|p z7HWmF*cm$)YVvH{AA`DPzh3dSm49Vj4-$$&{D?tzA@j^H?tJmmad{Ot>wvRYA6q)) zxMBfb(HP-y)3OLh=J{Np(z4oX!O*3UfsHaUKZMcA$MbL)|-CfDg^ki z)m%d4rj{#fsldbd*~;C4QmJ1*nEG?r;(vRNeB-=Y?Fbv8ru>da?D%g9hUINATjl)E z??Wj|y@(6)jTq~9!p5S6NU0K=hwAR-b3wA{K3X8e75wd%#|QQQ?FG%}aB*1F)H$bI z;AETGRClRqcr}f#l9f2U2+J8m)4odlpKTQ1)=)v(TwpqSCZ}4tR6+%}C03UHTs#!$_|(VBxqeC+#}=yFxQJ2R zT?mi;s$_K;0Y_pcm3yK|Tnv(JbXtU8Ak)ld1d3E<^{BUOZf`~`6kcrf;^==fbU{Cl zjF?Wli1`r>klWEAugm#xxO5=KbL!n4kc7AbHMl2RK!hYw321@Z9vW%Y*Yy5L~ z=<7?npT_>ZHPQG*LK1?_fyMY{_UTE6*vArp4(lAtcO|hAPVncK=3Bp?)oIF_JlcHO zGiots;v@Xi*J#6W$CZ;pFTrzw2@Wc&HZW2E)Xu7c&>ToeXXORHs=Knyh5DaXjB5Mx zGuL?qv%iuLuWDVgzGmb7gs_je++p3irn^_=SrLe! z?A-MFOObJ0g+a&?%6JlEZp1C6A(?_V7>sQ}Bot6JSe`_B4^%WA-UqEGjtGj?u;cjB zihHB2P}@l#p)Nsv6s_VZ0n~3oB@0PECw$)!%lFY+{LpI>xw;zg8@wk#+iWbfjo$_* z3FEbVHFTsCr&6~tmmX0gnhfj{?r2s6jzPWSS;ta##=x(3s_#qinJ8%VDL;l%>{e$) ztTT>Fsm4l^bXX^DEtb1^S+F8D2u){2DKN1zHPY}uK`;9Upy++hk9!!uU^TY=E`bU0 zbU<)!1hK`l)Ih^<)kp<<0AQ9LjjsCq5?2J0VS|X}LOA8z=7iNfkz)(g*2^TWh+S+` z7;O8m5Ob)b&j7Hs*Qa}bC-XQ(;dFP zdw~Qjc(&e`#y3!KH@xb5WNr^#kamg4Stz!#>NZE9yQBgPIxvEt7ukiptiB<6IXqV{ z`+;O`#_p4|QW4yj6(v2Kp;VaDy%_an>tipW8B_K_4==wK${vMbAp$J&nX6%Ix@#xrYH^0oh z7y<87GwXQc*Y{*BCLo4wU|Z{*`{R^u)J+?GK`jS`Vm4be-z%H>=ra~GtnP;-g$*`w z=25B|_c>Xkd^SfR1~3j}w^jo48p-4I0uZa=cupcT|7Sh{gs&&g z20-I!%gz*(v&GKoZr_$0i<_4J$D;vh=Y_bXLIZFxd(HyAH)eUsAhF;7)s+8#;I-|4 zz<&6W7g9@c`3iBJ>W=-co<4!{;c`Rk4>L@x- zlwJ*sx|yJ-n0zuUghqYksg%Z;Ec!VFcy?Yj7XRhU3Q(NlIp9B_R(vkfz7VYcQn0d4?3LuC^Q&O)`Tb%;k4(j!;G7L-UNz$+iEZ_>ks!2m zuZKu66cBRNoF~*(XVpS2~R;4)&`R(d3 zVLp?bdna#ok6k7(VE|e9%fQA*T$M=ptvFi*PrHQ%*TaI-5)DhzcDcz1UXR zART&CD*MK^&CZi`IMGrpW*3K-dr~ng^Fp?LUQ#~ids@o73t4$%bkm~nLHVadqZg>T zW|cRosgJhwi8sQn;4bAXh$#Y0G_?{*M(YQ6l8<6y)7Y%%uAwt9F_{xM~P3Yoxo*P*j4R0Q{heu}a%I?;&qCNyd4G0^qD7%f|Fk|F_2Ojp}Kis=SUR}gUqUz;iHjwB*UESm^Q zNi`f8=3$0pdK-lQfrm^d30Ok-GE`d1J`G@!=$=hCE#3tOk;LnW)fc3yYNy`6#laT9Dslj!q@dR2yUJ zD)>)@7c!m!IPPa8t*TnIl7r6Aq8OhqnMARf4aF5Hf^ffhV^x=(qJAKO7=$Chwk~g9ZPfEiP4gVU<7u z14Ct2;V}}RGE#OLFm8Y++Ud(9=={6FuZJ}(VXgq5edXfv6wL{qvd;h<9?_C+I}2eM za)L1`elqoJPu9kQMY?K&#aBpHZ-ag7HdV^tz@3x2*zVxuzr?_k4?+`^imeyWsWXj> zkkiADmy5_#{B54$(h&rdKckbQ$gb3849>I|gQFtabjZxNyd?%&q9-;o)_B&i6Sd&2 zM_)upXE$WX_Ic8F{$N*e>CmMCXx-X!E-$kZ?@k17+gXFc#3cN+z1HLh4C$klNntXj zax)0GdXZ7_72XL*ILrf5*_q{Bfu5=loxkiok(r^x>c&{Q4vczkOGdCG<4w>3j3jFO z7W^KB`OQIlK<-4Z`gj9^=5X|2l{dDGpc)Va#Bkx0>vgM`As4D; z6&YV+-$k3uB<_~)H~%BP=1N2j+{x;-aH#7}8U)scs)YiDAP_MTfbZ;O|9SRd8Y75| zdJVFC;IFwpat&#!V^n{|X}9;)QF%)b)FptZ1FF%ep6V8jbJVmm`1|Z-{30a!LioW) zC4a$d|I)G_G{&4`-EU5Q4X706$~sPAU+C7sdbc+nzF0=3NLfqbyFj~(Q8ubObz-=# zER9WAHv%*XDRh=K|M4RdbY*fttXOysAa~ZcpMKONNc$sa;k#~CQq#8gzRzn&zwdhx z$f^Ri`4*)tuop(J?8+jS-q%(SC zIg|=FoJue>Ft^R2+jJ$#{GxX~=k)Mw00RG-v%TpMJeUY~UrA*>jq$_x<6&F%2kIM7wWL3)z}>^9a{zeDMjBTp>-e; zMLA`Nl!z&(au{w#%E)2ZmQ#tl521|796C6kPhnBtLO@odPum8Ojt+m0qSRCZZ=*hbF-#X~H4Z!DH);(T`wYB&k1BDTv;p@IS^XC^T)77ke zTSY}IDHl$ge_B6uLk21qkqIUY-27ni^gv+{5;W>!#1IRBQov|ZohpoxQ3c7QO z3m9dP(9d-=Ne9B)gG#VJ@>;PqXrJQ))5(jR61rlPzufdRJIUAi(a*;wagVRBj9PUK zeDKO3$achH3Laz5Q50DtqA^v4gXEv(GV~t;V%4}E@g@4>#3rqm8^DI4AB(*Vwe#(k zlv(awF`vV=YaYie$9F$C#{8=fqXtHrOI|P>GSSPxz)}_l&6jdrmtz5_sbTbfs1&u?VsLG3t-d zt5;S2>KLE?K5K87GXIOj_*HXYYgL}as;?_j)uLfG5NpY$)-SCPqDFltT)||SP<-@Qc2-Mr-`aV_nYE~oy^&nA1e-Y z&7%<~5}Uj#J5EP|0sIP@2-{vQz=QO8grnzsg~fshe{Z!o zSL6F#o;&%)syu}K;Jv$6`f7_w-@yy`t(pJGXu2{dTxe?`(bItZn@F8_+hEycY_QQ5 z0#KP_m+9QTedXpWdpz`t8V+_DW6_6RwSJ|!%P@Ni4oIj)d&-kLie_&!(P#NTjGdj! zdMb9#oW%y7`I|{f{dTk{^R?Y_s@KUBL3P*=oHm1nt56h&;T2Cs1RQiR3E?XbM4 zIHcNDo0YM}O-B=#!NCPTh(u2^>IQV(R3<90#7g^`k<~|A*(OE-)i(al)RDFK2LdSd zO5|l4KsSFiV`V%inTm)|CJJVwZJ8^pieM?w%xFl%KV%(J%YX%}J4brY*F;%_*pH}4 z^Hx-L@B^xZ4r~P1OF_+%a0MD78Itt-85M6@O9NU(-vqdM%#HdlkdSfH#Q{XPm(nd1 zcqEty6=U>Cj1x^Arf+^5rtv{a13Yl7i;ek zq4kE}b!*@%d9vc!jGCF@~2^oSNEg+=;U$z=94(!8?xm^ zGH4x!GEtX!*B$c#ST4C)YBC@VQyR1~XQO}59={%r_s{>2+Ha1|K-#274}iG>vnInB z?(ara6dy8>S!%BXrr(L?O{0i<+I*B^3_jmz3T7P{VwGQ4pvW8n-(?e+!D`iQY+a0( zfIT3;)w6{XFW7>`2ns7in0BPc29bnn0zp^;Ok?VI&g9EAbw0ClFtPo!hhFy@z!4JO zl-d!Cqbl}E4F)IgOVqKH0^8N5t#`iH^$7iGjQ`g9>-^IqfSW?~Sn=(ZRloE)e6U^0 zyd~CFigb#(f=ZZ#bbO?zPQ-IV!>LBq4JXKeXtBTXsMA?2OJl#)g+PJ3=$O5o(C4TW z12OR(7{&qAPUS7-G-+*-iC!8}_76`1{M4`>6SSm=O{;;vwk-5DNsdIxL{;j`V&RFlEIdNUuKQ!a;@qKX8e+F4KM`ydf(xo zHQdBQ{GC12wfkHd3PVlaVL9l=GXLbN{XP`x;cghMhoE-&500w3`BeF11EFC~G1{~} zZ`5-GI;`U9ka0AyTk(ywC8}lUTH}CCW5-Ly$j2d9)7+`Ac5P zu~s={2P{6Y3XY$q zu~5d%IQ47BK9}}W7+uSP?WuUVTR+lKu4qY|D*yS}Aw!STMmI~K2GQu&RJKLd? zC9tIdy2(avx1+wyXiyX1>9NY%bjm(#e3EPm~YSfGfYjNJ{yc0pV z@iz%BLO!DJ?DsVpi%;5;I~H+Gev(;#_I#_eqoWYr?>7KfvDw>XiI*F?8v5>{EWiTN zxet#!MQ{~gjg~pPr6T#E$eTOje%EFNP4x)vJ>@;OiF@%3!=~vz8B<7lb$%=h&Sr6d ztD^bt}r}y~Pd22PL*& znxlpGV&6F?GBe=DAiqPad!=|ieGW(3`J+FEs=$bJgss=l9Lf+0x4USZam7Q(307LG z1s@a8FrW|hH=n~gV=D8XE{4hgmduRml6gyXxInUl;*UAtIg>bl^SMrhY*D7;QKbkK z3Y?jt=ZjstlA?2-P1yk2cc5#T;C^4o$+=D0FuzntN3sCvCRBRT?QKd{z@}ysbop~0 z<6ZUfSgiz7E?Ax87y*!b@lk8BeEMHkI({mt$pnuAUANsq~S2mJ*8b!ps*K}?m1#o{I1yUPVQ>|#1J?3 z#Az79{Z%=pE=#F&eQu0DdEH=zR3Ecw$qV@+!mRIq>j&}!dMyzEkputeAd(4>01YU6eRYXDpnariE~>Tos}u*i8yAkF z%4TXru$fz*ci}Oy<|U4KjqN{}vzeCV$gL&w-6`!-Anp#mLh&i7H17@o?VqnG6NXE;*-#Wgy_N{$*U$yZp64n47|-! zk#{s>obu1k}>t)gnGPQ9~2iqbO|e~>I`i3AKS>0=nk zwwci*)8J2f+&9!xnJhZG-D2Fq46*Q-~AC**hZ=+!AG!PwID|PTFdYQd5RIGyFM+ly{*JF@BAq^j3T3NK$)x%rH$aO zMa3aT7X(E_fwEI559WYRf}B1wUcxb7{e_p+RlOngAosX^P6{6>K9%4kxYc;K{95Q- zlAE59=PXd<(wz9m}=jU7TR z0ABjC_?SVfpm}F0B!eh>Z5;Bl)x!+kP$Q}$uDlMK-Tl~44Rs*}au3TqGs{#>Dg5b^ zO|pHL$cI^o8sQ$^a-|4o`16PjK*1Z(gO97-b7{OGBcGFJFVl4c={IPof#>MU2rbYD4!U`p6K&D^E`j(wg=;~|d z{3mT0S;?;Onu{W??ted>4^TU7Hu_XsGpj=_>vu)U>}?f=1oj~6x{qZtrM;W?BBA0* z;%)*0z(%FKdC$mL&HYZFGDTN>^3HuIpdxiEa~)>%zHsAjf?Q} zIbq5a_dfI9sILerXKyDh?%xx+8s0@fss5;jbU9*L-0hD@G(Ti6|xc&~jv?+Z>ul3eOldhgAaxQ@%Z=Zy0>`94=9-v7J9(&91DB5(^= z86)tDjq1UV)c?sod16MoB|8)6RiVd-Tz|LAdAM$TAhf?}qy^Q3?^aSMIp>U=K+E@d zrMW0c&LEcWr3}`He7B{lx*@ATcARfiVcce^uQCq04Au9CeZX=UY`N%44Ol0vi(LIS z5@9MfyE=87mda%iX^TKli~${9B<&8j`U7&KaV1p-ahCN8-X+q;QcF*)FPIMM%YKIT zWm0hM^?Jy?<;;U+dYNe*fk1DBALbaBl{NREs-ec;8oUo)2nh)DXl9yKZdJlj_fxlE zQpGX>BXcD*-Bt&gAM{`mv>83Biaz&Jx=BQWa+7(4HBTY<*t0^8S9Qq%O7rQDJWqwT zTV-4Qk-W{J^GOF&V0)E2Q1P_g**x>v(uv?=j2biVz`Uv0Li#>+^wc>dE>3?e5NKxI zlrHpY>R)qbZ}@NUG}+7FN);@(+i-HiJr!X3^AzNt#ug3+x0~Yie}3ue?)=K#hOqy1 zOv$?7ekcSyMG^Y&=kN3HW`IzLqpy$*U5i97lI1@FQH1HLB%UtjH_Y%nFg$=h!@g@r zd?9i4lGEWqS~Ux+5LbjXt0h-%1^lEUW(0kq7cvH#&%(?njs^?&+~z;=!JIjv=*t1* ztkw^MPPL1FhuWdrHSQ{CKrqq#q0 zRHQ2CuBN<Fg;tFdXh%yFS{B3u)Dl~O*KnsK3f04 ztoM7p&+gQk)MDt2ClH;}d=S*n6DA6{<4|??xb*2pKpDcbYThhhKcjjxk zD6g(N)ZaBZvy`V*KnyvrnwZw|>y|1Mxe_QfY2@JSZ;}|E?f7d_cR| zaPqDxk$Wuo!$|zfH}gq(OT*M$!Vzj~fmn3h^y`EC&Kq(x%)+U0#pa4?MTJdPefweF zmqeu65pV5i>}b*oNJ`52SVUXQ$nN{B%dhF#o)d{WY80=%%&Jbc+unK)O@w5m_#ZfQ zVjcQ*z)iifb$%}VGifEnjGT2b05pN3A_2l5?F0D)r{uR4TeIw-NMwwOe$TtOIQ+qDf}A=nLhef++uR)C5kuUD3VY) z>R*w{#m_n=6XuFq&J$#w*rR<<~B< zGX1bLOv8bfp-KLkHyPpw*(|lRk80#|RV5OKYk8?MmFbVOloe2BpMh)){bHj7^Br#d zxL9cObl^WQsRhket42HLN7UNTN-hf`4U};9N%>xJYoA&kTD(5sqdV4%)m>9z;gC%} zJ%j+5PqD{10?W&Y9d?I5Vb?0VWo$I5f))Y&ZdX{FMjg-+;uDs-GNFTP=%!{tEvVg2 zg%cJ`Xc9+@+9bSUCr*#6&l1fWr{(?Q;!#Fm=5Gr4cdz}m{!`N)bfn{EdOb#^>a~q* z [!NOTE] -> Highlights information that users should take into account, even when skimming. +> Useful information that users should know, even when skimming content. > [!TIP] -> Optional information to help a user be more successful. +> Helpful advice for doing things better or more easily. > [!IMPORTANT] -> Crucial information necessary for users to succeed. +> Key information users need to know to achieve their goal. > [!WARNING] -> Critical content demanding immediate user attention due to potential risks. +> Urgent info that needs immediate user attention to avoid problems. > [!CAUTION] -> Negative potential consequences of an action. +> Advises about risks or negative outcomes of certain actions. ``` -Here are the rendered alerts. +Here are the rendered alerts: -![Screenshot of rendered Markdown alerts showing how Note, Tips, Important, Warning, and Caution render with different colored text and icons.](/assets/images/help/writing/alerts-rendered.png) +![Screenshot of rendered Markdown alerts showing how Note, Tip, Important, Warning, and Caution render with different colored text and icons.](/assets/images/help/writing/alerts-rendered.png) {% endif %} From b62418264f7114b11e639bfeb6e296a1be94e08f Mon Sep 17 00:00:00 2001 From: Chad Faragher Date: Tue, 12 Dec 2023 03:54:34 -0500 Subject: [PATCH 07/55] Update adding-your-project-to-a-repository.md (#30492) --- .../adding-your-project-to-a-repository.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md index bb00a9a802..38a469c249 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md @@ -17,6 +17,6 @@ In order for repository members to see a project listed in a repository, they mu 1. On {% data variables.product.prodname_dotcom %}, navigate to the main page of your repository. 1. Click {% octicon "table" aria-hidden="true" %} **Projects**. ![Screenshot showing a repository's tabs. The "Projects" tab is highlighted with an orange outline.](/assets/images/help/projects-v2/repo-tab.png) -1. Click **Link project**. +1. Click **Link a project**. 1. In the search bar that appears, search for projects that are owned by the same user or organization that owns the repository. 1. Click on a project to list it in your repository. From 9ac92fbce9d10af70d1c33abe910a02fcae401cd Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Tue, 12 Dec 2023 10:05:02 +0100 Subject: [PATCH 08/55] [Improvement]: Update information on tax forms (#47474) Co-authored-by: Laura Coursen --- .../tax-information-for-github-sponsors.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md b/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md index 737c562018..1703e94558 100644 --- a/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md +++ b/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md @@ -16,11 +16,11 @@ shortTitle: Tax information ## W-9/W-8 tax forms -By law, {% data variables.product.prodname_dotcom %} is required by the U.S. Internal Revenue Service (IRS) to collect tax information from all U.S. and non-U.S. maintainers. These forms are held by {% data variables.product.prodname_dotcom %} and are not required to be submitted to the IRS. +By law, {% data variables.product.prodname_dotcom %} is required by the U.S. Internal Revenue Service (IRS) to collect tax information from all U.S. and non-U.S. maintainers. These forms are held by Stripe and are not required to be submitted to the IRS. ### W-9 (U.S.) -The information from W-9 tax forms helps {% data variables.product.prodname_dotcom %} use the correct Taxpayer Identification Number (TIN) to report income paid to you to the IRS in a 1099 form. +The information from W-9 tax forms helps Stripe use the correct Taxpayer Identification Number (TIN) to report income paid to you to the IRS in a 1099 form. If you are a taxpayer in the United States, you must submit a [W-9](https://www.irs.gov/forms-pubs/about-form-w-9) before you can publish your {% data variables.product.prodname_sponsors %} profile. @@ -28,9 +28,9 @@ If you are a taxpayer in the United States, you must submit a [W-9](https://www. W-8 BEN and W-8 BEN-E tax forms help {% data variables.product.prodname_dotcom %} determine the beneficial owner of an amount subject to withholding. -If you are a taxpayer in any other region besides the United States, you must submit a [W-8 BEN](https://www.irs.gov/pub/irs-pdf/fw8ben.pdf) (individual) or [W-8 BEN-E](https://www.irs.gov/forms-pubs/about-form-w-8-ben-e) (company) form before you can publish your {% data variables.product.prodname_sponsors %} profile. For more information, see "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account#submitting-your-tax-information)" and "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization#submitting-your-tax-information)." {% data variables.product.prodname_dotcom %} will send you the appropriate forms, notify you when they are due, and give you a reasonable amount of time to complete and send in the forms. +If you are a taxpayer in any other region besides the United States, you must submit a [W-8 BEN](https://www.irs.gov/pub/irs-pdf/fw8ben.pdf) (individual) or [W-8 BEN-E](https://www.irs.gov/forms-pubs/about-form-w-8-ben-e) (company) form before you can publish your {% data variables.product.prodname_sponsors %} profile. For more information, see "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account#submitting-your-tax-information)" and "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization#submitting-your-tax-information)." Stripe will send you the appropriate forms, notify you when they are due, and give you a reasonable amount of time to complete and send in the forms. -If you have been assigned an incorrect tax form, contact us through the {% data variables.contact.contact_support_portal %} to get reassigned the correct one for your situation. +If you have been assigned an incorrect tax form, you can contact Stripe to get reassigned the correct one for your situation. For more information, see [Contact Us](https://support.stripe.com/contact/email?topic=connect) on the Stripe Support site. ### Tax identification numbers @@ -61,7 +61,7 @@ If you are a taxpayer in the United States and earn more than 600 US dollars in ## Sales tax -GitHub is providing information to assist you in calculating your sales tax obligations. This information is not personalized to your country or tax situation and we recommend you talk to a professional to understand your specific obligations. However, we'd like to provide some high-level information to help you understand the general principles of digital sales tax. +{% data variables.product.prodname_dotcom %} is providing information to assist you in calculating your sales tax obligations. This information is not personalized to your country or tax situation and we recommend you talk to a professional to understand your specific obligations. However, we'd like to provide some high-level information to help you understand the general principles of digital sales tax. In most countries around the world, sales tax for digital transactions is based on the location of the recipient, not on the seller. For example, if you are a maintainer in the United States and you provide a taxable benefit to a Sponsor in Germany, German sales tax would apply. @@ -73,4 +73,4 @@ In the EU and most other countries and regions, B2C sales are subject to sales t ## Further reading -- [Viewing your sponsors and sponsorships](/sponsors/receiving-sponsorships-through-github-sponsors/viewing-your-sponsors-and-sponsorships) +- "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/viewing-your-sponsors-and-sponsorships)" From be3b080f6df773b2e75cf21b7bd3c8cd2c2b114b Mon Sep 17 00:00:00 2001 From: Matt Pollard Date: Tue, 12 Dec 2023 10:21:30 +0100 Subject: [PATCH 09/55] Enterprise bug fix hour for week of December 4, 2023 (#47504) Co-authored-by: Vanessa --- .../configuring-backups-on-your-instance.md | 1 + .../using-ldap-for-enterprise-iam/using-ldap.md | 6 +++++- .../managing-dormant-users.md | 6 +++++- .../about-per-user-pricing.md | 4 ++-- .../style-guide-and-content-model/style-guide.md | 10 ++++++++++ 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/content/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance.md b/content/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance.md index 471d03cc3d..024277ea05 100644 --- a/content/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance.md +++ b/content/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance.md @@ -174,6 +174,7 @@ Network settings are excluded from the backup snapshot. After restoration, you m 1. Ensure maintenance mode is enabled on the primary instance and all active processes have completed. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)." 1. Stop replication on all replica nodes in a high-availability configuration. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration#ghe-repl-stop)." +1. Provision a new {% data variables.product.product_name %} instance to use as a target for the restoration of your backup. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance)." 1. If {% data variables.location.product_location %} has {% data variables.product.prodname_actions %} enabled, you must configure the external storage provider for {% data variables.product.prodname_actions %} on the replacement instance. For more information, see "[AUTOTITLE](/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled)." ### Starting the restore operation diff --git a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md index a21d582bf8..ad469dc4a4 100644 --- a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md +++ b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md @@ -114,6 +114,8 @@ When this option is selected, the certificate is validated to make sure: You can establish role-based access control for users from your LDAP server by synchronizing {% data variables.product.prodname_ghe_server %} users and team membership against your established LDAP groups. For more information, see "[AUTOTITLE](/organizations/organizing-members-into-teams/creating-a-team#creating-teams-with-ldap-sync-enabled)." +LDAP sync does not create user accounts on {% data variables.location.product_location %}. For more information, see "[Viewing and creating LDAP users](#viewing-and-creating-ldap-users)." + {% note %} **Note:** Using LDAP Synchronization with groups that exceed 1499 members may lead to team membership synchronization failures. @@ -124,7 +126,7 @@ If you need help determining if modifying the `MaxValRange` is the right approac {% endnote %} -To enable LDAP Sync, in your LDAP settings, select **Synchronize Emails**, **Synchronize SSH Keys**, or **Synchronize GPG Keys** . +To enable LDAP Sync, in your LDAP settings, select **Synchronize Emails**, **Synchronize SSH Keys**, or **Synchronize GPG Keys**. After you enable LDAP sync, a synchronization job will run at the specified time interval to perform the following operations on each user account: @@ -188,6 +190,8 @@ If disclosing such information is not desired, your company or organization shou ## Viewing and creating LDAP users +When you use LDAP, your instance creates a user account the first time someone successfully signs in using LDAP credentials. Alternatively, you can manually provision a user account. + You can view the full list of LDAP users who have access to your instance and provision new users. {% data reusables.enterprise_site_admin_settings.sign-in %} diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-dormant-users.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-dormant-users.md index af4e9c7601..274da19541 100644 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-dormant-users.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/managing-dormant-users.md @@ -8,6 +8,7 @@ redirect_from: - /admin/user-management/managing-dormant-users - /admin/user-management/managing-users-in-your-enterprise/managing-dormant-users intro: '{% data reusables.enterprise-accounts.dormant-user-activity-threshold %}' +permissions: "{% ifversion ghec or ghae %}Enterprise owners can manage dormant users for an enterprise.{% elsif ghes %}Site administrators can manage dormant users on a {% data variables.product.product_name %} instance.{% endif %}" versions: ghec: '*' ghes: '*' @@ -37,12 +38,14 @@ You can customize the dormancy threshold for {% data variables.location.product_ Dormancy applies to both enterprise members and outside collaborators. +{% ifversion ghes %} + ## Viewing dormant users {% data reusables.enterprise-accounts.viewing-dormant-users %} {% data reusables.enterprise_site_admin_settings.access-settings %} -1. In the left sidebar, click **Dormant users**.{% ifversion ghes %} +1. In the left sidebar, click **Dormant users**. 1. To suspend all the dormant users in this list, at the top of the page, click **Suspend all**. ## Determining whether a user account is dormant @@ -62,6 +65,7 @@ Dormancy applies to both enterprise members and outside collaborators. {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.options-tab %} 1. Under "Dormancy threshold", select the dropdown menu, and click the desired dormancy threshold. + {% endif %} {% ifversion ghec %} diff --git a/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md b/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md index ff1c3ac644..78cbe8c36b 100644 --- a/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md +++ b/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md @@ -108,11 +108,11 @@ If your enterprise does not use {% data variables.product.prodname_emus %}, you ### Accounts that consume a license on {% data variables.product.prodname_ghe_server %} -Each user account on {% data variables.product.prodname_ghe_server %} consumes a seat. +After a user successfully authenticates to a {% data variables.product.prodname_ghe_server %} instance for the first time, the user consumes a seat. Suspended users are not counted when calculating the number of licensed users consuming seats. For more information, see "[Suspending and unsuspending users]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} -Dormant users do occupy a seat license. As such, you can choose to suspend dormant users to release user licenses. For more information, see "[Managing dormant users]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} +Dormant users do occupy a seat license. Administrators can suspend dormant users to free licenses. For more information, see "[Managing dormant users]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} {% endif %} diff --git a/content/contributing/style-guide-and-content-model/style-guide.md b/content/contributing/style-guide-and-content-model/style-guide.md index 9a7cf82df3..c0c60f0605 100644 --- a/content/contributing/style-guide-and-content-model/style-guide.md +++ b/content/contributing/style-guide-and-content-model/style-guide.md @@ -217,6 +217,14 @@ Use italics to emphasize words or parts of a sentence. Use emphasis sparingly fo - **Use:** _For types of packages other than containers_, to the right of the package version click **Delete**. - **Avoid:** Next to _**Title**_, add a descriptive label for your new key. +## Error messages + +When you include the text of an error message from a {% data variables.product.company_short %} product or interface in an article, format the text according to the interface where the message appears. + +- If the message appears in {% data variables.product.prodname_dotcom %}'s web interface, or in a graphical client app like {% data variables.product.prodname_desktop %} or {% data variables.product.prodname_mobile %}, treat the message like other text in the UI. For more information, see "[User interface text](#user-interface-text)." + +- If the message appears in a command-line interface, log output, or a response from an API, reproduce the text exactly and use backticks to format the message using a monospaced font. + ## Footnotes Avoid using footnotes where possible. Consider instead whether you could use a [callout](#callouts) or present the information in another way. See some [examples of alternatives to footnotes from NICE.org.uk](https://www.nice.org.uk/corporate/ecd6/chapter/footnotes). @@ -841,6 +849,7 @@ A release note for a bug fix answers the following questions. - Language like "fixed a bug..." or "fixed an issue..." is implied and unnecessary. - To reduce repetition and unnecessary words, "now" is usually implied. - To clarify actors and impact, avoid passive language when possible. +- If the release note includes an error message, format the message according to the guidance in "[Error messages](#error-messages)." #### Examples of release notes for bug fixes @@ -896,6 +905,7 @@ A release note for a known issue answers the following questions. - To clarify actors and impact, avoid passive language when possible. - To reduce repetition and unnecessary words, "now" is usually implied. +- If the release note includes an error message, format the message according to the guidance in "[Error messages](#error-messages)." - If useful, include relevant links to GitHub Docs. - Known issues are also a type of content on GitHub Docs. For more information, see "[AUTOTITLE](/contributing/style-guide-and-content-model/troubleshooting-content-type#known-issues)." If useful, write or link to more in-depth and contextually relevant content in the docs. From 9dd6c0eeb58aecd688a45358957a2ab9188d5ded Mon Sep 17 00:00:00 2001 From: Felicity Chapman Date: Tue, 12 Dec 2023 09:54:43 +0000 Subject: [PATCH 10/55] Add brief readme for new script and workflow for code scanning query help tables (#47487) Co-authored-by: github-actions Co-authored-by: Peter Bengtsson --- src/code-scanning/README.md | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/code-scanning/README.md diff --git a/src/code-scanning/README.md b/src/code-scanning/README.md new file mode 100644 index 0000000000..2dbadbf130 --- /dev/null +++ b/src/code-scanning/README.md @@ -0,0 +1,64 @@ +# Code scanning query tables + +This nascent pipeline creates autogenerated documentation docs.github.com from the query suites included with the [CodeQL bundle](https://github.com/github/codeql-action/releases). + +The pipeline is used to generate Markdown tables that are stored in reusable files and used in article pages on the docs.github.com site. + +## How does it work + +```mermaid +--- +title: "Process for generating Code scanning query tables" +--- +flowchart TB + +accDescr: A flow chart describing how the automation generates documentation for code scanning queries. + + start([Start]) --> checkout[Checkout the codeql repository] + start --- download[Download the CodeQL CLI] + checkout --- query-suites[fa:fa-file Query suites *.qls] + query-suites ---> generate[Generate tables:src/code-scanning/scripts/generate-code-scanning-query-lists.ts] + download --- codeql-cli[CodeQL CLI: codeql.exe] + codeql-cli --> generate + generate --- markdown[fa:fa-file Reusable files *.md] + markdown --> pr[Generate a PR overwriting:data/reusables/code-scanning/codeql-query-tables/*.md] + pr --> finish([End]) + +%% Define styles + classDef start fill:#1AAC9D, color:white + classDef action fill:#6557F6, color:white + classDef finish fill:#F8C324, color:white + classDef file fill:#ddd + +%% Assign styles + class start start; + class finish finish; + class checkout,download,generate,pr action; + class markdown,query-suites,codeql-cli file; +``` + +A [workflow](.github/workflows/generate-code-scanning-query-lists.yml) is used to trigger the automation of the code scanning query tables documentation. The workflow is manually triggered by a member of the GitHub Docs team approximately every two weeks to align to releases of the CodeQL CLI. The workflow takes an input parameter that specifies the branch to pull the source files from in the semmle-code repo. If the branch input is omitted, the workflow will default to the `main` branch. + +The workflow runs the `npm run generate-code-scanning-query-list` script, which generates Markdown files under `data/reusables/code-scanning/codeql-query-tables`. + +The workflow automatically creates a new pull request with the changes and the label `codeql-query-tables`. + +## Local development + +To run the pipeline locally, see the comments in the [script](scripts/generate-code-scanning-query-list.ts). + +## Content team + +The content writers can use the reusables in any content article. They have no need to make any changes to the script unless additional built-in query suites are added. + +## How to get help + +### For workflow and script problems + +Slack: `#docs-engineering` +Repo: `github/docs-engineering` + +### For CodeQL repository and CLI problems + +Slack: `#code-scanning-internal-dx` +Repo: `github/code-scanning-internal-dx-team` From 40b02ace688989e1e6795005f2da90cd15dfacb4 Mon Sep 17 00:00:00 2001 From: Lili <92824518+queenofcorgis@users.noreply.github.com> Date: Tue, 12 Dec 2023 05:25:16 -0500 Subject: [PATCH 11/55] =?UTF-8?q?Update=20adding-outside-collaborators-to-?= =?UTF-8?q?repositories-in-your-organizat=E2=80=A6=20(#30443)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- ...utside-collaborators-to-repositories-in-your-organization.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md index ece68a3301..edf00023dc 100644 --- a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md @@ -44,6 +44,8 @@ If your organization requires two-factor authentication, all outside collaborato Outside collaborators cannot be added to an {% data variables.enterprise.prodname_emu_enterprise %}. However, you can grant limited access to users outside your enterprise using the guest collaborator role. For more information, see "[AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/roles-in-an-enterprise#guest-collaborators)." {% endif %} +Outside collaborators cannot be added to a team, team membership is restricted to members of the organization. + ## Adding outside collaborators to a repository You can give outside collaborators access to a repository in your repository settings. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository#inviting-a-team-or-person)." From a687a2fe033b45013e5ce3a6572ee01e1b14c202 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Tue, 12 Dec 2023 10:31:46 +0000 Subject: [PATCH 12/55] Copilot: update who can index a repo (#47686) --- .../using-github-copilot-chat-in-githubcom.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom.md b/content/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom.md index de8dcb324a..774538dce4 100644 --- a/content/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom.md +++ b/content/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom.md @@ -26,7 +26,7 @@ On {% data variables.product.prodname_dotcom_the_website %}, you can use {% data The following limitations apply to this beta release of {% data variables.product.prodname_copilot_chat_dotcom %}: - {% data reusables.copilot.chat-limited-docset-availability %} -- Chat responses may be suboptimal if you ask questions about a specific repository that you've selected as a context, and the repository has not been indexed for semantic code search. Owners of organizations {% ifversion ghec %}or enterprises {% endif %} can index up to {% data variables.copilot.max-chat-indexed-repos %} repositories for each organization. +- Chat responses may be suboptimal if you ask questions about a specific repository that you've selected as a context, and the repository has not been indexed for semantic code search. Anyone who gets access to {% data variables.product.prodname_copilot_short %} from the organization that owns a repository can index that repository. Up to {% data variables.copilot.max-chat-indexed-repos %} repositories can be indexed for each organization. - The quality of the results from {% data variables.product.prodname_copilot_chat_short %} may, in some situations, be degraded if very large files, or a large number of files, are used as a context for a question. ## Prerequisites @@ -92,7 +92,7 @@ You can choose a specific context, such as a particular repository or a document {% data variables.product.prodname_copilot_short %}'s ability to answer natural language questions like these in a repository context is improved when the repository has been indexed for semantic code search. The indexing status of the repository is displayed when you start a conversation that has a repository context. - If you are an organization owner{% ifversion ghec %}, or an enterprise owner,{% endif %} and the repository has not been indexed, an **Index this repository** button is displayed. Click this button to start the indexing process. You can index up to {% data variables.copilot.max-chat-indexed-repos %} repositories in an organization. + If you get access to {% data variables.product.prodname_copilot_short %} from the organization that owns the repository, and the repository has not been indexed, an **Index this repository** button is displayed. Click this button to start the indexing process. Up to {% data variables.copilot.max-chat-indexed-repos %} repositories can be indexed for each organization. ![Screenshot showing the 'Index this repository' button highlighted with a dark orange outline.](/assets/images/help/copilot/index-this-repo.png) From 10de0e1e14380a11ea661618b4536141c37b54dd Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 08:40:11 -0500 Subject: [PATCH 13/55] Repo sync (#30626) Co-authored-by: Jess Hosman <1183847+jhosman@users.noreply.github.com> Co-authored-by: Rachael Sewell Co-authored-by: Sarah Edwards Co-authored-by: Cory Calahan Co-authored-by: Daniel Adams Co-authored-by: github-actions Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> Co-authored-by: Laura Coursen Co-authored-by: Matt Pollard Co-authored-by: Vanessa Co-authored-by: Felicity Chapman Co-authored-by: Peter Bengtsson Co-authored-by: hubwriter Co-authored-by: Peter Bengtsson --- .../images/help/writing/alerts-rendered.png | Bin 64537 -> 50447 bytes .../configuring-backups-on-your-instance.md | 1 + ...te-networking-for-github-hosted-runners.md | 2 +- .../using-ldap.md | 6 +- .../managing-dormant-users.md | 6 +- ...ndpoints-for-the-github-marketplace-api.md | 2 +- .../about-per-user-pricing.md | 4 +- .../style-guide.md | 10 +++ .../using-github-copilot-chat-in-githubcom.md | 4 +- .../basic-writing-and-formatting-syntax.md | 27 +++----- ...he-openapi-description-for-the-rest-api.md | 1 + .../api-versions.md | 2 + .../breaking-changes.md | 2 + ...paring-githubs-rest-api-and-graphql-api.md | 1 + content/rest/about-the-rest-api/index.md | 19 ++++++ .../authenticating-to-the-rest-api.md | 1 + ...for-fine-grained-personal-access-tokens.md | 4 +- ...r-github-app-installation-access-tokens.md | 1 + ...lable-for-github-app-user-access-tokens.md | 4 +- .../{overview => authentication}/index.md | 20 +----- .../keeping-your-api-credentials-secure.md | 4 +- ...for-fine-grained-personal-access-tokens.md | 4 +- .../permissions-required-for-github-apps.md | 1 + content/rest/guides/index.md | 3 - content/rest/index.md | 32 +++++---- .../best-practices-for-using-the-rest-api.md | 1 + .../getting-started-with-the-rest-api.md | 4 +- .../github-event-types.md | 1 + content/rest/using-the-rest-api/index.md | 22 ++++++ .../issue-event-types.md | 1 + .../libraries-for-the-rest-api.md | 1 + .../media-types.md | 1 + .../rate-limits-for-the-rest-api.md | 2 + .../resources-in-the-rest-api.md | 1 + .../troubleshooting-the-rest-api.md | 1 + .../using-pagination-in-the-rest-api.md | 1 + .../tax-information-for-github-sponsors.md | 12 ++-- src/code-scanning/README.md | 64 ++++++++++++++++++ ...aring-githubs-rest-api-and-graphql-api.md} | 0 .../{overview => about-the-rest-api}/index.md | 2 +- src/fixtures/fixtures/content/rest/index.md | 6 +- src/fixtures/fixtures/rest-redirects.json | 8 +-- src/fixtures/tests/playwright-a11y.spec.ts | 2 +- src/github-apps/lib/config.json | 12 ++-- .../[...restPage].tsx | 0 .../index.tsx | 0 .../rest/authentication/[...restPage].tsx | 1 + ...or-fine-grained-personal-access-tokens.tsx | 0 ...-github-app-installation-access-tokens.tsx | 0 ...able-for-github-app-user-access-tokens.tsx | 0 .../[versionId]/rest/authentication/index.tsx | 1 + ...or-fine-grained-personal-access-tokens.tsx | 0 .../permissions-required-for-github-apps.tsx | 0 .../rest/using-the-rest-api/[...restPage].tsx | 1 + .../rest/using-the-rest-api/index.tsx | 1 + .../lib/static/redirect-exceptions.txt | 2 +- src/rest/lib/config.js | 10 ++- src/rest/lib/config.json | 6 +- ...paring-githubs-rest-api-and-graphql-api.md | 13 ++++ .../content/rest/about-the-rest-api/index.md | 12 ++++ 60 files changed, 259 insertions(+), 91 deletions(-) rename content/rest/{overview => about-the-rest-api}/about-the-openapi-description-for-the-rest-api.md (97%) rename content/rest/{overview => about-the-rest-api}/api-versions.md (98%) rename content/rest/{overview => about-the-rest-api}/breaking-changes.md (96%) rename content/rest/{overview => about-the-rest-api}/comparing-githubs-rest-api-and-graphql-api.md (98%) create mode 100644 content/rest/about-the-rest-api/index.md rename content/rest/{overview => authentication}/authenticating-to-the-rest-api.md (99%) rename content/rest/{overview => authentication}/endpoints-available-for-fine-grained-personal-access-tokens.md (68%) rename content/rest/{overview => authentication}/endpoints-available-for-github-app-installation-access-tokens.md (91%) rename content/rest/{overview => authentication}/endpoints-available-for-github-app-user-access-tokens.md (76%) rename content/rest/{overview => authentication}/index.md (50%) rename content/rest/{overview => authentication}/keeping-your-api-credentials-secure.md (97%) rename content/rest/{overview => authentication}/permissions-required-for-fine-grained-personal-access-tokens.md (89%) rename content/rest/{overview => authentication}/permissions-required-for-github-apps.md (96%) rename content/rest/{guides => using-the-rest-api}/best-practices-for-using-the-rest-api.md (99%) rename content/rest/{guides => using-the-rest-api}/getting-started-with-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/github-event-types.md (99%) create mode 100644 content/rest/using-the-rest-api/index.md rename content/rest/{overview => using-the-rest-api}/issue-event-types.md (99%) rename content/rest/{overview => using-the-rest-api}/libraries-for-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/media-types.md (99%) rename content/rest/{overview => using-the-rest-api}/rate-limits-for-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/resources-in-the-rest-api.md (99%) rename content/rest/{overview => using-the-rest-api}/troubleshooting-the-rest-api.md (99%) rename content/rest/{guides => using-the-rest-api}/using-pagination-in-the-rest-api.md (99%) create mode 100644 src/code-scanning/README.md rename src/fixtures/fixtures/content/rest/{overview/about-githubs-apis.md => about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md} (100%) rename src/fixtures/fixtures/content/rest/{overview => about-the-rest-api}/index.md (84%) rename src/pages/[versionId]/rest/{overview => about-the-rest-api}/[...restPage].tsx (100%) rename src/pages/[versionId]/rest/{overview => about-the-rest-api}/index.tsx (100%) create mode 100644 src/pages/[versionId]/rest/authentication/[...restPage].tsx rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-fine-grained-personal-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-github-app-installation-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/endpoints-available-for-github-app-user-access-tokens.tsx (100%) create mode 100644 src/pages/[versionId]/rest/authentication/index.tsx rename src/pages/[versionId]/rest/{overview => authentication}/permissions-required-for-fine-grained-personal-access-tokens.tsx (100%) rename src/pages/[versionId]/rest/{overview => authentication}/permissions-required-for-github-apps.tsx (100%) create mode 100644 src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx create mode 100644 src/pages/[versionId]/rest/using-the-rest-api/index.tsx create mode 100644 tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md create mode 100644 tests/fixtures/content/rest/about-the-rest-api/index.md diff --git a/assets/images/help/writing/alerts-rendered.png b/assets/images/help/writing/alerts-rendered.png index 9f2d50f797b29f7709c260755e3d1eda3c57b736..012a081f562f7e569073e37bde102e0355a93b82 100644 GIT binary patch literal 50447 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 literal 64537 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 z [!NOTE] -> Highlights information that users should take into account, even when skimming. +> Useful information that users should know, even when skimming content. > [!TIP] -> Optional information to help a user be more successful. +> Helpful advice for doing things better or more easily. > [!IMPORTANT] -> Crucial information necessary for users to succeed. +> Key information users need to know to achieve their goal. > [!WARNING] -> Critical content demanding immediate user attention due to potential risks. +> Urgent info that needs immediate user attention to avoid problems. > [!CAUTION] -> Negative potential consequences of an action. +> Advises about risks or negative outcomes of certain actions. ``` -Here are the rendered alerts. +Here are the rendered alerts: -![Screenshot of rendered Markdown alerts showing how Note, Tips, Important, Warning, and Caution render with different colored text and icons.](/assets/images/help/writing/alerts-rendered.png) +![Screenshot of rendered Markdown alerts showing how Note, Tip, Important, Warning, and Caution render with different colored text and icons.](/assets/images/help/writing/alerts-rendered.png) {% endif %} diff --git a/content/rest/overview/about-the-openapi-description-for-the-rest-api.md b/content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md similarity index 97% rename from content/rest/overview/about-the-openapi-description-for-the-rest-api.md rename to content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md index 7afa6d06f3..a3d04d7015 100644 --- a/content/rest/overview/about-the-openapi-description-for-the-rest-api.md +++ b/content/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api.md @@ -10,6 +10,7 @@ topics: - API redirect_from: - /rest/overview/openapi-description + - /rest/overview/about-the-openapi-description-for-the-rest-api --- ## About OpenAPI diff --git a/content/rest/overview/api-versions.md b/content/rest/about-the-rest-api/api-versions.md similarity index 98% rename from content/rest/overview/api-versions.md rename to content/rest/about-the-rest-api/api-versions.md index 9cb4ea02f2..e767e7fd72 100644 --- a/content/rest/overview/api-versions.md +++ b/content/rest/about-the-rest-api/api-versions.md @@ -4,6 +4,8 @@ shortTitle: API Versions intro: Learn how to specify which REST API version to use whenever you make a request to the REST API. versions: feature: api-date-versioning +redirect_from: + - /rest/overview/api-versions --- ## About API versioning diff --git a/content/rest/overview/breaking-changes.md b/content/rest/about-the-rest-api/breaking-changes.md similarity index 96% rename from content/rest/overview/breaking-changes.md rename to content/rest/about-the-rest-api/breaking-changes.md index 684729e464..619c3b9a22 100644 --- a/content/rest/overview/breaking-changes.md +++ b/content/rest/about-the-rest-api/breaking-changes.md @@ -4,6 +4,8 @@ shortTitle: Breaking changes intro: Learn about breaking changes that were introduced in each REST API version. versions: feature: api-date-versioning +redirect_from: + - /rest/overview/breaking-changes --- ## About breaking changes in the REST API diff --git a/content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md similarity index 98% rename from content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md rename to content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md index 4b66784181..5a67662770 100644 --- a/content/rest/overview/comparing-githubs-rest-api-and-graphql-api.md +++ b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md @@ -8,6 +8,7 @@ redirect_from: - /github/extending-github/getting-started-with-the-api - /developers/overview/about-githubs-apis - /rest/overview/about-githubs-apis + - /rest/overview/comparing-githubs-rest-api-and-graphql-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/about-the-rest-api/index.md b/content/rest/about-the-rest-api/index.md new file mode 100644 index 0000000000..4ecfeadf34 --- /dev/null +++ b/content/rest/about-the-rest-api/index.md @@ -0,0 +1,19 @@ +--- +title: About the REST API +intro: 'Learn more about the {% data variables.product.prodname_dotcom %} REST API and what you can do with it.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +children: + - /comparing-githubs-rest-api-and-graphql-api + - /api-versions + - /breaking-changes + - /about-the-openapi-description-for-the-rest-api +autogenerated: rest +--- + + diff --git a/content/rest/overview/authenticating-to-the-rest-api.md b/content/rest/authentication/authenticating-to-the-rest-api.md similarity index 99% rename from content/rest/overview/authenticating-to-the-rest-api.md rename to content/rest/authentication/authenticating-to-the-rest-api.md index 4636a96d48..1d34f2af44 100644 --- a/content/rest/overview/authenticating-to-the-rest-api.md +++ b/content/rest/authentication/authenticating-to-the-rest-api.md @@ -4,6 +4,7 @@ intro: You can authenticate to the REST API to access more endpoints and have a redirect_from: - /v3/auth - /rest/overview/other-authentication-methods + - /rest/overview/authenticating-to-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md b/content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md similarity index 68% rename from content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md rename to content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md index daa5c382a8..c3cdc9b21e 100644 --- a/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md @@ -3,8 +3,10 @@ title: Endpoints available for fine-grained personal access tokens intro: 'Your {% data variables.product.pat_v2 %} can make requests to the following REST endpoints.' versions: feature: pat-v2 -shortTitle: 'Endpoints for fine-grained PATs' +shortTitle: Endpoints for fine-grained PATs autogenerated: github-apps +redirect_from: + - /rest/overview/endpoints-available-for-fine-grained-personal-access-tokens --- diff --git a/content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md b/content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md similarity index 91% rename from content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md rename to content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md index a9409a9b22..9397d5b395 100644 --- a/content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md @@ -7,6 +7,7 @@ redirect_from: - /v3/apps/available-endpoints - /rest/reference/endpoints-available-for-github-apps - /rest/overview/endpoints-available-for-github-apps + - /rest/overview/endpoints-available-for-github-app-installation-access-tokens versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md b/content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md similarity index 76% rename from content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md rename to content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md index b6672fda18..b2970dd1f6 100644 --- a/content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md +++ b/content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md @@ -1,7 +1,7 @@ --- title: Endpoints available for GitHub App user access tokens shortTitle: Endpoints for GitHub App user tokens -intro: 'Your GitHub App can make requests to the following REST endpoints with a user access token.' +intro: Your GitHub App can make requests to the following REST endpoints with a user access token. permissions: 'You can use a user access token to access these endpoints using your {% data variables.product.prodname_github_app %}. For more information, see "[AUTOTITLE](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user)."' versions: fpt: '*' @@ -12,6 +12,8 @@ topics: - API - GitHub Apps autogenerated: github-apps +redirect_from: + - /rest/overview/endpoints-available-for-github-app-user-access-tokens --- diff --git a/content/rest/overview/index.md b/content/rest/authentication/index.md similarity index 50% rename from content/rest/overview/index.md rename to content/rest/authentication/index.md index 1fa5e8699b..ef89d85e04 100644 --- a/content/rest/overview/index.md +++ b/content/rest/authentication/index.md @@ -1,7 +1,7 @@ --- -title: REST API overview -shortTitle: Overview -intro: 'Learn about resources, libraries, previews and troubleshooting for {% data variables.product.prodname_dotcom %}''s REST API.' +title: Authenticating to the REST API +shortTitle: Authentication +intro: 'Learn how to authenticate your REST API requests.' versions: fpt: '*' ghes: '*' @@ -10,25 +10,11 @@ versions: topics: - API children: - - /comparing-githubs-rest-api-and-graphql-api - - /resources-in-the-rest-api - - /rate-limits-for-the-rest-api - - /api-versions - - /media-types - /authenticating-to-the-rest-api - /keeping-your-api-credentials-secure - - /troubleshooting-the-rest-api - - /libraries-for-the-rest-api - - /about-the-openapi-description-for-the-rest-api - - /issue-event-types - - /github-event-types - /endpoints-available-for-github-app-installation-access-tokens - /endpoints-available-for-github-app-user-access-tokens - /endpoints-available-for-fine-grained-personal-access-tokens - /permissions-required-for-github-apps - /permissions-required-for-fine-grained-personal-access-tokens - - /breaking-changes -redirect_from: - - /developers/overview --- - diff --git a/content/rest/overview/keeping-your-api-credentials-secure.md b/content/rest/authentication/keeping-your-api-credentials-secure.md similarity index 97% rename from content/rest/overview/keeping-your-api-credentials-secure.md rename to content/rest/authentication/keeping-your-api-credentials-secure.md index 95f6b39c6d..d0d3b0188c 100644 --- a/content/rest/overview/keeping-your-api-credentials-secure.md +++ b/content/rest/authentication/keeping-your-api-credentials-secure.md @@ -1,7 +1,7 @@ --- title: Keeping your API credentials secure shortTitle: Keeping API credentials secure -intro: 'Follow these best practices to keep your API credentials and tokens secure.' +intro: Follow these best practices to keep your API credentials and tokens secure. versions: fpt: '*' ghes: '*' @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/overview/keeping-your-api-credentials-secure --- ## Choose an appropriate authentication method diff --git a/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md b/content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md similarity index 89% rename from content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md rename to content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md index 4d65c545be..1a701245ce 100644 --- a/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md +++ b/content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md @@ -3,8 +3,10 @@ title: Permissions required for fine-grained personal access tokens intro: 'These are the permissions required for a {% data variables.product.pat_v2 %} to use each REST API endpoint that works with {% data variables.product.pat_v2 %}s.' versions: feature: pat-v2 -shortTitle: 'Permissions for fine-grained PATs' +shortTitle: Permissions for fine-grained PATs autogenerated: github-apps +redirect_from: + - /rest/overview/permissions-required-for-fine-grained-personal-access-tokens --- ## About permissions required for {% data variables.product.pat_v2 %} diff --git a/content/rest/overview/permissions-required-for-github-apps.md b/content/rest/authentication/permissions-required-for-github-apps.md similarity index 96% rename from content/rest/overview/permissions-required-for-github-apps.md rename to content/rest/authentication/permissions-required-for-github-apps.md index 3f1ad9cbc4..4e9d7aa54a 100644 --- a/content/rest/overview/permissions-required-for-github-apps.md +++ b/content/rest/authentication/permissions-required-for-github-apps.md @@ -4,6 +4,7 @@ intro: 'These are the permissions required for a {% data variables.product.prodn redirect_from: - /v3/apps/permissions - /rest/reference/permissions-required-for-github-apps + - /rest/overview/permissions-required-for-github-apps versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/index.md b/content/rest/guides/index.md index c2ec86152c..d77919954e 100644 --- a/content/rest/guides/index.md +++ b/content/rest/guides/index.md @@ -12,16 +12,13 @@ versions: topics: - API children: - - /getting-started-with-the-rest-api - /scripting-with-the-rest-api-and-javascript - /scripting-with-the-rest-api-and-ruby - /discovering-resources-for-a-user - /delivering-deployments - /rendering-data-as-graphs - /working-with-comments - - /using-pagination-in-the-rest-api - /building-a-ci-server - - /best-practices-for-using-the-rest-api - /using-the-rest-api-to-interact-with-your-git-database - /using-the-rest-api-to-interact-with-checks - /encrypting-secrets-for-the-rest-api diff --git a/content/rest/index.md b/content/rest/index.md index 59946f3169..12a94b71f6 100644 --- a/content/rest/index.md +++ b/content/rest/index.md @@ -1,35 +1,35 @@ --- title: GitHub REST API documentation shortTitle: REST API -intro: >- - To create integrations, retrieve data, and automate your workflows, build with - the {% data variables.product.prodname_dotcom %} REST API. +intro: 'Create integrations, retrieve data, and automate your workflows with the {% data variables.product.prodname_dotcom %} REST API.' introLinks: quickstart: /rest/quickstart - overview: /rest/guides/getting-started-with-the-rest-api + overview: /rest/using-the-rest-api/getting-started-with-the-rest-api featuredLinks: startHere: - - /rest/guides/getting-started-with-the-rest-api - - /rest/overview/authenticating-to-the-rest-api - - /rest/guides/best-practices-for-using-the-rest-api - - /rest/guides/using-pagination-in-the-rest-api + - /rest/using-the-rest-api/getting-started-with-the-rest-api + - /rest/authentication/authenticating-to-the-rest-api + - /rest/using-the-rest-api/best-practices-for-using-the-rest-api + - /rest/using-the-rest-api/using-pagination-in-the-rest-api popular: - - /rest/overview/rate-limits-for-the-rest-api - - /rest/overview/api-versions - - /rest/overview/authenticating-to-the-rest-api - - /rest/overview/troubleshooting-the-rest-api + - /rest/using-the-rest-api/rate-limits-for-the-rest-api + - /rest/about-the-rest-api/api-versions + - /rest/authentication/authenticating-to-the-rest-api + - /rest/using-the-rest-api/troubleshooting-the-rest-api - /rest/guides/scripting-with-the-rest-api-and-javascript - - /rest/overview/keeping-your-api-credentials-secure + - /rest/authentication/keeping-your-api-credentials-secure guideCards: - /rest/guides/delivering-deployments - /rest/guides/using-the-rest-api-to-interact-with-checks - - /rest/guides/using-pagination-in-the-rest-api + - /rest/using-the-rest-api/using-pagination-in-the-rest-api changelog: label: 'api, apis' layout: product-landing redirect_from: - /v3 - /rest/reference + - /rest/overview + - /developers/overview versions: fpt: '*' ghes: '*' @@ -37,7 +37,9 @@ versions: ghec: '*' children: - /quickstart - - /overview + - /about-the-rest-api + - /using-the-rest-api + - /authentication - /guides - /actions - /activity diff --git a/content/rest/guides/best-practices-for-using-the-rest-api.md b/content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md similarity index 99% rename from content/rest/guides/best-practices-for-using-the-rest-api.md rename to content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md index 0cec5eaf87..e22bd61637 100644 --- a/content/rest/guides/best-practices-for-using-the-rest-api.md +++ b/content/rest/using-the-rest-api/best-practices-for-using-the-rest-api.md @@ -5,6 +5,7 @@ redirect_from: - /guides/best-practices-for-integrators - /v3/guides/best-practices-for-integrators - /rest/guides/best-practices-for-integrators + - /rest/guides/best-practices-for-using-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/getting-started-with-the-rest-api.md b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md similarity index 99% rename from content/rest/guides/getting-started-with-the-rest-api.md rename to content/rest/using-the-rest-api/getting-started-with-the-rest-api.md index 16c54db785..cb4726229e 100644 --- a/content/rest/guides/getting-started-with-the-rest-api.md +++ b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md @@ -1,6 +1,6 @@ --- title: Getting started with the REST API -shortTitle: Using the API +shortTitle: Getting started intro: 'Learn how to use the {% data variables.product.prodname_dotcom %} REST API.' versions: fpt: '*' @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/guides/getting-started-with-the-rest-api --- ## Introduction diff --git a/content/rest/overview/github-event-types.md b/content/rest/using-the-rest-api/github-event-types.md similarity index 99% rename from content/rest/overview/github-event-types.md rename to content/rest/using-the-rest-api/github-event-types.md index 958462a5ca..ec241435b1 100644 --- a/content/rest/overview/github-event-types.md +++ b/content/rest/using-the-rest-api/github-event-types.md @@ -7,6 +7,7 @@ redirect_from: - /developers/webhooks-and-events/events/github-event-types - /webhooks-and-events/events/github-event-types - /developers/webhooks-and-events/events + - /rest/overview/github-event-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/using-the-rest-api/index.md b/content/rest/using-the-rest-api/index.md new file mode 100644 index 0000000000..3a4755645b --- /dev/null +++ b/content/rest/using-the-rest-api/index.md @@ -0,0 +1,22 @@ +--- +title: Using the REST API +intro: 'Learn how to use the {% data variables.product.prodname_dotcom %} REST API, follow best practices, and troubleshoot problems.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +children: + - /getting-started-with-the-rest-api + - /rate-limits-for-the-rest-api + - /resources-in-the-rest-api + - /using-pagination-in-the-rest-api + - /libraries-for-the-rest-api + - /media-types + - /best-practices-for-using-the-rest-api + - /troubleshooting-the-rest-api + - /issue-event-types + - /github-event-types +--- diff --git a/content/rest/overview/issue-event-types.md b/content/rest/using-the-rest-api/issue-event-types.md similarity index 99% rename from content/rest/overview/issue-event-types.md rename to content/rest/using-the-rest-api/issue-event-types.md index 121c4fed8f..b36926590c 100644 --- a/content/rest/overview/issue-event-types.md +++ b/content/rest/using-the-rest-api/issue-event-types.md @@ -6,6 +6,7 @@ redirect_from: - /developers/webhooks-and-events/issue-event-types - /developers/webhooks-and-events/events/issue-event-types - /webhooks-and-events/events/issue-event-types + - /rest/overview/issue-event-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/libraries-for-the-rest-api.md b/content/rest/using-the-rest-api/libraries-for-the-rest-api.md similarity index 99% rename from content/rest/overview/libraries-for-the-rest-api.md rename to content/rest/using-the-rest-api/libraries-for-the-rest-api.md index 7fea288445..78f7705c9b 100644 --- a/content/rest/overview/libraries-for-the-rest-api.md +++ b/content/rest/using-the-rest-api/libraries-for-the-rest-api.md @@ -6,6 +6,7 @@ redirect_from: - /libraries - /v3/libraries - /rest/overview/libraries + - /rest/overview/libraries-for-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/media-types.md b/content/rest/using-the-rest-api/media-types.md similarity index 99% rename from content/rest/overview/media-types.md rename to content/rest/using-the-rest-api/media-types.md index a577a59d72..1e978757e3 100644 --- a/content/rest/overview/media-types.md +++ b/content/rest/using-the-rest-api/media-types.md @@ -3,6 +3,7 @@ title: Media types intro: Learn about media types for specifying the format of the data you want to consume. redirect_from: - /v3/media + - /rest/overview/media-types versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/rate-limits-for-the-rest-api.md b/content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md similarity index 99% rename from content/rest/overview/rate-limits-for-the-rest-api.md rename to content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md index 42b314e33f..6fcaab4c98 100644 --- a/content/rest/overview/rate-limits-for-the-rest-api.md +++ b/content/rest/using-the-rest-api/rate-limits-for-the-rest-api.md @@ -9,6 +9,8 @@ versions: ghec: '*' topics: - API +redirect_from: + - /rest/overview/rate-limits-for-the-rest-api --- {% ifversion ghes %} diff --git a/content/rest/overview/resources-in-the-rest-api.md b/content/rest/using-the-rest-api/resources-in-the-rest-api.md similarity index 99% rename from content/rest/overview/resources-in-the-rest-api.md rename to content/rest/using-the-rest-api/resources-in-the-rest-api.md index e6b887f102..8904961ba1 100644 --- a/content/rest/overview/resources-in-the-rest-api.md +++ b/content/rest/using-the-rest-api/resources-in-the-rest-api.md @@ -3,6 +3,7 @@ title: Resources in the REST API intro: 'Learn how to navigate the resources provided by the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.' redirect_from: - /rest/initialize-the-repo + - /rest/overview/resources-in-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/overview/troubleshooting-the-rest-api.md b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md similarity index 99% rename from content/rest/overview/troubleshooting-the-rest-api.md rename to content/rest/using-the-rest-api/troubleshooting-the-rest-api.md index 3a855334c8..75345d452a 100644 --- a/content/rest/overview/troubleshooting-the-rest-api.md +++ b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md @@ -5,6 +5,7 @@ intro: Learn how to diagnose and resolve common problems for the REST API. redirect_from: - /v3/troubleshooting - /rest/overview/troubleshooting + - /rest/overview/troubleshooting-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/rest/guides/using-pagination-in-the-rest-api.md b/content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md similarity index 99% rename from content/rest/guides/using-pagination-in-the-rest-api.md rename to content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md index 832d07bf15..c1487dd269 100644 --- a/content/rest/guides/using-pagination-in-the-rest-api.md +++ b/content/rest/using-the-rest-api/using-pagination-in-the-rest-api.md @@ -5,6 +5,7 @@ redirect_from: - /guides/traversing-with-pagination - /v3/guides/traversing-with-pagination - /rest/guides/traversing-with-pagination + - /rest/guides/using-pagination-in-the-rest-api versions: fpt: '*' ghes: '*' diff --git a/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md b/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md index 737c562018..1703e94558 100644 --- a/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md +++ b/content/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors.md @@ -16,11 +16,11 @@ shortTitle: Tax information ## W-9/W-8 tax forms -By law, {% data variables.product.prodname_dotcom %} is required by the U.S. Internal Revenue Service (IRS) to collect tax information from all U.S. and non-U.S. maintainers. These forms are held by {% data variables.product.prodname_dotcom %} and are not required to be submitted to the IRS. +By law, {% data variables.product.prodname_dotcom %} is required by the U.S. Internal Revenue Service (IRS) to collect tax information from all U.S. and non-U.S. maintainers. These forms are held by Stripe and are not required to be submitted to the IRS. ### W-9 (U.S.) -The information from W-9 tax forms helps {% data variables.product.prodname_dotcom %} use the correct Taxpayer Identification Number (TIN) to report income paid to you to the IRS in a 1099 form. +The information from W-9 tax forms helps Stripe use the correct Taxpayer Identification Number (TIN) to report income paid to you to the IRS in a 1099 form. If you are a taxpayer in the United States, you must submit a [W-9](https://www.irs.gov/forms-pubs/about-form-w-9) before you can publish your {% data variables.product.prodname_sponsors %} profile. @@ -28,9 +28,9 @@ If you are a taxpayer in the United States, you must submit a [W-9](https://www. W-8 BEN and W-8 BEN-E tax forms help {% data variables.product.prodname_dotcom %} determine the beneficial owner of an amount subject to withholding. -If you are a taxpayer in any other region besides the United States, you must submit a [W-8 BEN](https://www.irs.gov/pub/irs-pdf/fw8ben.pdf) (individual) or [W-8 BEN-E](https://www.irs.gov/forms-pubs/about-form-w-8-ben-e) (company) form before you can publish your {% data variables.product.prodname_sponsors %} profile. For more information, see "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account#submitting-your-tax-information)" and "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization#submitting-your-tax-information)." {% data variables.product.prodname_dotcom %} will send you the appropriate forms, notify you when they are due, and give you a reasonable amount of time to complete and send in the forms. +If you are a taxpayer in any other region besides the United States, you must submit a [W-8 BEN](https://www.irs.gov/pub/irs-pdf/fw8ben.pdf) (individual) or [W-8 BEN-E](https://www.irs.gov/forms-pubs/about-form-w-8-ben-e) (company) form before you can publish your {% data variables.product.prodname_sponsors %} profile. For more information, see "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account#submitting-your-tax-information)" and "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization#submitting-your-tax-information)." Stripe will send you the appropriate forms, notify you when they are due, and give you a reasonable amount of time to complete and send in the forms. -If you have been assigned an incorrect tax form, contact us through the {% data variables.contact.contact_support_portal %} to get reassigned the correct one for your situation. +If you have been assigned an incorrect tax form, you can contact Stripe to get reassigned the correct one for your situation. For more information, see [Contact Us](https://support.stripe.com/contact/email?topic=connect) on the Stripe Support site. ### Tax identification numbers @@ -61,7 +61,7 @@ If you are a taxpayer in the United States and earn more than 600 US dollars in ## Sales tax -GitHub is providing information to assist you in calculating your sales tax obligations. This information is not personalized to your country or tax situation and we recommend you talk to a professional to understand your specific obligations. However, we'd like to provide some high-level information to help you understand the general principles of digital sales tax. +{% data variables.product.prodname_dotcom %} is providing information to assist you in calculating your sales tax obligations. This information is not personalized to your country or tax situation and we recommend you talk to a professional to understand your specific obligations. However, we'd like to provide some high-level information to help you understand the general principles of digital sales tax. In most countries around the world, sales tax for digital transactions is based on the location of the recipient, not on the seller. For example, if you are a maintainer in the United States and you provide a taxable benefit to a Sponsor in Germany, German sales tax would apply. @@ -73,4 +73,4 @@ In the EU and most other countries and regions, B2C sales are subject to sales t ## Further reading -- [Viewing your sponsors and sponsorships](/sponsors/receiving-sponsorships-through-github-sponsors/viewing-your-sponsors-and-sponsorships) +- "[AUTOTITLE](/sponsors/receiving-sponsorships-through-github-sponsors/viewing-your-sponsors-and-sponsorships)" diff --git a/src/code-scanning/README.md b/src/code-scanning/README.md new file mode 100644 index 0000000000..2dbadbf130 --- /dev/null +++ b/src/code-scanning/README.md @@ -0,0 +1,64 @@ +# Code scanning query tables + +This nascent pipeline creates autogenerated documentation docs.github.com from the query suites included with the [CodeQL bundle](https://github.com/github/codeql-action/releases). + +The pipeline is used to generate Markdown tables that are stored in reusable files and used in article pages on the docs.github.com site. + +## How does it work + +```mermaid +--- +title: "Process for generating Code scanning query tables" +--- +flowchart TB + +accDescr: A flow chart describing how the automation generates documentation for code scanning queries. + + start([Start]) --> checkout[Checkout the codeql repository] + start --- download[Download the CodeQL CLI] + checkout --- query-suites[fa:fa-file Query suites *.qls] + query-suites ---> generate[Generate tables:src/code-scanning/scripts/generate-code-scanning-query-lists.ts] + download --- codeql-cli[CodeQL CLI: codeql.exe] + codeql-cli --> generate + generate --- markdown[fa:fa-file Reusable files *.md] + markdown --> pr[Generate a PR overwriting:data/reusables/code-scanning/codeql-query-tables/*.md] + pr --> finish([End]) + +%% Define styles + classDef start fill:#1AAC9D, color:white + classDef action fill:#6557F6, color:white + classDef finish fill:#F8C324, color:white + classDef file fill:#ddd + +%% Assign styles + class start start; + class finish finish; + class checkout,download,generate,pr action; + class markdown,query-suites,codeql-cli file; +``` + +A [workflow](.github/workflows/generate-code-scanning-query-lists.yml) is used to trigger the automation of the code scanning query tables documentation. The workflow is manually triggered by a member of the GitHub Docs team approximately every two weeks to align to releases of the CodeQL CLI. The workflow takes an input parameter that specifies the branch to pull the source files from in the semmle-code repo. If the branch input is omitted, the workflow will default to the `main` branch. + +The workflow runs the `npm run generate-code-scanning-query-list` script, which generates Markdown files under `data/reusables/code-scanning/codeql-query-tables`. + +The workflow automatically creates a new pull request with the changes and the label `codeql-query-tables`. + +## Local development + +To run the pipeline locally, see the comments in the [script](scripts/generate-code-scanning-query-list.ts). + +## Content team + +The content writers can use the reusables in any content article. They have no need to make any changes to the script unless additional built-in query suites are added. + +## How to get help + +### For workflow and script problems + +Slack: `#docs-engineering` +Repo: `github/docs-engineering` + +### For CodeQL repository and CLI problems + +Slack: `#code-scanning-internal-dx` +Repo: `github/code-scanning-internal-dx-team` diff --git a/src/fixtures/fixtures/content/rest/overview/about-githubs-apis.md b/src/fixtures/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md similarity index 100% rename from src/fixtures/fixtures/content/rest/overview/about-githubs-apis.md rename to src/fixtures/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md diff --git a/src/fixtures/fixtures/content/rest/overview/index.md b/src/fixtures/fixtures/content/rest/about-the-rest-api/index.md similarity index 84% rename from src/fixtures/fixtures/content/rest/overview/index.md rename to src/fixtures/fixtures/content/rest/about-the-rest-api/index.md index 3562c0e096..36340c4bbd 100644 --- a/src/fixtures/fixtures/content/rest/overview/index.md +++ b/src/fixtures/fixtures/content/rest/about-the-rest-api/index.md @@ -8,5 +8,5 @@ versions: ghae: '*' ghec: '*' children: - - /about-githubs-apis + - /comparing-githubs-rest-api-and-graphql-api --- diff --git a/src/fixtures/fixtures/content/rest/index.md b/src/fixtures/fixtures/content/rest/index.md index 678acad855..e591e8931b 100644 --- a/src/fixtures/fixtures/content/rest/index.md +++ b/src/fixtures/fixtures/content/rest/index.md @@ -5,10 +5,10 @@ intro: >- To create integrations, retrieve data, and automate your workflows, build with the {% data variables.product.prodname_dotcom %} REST API. introLinks: - quickstart: /rest/overview + quickstart: /rest featuredLinks: popular: - - /rest/overview/about-githubs-apis + - /rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api changelog: label: 'api, apis' layout: product-landing @@ -18,7 +18,7 @@ versions: ghae: '*' ghec: '*' children: - - /overview + - /about-the-rest-api - /actions --- diff --git a/src/fixtures/fixtures/rest-redirects.json b/src/fixtures/fixtures/rest-redirects.json index 9178ef1db6..94540bc4a2 100644 --- a/src/fixtures/fixtures/rest-redirects.json +++ b/src/fixtures/fixtures/rest-redirects.json @@ -393,7 +393,7 @@ "/v3/actions/workflow-jobs": "/en/rest/actions/workflow-jobs", "/v3/actions/workflow-runs": "/en/rest/actions/workflow-runs", "/v3/actions/workflows": "/en/rest/actions/workflows", - "/v3/activity/event_types": "/en/rest/overview/github-event-types", + "/v3/activity/event_types": "/en/rest/using-the-rest-api/github-event-types", "/v3/activity/events/types": "/en/webhooks/webhook-events-and-payloads", "/v3/activity/events": "/en/rest/activity/events", "/v3/activity/feeds": "/en/rest/activity/feeds", @@ -401,12 +401,12 @@ "/v3/activity/notifications": "/en/rest/activity/notifications", "/v3/activity/starring": "/en/rest/activity/starring", "/v3/activity/watching": "/en/rest/activity/watching", - "/v3/apps/available-endpoints": "/en/rest/overview/endpoints-available-for-github-app-installation-access-tokens", + "/v3/apps/available-endpoints": "/en/rest/authentication/endpoints-available-for-github-app-installation-access-tokens", "/v3/apps": "/en/rest/apps", "/v3/apps/installations": "/en/rest/apps/installations", "/v3/apps/marketplace": "/en/rest/apps/marketplace", "/v3/apps/oauth_applications": "/en/rest/apps/oauth-applications", - "/v3/apps/permissions": "/en/rest/overview/permissions-required-for-github-apps", + "/v3/apps/permissions": "/en/rest/authentication/permissions-required-for-github-apps", "/v3/checks": "/en/rest/checks", "/v3/checks/runs": "/en/rest/checks/runs", "/v3/checks/suites": "/en/rest/checks/suites", @@ -440,7 +440,7 @@ "/v3/issues/comments": "/en/rest/issues/comments", "/v3/issues/events": "/en/rest/issues/events", "/v3/issues": "/en/rest/issues", - "/v3/issues/issue-event-types": "/en/rest/overview/issue-event-types", + "/v3/issues/issue-event-types": "/en/rest/using-the-rest-api/issue-event-types", "/v3/issues/labels": "/en/rest/issues/labels", "/v3/issues/milestones": "/en/rest/issues/milestones", "/v3/issues/timeline": "/en/rest/issues/timeline", diff --git a/src/fixtures/tests/playwright-a11y.spec.ts b/src/fixtures/tests/playwright-a11y.spec.ts index 6813db989d..44957ed7e5 100644 --- a/src/fixtures/tests/playwright-a11y.spec.ts +++ b/src/fixtures/tests/playwright-a11y.spec.ts @@ -13,7 +13,7 @@ const pages: { [key: string]: string } = { productLanding: '/code-security', restCategory: '/rest/actions/artifacts', restLanding: '/rest', - restOverview: '/rest/overview/about-githubs-apis', + restOverview: '/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api', search: '/search?q=playwright', switchers: '/get-started/liquid/tool-platform-switcher', tableWithHeaders: '/get-started/liquid/table-row-headers', diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 81ea3eedec..4ef0ef64dc 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -1,5 +1,5 @@ { - "targetDirectory": "content/rest/overview", + "targetDirectory": "content/rest/authentication", "pages": { "server-to-server-rest": { "frontmatterDefaults": { @@ -11,7 +11,7 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-github-app-installation-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.md" }, "user-to-server-rest": { "frontmatterDefaults": { @@ -23,7 +23,7 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-github-app-user-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-github-app-user-access-tokens.md" }, "server-to-server-permissions": { "frontmatterDefaults": { @@ -35,21 +35,21 @@ }, "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/permissions-required-for-github-apps.md" + "targetFilename": "content/rest/authentication/permissions-required-for-github-apps.md" }, "fine-grained-pat": { "frontmatterDefaults": { "versions": "data/features/pat-v2.yml", "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md" + "targetFilename": "content/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.md" }, "fine-grained-pat-permissions": { "frontmatterDefaults": { "versions": "data/features/pat-v2.yml", "autogenerated": "github-apps" }, - "targetFilename": "content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md" + "targetFilename": "content/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.md" } }, "api-versions": { diff --git a/src/pages/[versionId]/rest/overview/[...restPage].tsx b/src/pages/[versionId]/rest/about-the-rest-api/[...restPage].tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/[...restPage].tsx rename to src/pages/[versionId]/rest/about-the-rest-api/[...restPage].tsx diff --git a/src/pages/[versionId]/rest/overview/index.tsx b/src/pages/[versionId]/rest/about-the-rest-api/index.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/index.tsx rename to src/pages/[versionId]/rest/about-the-rest-api/index.tsx diff --git a/src/pages/[versionId]/rest/authentication/[...restPage].tsx b/src/pages/[versionId]/rest/authentication/[...restPage].tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/authentication/[...restPage].tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-installation-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-installation-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-installation-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-user-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-user-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/endpoints-available-for-github-app-user-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/endpoints-available-for-github-app-user-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/authentication/index.tsx b/src/pages/[versionId]/rest/authentication/index.tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/authentication/index.tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.tsx b/src/pages/[versionId]/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.tsx rename to src/pages/[versionId]/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens.tsx diff --git a/src/pages/[versionId]/rest/overview/permissions-required-for-github-apps.tsx b/src/pages/[versionId]/rest/authentication/permissions-required-for-github-apps.tsx similarity index 100% rename from src/pages/[versionId]/rest/overview/permissions-required-for-github-apps.tsx rename to src/pages/[versionId]/rest/authentication/permissions-required-for-github-apps.tsx diff --git a/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx b/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/using-the-rest-api/[...restPage].tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/pages/[versionId]/rest/using-the-rest-api/index.tsx b/src/pages/[versionId]/rest/using-the-rest-api/index.tsx new file mode 100644 index 0000000000..3544355f3f --- /dev/null +++ b/src/pages/[versionId]/rest/using-the-rest-api/index.tsx @@ -0,0 +1 @@ +export { default, getServerSideProps } from '../../[productId]/index' diff --git a/src/redirects/lib/static/redirect-exceptions.txt b/src/redirects/lib/static/redirect-exceptions.txt index 9b4c05dd10..030054efae 100644 --- a/src/redirects/lib/static/redirect-exceptions.txt +++ b/src/redirects/lib/static/redirect-exceptions.txt @@ -11,7 +11,7 @@ - /admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise # FPT versioning was removed as part of github/docs-content#5166 -/rest/overview/resources-in-the-rest-api +/rest/using-the-rest-api/resources-in-the-rest-api - /rest/overview/api-previews /enterprise-server@latest/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment diff --git a/src/rest/lib/config.js b/src/rest/lib/config.js index aab2e45105..f72f164bc9 100644 --- a/src/rest/lib/config.js +++ b/src/rest/lib/config.js @@ -5,9 +5,15 @@ // in the JSON file. // These paths must match the paths in src/pages/[versionId]/rest -export const nonAutomatedRestPaths = ['/rest/guides', '/rest/quickstart', '/rest/overview'] +export const nonAutomatedRestPaths = [ + '/rest/quickstart', + '/rest/about-the-rest-api', + '/rest/using-the-rest-api', + '/rest/authentication', + '/rest/guides', +] // This path is used to set the page in the // src/rest/components/ApiVersionPicker.tsx component. That component // has a link to the page that describes what api versioning is. -export const apiVersionPath = '/rest/overview/api-versions' +export const apiVersionPath = '/rest/about-the-rest-api/api-versions' diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 7bd8e350ff..c156cc2e61 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -34,10 +34,12 @@ "content/rest/index.md": { "startsWith": [ "quickstart", - "overview", + "about-the-rest-api", + "using-the-rest-api", + "authentication", "guides" ] } }, "sha": "1fd29675070876e3278e71b47f4f2606601bc698" -} \ No newline at end of file +} diff --git a/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md b/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md new file mode 100644 index 0000000000..c7af7b15be --- /dev/null +++ b/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md @@ -0,0 +1,13 @@ +--- +title: About GitHub's APIs +intro: 'Gentle and fun intro about APIs' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +## About {% data variables.product.company_short %}'s APIs + +First paragraph right here. diff --git a/tests/fixtures/content/rest/about-the-rest-api/index.md b/tests/fixtures/content/rest/about-the-rest-api/index.md new file mode 100644 index 0000000000..36340c4bbd --- /dev/null +++ b/tests/fixtures/content/rest/about-the-rest-api/index.md @@ -0,0 +1,12 @@ +--- +title: REST API overview +shortTitle: Overview +intro: 'Learn about resources, libraries, previews and troubleshooting for {% data variables.product.prodname_dotcom %}''s REST API.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /comparing-githubs-rest-api-and-graphql-api +--- From d48ad66dcb44dd688bd58d3bde954d3cff9f309b Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 12 Dec 2023 09:07:59 -0500 Subject: [PATCH 14/55] Use retrying Octokit to for GraphQL sync (#47656) --- package-lock.json | 25 +++++++++++++++++-------- package.json | 1 + src/graphql/scripts/sync.js | 8 +++----- src/workflows/git-utils.js | 12 ++++++------ src/workflows/github.js | 9 +++++++++ 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9464034466..a158cc4b0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@elastic/elasticsearch": "8.10.0", "@github/failbot": "0.8.3", + "@octokit/plugin-retry": "6.0.1", "@octokit/request-error": "5.0.1", "@primer/behaviors": "^1.3.5", "@primer/css": "^21.0.7", @@ -2428,7 +2429,6 @@ "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==", - "dev": true, "engines": { "node": ">= 18" } @@ -2437,7 +2437,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.1.tgz", "integrity": "sha512-lyeeeZyESFo+ffI801SaBKmCfsvarO+dgV8/0gD8u1d87clbEdWsP5yC+dSj3zLhb2eIf5SJrn6vDz9AheETHw==", - "dev": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.0.0", @@ -2455,7 +2454,6 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.1.tgz", "integrity": "sha512-hRlOKAovtINHQPYHZlfyFwaM8OyetxeoC81lAkBy34uLb8exrZB50SQdeW3EROqiY9G9yxQTpp5OHTV54QD+vA==", - "dev": true, "dependencies": { "@octokit/types": "^12.0.0", "is-plain-object": "^5.0.0", @@ -2469,7 +2467,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", - "dev": true, "dependencies": { "@octokit/request": "^8.0.1", "@octokit/types": "^12.0.0", @@ -2514,11 +2511,26 @@ "@octokit/core": ">=5" } }, + "node_modules/@octokit/plugin-retry": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", + "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, "node_modules/@octokit/request": { "version": "8.1.4", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.4.tgz", "integrity": "sha512-M0aaFfpGPEKrg7XoA/gwgRvc9MSXHRO2Ioki1qrPDbl1e9YhjIwVoHE7HIKmv/m3idzldj//xBujcFNqGX6ENA==", - "dev": true, "dependencies": { "@octokit/endpoint": "^9.0.0", "@octokit/request-error": "^5.0.0", @@ -3918,7 +3930,6 @@ }, "node_modules/before-after-hook": { "version": "2.2.2", - "dev": true, "license": "Apache-2.0" }, "node_modules/big-integer": { @@ -8464,7 +8475,6 @@ }, "node_modules/is-plain-object": { "version": "5.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15748,7 +15758,6 @@ }, "node_modules/universal-user-agent": { "version": "6.0.0", - "dev": true, "license": "ISC" }, "node_modules/universalify": { diff --git a/package.json b/package.json index df86c7f317..f52059695c 100644 --- a/package.json +++ b/package.json @@ -228,6 +228,7 @@ "dependencies": { "@elastic/elasticsearch": "8.10.0", "@github/failbot": "0.8.3", + "@octokit/plugin-retry": "6.0.1", "@octokit/request-error": "5.0.1", "@primer/behaviors": "^1.3.5", "@primer/css": "^21.0.7", diff --git a/src/graphql/scripts/sync.js b/src/graphql/scripts/sync.js index 4f56fd497e..2a36687439 100755 --- a/src/graphql/scripts/sync.js +++ b/src/graphql/scripts/sync.js @@ -11,11 +11,9 @@ import processUpcomingChanges from './utils/process-upcoming-changes.js' import processSchemas from './utils/process-schemas.js' import { prependDatedEntry, createChangelogEntry } from './build-changelog.js' -const graphqlDataDir = path.join(process.cwd(), 'data/graphql') -const graphqlStaticDir = path.join(process.cwd(), 'src/graphql/data') -const dataFilenames = JSON.parse( - await fs.readFile(path.join(process.cwd(), './src/graphql/scripts/utils/data-filenames.json')), -) +const graphqlDataDir = 'data/graphql' +const graphqlStaticDir = 'src/graphql/data' +const dataFilenames = JSON.parse(await fs.readFile('src/graphql/scripts/utils/data-filenames.json')) // check for required PAT if (!process.env.GITHUB_TOKEN) { diff --git a/src/workflows/git-utils.js b/src/workflows/git-utils.js index 1ff934fb6c..28f18e6261 100644 --- a/src/workflows/git-utils.js +++ b/src/workflows/git-utils.js @@ -4,8 +4,8 @@ import fs from 'fs/promises' import { RequestError } from '@octokit/request-error' -import Github from './github.js' -const github = Github() +import { retryingGithub } from './github.js' +const github = retryingGithub() // https://docs.github.com/rest/reference/git#get-a-reference export async function getCommitSha(owner, repo, ref) { @@ -17,7 +17,7 @@ export async function getCommitSha(owner, repo, ref) { }) return data.object.sha } catch (err) { - console.log('error getting tree') + console.log('error getting commit sha', owner, repo, ref) throw err } } @@ -35,7 +35,7 @@ export async function hasMatchingRef(owner, repo, ref) { if (err instanceof RequestError && err.status === 404) { return false } - console.log('error getting tree') + console.log('error getting matching ref', owner, repo, ref) throw err } } @@ -50,7 +50,7 @@ export async function getTreeSha(owner, repo, commitSha) { }) return data.tree.sha } catch (err) { - console.log('error getting tree') + console.log('error getting tree sha', owner, repo, commitSha) throw err } } @@ -70,7 +70,7 @@ export async function getTree(owner, repo, ref) { // skip actions/changes files return data.tree } catch (err) { - console.log('error getting tree') + console.log('error getting tree', owner, repo, ref) throw err } } diff --git a/src/workflows/github.js b/src/workflows/github.js index d9d847010a..f324047e7b 100644 --- a/src/workflows/github.js +++ b/src/workflows/github.js @@ -1,11 +1,14 @@ #!/usr/bin/env node import dotenv from 'dotenv' import { Octokit } from '@octokit/rest' +import { retry } from '@octokit/plugin-retry' if (!process.env.GITHUB_TOKEN) { dotenv.config() } +const RetryingOctokit = Octokit.plugin(retry) + // this module needs to work in development, production, and GitHub Actions // // GITHUB_TOKEN comes from one of the following sources: @@ -20,3 +23,9 @@ export default function github() { auth: `token ${apiToken}`, }) } + +export function retryingGithub() { + return new RetryingOctokit({ + auth: `token ${apiToken}`, + }) +} From 88bbb8212d0bac4790fc4ed80c8c986ecc03a7c0 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 09:11:38 -0500 Subject: [PATCH 15/55] Repo sync (#47697) Co-authored-by: Maurice Co-authored-by: Sarah Edwards Co-authored-by: Chad Faragher Co-authored-by: Lili <92824518+queenofcorgis@users.noreply.github.com> Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> Co-authored-by: Jess Hosman <1183847+jhosman@users.noreply.github.com> Co-authored-by: Rachael Sewell Co-authored-by: Cory Calahan Co-authored-by: Daniel Adams Co-authored-by: github-actions Co-authored-by: Laura Coursen Co-authored-by: Matt Pollard Co-authored-by: Vanessa Co-authored-by: Felicity Chapman Co-authored-by: Peter Bengtsson Co-authored-by: hubwriter Co-authored-by: Peter Bengtsson --- .../adding-your-project-to-a-repository.md | 2 +- ...utside-collaborators-to-repositories-in-your-organization.md | 2 ++ .../using-the-rest-api/getting-started-with-the-rest-api.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md index bb00a9a802..38a469c249 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-repository.md @@ -17,6 +17,6 @@ In order for repository members to see a project listed in a repository, they mu 1. On {% data variables.product.prodname_dotcom %}, navigate to the main page of your repository. 1. Click {% octicon "table" aria-hidden="true" %} **Projects**. ![Screenshot showing a repository's tabs. The "Projects" tab is highlighted with an orange outline.](/assets/images/help/projects-v2/repo-tab.png) -1. Click **Link project**. +1. Click **Link a project**. 1. In the search bar that appears, search for projects that are owned by the same user or organization that owns the repository. 1. Click on a project to list it in your repository. diff --git a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md index ece68a3301..edf00023dc 100644 --- a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization.md @@ -44,6 +44,8 @@ If your organization requires two-factor authentication, all outside collaborato Outside collaborators cannot be added to an {% data variables.enterprise.prodname_emu_enterprise %}. However, you can grant limited access to users outside your enterprise using the guest collaborator role. For more information, see "[AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/roles-in-an-enterprise#guest-collaborators)." {% endif %} +Outside collaborators cannot be added to a team, team membership is restricted to members of the organization. + ## Adding outside collaborators to a repository You can give outside collaborators access to a repository in your repository settings. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository#inviting-a-team-or-person)." diff --git a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md index 39843d7344..cb4726229e 100644 --- a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md +++ b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md @@ -36,7 +36,7 @@ The REST API reference documentation describes the HTTP method, path, and parame The HTTP method of an endpoint defines the type of action it performs on a given resource. Some common HTTP methods are `GET`, `POST`, `DELETE`, and `PATCH`. The REST API reference documentation provides the HTTP method for every endpoint. -For example, the HTTP method for the ["List repository issues" endpoint]([AUTOTITLE](/rest/issues/issues#list-repository-issues) is `GET`." +For example, the HTTP method for the ["List repository issues" endpoint](/rest/issues/issues#list-repository-issues) is `GET`." Where possible, the {% data variables.product.product_name %} REST API strives to use an appropriate HTTP method for each action. From bcbef8d56e2b85e93baefe48a48600323f0df297 Mon Sep 17 00:00:00 2001 From: Simon Garcia J Date: Tue, 12 Dec 2023 07:26:49 -0800 Subject: [PATCH 16/55] Update configuring-the-referrer-policy-for-your-enterprise.md (#30177) Co-authored-by: Matt Pollard --- .../configuring-the-referrer-policy-for-your-enterprise.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/admin/configuration/hardening-security-for-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md b/content/admin/configuration/hardening-security-for-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md index 3a7b734bb6..995a13dc40 100644 --- a/content/admin/configuration/hardening-security-for-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md +++ b/content/admin/configuration/hardening-security-for-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md @@ -34,5 +34,6 @@ You can enable the `same-origin` referrer policy to instruct modern browsers to {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} +1. Under {% octicon "gear" aria-hidden="true" %} **Settings**, click **Authentication security**. 1. Under "User Agent Referrer Policy", select **Enable same origin referrer policy for all organizations**. 1. Click **Save**. From 3cd65035c8996ed608734c6546d82c0780bf1539 Mon Sep 17 00:00:00 2001 From: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:25:35 +0000 Subject: [PATCH 17/55] Adds billing endpoint to excluded links (#47684) --- src/links/lib/excluded-links.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/links/lib/excluded-links.js b/src/links/lib/excluded-links.js index 0b8edc85f3..78df21d4ed 100644 --- a/src/links/lib/excluded-links.js +++ b/src/links/lib/excluded-links.js @@ -23,6 +23,7 @@ export default [ // These links require auth. regex('https://github.com/settings/profile'), + regex('https://github.com/settings/billing'), regex('https://github.com/github/docs/edit'), regex('https://github.com/github/insights-releases/releases/latest'), regex('https://classroom.github.com/videos'), From b9a49e649e9850227a528ca72afc1df29d21c5dd Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 11:33:08 -0500 Subject: [PATCH 18/55] Update audit log event data (#47704) --- src/audit-logs/data/ghec/enterprise.json | 20 ++++++++++++++++++++ src/audit-logs/lib/config.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/audit-logs/data/ghec/enterprise.json b/src/audit-logs/data/ghec/enterprise.json index c73ae6ccb2..0c93324edf 100644 --- a/src/audit-logs/data/ghec/enterprise.json +++ b/src/audit-logs/data/ghec/enterprise.json @@ -109,6 +109,11 @@ "description": "A billing manager was added to an enterprise.", "docs_reference_links": "N/A" }, + { + "action": "business.add_billing_viewer", + "description": "N/A", + "docs_reference_links": "N/A" + }, { "action": "business.add_organization", "description": "An organization was added to an enterprise.", @@ -159,6 +164,11 @@ "description": "An invitation for someone to be an billing manager of an enterprise was canceled.", "docs_reference_links": "N/A" }, + { + "action": "business.cancel_billing_viewer_invitation", + "description": "N/A", + "docs_reference_links": "N/A" + }, { "action": "business.cancel_trial", "description": "The trial of GitHub Enterprise Cloud was cancelled.", @@ -294,6 +304,11 @@ "description": "An invitation for someone to be an billing manager of an enterprise was sent.", "docs_reference_links": "N/A" }, + { + "action": "business.invite_billing_viewer", + "description": "N/A", + "docs_reference_links": "N/A" + }, { "action": "business.members_can_update_protected_branches.clear", "description": "An enterprise owner unset a policy for whether members of an enterprise can update protected branches on repositories for individual organizations. Organization owners can choose whether to allow updating protected branches settings.", @@ -349,6 +364,11 @@ "description": "A billing manager was removed from an enterprise.", "docs_reference_links": "N/A" }, + { + "action": "business.remove_billing_viewer", + "description": "N/A", + "docs_reference_links": "N/A" + }, { "action": "business.remove_member", "description": "A member was removed from an enterprise.", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index 8bad4abcc9..6d64b9b8bc 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -1,4 +1,4 @@ { "apiOnlyEventsAdditionalDescription": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", - "sha": "913efe44fbf62baf32088f71698cc1d7efeffdef" + "sha": "24d023f9d4570cddd3c78bdc4cae2a52aa420924" } \ No newline at end of file From 858d723f1105dd097686ffa789eb53c7a2fc5770 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 12 Dec 2023 12:30:59 -0500 Subject: [PATCH 19/55] Display combined file size in output (#47696) --- .../delete-orphan-translation-files.ts | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/workflows/delete-orphan-translation-files.ts b/src/workflows/delete-orphan-translation-files.ts index 7b52075c33..7ecc0bdb77 100644 --- a/src/workflows/delete-orphan-translation-files.ts +++ b/src/workflows/delete-orphan-translation-files.ts @@ -46,33 +46,45 @@ main(program.args[0], { }) function main(root: string, options: Options) { - let deleted = 0 - let countInSync = 0 - let countOrphan = 0 + const deleted: number[] = [] + const inSync: number[] = [] + const orphan: number[] = [] for (const filePath of getContentAndDataFiles(root)) { const relPath = path.relative(root, filePath) + const size = fs.statSync(filePath).size if (!fs.existsSync(path.join(ROOT, relPath))) { - countOrphan++ - if (deleted < options.max) { + orphan.push(size) + if (deleted.length < options.max) { if (options.dryRun) { console.log('DELETE', filePath) } else { fs.rmSync(filePath) console.log('DELETED', filePath) } - deleted++ + deleted.push(size) - if (deleted >= options.max) { + if (deleted.length >= options.max) { console.log(`Max. number (${options.max}) of files deleted`) } } } else { - countInSync++ + inSync.push(size) } } - console.log(`In conclusion, deleted ${deleted.toLocaleString()} files.`) + const sumDeleted = deleted.reduce((a, b) => a + b, 0) console.log( - `There are ${countInSync.toLocaleString()} files in sync and ${countOrphan.toLocaleString()} orphan files in ${root}`, + `In conclusion, deleted ${deleted.length.toLocaleString()} files (${formatFileSize( + sumDeleted, + )}).`, + ) + const sumInSync = inSync.reduce((a, b) => a + b, 0) + const sumOrphan = orphan.reduce((a, b) => a + b, 0) + console.log( + `There are ${inSync.length.toLocaleString()} files (${formatFileSize( + sumInSync, + )}) in sync and ${orphan.length.toLocaleString()} orphan files (${formatFileSize( + sumOrphan, + )}) in ${root}`, ) } @@ -82,3 +94,13 @@ function getContentAndDataFiles(root: string) { ...walkFiles(path.join(root, 'data'), ['.md', '.yml']), ] } + +function formatFileSize(bytes: number) { + if (bytes < 1024) { + return `${bytes} B` + } + if (bytes < 1024 * 1024) { + return `${(bytes / 1024).toFixed(1)} kB` + } + return `${(bytes / 1024 / 1024).toFixed(1)} MB` +} From d6145e0e965c290cda172740400941437b05bd05 Mon Sep 17 00:00:00 2001 From: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Date: Tue, 12 Dec 2023 17:52:27 +0000 Subject: [PATCH 20/55] Adds "Evaluate code scanning" article (#46478) Co-authored-by: Felicity Chapman --- ...efault-setup-for-code-scanning-at-scale.md | 4 +-- ...iguring-default-setup-for-code-scanning.md | 14 ++++---- ...luating-default-setup-for-code-scanning.md | 36 +++++++++++++++++++ .../enabling-code-scanning/index.md | 1 + .../about-code-scanning.md | 1 + ...query-suites.md => codeql-query-suites.md} | 5 +-- ...ing-your-configuration-of-default-setup.md | 2 +- .../index.md | 2 +- 8 files changed, 53 insertions(+), 12 deletions(-) create mode 100644 content/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning.md rename content/code-security/code-scanning/managing-your-code-scanning-configuration/{built-in-codeql-query-suites.md => codeql-query-suites.md} (97%) diff --git a/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale.md b/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale.md index e06c000da6..045e343def 100644 --- a/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale.md +++ b/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale.md @@ -66,7 +66,7 @@ Through the "Code security and analysis" page of your organization's settings, y 1. Click **Settings** next to your organization. 1. Click **Code security & analysis**. 1. Click **Enable all** next to "{% data variables.product.prodname_code_scanning_caps %}".{% ifversion bulk-code-scanning-query-suite%} -1. In the "Query suites" section of the "Enable {% data variables.product.prodname_code_scanning %} default setup" dialog box displayed, select the query suite your configuration of default setup will run. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)." +1. In the "Query suites" section of the "Enable {% data variables.product.prodname_code_scanning %} default setup" dialog box displayed, select the query suite your configuration of default setup will run. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites)." 1. To enable your configuration of default setup, click **Enable for eligible repositories**. 1. Optionally, to recommend the "Extended" query suite throughout your organization when enabling default setup, select "Recommend the extended query suite for repositories enabling default setup."{% else %} 1. In the "Enable {% data variables.product.prodname_code_scanning %} for eligible repositories" dialog box displayed, click **Enable for eligible repositories** to enable your configuration of default setup.{% endif %} @@ -119,7 +119,7 @@ You can select all of the displayed repositories, or a subset of them, and enabl 1. In the list of repositories, select each repository you want to enable {% data variables.product.prodname_code_scanning %} for. To select all repositories on the page, click the checkbox next to **NUMBER Active**. To select all repositories that match the current search, click the checkbox next to **NUMBER Active** and then click **Select all NUMBER repos**. 1. Click **Security settings** next to **NUMBER selected**. 1. In the side panel, in the "{% data variables.product.prodname_codeql %} Default Setup" section, select **No change**, then click **Enable**.{% ifversion bulk-code-scanning-query-suite %} -1. Optionally, to choose a different query suite than your organization's default query suite, select **Query suite: SUITE NAME**, then click the query suite your configuration of default setup should use. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)."{% endif %} +1. Optionally, to choose a different query suite than your organization's default query suite, select **Query suite: SUITE NAME**, then click the query suite your configuration of default setup should use. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites)."{% endif %} 1. To confirm the enablement of {% data variables.product.prodname_code_scanning %} for the selected repositories, click **Apply changes NUMBER**. Alternatively, to select or deselect more repositories for {% data variables.product.prodname_code_scanning %} enablement, click {% octicon "x" aria-label="Close" %} to close the panel without applying your changes. {% note %} diff --git a/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning.md b/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning.md index 83fdcd6357..d85931648a 100644 --- a/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning.md +++ b/content/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning.md @@ -38,10 +38,6 @@ Default setup for {% data variables.product.prodname_code_scanning %} is the qui {% endnote %} {% endif %} -You can enable the automatically selected configuration of default setup to start scanning your code as soon as possible, or you can customize aspects of the configuration to better meet your {% data variables.product.prodname_code_scanning %} needs. If you choose to customize the configuration yourself, you can select:{% ifversion code-scanning-without-workflow-310 %} -- the languages default setup will analyze.{% endif %} -- the query suite default setup will run. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)." - {% ifversion org-enable-code-scanning %}You can also enable default setup for multiple or all repositories in an organization at the same time. For information on bulk enablement, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale)."{% endif %} If you need more granular control over your {% data variables.product.prodname_code_scanning %} configuration, you should instead configure advanced setup. For more information, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)." @@ -64,6 +60,10 @@ Enterprise owners, organization and repository administrators can add self-hoste You can use default setup if your repository includes languages that aren't supported by {% data variables.product.prodname_codeql %}, such as R. For more information on {% data variables.product.prodname_codeql %}-supported languages, see "[AUTOTITLE](/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-codeql)." +### Customizing default setup + +We recommend that you start using {% data variables.product.prodname_code_scanning %} with default setup. After you've initially configured default setup, you can evaluate {% data variables.product.prodname_code_scanning %} to see how it's working for you. If you find that something isn't working as you expect, you can customize default setup to better meet your code security needs. For more information, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning)." + {% ifversion code-scanning-default-setup-recommended-languages and code-scanning-without-workflow-310 %} ### About adding {% ifversion code-scanning-default-setup-automatic-311 %}non-compiled and {% endif %}compiled languages to your default setup @@ -122,7 +122,7 @@ When you initially configure default setup for {% data variables.product.prodnam ![Screenshot of the modal for default setup. A button labeled "Default", with an arrow indicating a dropdown menu, is outlined in dark orange.](/assets/images/help/security/default-setup-query-suite-dropdown.png) - If you choose the **Extended** query suite, your {% data variables.product.prodname_code_scanning %} configuration will run lower severity and precision queries in addition to the queries included in the **Default** query suite. For more information on the available query suites, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)." + If you choose the **Extended** query suite, your {% data variables.product.prodname_code_scanning %} configuration will run lower severity and precision queries in addition to the queries included in the **Default** query suite. For more information on the available query suites, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites)." {% note %} @@ -143,7 +143,9 @@ When you initially configure default setup for {% data variables.product.prodnam ## Next steps -After you configure default setup for {% data variables.product.prodname_code_scanning %}, and your configuration runs successfully at least once, you can start examining and resolving {% data variables.product.prodname_code_scanning %} alerts. For more information on {% data variables.product.prodname_code_scanning %} alerts, see "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts)" and "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/managing-code-scanning-alerts-for-your-repository)." +After your configuration runs successfully at least once, you can start examining and resolving {% data variables.product.prodname_code_scanning %} alerts. For more information on {% data variables.product.prodname_code_scanning %} alerts, see "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts)" and "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/managing-code-scanning-alerts-for-your-repository)." + +After you've configured default setup for {% data variables.product.prodname_code_scanning %}, you can read about evaluating how it's working for you and the next steps you can take to customize it. For more information, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning)." You can find detailed information about your {% data variables.product.prodname_code_scanning %} configuration, including timestamps for each scan and the percentage of files scanned, on the tool status page. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/about-the-tool-status-page)." diff --git a/content/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning.md b/content/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning.md new file mode 100644 index 0000000000..e1dd838349 --- /dev/null +++ b/content/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning.md @@ -0,0 +1,36 @@ +--- +title: Evaluating default setup for code scanning +shortTitle: Evaluate code scanning +intro: 'Learn how to assess how code scanning is working for you, and how you can customize your setup to best meet your code security needs.' +product: '{% data reusables.gated-features.code-scanning %}' +type: how_to +topics: + - Advanced Security + - Code scanning +versions: + feature: code-scanning-without-workflow +--- + +## About evaluating a new {% data variables.product.prodname_code_scanning %} configuration + +When you first start using {% data variables.product.prodname_code_scanning %}, you'll likely use default setup. This guide describes how to evaluate how default setup for {% data variables.product.prodname_code_scanning %} is working for you, and what steps to take if something isn't working as you expect. This guide also describes how you can customize {% data variables.product.prodname_code_scanning %} if you find that you have a specific use case that your new configuration doesn't fit. + +## Customizing {% data variables.product.prodname_code_scanning %} + +When you first configure default setup, or after an initial analysis of your code, you can edit{% ifversion code-scanning-without-workflow-310 %} which languages default setup will analyze and{% endif %} the query suite run during analysis. The `default` query suite contains a set of queries that are carefully designed to look for the most relevant security issues, while minimizing false positive results. However, you can use the `security-extended` suite to run additional queries, which have slightly lower precision. For more information on the available query suites, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites)." + +For more information about customizing default setup, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup)." + +### Using advanced setup + +If you've found that you still need more granular control over {% data variables.product.prodname_code_scanning %}, you can use advanced setup. Advanced setup requires significantly more effort to configure, customize, and maintain, so we recommend enabling default setup first. For more information about advanced setup, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)" and "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning)." + +## Evaluating {% data variables.product.prodname_code_scanning %} with the {% data variables.code-scanning.tool_status_page %} + +The {% data variables.code-scanning.tool_status_page %} shows useful information about all of your {% data variables.product.prodname_code_scanning %} tools. You can use it to investigate whether individual tools are working for a repository, when files in the repository were first scanned and most recently scanned, and when upcoming scans are scheduled. It's also a useful starting point for debugging issues. + +Using the {% data variables.code-scanning.tool_status_page %}, you can download the list of rules that {% data variables.product.prodname_code_scanning %} is checking against, in CSV format. For integrated tools like {% data variables.product.prodname_codeql %}, you can also see more detailed information, including a percentage of files scanned and specific error messages. + +If you find that default setup doesn't scan all your files, you may need to customize {% data variables.product.prodname_code_scanning %}. For more information, see "[Customizing code scanning](#customizing-code-scanning)" in this article. Alternatively, or if something else isn't working as you expect, you may find our dedicated troubleshooting documentation useful. For more information, see "[AUTOTITLE](/code-security/code-scanning/troubleshooting-code-scanning)". + +For more detailed information about the {% data variables.code-scanning.tool_status_page %}, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/about-the-tool-status-page#viewing-the-tool-status-page-for-a-repository)." diff --git a/content/code-security/code-scanning/enabling-code-scanning/index.md b/content/code-security/code-scanning/enabling-code-scanning/index.md index 0b83ec0fcb..658f13149f 100644 --- a/content/code-security/code-scanning/enabling-code-scanning/index.md +++ b/content/code-security/code-scanning/enabling-code-scanning/index.md @@ -11,5 +11,6 @@ topics: - CodeQL children: - /configuring-default-setup-for-code-scanning + - /evaluating-default-setup-for-code-scanning - /configuring-default-setup-for-code-scanning-at-scale --- diff --git a/content/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning.md b/content/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning.md index b1efb6726e..635ccddfa4 100644 --- a/content/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning.md +++ b/content/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning.md @@ -36,6 +36,7 @@ To monitor results from {% data variables.product.prodname_code_scanning %} acro {% ifversion code-scanning-without-workflow %} To get started with {% data variables.product.prodname_code_scanning %}, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)." + {% else %} To get started with {% data variables.product.prodname_code_scanning %}, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)." {% endif %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites.md similarity index 97% rename from content/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites.md rename to content/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites.md index 69be243fd0..3de988230d 100644 --- a/content/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites.md +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites.md @@ -1,12 +1,13 @@ --- -title: Built-in CodeQL query suites -shortTitle: Built-in CodeQL query suites +title: CodeQL query suites +shortTitle: CodeQL query suites intro: 'You can choose from different built-in {% data variables.product.prodname_codeql %} query suites to use in your {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} setup.' product: '{% data reusables.gated-features.code-scanning %}' versions: feature: code-scanning-without-workflow redirect_from: - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/built-in-codeql-query-suites + - /code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites type: reference topics: - Code scanning diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup.md index 0ede64957f..ce280f81b1 100644 --- a/content/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup.md +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup.md @@ -15,7 +15,7 @@ topics: After running an initial analysis of your code with default setup, you may need to make changes to your configuration to better meet your code security needs. For existing configurations of default setup, you can edit{% ifversion code-scanning-without-workflow-310 %}: - Which languages default setup will analyze. -- {% endif %} The query suite run during analysis. For more information on the available query suites, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)." +- {% endif %} The query suite run during analysis. For more information on the available query suites, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites)." {% ifversion codeql-model-packs-java %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/index.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/index.md index 929248f29f..370a7ff9a4 100644 --- a/content/code-security/code-scanning/managing-your-code-scanning-configuration/index.md +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/index.md @@ -15,7 +15,7 @@ topics: children: - /about-the-tool-status-page - /editing-your-configuration-of-default-setup - - /built-in-codeql-query-suites + - /codeql-query-suites - /viewing-code-scanning-logs - /c-cpp-built-in-queries - /csharp-built-in-queries From 879ec7d21378591e386d5500f7955712051864c5 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Tue, 12 Dec 2023 18:15:53 +0000 Subject: [PATCH 21/55] Removed duplicate word in the pages docs (#30564) Co-authored-by: Alex Nguyen <150945400+nguyenalex836@users.noreply.github.com> --- .../getting-started-with-github-pages/about-github-pages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/pages/getting-started-with-github-pages/about-github-pages.md b/content/pages/getting-started-with-github-pages/about-github-pages.md index 62df65a354..5c8c97f4f7 100644 --- a/content/pages/getting-started-with-github-pages/about-github-pages.md +++ b/content/pages/getting-started-with-github-pages/about-github-pages.md @@ -124,7 +124,7 @@ In addition, your use of {% data variables.product.prodname_pages %} is subject ### Educational exercises -Using {% data variables.product.prodname_pages %} to create a copy of an existing website as a learning exercise is not prohibited. However, in addition to complying with the the [GitHub Terms of Service](/free-pro-team@latest/site-policy/github-terms/github-terms-of-service), you must write the code yourself, the site must not collect any user data, and you must include a prominent disclaimer on the site indicating that the project is not associated with the original and was only created for educational purposes. +Using {% data variables.product.prodname_pages %} to create a copy of an existing website as a learning exercise is not prohibited. However, in addition to complying with the [GitHub Terms of Service](/free-pro-team@latest/site-policy/github-terms/github-terms-of-service), you must write the code yourself, the site must not collect any user data, and you must include a prominent disclaimer on the site indicating that the project is not associated with the original and was only created for educational purposes. ### Usage limits From ee76a65024008cc92aecb076a4a54129d10acad1 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 12 Dec 2023 13:31:54 -0500 Subject: [PATCH 22/55] Update OpenAPI Description (#47705) --- .../fine-grained-pat-permissions.json | 424 ++++------------ .../server-to-server-permissions.json | 424 ++++------------ .../ghae/fine-grained-pat-permissions.json | 424 ++++------------ .../ghae/server-to-server-permissions.json | 424 ++++------------ .../fine-grained-pat-permissions.json | 472 +++++------------- .../server-to-server-permissions.json | 472 +++++------------- .../fine-grained-pat-permissions.json | 448 +++++------------ .../server-to-server-permissions.json | 448 +++++------------ .../fine-grained-pat-permissions.json | 448 +++++------------ .../server-to-server-permissions.json | 448 +++++------------ .../fine-grained-pat-permissions.json | 432 ++++------------ .../server-to-server-permissions.json | 432 ++++------------ .../fine-grained-pat-permissions.json | 432 ++++------------ .../server-to-server-permissions.json | 432 ++++------------ .../fine-grained-pat-permissions.json | 448 +++++------------ .../server-to-server-permissions.json | 448 +++++------------ src/rest/lib/config.json | 2 +- 17 files changed, 1765 insertions(+), 5293 deletions(-) diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json index 69c0289a35..3ab04f9276 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json @@ -1130,9 +1130,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1141,9 +1139,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1152,9 +1148,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1163,9 +1157,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1174,9 +1166,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1185,9 +1175,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1196,9 +1184,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1207,9 +1193,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1218,9 +1202,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1229,9 +1211,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1240,9 +1220,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1251,9 +1229,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1262,9 +1238,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1273,9 +1247,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1284,9 +1256,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1295,9 +1265,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1306,9 +1274,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1317,9 +1283,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1328,9 +1292,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -4195,9 +4157,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4639,9 +4599,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4650,9 +4608,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4679,9 +4635,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4690,9 +4644,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4701,9 +4653,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4712,9 +4662,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4759,9 +4707,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4779,9 +4725,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4790,9 +4734,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4801,9 +4743,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4812,9 +4752,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4823,9 +4761,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4834,9 +4770,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4845,9 +4779,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4856,9 +4788,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4867,9 +4797,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4878,9 +4806,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4889,9 +4815,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4900,9 +4824,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4911,9 +4833,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4922,9 +4842,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4960,9 +4878,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4971,9 +4887,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4982,9 +4896,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4993,9 +4905,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5004,9 +4914,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5015,9 +4923,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5026,9 +4932,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5037,9 +4941,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5048,9 +4950,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5059,9 +4959,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5070,9 +4968,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5081,9 +4977,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -5725,9 +5619,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5736,9 +5628,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5747,9 +5637,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5758,9 +5646,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5769,9 +5655,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5780,9 +5664,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5791,9 +5673,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5802,9 +5682,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5813,9 +5691,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5824,9 +5700,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5835,9 +5709,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5846,9 +5718,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5857,9 +5727,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5868,9 +5736,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5879,9 +5745,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5890,9 +5754,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5901,9 +5763,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5912,9 +5772,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5923,9 +5781,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5958,9 +5814,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5969,9 +5823,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6000,9 +5852,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6011,9 +5861,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6022,9 +5870,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6033,9 +5879,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6044,9 +5888,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6055,9 +5897,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6066,9 +5906,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6077,9 +5915,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6088,9 +5924,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6099,9 +5933,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6110,9 +5942,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6121,9 +5951,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6132,9 +5960,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6143,9 +5969,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6154,9 +5978,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6165,9 +5987,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6176,9 +5996,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6187,9 +6005,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6198,9 +6014,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6209,9 +6023,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6220,9 +6032,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6231,9 +6041,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6242,9 +6050,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6253,9 +6059,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6264,9 +6068,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6275,9 +6077,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6286,9 +6086,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6297,9 +6095,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6308,9 +6104,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6319,9 +6113,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6330,9 +6122,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6422,9 +6212,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json index c77136c299..f1239c73c8 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json @@ -1463,9 +1463,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1476,9 +1474,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1489,9 +1485,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1502,9 +1496,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1515,9 +1507,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1528,9 +1518,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1541,9 +1529,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1554,9 +1540,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1567,9 +1551,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1580,9 +1562,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1593,9 +1573,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1606,9 +1584,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1619,9 +1595,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1632,9 +1606,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1645,9 +1617,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1658,9 +1628,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1671,9 +1639,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1684,9 +1650,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1697,9 +1661,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -5181,9 +5143,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -5722,9 +5682,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5735,9 +5693,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5770,9 +5726,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5783,9 +5737,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5796,9 +5748,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5809,9 +5759,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5866,9 +5814,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5890,9 +5836,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5903,9 +5847,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5916,9 +5858,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5929,9 +5869,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5942,9 +5880,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5955,9 +5891,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5968,9 +5902,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5981,9 +5913,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5994,9 +5924,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6007,9 +5935,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6020,9 +5946,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6033,9 +5957,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6046,9 +5968,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6059,9 +5979,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -6105,9 +6023,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6118,9 +6034,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6131,9 +6045,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6144,9 +6056,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6157,9 +6067,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6170,9 +6078,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6183,9 +6089,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6196,9 +6100,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6209,9 +6111,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6222,9 +6122,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6235,9 +6133,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6248,9 +6144,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -7044,9 +6938,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7057,9 +6949,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7070,9 +6960,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7083,9 +6971,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7096,9 +6982,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7109,9 +6993,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7122,9 +7004,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7135,9 +7015,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7148,9 +7026,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7161,9 +7037,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7174,9 +7048,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7187,9 +7059,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7200,9 +7070,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7213,9 +7081,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7226,9 +7092,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7239,9 +7103,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7252,9 +7114,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7265,9 +7125,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7278,9 +7136,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7319,9 +7175,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7332,9 +7186,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -7369,9 +7221,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7382,9 +7232,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7395,9 +7243,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7408,9 +7254,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7421,9 +7265,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7434,9 +7276,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7447,9 +7287,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7460,9 +7298,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7473,9 +7309,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7486,9 +7320,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7499,9 +7331,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7512,9 +7342,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7525,9 +7353,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7538,9 +7364,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7551,9 +7375,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7564,9 +7386,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7577,9 +7397,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7590,9 +7408,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7603,9 +7419,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7616,9 +7430,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7629,9 +7441,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7642,9 +7452,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7655,9 +7463,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7668,9 +7474,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7681,9 +7485,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7694,9 +7496,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7707,9 +7507,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7720,9 +7518,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7733,9 +7529,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7746,9 +7540,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7759,9 +7551,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -7871,9 +7661,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghae/fine-grained-pat-permissions.json b/src/github-apps/data/ghae/fine-grained-pat-permissions.json index 741289d3aa..960e14028d 100644 --- a/src/github-apps/data/ghae/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghae/fine-grained-pat-permissions.json @@ -370,9 +370,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -381,9 +379,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -392,9 +388,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -403,9 +397,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -414,9 +406,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -425,9 +415,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -436,9 +424,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -447,9 +433,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -458,9 +442,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -469,9 +451,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -480,9 +460,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -491,9 +469,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -502,9 +478,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -513,9 +487,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -524,9 +496,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -535,9 +505,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -546,9 +514,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -557,9 +523,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -568,9 +532,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -2421,9 +2383,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2635,9 +2595,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2646,9 +2604,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2675,9 +2631,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2686,9 +2640,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2697,9 +2649,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2708,9 +2658,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2755,9 +2703,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2775,9 +2721,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2786,9 +2730,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2797,9 +2739,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2808,9 +2748,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2819,9 +2757,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2830,9 +2766,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2841,9 +2775,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2852,9 +2784,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2863,9 +2793,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2874,9 +2802,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2885,9 +2811,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2896,9 +2820,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2907,9 +2829,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2918,9 +2838,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2956,9 +2874,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2967,9 +2883,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -2978,9 +2892,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -2989,9 +2901,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3000,9 +2910,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3011,9 +2919,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3022,9 +2928,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3033,9 +2937,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3044,9 +2946,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3055,9 +2955,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3066,9 +2964,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3077,9 +2973,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -3579,9 +3473,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -3590,9 +3482,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3601,9 +3491,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3612,9 +3500,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3623,9 +3509,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -3634,9 +3518,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3645,9 +3527,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3656,9 +3536,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -3667,9 +3545,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3678,9 +3554,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3689,9 +3563,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -3700,9 +3572,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3711,9 +3581,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3722,9 +3590,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3733,9 +3599,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3744,9 +3608,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3755,9 +3617,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3766,9 +3626,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -3777,9 +3635,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -3812,9 +3668,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3823,9 +3677,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3843,9 +3695,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3854,9 +3704,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3865,9 +3713,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3876,9 +3722,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3887,9 +3731,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3898,9 +3740,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3909,9 +3749,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3920,9 +3758,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3931,9 +3767,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3942,9 +3776,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3953,9 +3785,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3964,9 +3794,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3975,9 +3803,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -3986,9 +3812,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -3997,9 +3821,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4008,9 +3830,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4019,9 +3839,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4030,9 +3848,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4041,9 +3857,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4052,9 +3866,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4063,9 +3875,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4074,9 +3884,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4085,9 +3893,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4096,9 +3902,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4107,9 +3911,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4118,9 +3920,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4129,9 +3929,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4140,9 +3938,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4151,9 +3947,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4162,9 +3956,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4173,9 +3965,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4265,9 +4055,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghae/server-to-server-permissions.json b/src/github-apps/data/ghae/server-to-server-permissions.json index 38803f3397..2a67c7f82f 100644 --- a/src/github-apps/data/ghae/server-to-server-permissions.json +++ b/src/github-apps/data/ghae/server-to-server-permissions.json @@ -447,9 +447,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -460,9 +458,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -473,9 +469,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -486,9 +480,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -499,9 +491,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -512,9 +502,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -525,9 +513,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -538,9 +524,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -551,9 +535,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -564,9 +546,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -577,9 +557,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -590,9 +568,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -603,9 +579,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -616,9 +590,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -629,9 +601,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -642,9 +612,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -655,9 +623,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -668,9 +634,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -681,9 +645,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -2939,9 +2901,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -3197,9 +3157,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3210,9 +3168,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3245,9 +3201,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3258,9 +3212,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3271,9 +3223,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3284,9 +3234,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -3341,9 +3289,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3365,9 +3311,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3378,9 +3322,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3391,9 +3333,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3404,9 +3344,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3417,9 +3355,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3430,9 +3366,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3443,9 +3377,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3456,9 +3388,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3469,9 +3399,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3482,9 +3410,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3495,9 +3421,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3508,9 +3432,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3521,9 +3443,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3534,9 +3454,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -3580,9 +3498,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3593,9 +3509,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3606,9 +3520,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3619,9 +3531,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3632,9 +3542,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3645,9 +3553,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3658,9 +3564,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3671,9 +3575,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3684,9 +3586,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3697,9 +3597,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3710,9 +3608,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -3723,9 +3619,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -4349,9 +4243,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4362,9 +4254,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4375,9 +4265,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4388,9 +4276,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4401,9 +4287,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4414,9 +4298,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4427,9 +4309,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4440,9 +4320,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4453,9 +4331,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4466,9 +4342,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4479,9 +4353,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4492,9 +4364,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4505,9 +4375,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4518,9 +4386,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4531,9 +4397,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4544,9 +4408,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4557,9 +4419,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4570,9 +4430,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4583,9 +4441,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -4624,9 +4480,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4637,9 +4491,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -4661,9 +4513,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4674,9 +4524,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4687,9 +4535,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4700,9 +4546,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4713,9 +4557,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4726,9 +4568,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4739,9 +4579,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4752,9 +4590,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4765,9 +4601,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4778,9 +4612,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4791,9 +4623,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4804,9 +4634,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4817,9 +4645,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4830,9 +4656,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4843,9 +4667,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4856,9 +4678,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4869,9 +4689,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4882,9 +4700,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4895,9 +4711,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4908,9 +4722,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4921,9 +4733,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4934,9 +4744,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4947,9 +4755,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4960,9 +4766,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4973,9 +4777,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4986,9 +4788,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4999,9 +4799,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5012,9 +4810,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5025,9 +4821,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5038,9 +4832,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5051,9 +4843,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -5163,9 +4953,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json index ceae1d008e..f0f29e57e6 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json @@ -9,9 +9,7 @@ "subcategory": "admin-stats", "verb": "get", "requestPath": "/enterprise-installation/{enterprise_or_org}/server-statistics", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -188,9 +186,7 @@ "subcategory": "admin-stats", "verb": "get", "requestPath": "/enterprise-installation/{enterprise_or_org}/server-statistics", - "additional-permissions": [ - "enterprise_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -199,9 +195,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -385,9 +379,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -396,9 +388,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -407,9 +397,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom_roles/{role_id}", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -418,9 +406,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/fine_grained_permissions", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -777,9 +763,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -788,9 +772,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -808,9 +790,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -846,9 +826,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom_roles/{role_id}", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -875,9 +853,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/fine_grained_permissions", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" } ] @@ -1667,9 +1643,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1678,9 +1652,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1689,9 +1661,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1700,9 +1670,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1711,9 +1679,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1722,9 +1688,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1733,9 +1697,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1744,9 +1706,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1755,9 +1715,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1766,9 +1724,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1777,9 +1733,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1788,9 +1742,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1799,9 +1751,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1810,9 +1760,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1821,9 +1769,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1832,9 +1778,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1843,9 +1787,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1854,9 +1796,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1865,9 +1805,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -4853,9 +4791,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5297,9 +5233,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5308,9 +5242,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5337,9 +5269,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5348,9 +5278,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5359,9 +5287,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5370,9 +5296,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5417,9 +5341,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5437,9 +5359,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5448,9 +5368,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5459,9 +5377,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5470,9 +5386,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5481,9 +5395,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5492,9 +5404,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5503,9 +5413,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5514,9 +5422,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5525,9 +5431,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5536,9 +5440,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5547,9 +5449,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5558,9 +5458,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5569,9 +5467,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5580,9 +5476,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5618,9 +5512,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5629,9 +5521,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5640,9 +5530,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5651,9 +5539,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5662,9 +5548,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5673,9 +5557,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5684,9 +5566,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5695,9 +5575,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5706,9 +5584,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -5717,9 +5593,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5728,9 +5602,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -5739,9 +5611,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -6405,9 +6275,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -6416,9 +6284,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6427,9 +6293,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6438,9 +6302,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6449,9 +6311,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -6460,9 +6320,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6471,9 +6329,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6482,9 +6338,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -6493,9 +6347,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6504,9 +6356,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6515,9 +6365,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -6526,9 +6374,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6537,9 +6383,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6548,9 +6392,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6559,9 +6401,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6570,9 +6410,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6581,9 +6419,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6592,9 +6428,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -6603,9 +6437,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -6638,9 +6470,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6649,9 +6479,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6680,9 +6508,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6691,9 +6517,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6702,9 +6526,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6713,9 +6535,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6724,9 +6544,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6735,9 +6553,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6746,9 +6562,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6757,9 +6571,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6768,9 +6580,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6779,9 +6589,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6790,9 +6598,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6801,9 +6607,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6812,9 +6616,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6823,9 +6625,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6834,9 +6634,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6845,9 +6643,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6856,9 +6652,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6867,9 +6661,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6878,9 +6670,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6889,9 +6679,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6900,9 +6688,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6911,9 +6697,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6922,9 +6706,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6933,9 +6715,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6944,9 +6724,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6955,9 +6733,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6966,9 +6742,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6977,9 +6751,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -6988,9 +6760,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -6999,9 +6769,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -7010,9 +6778,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -7102,9 +6868,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json index 5b39621380..103c3d5448 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json @@ -12,9 +12,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "actions", @@ -229,9 +227,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "enterprise_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -242,9 +238,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -468,9 +462,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -481,9 +473,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -494,9 +484,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -507,9 +495,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -940,9 +926,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -953,9 +937,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -977,9 +959,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -1023,9 +1003,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -1058,9 +1036,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] } ] }, @@ -2110,9 +2086,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2123,9 +2097,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2136,9 +2108,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2149,9 +2119,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2162,9 +2130,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2175,9 +2141,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2188,9 +2152,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2201,9 +2163,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2214,9 +2174,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2227,9 +2185,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2240,9 +2196,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2253,9 +2207,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2266,9 +2218,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2279,9 +2229,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2292,9 +2240,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2305,9 +2251,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2318,9 +2262,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2331,9 +2273,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -2344,9 +2284,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -5975,9 +5913,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -6516,9 +6452,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6529,9 +6463,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6564,9 +6496,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6577,9 +6507,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6590,9 +6518,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6603,9 +6529,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -6660,9 +6584,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6684,9 +6606,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6697,9 +6617,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6710,9 +6628,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6723,9 +6639,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6736,9 +6650,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6749,9 +6661,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6762,9 +6672,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6775,9 +6683,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6788,9 +6694,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6801,9 +6705,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6814,9 +6716,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6827,9 +6727,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6840,9 +6738,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6853,9 +6749,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -6899,9 +6793,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6912,9 +6804,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6925,9 +6815,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6938,9 +6826,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6951,9 +6837,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6964,9 +6848,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6977,9 +6859,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6990,9 +6870,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7003,9 +6881,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7016,9 +6892,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7029,9 +6903,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7042,9 +6914,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -7864,9 +7734,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7877,9 +7745,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7890,9 +7756,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7903,9 +7767,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7916,9 +7778,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7929,9 +7789,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7942,9 +7800,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7955,9 +7811,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7968,9 +7822,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7981,9 +7833,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -7994,9 +7844,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8007,9 +7855,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8020,9 +7866,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8033,9 +7877,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8046,9 +7888,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8059,9 +7899,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8072,9 +7910,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8085,9 +7921,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8098,9 +7932,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -8139,9 +7971,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8152,9 +7982,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -8189,9 +8017,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8202,9 +8028,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8215,9 +8039,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8228,9 +8050,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8241,9 +8061,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8254,9 +8072,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8267,9 +8083,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8280,9 +8094,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8293,9 +8105,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8306,9 +8116,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8319,9 +8127,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8332,9 +8138,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8345,9 +8149,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8358,9 +8160,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8371,9 +8171,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8384,9 +8182,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8397,9 +8193,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8410,9 +8204,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8423,9 +8215,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8436,9 +8226,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8449,9 +8237,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8462,9 +8248,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8475,9 +8259,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8488,9 +8270,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8501,9 +8281,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8514,9 +8292,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8527,9 +8303,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8540,9 +8314,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8553,9 +8325,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8566,9 +8336,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -8579,9 +8347,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -8691,9 +8457,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat-permissions.json index 9dd885ff41..5990761d64 100644 --- a/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat-permissions.json @@ -159,9 +159,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -327,9 +325,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -338,9 +334,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -409,9 +403,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -420,9 +412,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -440,9 +430,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -896,9 +884,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -907,9 +893,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -918,9 +902,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -929,9 +911,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -940,9 +920,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -951,9 +929,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -962,9 +938,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -973,9 +947,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -984,9 +956,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -995,9 +965,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1006,9 +974,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1017,9 +983,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1028,9 +992,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1039,9 +1001,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1050,9 +1010,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1061,9 +1019,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1072,9 +1028,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1083,9 +1037,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1094,9 +1046,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -3498,9 +3448,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3942,9 +3890,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3953,9 +3899,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3982,9 +3926,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3993,9 +3935,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4004,9 +3944,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4015,9 +3953,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4062,9 +3998,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4082,9 +4016,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4093,9 +4025,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4104,9 +4034,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4115,9 +4043,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4126,9 +4052,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4137,9 +4061,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4148,9 +4070,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4159,9 +4079,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4170,9 +4088,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4181,9 +4097,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4192,9 +4106,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4203,9 +4115,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4214,9 +4124,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4225,9 +4133,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4263,9 +4169,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4274,9 +4178,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4285,9 +4187,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4296,9 +4196,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4307,9 +4205,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4318,9 +4214,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4329,9 +4223,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4340,9 +4232,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4351,9 +4241,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4362,9 +4250,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4373,9 +4259,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4384,9 +4268,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -4992,9 +4874,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5003,9 +4883,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5014,9 +4892,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5025,9 +4901,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5036,9 +4910,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5047,9 +4919,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5058,9 +4928,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5069,9 +4937,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5080,9 +4946,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5091,9 +4955,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5102,9 +4964,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5113,9 +4973,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5124,9 +4982,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5135,9 +4991,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5146,9 +5000,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5157,9 +5009,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5168,9 +5018,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5179,9 +5027,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5190,9 +5036,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5225,9 +5069,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5236,9 +5078,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5267,9 +5107,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5278,9 +5116,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5289,9 +5125,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5300,9 +5134,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5311,9 +5143,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5322,9 +5152,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5333,9 +5161,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5344,9 +5170,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5355,9 +5179,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5366,9 +5188,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5377,9 +5197,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5388,9 +5206,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5399,9 +5215,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5410,9 +5224,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5421,9 +5233,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5432,9 +5242,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5443,9 +5251,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5454,9 +5260,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5465,9 +5269,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5476,9 +5278,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5487,9 +5287,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5498,9 +5296,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5509,9 +5305,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5520,9 +5314,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5531,9 +5323,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5542,9 +5332,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5553,9 +5341,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5564,9 +5350,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5575,9 +5359,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5586,9 +5368,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5597,9 +5377,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5689,9 +5467,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghes-3.10-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghes-3.10-2022-11-28/server-to-server-permissions.json index abb03ec386..90d0d3dc99 100644 --- a/src/github-apps/data/ghes-3.10-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghes-3.10-2022-11-28/server-to-server-permissions.json @@ -194,9 +194,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -398,9 +396,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -411,9 +407,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -496,9 +490,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -509,9 +501,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -533,9 +523,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -1181,9 +1169,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1194,9 +1180,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1207,9 +1191,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1220,9 +1202,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1233,9 +1213,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1246,9 +1224,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1259,9 +1235,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1272,9 +1246,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1285,9 +1257,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1298,9 +1268,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1311,9 +1279,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1324,9 +1290,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1337,9 +1301,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1350,9 +1312,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1363,9 +1323,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1376,9 +1334,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1389,9 +1345,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1402,9 +1356,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1415,9 +1367,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -4342,9 +4292,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -4883,9 +4831,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4896,9 +4842,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4931,9 +4875,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4944,9 +4886,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4957,9 +4897,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4970,9 +4908,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5027,9 +4963,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5051,9 +4985,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5064,9 +4996,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5077,9 +5007,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5090,9 +5018,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5103,9 +5029,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5116,9 +5040,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5129,9 +5051,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5142,9 +5062,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5155,9 +5073,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5168,9 +5084,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5181,9 +5095,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5194,9 +5106,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5207,9 +5117,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5220,9 +5128,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5266,9 +5172,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5279,9 +5183,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5292,9 +5194,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5305,9 +5205,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5318,9 +5216,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5331,9 +5227,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5344,9 +5238,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5357,9 +5249,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5370,9 +5260,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5383,9 +5271,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5396,9 +5282,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5409,9 +5293,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -6161,9 +6043,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6174,9 +6054,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6187,9 +6065,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6200,9 +6076,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6213,9 +6087,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6226,9 +6098,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6239,9 +6109,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6252,9 +6120,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6265,9 +6131,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6278,9 +6142,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6291,9 +6153,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6304,9 +6164,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6317,9 +6175,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6330,9 +6186,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6343,9 +6197,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6356,9 +6208,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6369,9 +6219,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6382,9 +6230,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6395,9 +6241,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6436,9 +6280,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6449,9 +6291,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -6486,9 +6326,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6499,9 +6337,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6512,9 +6348,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6525,9 +6359,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6538,9 +6370,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6551,9 +6381,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6564,9 +6392,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6577,9 +6403,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6590,9 +6414,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6603,9 +6425,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6616,9 +6436,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6629,9 +6447,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6642,9 +6458,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6655,9 +6469,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6668,9 +6480,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6681,9 +6491,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6694,9 +6502,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6707,9 +6513,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6720,9 +6524,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6733,9 +6535,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6746,9 +6546,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6759,9 +6557,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6772,9 +6568,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6785,9 +6579,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6798,9 +6590,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6811,9 +6601,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6824,9 +6612,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6837,9 +6623,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6850,9 +6634,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6863,9 +6645,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6876,9 +6656,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -6988,9 +6766,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat-permissions.json index e1c378adf3..edd4b60e52 100644 --- a/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat-permissions.json @@ -159,9 +159,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -327,9 +325,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -338,9 +334,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -454,9 +448,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -465,9 +457,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -485,9 +475,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -941,9 +929,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -952,9 +938,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -963,9 +947,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -974,9 +956,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -985,9 +965,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -996,9 +974,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1007,9 +983,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1018,9 +992,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1029,9 +1001,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1040,9 +1010,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1051,9 +1019,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1062,9 +1028,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1073,9 +1037,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1084,9 +1046,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1095,9 +1055,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1106,9 +1064,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1117,9 +1073,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1128,9 +1082,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1139,9 +1091,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -3579,9 +3529,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4023,9 +3971,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4034,9 +3980,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4063,9 +4007,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4074,9 +4016,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4085,9 +4025,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4096,9 +4034,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4143,9 +4079,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4163,9 +4097,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4174,9 +4106,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4185,9 +4115,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4196,9 +4124,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4207,9 +4133,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4218,9 +4142,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4229,9 +4151,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4240,9 +4160,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4251,9 +4169,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4262,9 +4178,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4273,9 +4187,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4284,9 +4196,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4295,9 +4205,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4306,9 +4214,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4344,9 +4250,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4355,9 +4259,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4366,9 +4268,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4377,9 +4277,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4388,9 +4286,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4399,9 +4295,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4410,9 +4304,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4421,9 +4313,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4432,9 +4322,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4443,9 +4331,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4454,9 +4340,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4465,9 +4349,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -5100,9 +4982,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5111,9 +4991,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5122,9 +5000,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5133,9 +5009,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5144,9 +5018,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5155,9 +5027,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5166,9 +5036,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5177,9 +5045,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5188,9 +5054,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5199,9 +5063,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5210,9 +5072,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5221,9 +5081,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5232,9 +5090,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5243,9 +5099,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5254,9 +5108,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5265,9 +5117,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5276,9 +5126,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5287,9 +5135,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5298,9 +5144,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5333,9 +5177,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5344,9 +5186,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5375,9 +5215,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5386,9 +5224,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5397,9 +5233,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5408,9 +5242,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5419,9 +5251,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5430,9 +5260,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5441,9 +5269,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5452,9 +5278,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5463,9 +5287,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5474,9 +5296,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5485,9 +5305,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5496,9 +5314,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5507,9 +5323,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5518,9 +5332,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5529,9 +5341,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5540,9 +5350,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5551,9 +5359,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5562,9 +5368,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5573,9 +5377,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5584,9 +5386,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5595,9 +5395,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5606,9 +5404,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5617,9 +5413,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5628,9 +5422,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5639,9 +5431,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5650,9 +5440,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5661,9 +5449,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5672,9 +5458,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5683,9 +5467,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5694,9 +5476,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5705,9 +5485,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5797,9 +5575,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghes-3.11-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghes-3.11-2022-11-28/server-to-server-permissions.json index 4e157ecf10..fec3a4cbeb 100644 --- a/src/github-apps/data/ghes-3.11-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghes-3.11-2022-11-28/server-to-server-permissions.json @@ -194,9 +194,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -398,9 +396,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -411,9 +407,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -551,9 +545,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -564,9 +556,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -588,9 +578,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -1236,9 +1224,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1249,9 +1235,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1262,9 +1246,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1275,9 +1257,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1288,9 +1268,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1301,9 +1279,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1314,9 +1290,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1327,9 +1301,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1340,9 +1312,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1353,9 +1323,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1366,9 +1334,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1379,9 +1345,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1392,9 +1356,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1405,9 +1367,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1418,9 +1378,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1431,9 +1389,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1444,9 +1400,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1457,9 +1411,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1470,9 +1422,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -4441,9 +4391,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -4982,9 +4930,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4995,9 +4941,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5030,9 +4974,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5043,9 +4985,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5056,9 +4996,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5069,9 +5007,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5126,9 +5062,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5150,9 +5084,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5163,9 +5095,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5176,9 +5106,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5189,9 +5117,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5202,9 +5128,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5215,9 +5139,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5228,9 +5150,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5241,9 +5161,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5254,9 +5172,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5267,9 +5183,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5280,9 +5194,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5293,9 +5205,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5306,9 +5216,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5319,9 +5227,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5365,9 +5271,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5378,9 +5282,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5391,9 +5293,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5404,9 +5304,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5417,9 +5315,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5430,9 +5326,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5443,9 +5337,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5456,9 +5348,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5469,9 +5359,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5482,9 +5370,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5495,9 +5381,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5508,9 +5392,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -6293,9 +6175,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6306,9 +6186,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6319,9 +6197,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6332,9 +6208,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6345,9 +6219,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6358,9 +6230,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6371,9 +6241,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6384,9 +6252,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6397,9 +6263,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6410,9 +6274,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6423,9 +6285,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6436,9 +6296,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6449,9 +6307,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6462,9 +6318,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6475,9 +6329,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6488,9 +6340,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6501,9 +6351,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6514,9 +6362,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6527,9 +6373,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6568,9 +6412,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6581,9 +6423,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -6618,9 +6458,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6631,9 +6469,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6644,9 +6480,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6657,9 +6491,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6670,9 +6502,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6683,9 +6513,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6696,9 +6524,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6709,9 +6535,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6722,9 +6546,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6735,9 +6557,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6748,9 +6568,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6761,9 +6579,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6774,9 +6590,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6787,9 +6601,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6800,9 +6612,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6813,9 +6623,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6826,9 +6634,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6839,9 +6645,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6852,9 +6656,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6865,9 +6667,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6878,9 +6678,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6891,9 +6689,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6904,9 +6700,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6917,9 +6711,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6930,9 +6722,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6943,9 +6733,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6956,9 +6744,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6969,9 +6755,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6982,9 +6766,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6995,9 +6777,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -7008,9 +6788,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -7120,9 +6898,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghes-3.7/fine-grained-pat-permissions.json b/src/github-apps/data/ghes-3.7/fine-grained-pat-permissions.json index 1478e6e2fc..496774babf 100644 --- a/src/github-apps/data/ghes-3.7/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghes-3.7/fine-grained-pat-permissions.json @@ -159,9 +159,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -378,9 +376,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" } ] @@ -783,9 +779,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -794,9 +788,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -805,9 +797,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -816,9 +806,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -827,9 +815,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -838,9 +824,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -849,9 +833,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -860,9 +842,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -871,9 +851,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -882,9 +860,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -893,9 +869,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -904,9 +878,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -915,9 +887,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -926,9 +896,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -937,9 +905,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -948,9 +914,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -959,9 +923,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -970,9 +932,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -981,9 +941,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -3197,9 +3155,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3544,9 +3500,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3555,9 +3509,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3584,9 +3536,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3595,9 +3545,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3606,9 +3554,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3617,9 +3563,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3664,9 +3608,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3684,9 +3626,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3695,9 +3635,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3706,9 +3644,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3717,9 +3653,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3728,9 +3662,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3739,9 +3671,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3750,9 +3680,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3761,9 +3689,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3772,9 +3698,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3783,9 +3707,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3794,9 +3716,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3805,9 +3725,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3816,9 +3734,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3827,9 +3743,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3865,9 +3779,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3876,9 +3788,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3887,9 +3797,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3898,9 +3806,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3909,9 +3815,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3920,9 +3824,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3931,9 +3833,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3942,9 +3842,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3953,9 +3851,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3964,9 +3860,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3975,9 +3869,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3986,9 +3878,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -4583,9 +4473,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4594,9 +4482,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4605,9 +4491,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4616,9 +4500,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4627,9 +4509,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4638,9 +4518,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4649,9 +4527,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4660,9 +4536,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4671,9 +4545,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4682,9 +4554,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4693,9 +4563,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4704,9 +4572,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4715,9 +4581,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4726,9 +4590,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4737,9 +4599,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4748,9 +4608,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4759,9 +4617,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4770,9 +4626,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4781,9 +4635,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4816,9 +4668,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4827,9 +4677,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4858,9 +4706,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4869,9 +4715,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4880,9 +4724,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4891,9 +4733,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4902,9 +4742,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4913,9 +4751,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4924,9 +4760,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4935,9 +4769,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4946,9 +4778,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4957,9 +4787,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4968,9 +4796,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -4979,9 +4805,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -4990,9 +4814,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5001,9 +4823,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5012,9 +4832,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5023,9 +4841,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5034,9 +4850,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5045,9 +4859,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5056,9 +4868,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5067,9 +4877,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5078,9 +4886,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5089,9 +4895,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5100,9 +4904,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5111,9 +4913,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5122,9 +4922,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5133,9 +4931,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5144,9 +4940,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5155,9 +4949,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5166,9 +4958,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5177,9 +4967,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5188,9 +4976,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5280,9 +5066,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghes-3.7/server-to-server-permissions.json b/src/github-apps/data/ghes-3.7/server-to-server-permissions.json index 72cb7b0d49..45a3df4268 100644 --- a/src/github-apps/data/ghes-3.7/server-to-server-permissions.json +++ b/src/github-apps/data/ghes-3.7/server-to-server-permissions.json @@ -194,9 +194,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -459,9 +457,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] } ] }, @@ -946,9 +942,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -959,9 +953,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -972,9 +964,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -985,9 +975,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -998,9 +986,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1011,9 +997,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1024,9 +1008,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1037,9 +1019,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1050,9 +1030,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1063,9 +1041,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1076,9 +1052,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1089,9 +1063,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1102,9 +1074,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1115,9 +1085,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1128,9 +1096,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1141,9 +1107,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1154,9 +1118,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1167,9 +1129,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1180,9 +1140,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -3879,9 +3837,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -4294,9 +4250,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4307,9 +4261,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4342,9 +4294,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4355,9 +4305,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4368,9 +4316,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4381,9 +4327,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -4438,9 +4382,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4462,9 +4404,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4475,9 +4415,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4488,9 +4426,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4501,9 +4437,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4514,9 +4448,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4527,9 +4459,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4540,9 +4470,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4553,9 +4481,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4566,9 +4492,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4579,9 +4503,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4592,9 +4514,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4605,9 +4525,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4618,9 +4536,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4631,9 +4547,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -4677,9 +4591,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4690,9 +4602,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4703,9 +4613,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4716,9 +4624,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4729,9 +4635,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4742,9 +4646,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4755,9 +4657,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4768,9 +4668,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4781,9 +4679,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4794,9 +4690,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4807,9 +4701,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4820,9 +4712,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -5559,9 +5449,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5572,9 +5460,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5585,9 +5471,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5598,9 +5482,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5611,9 +5493,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5624,9 +5504,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5637,9 +5515,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5650,9 +5526,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5663,9 +5537,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5676,9 +5548,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5689,9 +5559,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5702,9 +5570,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5715,9 +5581,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5728,9 +5592,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5741,9 +5603,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5754,9 +5614,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5767,9 +5625,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5780,9 +5636,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5793,9 +5647,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5834,9 +5686,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5847,9 +5697,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -5884,9 +5732,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5897,9 +5743,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5910,9 +5754,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5923,9 +5765,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5936,9 +5776,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5949,9 +5787,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5962,9 +5798,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5975,9 +5809,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5988,9 +5820,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6001,9 +5831,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6014,9 +5842,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6027,9 +5853,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6040,9 +5864,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6053,9 +5875,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6066,9 +5886,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6079,9 +5897,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6092,9 +5908,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6105,9 +5919,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6118,9 +5930,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6131,9 +5941,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6144,9 +5952,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6157,9 +5963,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6170,9 +5974,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6183,9 +5985,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6196,9 +5996,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6209,9 +6007,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6222,9 +6018,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6235,9 +6029,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6248,9 +6040,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6261,9 +6051,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6274,9 +6062,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -6386,9 +6172,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghes-3.8/fine-grained-pat-permissions.json b/src/github-apps/data/ghes-3.8/fine-grained-pat-permissions.json index 734dc5542c..23d6cbe902 100644 --- a/src/github-apps/data/ghes-3.8/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghes-3.8/fine-grained-pat-permissions.json @@ -159,9 +159,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -378,9 +376,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" } ] @@ -816,9 +812,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -827,9 +821,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -838,9 +830,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -849,9 +839,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -860,9 +848,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -871,9 +857,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -882,9 +866,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -893,9 +875,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -904,9 +884,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -915,9 +893,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -926,9 +902,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -937,9 +911,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -948,9 +920,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -959,9 +929,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -970,9 +938,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -981,9 +947,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -992,9 +956,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1003,9 +965,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1014,9 +974,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -3310,9 +3268,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3754,9 +3710,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3765,9 +3719,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3794,9 +3746,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3805,9 +3755,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3816,9 +3764,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3827,9 +3773,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3874,9 +3818,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3894,9 +3836,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3905,9 +3845,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3916,9 +3854,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3927,9 +3863,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3938,9 +3872,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3949,9 +3881,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3960,9 +3890,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3971,9 +3899,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3982,9 +3908,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3993,9 +3917,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4004,9 +3926,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4015,9 +3935,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4026,9 +3944,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4037,9 +3953,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4075,9 +3989,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4086,9 +3998,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4097,9 +4007,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4108,9 +4016,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4119,9 +4025,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4130,9 +4034,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4141,9 +4043,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4152,9 +4052,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4163,9 +4061,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4174,9 +4070,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4185,9 +4079,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4196,9 +4088,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -4804,9 +4694,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4815,9 +4703,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4826,9 +4712,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4837,9 +4721,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4848,9 +4730,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4859,9 +4739,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4870,9 +4748,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4881,9 +4757,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4892,9 +4766,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4903,9 +4775,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4914,9 +4784,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4925,9 +4793,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4936,9 +4802,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4947,9 +4811,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4958,9 +4820,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4969,9 +4829,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4980,9 +4838,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4991,9 +4847,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5002,9 +4856,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5037,9 +4889,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5048,9 +4898,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5079,9 +4927,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5090,9 +4936,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5101,9 +4945,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5112,9 +4954,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5123,9 +4963,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5134,9 +4972,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5145,9 +4981,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5156,9 +4990,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5167,9 +4999,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5178,9 +5008,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5189,9 +5017,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5200,9 +5026,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5211,9 +5035,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5222,9 +5044,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5233,9 +5053,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5244,9 +5062,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5255,9 +5071,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5266,9 +5080,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5277,9 +5089,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5288,9 +5098,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5299,9 +5107,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5310,9 +5116,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5321,9 +5125,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5332,9 +5134,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5343,9 +5143,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5354,9 +5152,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5365,9 +5161,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5376,9 +5170,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5387,9 +5179,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5398,9 +5188,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5409,9 +5197,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5501,9 +5287,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghes-3.8/server-to-server-permissions.json b/src/github-apps/data/ghes-3.8/server-to-server-permissions.json index 30789fdbdc..84a47a9315 100644 --- a/src/github-apps/data/ghes-3.8/server-to-server-permissions.json +++ b/src/github-apps/data/ghes-3.8/server-to-server-permissions.json @@ -194,9 +194,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -459,9 +457,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] } ] }, @@ -985,9 +981,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -998,9 +992,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1011,9 +1003,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1024,9 +1014,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1037,9 +1025,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1050,9 +1036,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1063,9 +1047,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1076,9 +1058,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1089,9 +1069,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1102,9 +1080,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1115,9 +1091,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1128,9 +1102,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1141,9 +1113,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1154,9 +1124,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1167,9 +1135,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1180,9 +1146,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1193,9 +1157,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1206,9 +1168,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1219,9 +1179,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -4014,9 +3972,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -4544,9 +4500,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4557,9 +4511,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4592,9 +4544,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4605,9 +4555,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4618,9 +4566,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4631,9 +4577,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -4688,9 +4632,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4712,9 +4654,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4725,9 +4665,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4738,9 +4676,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4751,9 +4687,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4764,9 +4698,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4777,9 +4709,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4790,9 +4720,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4803,9 +4731,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4816,9 +4742,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4829,9 +4753,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4842,9 +4764,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4855,9 +4775,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4868,9 +4786,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4881,9 +4797,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -4927,9 +4841,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4940,9 +4852,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4953,9 +4863,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4966,9 +4874,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4979,9 +4885,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4992,9 +4896,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5005,9 +4907,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5018,9 +4918,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5031,9 +4929,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5044,9 +4940,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5057,9 +4951,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5070,9 +4962,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -5822,9 +5712,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5835,9 +5723,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5848,9 +5734,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5861,9 +5745,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5874,9 +5756,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5887,9 +5767,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5900,9 +5778,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5913,9 +5789,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5926,9 +5800,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5939,9 +5811,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5952,9 +5822,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5965,9 +5833,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5978,9 +5844,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5991,9 +5855,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6004,9 +5866,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6017,9 +5877,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6030,9 +5888,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6043,9 +5899,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6056,9 +5910,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6097,9 +5949,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6110,9 +5960,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -6147,9 +5995,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6160,9 +6006,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6173,9 +6017,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6186,9 +6028,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6199,9 +6039,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6212,9 +6050,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6225,9 +6061,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6238,9 +6072,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6251,9 +6083,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6264,9 +6094,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6277,9 +6105,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6290,9 +6116,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6303,9 +6127,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6316,9 +6138,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6329,9 +6149,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6342,9 +6160,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6355,9 +6171,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6368,9 +6182,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6381,9 +6193,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6394,9 +6204,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6407,9 +6215,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6420,9 +6226,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6433,9 +6237,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6446,9 +6248,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6459,9 +6259,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6472,9 +6270,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6485,9 +6281,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6498,9 +6292,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6511,9 +6303,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6524,9 +6314,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6537,9 +6325,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -6649,9 +6435,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat-permissions.json index cf03e4d06b..4279429797 100644 --- a/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat-permissions.json @@ -159,9 +159,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -327,9 +325,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -338,9 +334,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_custom_roles" - ], + "additional-permissions": [], "access": "read" }, { @@ -409,9 +403,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/organizations/{organization_id}/custom_roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -420,9 +412,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -440,9 +430,7 @@ "subcategory": "custom-roles", "verb": "get", "requestPath": "/orgs/{org}/custom-repository-roles/{role_id}", - "additional-permissions": [ - "organization_administration" - ], + "additional-permissions": [], "access": "read" }, { @@ -896,9 +884,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -907,9 +893,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -918,9 +902,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -929,9 +911,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -940,9 +920,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -951,9 +929,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -962,9 +938,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -973,9 +947,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -984,9 +956,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -995,9 +965,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1006,9 +974,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1017,9 +983,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1028,9 +992,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -1039,9 +1001,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1050,9 +1010,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1061,9 +1019,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1072,9 +1028,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "admin" }, { @@ -1083,9 +1037,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -1094,9 +1046,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "repository_projects" - ], + "additional-permissions": [], "access": "write" } ] @@ -3435,9 +3385,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3879,9 +3827,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3890,9 +3836,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3919,9 +3863,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3930,9 +3872,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -3941,9 +3881,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3952,9 +3890,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -3999,9 +3935,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4019,9 +3953,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4030,9 +3962,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4041,9 +3971,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4052,9 +3980,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4063,9 +3989,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4074,9 +3998,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4085,9 +4007,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4096,9 +4016,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4107,9 +4025,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4118,9 +4034,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4129,9 +4043,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4140,9 +4052,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4151,9 +4061,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4162,9 +4070,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4200,9 +4106,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4211,9 +4115,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4222,9 +4124,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4233,9 +4133,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4244,9 +4142,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4255,9 +4151,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4266,9 +4160,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4277,9 +4169,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4288,9 +4178,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" }, { @@ -4299,9 +4187,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4310,9 +4196,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "write" }, { @@ -4321,9 +4205,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "pull_requests" - ], + "additional-permissions": [], "access": "read" } ] @@ -4929,9 +4811,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4940,9 +4820,7 @@ "subcategory": "cards", "verb": "patch", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4951,9 +4829,7 @@ "subcategory": "cards", "verb": "delete", "requestPath": "/projects/columns/cards/{card_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4962,9 +4838,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/cards/{card_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4973,9 +4847,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -4984,9 +4856,7 @@ "subcategory": "columns", "verb": "patch", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -4995,9 +4865,7 @@ "subcategory": "columns", "verb": "delete", "requestPath": "/projects/columns/{column_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5006,9 +4874,7 @@ "subcategory": "cards", "verb": "get", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5017,9 +4883,7 @@ "subcategory": "cards", "verb": "post", "requestPath": "/projects/columns/{column_id}/cards", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5028,9 +4892,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/columns/{column_id}/moves", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5039,9 +4901,7 @@ "subcategory": "projects", "verb": "get", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5050,9 +4910,7 @@ "subcategory": "projects", "verb": "patch", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5061,9 +4919,7 @@ "subcategory": "projects", "verb": "delete", "requestPath": "/projects/{project_id}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5072,9 +4928,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5083,9 +4937,7 @@ "subcategory": "collaborators", "verb": "put", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5094,9 +4946,7 @@ "subcategory": "collaborators", "verb": "delete", "requestPath": "/projects/{project_id}/collaborators/{username}", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5105,9 +4955,7 @@ "subcategory": "collaborators", "verb": "get", "requestPath": "/projects/{project_id}/collaborators/{username}/permission", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5116,9 +4964,7 @@ "subcategory": "columns", "verb": "get", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "read" }, { @@ -5127,9 +4973,7 @@ "subcategory": "columns", "verb": "post", "requestPath": "/projects/{project_id}/columns", - "additional-permissions": [ - "organization_projects" - ], + "additional-permissions": [], "access": "write" }, { @@ -5162,9 +5006,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5173,9 +5015,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5204,9 +5044,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5215,9 +5053,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5226,9 +5062,7 @@ "subcategory": "comments", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5237,9 +5071,7 @@ "subcategory": "comments", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/comments/{comment_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5248,9 +5080,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/events/{event_id}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5259,9 +5089,7 @@ "subcategory": "issues", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5270,9 +5098,7 @@ "subcategory": "assignees", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5281,9 +5107,7 @@ "subcategory": "assignees", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5292,9 +5116,7 @@ "subcategory": "assignees", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5303,9 +5125,7 @@ "subcategory": "comments", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5314,9 +5134,7 @@ "subcategory": "comments", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5325,9 +5143,7 @@ "subcategory": "events", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/events", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5336,9 +5152,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5347,9 +5161,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5358,9 +5170,7 @@ "subcategory": "labels", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5369,9 +5179,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5380,9 +5188,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5391,9 +5197,7 @@ "subcategory": "issues", "verb": "put", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5402,9 +5206,7 @@ "subcategory": "issues", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/lock", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5413,9 +5215,7 @@ "subcategory": "timeline", "verb": "get", "requestPath": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5424,9 +5224,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5435,9 +5233,7 @@ "subcategory": "labels", "verb": "post", "requestPath": "/repos/{owner}/{repo}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5446,9 +5242,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5457,9 +5251,7 @@ "subcategory": "labels", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5468,9 +5260,7 @@ "subcategory": "labels", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/labels/{name}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5479,9 +5269,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5490,9 +5278,7 @@ "subcategory": "milestones", "verb": "post", "requestPath": "/repos/{owner}/{repo}/milestones", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5501,9 +5287,7 @@ "subcategory": "milestones", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5512,9 +5296,7 @@ "subcategory": "milestones", "verb": "patch", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5523,9 +5305,7 @@ "subcategory": "milestones", "verb": "delete", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "write" }, { @@ -5534,9 +5314,7 @@ "subcategory": "labels", "verb": "get", "requestPath": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "additional-permissions": [ - "issues" - ], + "additional-permissions": [], "access": "read" }, { @@ -5626,9 +5404,7 @@ "subcategory": "pulls", "verb": "get", "requestPath": "/repos/{owner}/{repo}/pulls/{pull_number}", - "additional-permissions": [ - "contents" - ], + "additional-permissions": [], "access": "read" }, { diff --git a/src/github-apps/data/ghes-3.9-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghes-3.9-2022-11-28/server-to-server-permissions.json index b1c32d65a4..53d9718c82 100644 --- a/src/github-apps/data/ghes-3.9-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghes-3.9-2022-11-28/server-to-server-permissions.json @@ -194,9 +194,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -398,9 +396,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -411,9 +407,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_custom_roles" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -496,9 +490,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -509,9 +501,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -533,9 +523,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_administration" - ] + "additional-permissions": [] }, { "category": "orgs", @@ -1081,9 +1069,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1094,9 +1080,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1107,9 +1091,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1120,9 +1102,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1133,9 +1113,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1146,9 +1124,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1159,9 +1135,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1172,9 +1146,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1185,9 +1157,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1198,9 +1168,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1211,9 +1179,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1224,9 +1190,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1237,9 +1201,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1250,9 +1212,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1263,9 +1223,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1276,9 +1234,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1289,9 +1245,7 @@ "access": "admin", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1302,9 +1256,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -1315,9 +1267,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "repository_projects" - ] + "additional-permissions": [] } ] }, @@ -4165,9 +4115,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -4695,9 +4643,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4708,9 +4654,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4743,9 +4687,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4756,9 +4698,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4769,9 +4709,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4782,9 +4720,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -4839,9 +4775,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4863,9 +4797,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4876,9 +4808,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4889,9 +4819,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4902,9 +4830,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4915,9 +4841,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4928,9 +4852,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4941,9 +4863,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4954,9 +4874,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4967,9 +4885,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4980,9 +4896,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -4993,9 +4907,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5006,9 +4918,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5019,9 +4929,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5032,9 +4940,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "reactions", @@ -5078,9 +4984,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5091,9 +4995,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5104,9 +5006,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5117,9 +5017,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5130,9 +5028,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5143,9 +5039,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5156,9 +5050,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5169,9 +5061,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5182,9 +5072,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5195,9 +5083,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5208,9 +5094,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] }, { "category": "issues", @@ -5221,9 +5105,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "pull_requests" - ] + "additional-permissions": [] } ] }, @@ -5973,9 +5855,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5986,9 +5866,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -5999,9 +5877,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6012,9 +5888,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6025,9 +5899,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6038,9 +5910,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6051,9 +5921,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6064,9 +5932,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6077,9 +5943,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6090,9 +5954,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6103,9 +5965,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6116,9 +5976,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6129,9 +5987,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6142,9 +5998,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6155,9 +6009,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6168,9 +6020,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6181,9 +6031,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6194,9 +6042,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6207,9 +6053,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "organization_projects" - ] + "additional-permissions": [] }, { "category": "projects", @@ -6248,9 +6092,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6261,9 +6103,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "commits", @@ -6298,9 +6138,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6311,9 +6149,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6324,9 +6160,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6337,9 +6171,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6350,9 +6182,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6363,9 +6193,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6376,9 +6204,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6389,9 +6215,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6402,9 +6226,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6415,9 +6237,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6428,9 +6248,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6441,9 +6259,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6454,9 +6270,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6467,9 +6281,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6480,9 +6292,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6493,9 +6303,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6506,9 +6314,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6519,9 +6325,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6532,9 +6336,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6545,9 +6347,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6558,9 +6358,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6571,9 +6369,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6584,9 +6380,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6597,9 +6391,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6610,9 +6402,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6623,9 +6413,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6636,9 +6424,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6649,9 +6435,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6662,9 +6446,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6675,9 +6457,7 @@ "access": "write", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "issues", @@ -6688,9 +6468,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "issues" - ] + "additional-permissions": [] }, { "category": "pulls", @@ -6800,9 +6578,7 @@ "access": "read", "user-to-server": true, "server-to-server": true, - "additional-permissions": [ - "contents" - ] + "additional-permissions": [] }, { "category": "pulls", diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index c156cc2e61..5a1d783361 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -42,4 +42,4 @@ } }, "sha": "1fd29675070876e3278e71b47f4f2606601bc698" -} +} \ No newline at end of file From 0c8c47fbec34e618f8514407cf44d5dea1c985d2 Mon Sep 17 00:00:00 2001 From: Joe Clark <31087804+jc-clark@users.noreply.github.com> Date: Tue, 12 Dec 2023 10:34:43 -0800 Subject: [PATCH 23/55] Add permission statement to requried workflows for GitHub Actions article (#47641) --- content/actions/using-workflows/required-workflows.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/actions/using-workflows/required-workflows.md b/content/actions/using-workflows/required-workflows.md index e92f392ac4..3def8791fc 100644 --- a/content/actions/using-workflows/required-workflows.md +++ b/content/actions/using-workflows/required-workflows.md @@ -4,6 +4,7 @@ shortTitle: Required workflows intro: You can specify which workflows will run as required status checks in all repositories or selected repositories in your organization. versions: feature: required-workflows +permissions: Because this feature is being deprecated, this article is only relevant if you are already using required workflows for {% data variables.product.prodname_actions %}. type: how_to topics: - Workflows From c5d2af5dc3089b4eee089024f86548d0f8d73cb9 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 12 Dec 2023 14:07:34 -0500 Subject: [PATCH 24/55] Disallow query string object notation (#47703) --- .../handle-invalid-query-string-values.js | 13 ++++++++++++- src/shielding/tests/invalid-querystrings.js | 11 +++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/shielding/middleware/handle-invalid-query-string-values.js b/src/shielding/middleware/handle-invalid-query-string-values.js index 142069d4cb..fadc45ee90 100644 --- a/src/shielding/middleware/handle-invalid-query-string-values.js +++ b/src/shielding/middleware/handle-invalid-query-string-values.js @@ -32,7 +32,7 @@ const RECOGNIZED_VALUES_KEYS = new Set(Object.keys(RECOGNIZED_VALUES)) export default function handleInvalidQuerystringValues(req, res, next) { const { method, query } = req if (method === 'GET' || method === 'HEAD') { - for (const key of Object.keys(query)) { + for (const [key, value] of Object.entries(query)) { if (RECOGNIZED_VALUES_KEYS.has(key)) { const validValues = RECOGNIZED_VALUES[key] const values = Array.isArray(query[key]) ? query[key] : [query[key]] @@ -66,6 +66,17 @@ export default function handleInvalidQuerystringValues(req, res, next) { return } } + + // For example ?foo[bar]=baz (but not ?foo=bar&foo=baz) + if (value instanceof Object && !Array.isArray(value)) { + const message = `Invalid query string key (${key})` + defaultCacheControl(res) + res.status(400).send(message) + + const tags = ['response:400', `path:${req.path}`, `key:${key}`] + statsd.increment(STATSD_KEY, 1, tags) + return + } } } diff --git a/src/shielding/tests/invalid-querystrings.js b/src/shielding/tests/invalid-querystrings.js index cdf9b95667..59fb7dac2c 100644 --- a/src/shielding/tests/invalid-querystrings.js +++ b/src/shielding/tests/invalid-querystrings.js @@ -57,11 +57,18 @@ describe('invalid query strings', () => { } }) + test('query string keys with single square brackets', async () => { + const url = `/en?query[foo]=bar` + const res = await get(url) + expect(res.statusCode).toBe(400) + expect(res.body).toMatch('Invalid query string key (query)') + }) + test('query string keys with square brackets', async () => { const url = `/?constructor[foo][bar]=buz` const res = await get(url) - expect(res.statusCode).toBe(302) - expect(res.headers.location).toBe('/en') + expect(res.statusCode).toBe(400) + expect(res.body).toMatch('Invalid query string key (constructor)') }) test('bad tool query string with Chinese URL-encoded characters', async () => { From c81c012c29515182d7695441edb7b3223b2ddbae Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 12 Dec 2023 16:34:59 -0500 Subject: [PATCH 25/55] Only trigger on 'opened' (#47722) --- .github/workflows/move-new-issues-to-correct-docs-repo.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/move-new-issues-to-correct-docs-repo.yml b/.github/workflows/move-new-issues-to-correct-docs-repo.yml index 9c1ff00b7f..32b818ca40 100644 --- a/.github/workflows/move-new-issues-to-correct-docs-repo.yml +++ b/.github/workflows/move-new-issues-to-correct-docs-repo.yml @@ -7,8 +7,11 @@ name: Move new issues to correct docs repo on: issues: types: + # Note, if an issue is transferred from github/some-other-repo + # over to github/docs-internal, this will trigger both 'transferred' + # *and* 'opened' events. And 'opened' covers the most basic case + # of an issue being created here in this repo. - opened - - transferred - reopened permissions: From af4a280ef0127102b94b8883307a7974d031238e Mon Sep 17 00:00:00 2001 From: Rachael Rose Renk <91027132+rachaelrenk@users.noreply.github.com> Date: Tue, 12 Dec 2023 15:32:01 -0700 Subject: [PATCH 26/55] Enterprise bug fix hour for week of November 27, 2023 (#47655) Co-authored-by: Matt Pollard --- data/release-notes/enterprise-server/3-8/4.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/release-notes/enterprise-server/3-8/4.yml b/data/release-notes/enterprise-server/3-8/4.yml index 5210285f01..e370cf1d47 100644 --- a/data/release-notes/enterprise-server/3-8/4.yml +++ b/data/release-notes/enterprise-server/3-8/4.yml @@ -11,7 +11,10 @@ sections: - | If a user made a request to the Collaborators API's Add a repository collaborator endpoint specifying a `permission` of `read` or `write`, the instance returned a `500` error. - On an instance with the dependency graph enabled, the correct path appears for manifests that originate from build-time submission snapshots. - - The `spokesctl` command-line utility accepts more input formats. + - The `spokesctl` command-line utility accepts more input formats. + - | + On an instance with a GitHub Advanced Security license and code scanning enabled, CodeQL analysis created a SARIF file that failed processing, which the API showed as pending due to an internal exception. [Updated: 2023-12-12] + changes: - People with administrative SSH access to an instance can configure the maximum memory usage in gigabytes for Redis using `ghe-config redis.max-memory-gb VALUE`. known_issues: From 7612e5614294b0710e9d6b2d42fa37fe8f046691 Mon Sep 17 00:00:00 2001 From: Joe Clark <31087804+jc-clark@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:59:16 -0800 Subject: [PATCH 27/55] Add notes about deprovisioning network settings resources for GitHub Actions for Azure VNET (#47714) --- .../configuring-private-networking-for-github-hosted-runners.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md b/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md index e7d6f2e0b6..fdc36b3463 100644 --- a/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md +++ b/content/admin/configuration/configuring-private-networking-for-hosted-compute-products/configuring-private-networking-for-github-hosted-runners.md @@ -212,6 +212,8 @@ To use the script, fill in the placeholder environment variable values with the - Run the following script in the same directory where you saved the `actions-nsg-deployment.bicep` file. - When setting the `YOUR_AZURE_LOCATION` environment variable, use your region’s name. This value is different than your region’s display name. To see a list of names and display names, use `az account list-locations -o table`. +- When you create the network settings resource, a service association link is applied to the subnet that you provide. This link prevents accidental deletion of the subnet while in use by the {% data variables.product.prodname_actions %} service. +- To delete the subnet, the service association link needs to be removed first. The service association link is safely removed when the network settings resource is deleted. You can delete the network settings resource only when it is not in use by a network configuration in your {% data variables.product.company_short %} settings. {% endnote %} From 28ebd6779af54bf974b0baa3f96301e6ffc35411 Mon Sep 17 00:00:00 2001 From: David Jarzebowski Date: Wed, 13 Dec 2023 04:37:35 -0500 Subject: [PATCH 28/55] Creating reusable and updating release notes for GHES 3.7-3.11 series for known issue about ip addresses in the Audit Log (ghes#5598) (#47442) Co-authored-by: Matt Pollard --- data/release-notes/enterprise-server/3-10/0.yml | 2 ++ data/release-notes/enterprise-server/3-10/1.yml | 2 ++ data/release-notes/enterprise-server/3-10/2.yml | 2 ++ data/release-notes/enterprise-server/3-10/3.yml | 2 ++ data/release-notes/enterprise-server/3-11/0.yml | 4 +--- data/release-notes/enterprise-server/3-7/0.yml | 2 ++ data/release-notes/enterprise-server/3-7/1.yml | 2 ++ data/release-notes/enterprise-server/3-7/10.yml | 2 ++ data/release-notes/enterprise-server/3-7/11.yml | 2 ++ data/release-notes/enterprise-server/3-7/12.yml | 2 ++ data/release-notes/enterprise-server/3-7/13.yml | 2 ++ data/release-notes/enterprise-server/3-7/14.yml | 2 ++ data/release-notes/enterprise-server/3-7/15.yml | 2 ++ data/release-notes/enterprise-server/3-7/16.yml | 2 ++ data/release-notes/enterprise-server/3-7/17.yml | 2 ++ data/release-notes/enterprise-server/3-7/18.yml | 2 ++ data/release-notes/enterprise-server/3-7/2.yml | 2 ++ data/release-notes/enterprise-server/3-7/3.yml | 2 ++ data/release-notes/enterprise-server/3-7/4.yml | 2 ++ data/release-notes/enterprise-server/3-7/5.yml | 2 ++ data/release-notes/enterprise-server/3-7/6.yml | 2 ++ data/release-notes/enterprise-server/3-7/7.yml | 2 ++ data/release-notes/enterprise-server/3-7/8.yml | 2 ++ data/release-notes/enterprise-server/3-7/9.yml | 2 ++ data/release-notes/enterprise-server/3-8/0.yml | 2 ++ data/release-notes/enterprise-server/3-8/1.yml | 2 ++ data/release-notes/enterprise-server/3-8/10.yml | 2 ++ data/release-notes/enterprise-server/3-8/11.yml | 2 ++ data/release-notes/enterprise-server/3-8/2.yml | 2 ++ data/release-notes/enterprise-server/3-8/3.yml | 2 ++ data/release-notes/enterprise-server/3-8/4.yml | 2 ++ data/release-notes/enterprise-server/3-8/5.yml | 2 ++ data/release-notes/enterprise-server/3-8/6.yml | 2 ++ data/release-notes/enterprise-server/3-8/7.yml | 2 ++ data/release-notes/enterprise-server/3-8/8.yml | 2 ++ data/release-notes/enterprise-server/3-8/9.yml | 2 ++ data/release-notes/enterprise-server/3-9/0.yml | 2 ++ data/release-notes/enterprise-server/3-9/1.yml | 2 ++ data/release-notes/enterprise-server/3-9/2.yml | 2 ++ data/release-notes/enterprise-server/3-9/3.yml | 2 ++ data/release-notes/enterprise-server/3-9/4.yml | 2 ++ data/release-notes/enterprise-server/3-9/5.yml | 2 ++ data/release-notes/enterprise-server/3-9/6.yml | 2 ++ .../2023-12-client-ip-addresses-incorrect-in-audit-log.md | 1 + 44 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 data/reusables/release-notes/2023-12-client-ip-addresses-incorrect-in-audit-log.md diff --git a/data/release-notes/enterprise-server/3-10/0.yml b/data/release-notes/enterprise-server/3-10/0.yml index f8e0e433c0..d42a48c6bb 100644 --- a/data/release-notes/enterprise-server/3-10/0.yml +++ b/data/release-notes/enterprise-server/3-10/0.yml @@ -304,6 +304,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] deprecations: # https://github.com/github/releases/issues/2605 diff --git a/data/release-notes/enterprise-server/3-10/1.yml b/data/release-notes/enterprise-server/3-10/1.yml index 7f08ce0bcb..1e7c872f04 100644 --- a/data/release-notes/enterprise-server/3-10/1.yml +++ b/data/release-notes/enterprise-server/3-10/1.yml @@ -73,3 +73,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-10/2.yml b/data/release-notes/enterprise-server/3-10/2.yml index 04eb1eccd7..aa19a03fdb 100644 --- a/data/release-notes/enterprise-server/3-10/2.yml +++ b/data/release-notes/enterprise-server/3-10/2.yml @@ -50,3 +50,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-10/3.yml b/data/release-notes/enterprise-server/3-10/3.yml index 673afe963e..d309de3627 100644 --- a/data/release-notes/enterprise-server/3-10/3.yml +++ b/data/release-notes/enterprise-server/3-10/3.yml @@ -89,3 +89,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-11/0.yml b/data/release-notes/enterprise-server/3-11/0.yml index 12d73c5f78..902038a472 100644 --- a/data/release-notes/enterprise-server/3-11/0.yml +++ b/data/release-notes/enterprise-server/3-11/0.yml @@ -311,8 +311,6 @@ sections: The `mbind: Operation not permitted` error in the `/var/log/mysql/mysql.err` file can be ignored. MySQL 8 does not gracefully handle when the `CAP_SYS_NICE` capability isn't required, and outputs an error instead of a warning. - | On an instance hosted in AWS, system time may lose synchronization with Amazon's servers after an administrator reboots the instance. - - | - On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. - | {% data reusables.release-notes.large-adoc-files-issue %} - | @@ -320,7 +318,7 @@ sections: - | On an instance in a high-availability configuration, passive replica nodes accept Git client requests and forward the requests to the primary node. - | - On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} - | {% data reusables.release-notes.2023-10-git-push-made-but-not-registered %} - | diff --git a/data/release-notes/enterprise-server/3-7/0.yml b/data/release-notes/enterprise-server/3-7/0.yml index b7870e95af..12a7af3025 100644 --- a/data/release-notes/enterprise-server/3-7/0.yml +++ b/data/release-notes/enterprise-server/3-7/0.yml @@ -363,6 +363,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] deprecations: # https://github.com/github/enterprise-releases/issues/3217 diff --git a/data/release-notes/enterprise-server/3-7/1.yml b/data/release-notes/enterprise-server/3-7/1.yml index d52faf900d..d5d9c830fd 100644 --- a/data/release-notes/enterprise-server/3-7/1.yml +++ b/data/release-notes/enterprise-server/3-7/1.yml @@ -51,3 +51,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/10.yml b/data/release-notes/enterprise-server/3-7/10.yml index ab1912e695..b6439728f4 100644 --- a/data/release-notes/enterprise-server/3-7/10.yml +++ b/data/release-notes/enterprise-server/3-7/10.yml @@ -57,3 +57,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/11.yml b/data/release-notes/enterprise-server/3-7/11.yml index 5bcdfd9627..05491395ba 100644 --- a/data/release-notes/enterprise-server/3-7/11.yml +++ b/data/release-notes/enterprise-server/3-7/11.yml @@ -41,3 +41,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/12.yml b/data/release-notes/enterprise-server/3-7/12.yml index a6b5140560..c3d43bee42 100644 --- a/data/release-notes/enterprise-server/3-7/12.yml +++ b/data/release-notes/enterprise-server/3-7/12.yml @@ -42,3 +42,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/13.yml b/data/release-notes/enterprise-server/3-7/13.yml index 8f8c45d399..f85570f5ec 100644 --- a/data/release-notes/enterprise-server/3-7/13.yml +++ b/data/release-notes/enterprise-server/3-7/13.yml @@ -83,3 +83,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/14.yml b/data/release-notes/enterprise-server/3-7/14.yml index 771dc19150..0f974c2479 100644 --- a/data/release-notes/enterprise-server/3-7/14.yml +++ b/data/release-notes/enterprise-server/3-7/14.yml @@ -26,6 +26,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] changes: - | diff --git a/data/release-notes/enterprise-server/3-7/15.yml b/data/release-notes/enterprise-server/3-7/15.yml index 63766ee977..1e38cb3fe1 100644 --- a/data/release-notes/enterprise-server/3-7/15.yml +++ b/data/release-notes/enterprise-server/3-7/15.yml @@ -61,3 +61,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/16.yml b/data/release-notes/enterprise-server/3-7/16.yml index 8530078e35..38bef0c235 100644 --- a/data/release-notes/enterprise-server/3-7/16.yml +++ b/data/release-notes/enterprise-server/3-7/16.yml @@ -37,3 +37,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/17.yml b/data/release-notes/enterprise-server/3-7/17.yml index 135c09d756..ff734f843f 100644 --- a/data/release-notes/enterprise-server/3-7/17.yml +++ b/data/release-notes/enterprise-server/3-7/17.yml @@ -40,3 +40,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/18.yml b/data/release-notes/enterprise-server/3-7/18.yml index d0498183a6..2dc73cd8b3 100644 --- a/data/release-notes/enterprise-server/3-7/18.yml +++ b/data/release-notes/enterprise-server/3-7/18.yml @@ -47,3 +47,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/2.yml b/data/release-notes/enterprise-server/3-7/2.yml index 7fff715720..480d4b1764 100644 --- a/data/release-notes/enterprise-server/3-7/2.yml +++ b/data/release-notes/enterprise-server/3-7/2.yml @@ -51,3 +51,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/3.yml b/data/release-notes/enterprise-server/3-7/3.yml index b4991827e2..21d79d7ddd 100644 --- a/data/release-notes/enterprise-server/3-7/3.yml +++ b/data/release-notes/enterprise-server/3-7/3.yml @@ -45,3 +45,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/4.yml b/data/release-notes/enterprise-server/3-7/4.yml index cfb4ad749a..64598a75d0 100644 --- a/data/release-notes/enterprise-server/3-7/4.yml +++ b/data/release-notes/enterprise-server/3-7/4.yml @@ -27,3 +27,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/5.yml b/data/release-notes/enterprise-server/3-7/5.yml index ba2a79aa57..1eccc01a95 100644 --- a/data/release-notes/enterprise-server/3-7/5.yml +++ b/data/release-notes/enterprise-server/3-7/5.yml @@ -35,3 +35,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/6.yml b/data/release-notes/enterprise-server/3-7/6.yml index 6b97355558..7282658d5f 100644 --- a/data/release-notes/enterprise-server/3-7/6.yml +++ b/data/release-notes/enterprise-server/3-7/6.yml @@ -38,3 +38,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/7.yml b/data/release-notes/enterprise-server/3-7/7.yml index 00c6708f61..3eed010a49 100644 --- a/data/release-notes/enterprise-server/3-7/7.yml +++ b/data/release-notes/enterprise-server/3-7/7.yml @@ -31,3 +31,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/8.yml b/data/release-notes/enterprise-server/3-7/8.yml index 5790d2d537..e9de7189d0 100644 --- a/data/release-notes/enterprise-server/3-7/8.yml +++ b/data/release-notes/enterprise-server/3-7/8.yml @@ -65,3 +65,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-7/9.yml b/data/release-notes/enterprise-server/3-7/9.yml index 42b5abd09c..8986b7eb80 100644 --- a/data/release-notes/enterprise-server/3-7/9.yml +++ b/data/release-notes/enterprise-server/3-7/9.yml @@ -40,3 +40,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/0.yml b/data/release-notes/enterprise-server/3-8/0.yml index cc3ccf51ac..447c359cde 100644 --- a/data/release-notes/enterprise-server/3-8/0.yml +++ b/data/release-notes/enterprise-server/3-8/0.yml @@ -478,6 +478,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] deprecations: - heading: Unsecure algorithms disabled for administrative SSH connections diff --git a/data/release-notes/enterprise-server/3-8/1.yml b/data/release-notes/enterprise-server/3-8/1.yml index 678f18ce70..10184b4fdb 100644 --- a/data/release-notes/enterprise-server/3-8/1.yml +++ b/data/release-notes/enterprise-server/3-8/1.yml @@ -72,3 +72,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/10.yml b/data/release-notes/enterprise-server/3-8/10.yml index f8b7731c54..72497e13fa 100644 --- a/data/release-notes/enterprise-server/3-8/10.yml +++ b/data/release-notes/enterprise-server/3-8/10.yml @@ -47,3 +47,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/11.yml b/data/release-notes/enterprise-server/3-8/11.yml index 42a28554ed..87c1427f21 100644 --- a/data/release-notes/enterprise-server/3-8/11.yml +++ b/data/release-notes/enterprise-server/3-8/11.yml @@ -57,3 +57,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/2.yml b/data/release-notes/enterprise-server/3-8/2.yml index 729e0798fc..02406780b1 100644 --- a/data/release-notes/enterprise-server/3-8/2.yml +++ b/data/release-notes/enterprise-server/3-8/2.yml @@ -53,3 +53,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/3.yml b/data/release-notes/enterprise-server/3-8/3.yml index 2560985798..d872c6bdc6 100644 --- a/data/release-notes/enterprise-server/3-8/3.yml +++ b/data/release-notes/enterprise-server/3-8/3.yml @@ -64,3 +64,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/4.yml b/data/release-notes/enterprise-server/3-8/4.yml index e370cf1d47..16dbe64a3a 100644 --- a/data/release-notes/enterprise-server/3-8/4.yml +++ b/data/release-notes/enterprise-server/3-8/4.yml @@ -51,3 +51,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/5.yml b/data/release-notes/enterprise-server/3-8/5.yml index 7fc7c7d0f4..b467f12b34 100644 --- a/data/release-notes/enterprise-server/3-8/5.yml +++ b/data/release-notes/enterprise-server/3-8/5.yml @@ -51,3 +51,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/6.yml b/data/release-notes/enterprise-server/3-8/6.yml index 2ec072ce91..5aa4f83805 100644 --- a/data/release-notes/enterprise-server/3-8/6.yml +++ b/data/release-notes/enterprise-server/3-8/6.yml @@ -111,3 +111,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/7.yml b/data/release-notes/enterprise-server/3-8/7.yml index 20651b3825..e6ed27d4aa 100644 --- a/data/release-notes/enterprise-server/3-8/7.yml +++ b/data/release-notes/enterprise-server/3-8/7.yml @@ -32,6 +32,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] bugs: - | On an instance configured to use an outbound web proxy server, an administrator could not exclude private domains in [this list](https://github.com/weppos/publicsuffix-ruby/blob/main/data/list.txt) from the proxy configuration. [Updated: 2023-11-27] diff --git a/data/release-notes/enterprise-server/3-8/8.yml b/data/release-notes/enterprise-server/3-8/8.yml index cb4de32553..92aeb8c971 100644 --- a/data/release-notes/enterprise-server/3-8/8.yml +++ b/data/release-notes/enterprise-server/3-8/8.yml @@ -61,3 +61,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-8/9.yml b/data/release-notes/enterprise-server/3-8/9.yml index cd03aa7488..ae2533bf2a 100644 --- a/data/release-notes/enterprise-server/3-8/9.yml +++ b/data/release-notes/enterprise-server/3-8/9.yml @@ -43,3 +43,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/0.yml b/data/release-notes/enterprise-server/3-9/0.yml index caf3416f3b..4160837f1a 100644 --- a/data/release-notes/enterprise-server/3-9/0.yml +++ b/data/release-notes/enterprise-server/3-9/0.yml @@ -445,6 +445,8 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] deprecations: # https://github.com/github/releases/issues/2826 diff --git a/data/release-notes/enterprise-server/3-9/1.yml b/data/release-notes/enterprise-server/3-9/1.yml index 43a126b354..a2f2e08844 100644 --- a/data/release-notes/enterprise-server/3-9/1.yml +++ b/data/release-notes/enterprise-server/3-9/1.yml @@ -165,3 +165,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/2.yml b/data/release-notes/enterprise-server/3-9/2.yml index 9da45cd156..0e2310d8c3 100644 --- a/data/release-notes/enterprise-server/3-9/2.yml +++ b/data/release-notes/enterprise-server/3-9/2.yml @@ -80,3 +80,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/3.yml b/data/release-notes/enterprise-server/3-9/3.yml index f21d160d5b..b6ca2962e6 100644 --- a/data/release-notes/enterprise-server/3-9/3.yml +++ b/data/release-notes/enterprise-server/3-9/3.yml @@ -76,3 +76,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/4.yml b/data/release-notes/enterprise-server/3-9/4.yml index c39277b17f..4293188b9b 100644 --- a/data/release-notes/enterprise-server/3-9/4.yml +++ b/data/release-notes/enterprise-server/3-9/4.yml @@ -64,3 +64,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/5.yml b/data/release-notes/enterprise-server/3-9/5.yml index 7ea29a297b..5b3e52f628 100644 --- a/data/release-notes/enterprise-server/3-9/5.yml +++ b/data/release-notes/enterprise-server/3-9/5.yml @@ -70,3 +70,5 @@ sections: {% data reusables.release-notes.2023-11-aws-system-time %} [Updated 2023-11-10] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/release-notes/enterprise-server/3-9/6.yml b/data/release-notes/enterprise-server/3-9/6.yml index 03fee703c1..b0aac8c671 100644 --- a/data/release-notes/enterprise-server/3-9/6.yml +++ b/data/release-notes/enterprise-server/3-9/6.yml @@ -86,3 +86,5 @@ sections: {% data reusables.release-notes.2023-10-actions-upgrade-bug %} [Updated: 2023-12-04] - | {% data reusables.release-notes.2023-12-backup-utils-exit-early-redis %} [Updated 2023-12-05] + - | + {% data reusables.release-notes.2023-12-client-ip-addresses-incorrect-in-audit-log %} [Updated 2023-12-13] diff --git a/data/reusables/release-notes/2023-12-client-ip-addresses-incorrect-in-audit-log.md b/data/reusables/release-notes/2023-12-client-ip-addresses-incorrect-in-audit-log.md new file mode 100644 index 0000000000..2fa3641033 --- /dev/null +++ b/data/reusables/release-notes/2023-12-client-ip-addresses-incorrect-in-audit-log.md @@ -0,0 +1 @@ +On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. From 9ee145967dea51011a58a11691408dd88d5d6617 Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Wed, 13 Dec 2023 10:09:06 +0000 Subject: [PATCH 29/55] [GEI 1a] Create path-specific map topics in GitHub Enterprise Importer docs (#47406) --- content/migrations/index.md | 5 +++-- .../planning-your-migration-to-github.md | 4 ++-- .../using-github-enterprise-importer/index.md | 5 +++-- .../index.md | 15 ++++++++++++++ ...om-githubcom-to-github-enterprise-cloud.md | 4 +++- ...prise-server-to-github-enterprise-cloud.md | 3 ++- ...om-githubcom-to-github-enterprise-cloud.md | 3 ++- ...of-a-migration-between-github-products.md} | 7 ++++--- .../index.md | 13 ++++++++++++ ...azure-devops-to-github-enterprise-cloud.md | 3 ++- ...zure-devops-to-github-enterprise-cloud.md} | 9 +++++---- .../index.md | 13 ++++++++++++ ...ucket-server-to-github-enterprise-cloud.md | 3 ++- ...cket-server-to-github-enterprise-cloud.md} | 9 +++++---- .../index.md | 13 ------------ .../index.md | 20 ------------------- .../about-github-enterprise-importer.md | 7 ++++--- .../index.md | 4 +--- ...-support-for-github-enterprise-importer.md | 8 ++++---- 19 files changed, 83 insertions(+), 65 deletions(-) create mode 100644 content/migrations/using-github-enterprise-importer/migrating-between-github-products/index.md rename content/migrations/using-github-enterprise-importer/{migrating-organizations-with-github-enterprise-importer => migrating-between-github-products}/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md (96%) rename content/migrations/using-github-enterprise-importer/{migrating-repositories-with-github-enterprise-importer => migrating-between-github-products}/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md (99%) rename content/migrations/using-github-enterprise-importer/{migrating-repositories-with-github-enterprise-importer => migrating-between-github-products}/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md (96%) rename content/migrations/using-github-enterprise-importer/{understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer.md => migrating-between-github-products/overview-of-a-migration-between-github-products.md} (98%) create mode 100644 content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/index.md rename content/migrations/using-github-enterprise-importer/{migrating-repositories-with-github-enterprise-importer => migrating-from-azure-devops-to-github-enterprise-cloud}/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md (97%) rename content/migrations/using-github-enterprise-importer/{understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer.md => migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud.md} (95%) create mode 100644 content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/index.md rename content/migrations/using-github-enterprise-importer/{migrating-repositories-with-github-enterprise-importer => migrating-from-bitbucket-server-to-github-enterprise-cloud}/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md (98%) rename content/migrations/using-github-enterprise-importer/{understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer.md => migrating-from-bitbucket-server-to-github-enterprise-cloud/overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud.md} (94%) delete mode 100644 content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/index.md delete mode 100644 content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/index.md diff --git a/content/migrations/index.md b/content/migrations/index.md index 9b9f70ecb9..8b0259699a 100644 --- a/content/migrations/index.md +++ b/content/migrations/index.md @@ -1,7 +1,7 @@ --- title: Migrations documentation shortTitle: Migrations -intro: "If you're moving to {% data variables.product.prodname_dotcom %} from another code hosting platform or moving between {% data variables.product.prodname_dotcom %} products, learn how to use our migration tooling to bring your work with you." +intro: 'If you''re moving to {% data variables.product.prodname_dotcom %} from another code hosting platform or moving between {% data variables.product.prodname_dotcom %} products, learn how to use our migration tooling to bring your work with you.' introLinks: overview: /migrations/overview/about-githubs-migration-tooling plan_your_migration: /migrations/overview/planning-your-migration-to-github @@ -13,7 +13,7 @@ featuredLinks: popular: - /migrations/importing-source-code/using-github-importer/importing-a-repository-with-github-importer - /migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github - - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud guideCards: - /migrations/using-github-enterprise-importer/preparing-to-migrate-with-github-enterprise-importer/managing-access-for-github-enterprise-importer - /migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/reclaiming-mannequins-for-github-enterprise-importer @@ -36,3 +36,4 @@ children: - /using-github-enterprise-importer - /using-ghe-migrator --- + diff --git a/content/migrations/overview/planning-your-migration-to-github.md b/content/migrations/overview/planning-your-migration-to-github.md index 18d861aec0..e0caacec3e 100644 --- a/content/migrations/overview/planning-your-migration-to-github.md +++ b/content/migrations/overview/planning-your-migration-to-github.md @@ -64,9 +64,9 @@ If you’re migrating from {% data variables.product.prodname_ghe_cloud %} or {% {% endnote %} -If you’re migrating from Azure DevOps, we recommend the `inventory-report` command in the {% data variables.product.prodname_ado2gh_cli %}. The `inventory-report` command will connect with the Azure DevOps API, then build a simple CSV with some of the fields suggested above. For more information about how to install the {% data variables.product.prodname_ado2gh_cli %}, see "[AUTOTITLE]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud)." +If you’re migrating from Azure DevOps, we recommend the `inventory-report` command in the {% data variables.product.prodname_ado2gh_cli %}. The `inventory-report` command will connect with the Azure DevOps API, then build a simple CSV with some of the fields suggested above. For more information about how to install the {% data variables.product.prodname_ado2gh_cli %}, see "[AUTOTITLE]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud)." -If you’re migrating from Bitbucket Server or Bitbucket Data Center, we recommend the `inventory-report` command in the {% data variables.product.prodname_bbs2gh_cli %}. The `inventory-report` command will use your Bitbucket instance's API to build a simple CSV. For more information about how to install the {% data variables.product.prodname_bbs2gh_cli %}, see "[AUTOTITLE]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud)." +If you’re migrating from Bitbucket Server or Bitbucket Data Center, we recommend the `inventory-report` command in the {% data variables.product.prodname_bbs2gh_cli %}. The `inventory-report` command will use your Bitbucket instance's API to build a simple CSV. For more information about how to install the {% data variables.product.prodname_bbs2gh_cli %}, see "[AUTOTITLE]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud)." For other migration origins, create your migration inventory yourself. You could build the spreadsheet using the origin’s reporting tools, if available, or API, or you could create the inventory manually. diff --git a/content/migrations/using-github-enterprise-importer/index.md b/content/migrations/using-github-enterprise-importer/index.md index bf42ac4402..03fcb3a949 100644 --- a/content/migrations/using-github-enterprise-importer/index.md +++ b/content/migrations/using-github-enterprise-importer/index.md @@ -9,8 +9,9 @@ versions: children: - /understanding-github-enterprise-importer - /preparing-to-migrate-with-github-enterprise-importer - - /migrating-organizations-with-github-enterprise-importer - - /migrating-repositories-with-github-enterprise-importer + - /migrating-from-azure-devops-to-github-enterprise-cloud + - /migrating-from-bitbucket-server-to-github-enterprise-cloud + - /migrating-between-github-products - /completing-your-migration-with-github-enterprise-importer redirect_from: - /early-access/github/migrating-with-github-enterprise-importer diff --git a/content/migrations/using-github-enterprise-importer/migrating-between-github-products/index.md b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/index.md new file mode 100644 index 0000000000..aef20ff510 --- /dev/null +++ b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/index.md @@ -0,0 +1,15 @@ +--- +title: Migrating between GitHub products +shortTitle: Migrate between GitHub products +intro: 'With {% data variables.product.prodname_importer_proper_name %}, you can migrate from {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %}, or migrate between accounts on {% data variables.product.prodname_ghe_cloud %}.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /overview-of-a-migration-between-github-products + - /migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud + - /migrating-repositories-from-githubcom-to-github-enterprise-cloud + - /migrating-organizations-from-githubcom-to-github-enterprise-cloud +--- + diff --git a/content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md similarity index 96% rename from content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md rename to content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md index 45063f222e..0302ee6ddc 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-organizations-from-githubcom-to-github-enterprise-cloud.md @@ -1,6 +1,6 @@ --- title: Migrating organizations from GitHub.com to GitHub Enterprise Cloud -shortTitle: GitHub.com to Enterprise Cloud +shortTitle: Migrate organizations on GitHub.com intro: 'You can migrate organizations from {% data variables.product.prodname_dotcom_the_website %} to {% data variables.product.prodname_ghe_cloud %}, using the {% data variables.product.prodname_cli %} or the GraphQL API.' versions: fpt: '*' @@ -9,6 +9,8 @@ versions: defaultTool: cli redirect_from: - /early-access/enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer --- ## About organization migrations with {% data variables.product.prodname_importer_proper_name %} diff --git a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md similarity index 99% rename from content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md rename to content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md index d6efd6c0a9..2f6e8b5b44 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud.md @@ -1,6 +1,6 @@ --- title: Migrating repositories from GitHub Enterprise Server to GitHub Enterprise Cloud -shortTitle: Enterprise Server to Enterprise Cloud +shortTitle: Migrate from Enterprise Server intro: 'You can migrate repositories from {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %}, using the {% data variables.product.prodname_cli %} or API.' versions: fpt: '*' @@ -10,6 +10,7 @@ defaultTool: cli redirect_from: - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-to-github-enterprise-cloud/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud --- ## About repository migrations with {% data variables.product.prodname_importer_proper_name %} diff --git a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md similarity index 96% rename from content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md rename to content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md index 138ea23d9a..d4fda4e1a3 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/migrating-repositories-from-githubcom-to-github-enterprise-cloud.md @@ -1,6 +1,6 @@ --- title: Migrating repositories from GitHub.com to GitHub Enterprise Cloud -shortTitle: GitHub.com to Enterprise Cloud +shortTitle: Migrate repositories on GitHub.com intro: 'You can migrate repositories from {% data variables.product.prodname_dotcom_the_website %} to {% data variables.product.prodname_ghe_cloud %}, using the {% data variables.product.prodname_cli %} or the GraphQL API.' versions: fpt: '*' @@ -10,6 +10,7 @@ defaultTool: cli redirect_from: - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-to-github-enterprise-cloud/migrating-repositories-from-githubcom-to-github-enterprise-cloud - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-githubcom-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-githubcom-to-github-enterprise-cloud --- ## About repository migrations with {% data variables.product.prodname_importer_proper_name %} diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products.md similarity index 98% rename from content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer.md rename to content/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products.md index 7b076f5776..507248e8df 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer.md +++ b/content/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products.md @@ -1,7 +1,7 @@ --- -title: Migrating between GitHub products with GitHub Enterprise Importer -shortTitle: Migrate between GitHub products -intro: 'Learn how to complete the entire process of migrating from one {% data variables.product.company_short %} product to another, from planning to implementation to completing follow-up tasks.' +title: Overview of a migration between GitHub products +shortTitle: Overview +intro: 'Learn how to complete the entire process of migrating from one {% data variables.product.company_short %} product to another with {% data variables.product.prodname_importer_proper_name %}, from planning to implementation to completing follow-up tasks.' versions: fpt: '*' ghes: '*' @@ -9,6 +9,7 @@ versions: redirect_from: - /early-access/github/migrating-with-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer - /early-access/enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer + - /migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer --- ## About migrations between {% data variables.product.company_short %} products diff --git a/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/index.md b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/index.md new file mode 100644 index 0000000000..5ce8349557 --- /dev/null +++ b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/index.md @@ -0,0 +1,13 @@ +--- +title: Migrating from Azure DevOps to GitHub Enterprise Cloud +shortTitle: Migrate from Azure DevOps +intro: 'You can migrate repositories to {% data variables.product.prodname_dotcom %} with {% data variables.product.prodname_importer_proper_name %}.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud + - /migrating-repositories-from-azure-devops-to-github-enterprise-cloud +--- + diff --git a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md similarity index 97% rename from content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md rename to content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md index 733448bd0b..04110deb59 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md @@ -1,6 +1,6 @@ --- title: Migrating repositories from Azure DevOps to GitHub Enterprise Cloud -shortTitle: ADO to Enterprise Cloud +shortTitle: Migrate repositories intro: 'You can migrate repositories from Azure DevOps to {% data variables.product.prodname_ghe_cloud %}, using the {% data variables.product.prodname_cli %} or the GraphQL API.' versions: fpt: '*' @@ -10,6 +10,7 @@ defaultTool: cli redirect_from: - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud --- ## About repository migrations with {% data variables.product.prodname_importer_proper_name %} diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud.md similarity index 95% rename from content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer.md rename to content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud.md index b946302e28..54c4aa6aa9 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer.md +++ b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud.md @@ -1,7 +1,7 @@ --- -title: Migrating from Azure DevOps with GitHub Enterprise Importer -shortTitle: Migrate from Azure DevOps -intro: 'Learn how to complete the entire process of migrating from Azure DevOps to {% data variables.product.prodname_dotcom %}, from planning to implementation to completing follow-up tasks.' +title: Overview of a migration from Azure DevOps to GitHub Enterprise Cloud +shortTitle: Overview +intro: 'Learn how to complete the entire process of migrating from Azure DevOps to {% data variables.product.prodname_dotcom %} with {% data variables.product.prodname_importer_proper_name %}, from planning to implementation to completing follow-up tasks.' versions: fpt: '*' ghes: '*' @@ -9,6 +9,7 @@ versions: redirect_from: - /early-access/github/migrating-with-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer - /early-access/enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer + - /migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer --- ## About migrations from Azure DevOps @@ -96,7 +97,7 @@ We recommend creating a test organization to use as a destination for your trial 1. Create a test organization for your trial migrations. {% data reusables.enterprise-migration-tool.trial-migrations-tasks %} {% data reusables.enterprise-migration-tool.configure-destination-ip-allow-list %} -1. Run your production migrations. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud)." +1. Run your production migrations. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud)." {% data reusables.enterprise-migration-tool.delete-test-organization %} ## Completing follow-up tasks diff --git a/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/index.md b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/index.md new file mode 100644 index 0000000000..e9646fce7f --- /dev/null +++ b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/index.md @@ -0,0 +1,13 @@ +--- +title: Migrating from Bitbucket Server to GitHub Enterprise Cloud +shortTitle: Migrate from Bitbucket Server +intro: 'You can migrate repositories to {% data variables.product.prodname_dotcom %} with {% data variables.product.prodname_importer_proper_name %}.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud + - /migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud +--- + diff --git a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md similarity index 98% rename from content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md rename to content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md index 8babd36e92..f06be31710 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud.md @@ -1,6 +1,6 @@ --- title: Migrating repositories from Bitbucket Server to GitHub Enterprise Cloud -shortTitle: Bitbucket Server to Enterprise Cloud +shortTitle: Migrate repositories intro: 'You can migrate repositories from Bitbucket Server to {% data variables.product.prodname_ghe_cloud %} using the {% data variables.product.prodname_cli %}.' versions: fpt: '*' @@ -9,6 +9,7 @@ versions: defaultTool: cli redirect_from: - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud + - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud --- ## About repository migrations with {% data variables.product.prodname_importer_proper_name %} diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud.md similarity index 94% rename from content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer.md rename to content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud.md index ab9505c833..fd55d56052 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer.md +++ b/content/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud.md @@ -1,13 +1,14 @@ --- -title: Migrating from Bitbucket Server with GitHub Enterprise Importer -shortTitle: Migrate from Bitbucket Server -intro: 'Learn about the process of migrating from Bitbucket Server to {% data variables.product.prodname_dotcom %}, from planning to implementation to completing follow-up tasks.' +title: Overview of a migration from Bitbucket Server to GitHub Enterprise Cloud +shortTitle: Overview +intro: 'Learn about the process of migrating from Bitbucket Server to {% data variables.product.prodname_dotcom %} with {% data variables.product.prodname_importer_proper_name %}, from planning to implementation to completing follow-up tasks.' versions: fpt: '*' ghes: '*' ghec: '*' redirect_from: - /early-access/enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer + - /migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer --- ## About migrations from Bitbucket Server @@ -89,7 +90,7 @@ We recommend creating a test organization to use as a destination for your trial 1. Create a test organization for your trial migrations. {% data reusables.enterprise-migration-tool.trial-migrations-tasks %} {% data reusables.enterprise-migration-tool.configure-destination-ip-allow-list %} -1. Run your production migrations. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud)." +1. Run your production migrations. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud)." {% data reusables.enterprise-migration-tool.delete-test-organization %} ## Completing follow-up tasks diff --git a/content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/index.md b/content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/index.md deleted file mode 100644 index b72b23ced9..0000000000 --- a/content/migrations/using-github-enterprise-importer/migrating-organizations-with-github-enterprise-importer/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Migrating organizations with GitHub Enterprise Importer -shortTitle: Migrate organizations -intro: 'You can migrate organizations to {% data variables.product.prodname_dotcom %} with {% data variables.product.prodname_importer_proper_name %}.' -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /migrating-organizations-from-githubcom-to-github-enterprise-cloud -redirect_from: - - /early-access/enterprise-importer/migrating-organizations-with-github-enterprise-importer ---- diff --git a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/index.md b/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/index.md deleted file mode 100644 index 62fedaba82..0000000000 --- a/content/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Migrating repositories with GitHub Enterprise Importer -shortTitle: Migrate repositories -intro: 'You can migrate repositories to {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_importer_proper_name %}.' -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /migrating-repositories-from-azure-devops-to-github-enterprise-cloud - - /migrating-repositories-from-bitbucket-server-to-github-enterprise-cloud - - /migrating-repositories-from-githubcom-to-github-enterprise-cloud - - /migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud -redirect_from: - - /early-access/github/migrating-with-github-enterprise-importer/running-a-migration-with-github-enterprise-importer - - /early-access/github/migrating-with-github-enterprise-importer/migrating-to-github-enterprise-cloud-with-the-importer - - /early-access/github/migrating-with-github-enterprise-importer/running-a-migration-with-github-enterprise-importer/running-a-migration-to-github-enterprise-cloud - - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-to-github-enterprise-cloud - - /early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer ---- diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer.md index 2ef6c1db71..9608e503e5 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer.md +++ b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer.md @@ -9,6 +9,7 @@ redirect_from: - /early-access/github/migrating-with-github-enterprise-importer/about-github-enterprise-importer - /early-access/github/migrating-with-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer - /early-access/enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer + - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer --- ## About {% data variables.product.prodname_importer_proper_name %} @@ -36,6 +37,6 @@ For more information about which data is migrated for each source, see "[AUTOTIT To get started with {% data variables.product.prodname_importer_proper_name %}, read the guide for your migration source. Each guide includes all the information you need to plan and implement a migration from that source, as well as follow-up tasks to complete after your migration. -- "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer)" -- "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-bitbucket-server-with-github-enterprise-importer)" -- "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer)" +- "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud)" +- "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-from-bitbucket-server-to-github-enterprise-cloud/overview-of-a-migration-from-bitbucket-server-to-github-enterprise-cloud)" +- "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products)" diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/index.md b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/index.md index e2a924f073..8d9f6ed0f4 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/index.md +++ b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/index.md @@ -9,10 +9,8 @@ versions: children: - /about-github-enterprise-importer - /migration-support-for-github-enterprise-importer - - /migrating-between-github-products-with-github-enterprise-importer - - /migrating-from-azure-devops-with-github-enterprise-importer - - /migrating-from-bitbucket-server-with-github-enterprise-importer redirect_from: - /early-access/github/migrating-with-github-enterprise-importer/understanding-github-enterprise-importer - /early-access/enterprise-importer/understanding-github-enterprise-importer --- + diff --git a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migration-support-for-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migration-support-for-github-enterprise-importer.md index b492a85127..8701f54c75 100644 --- a/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migration-support-for-github-enterprise-importer.md +++ b/content/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migration-support-for-github-enterprise-importer.md @@ -64,12 +64,12 @@ When you migrate an organization, a new organization is created within the desti - Repositories - Team access to repositories - Member privileges -- Organization-level webhooks (must be re-enabled after your migration, see "[Enabling webhooks](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer#enabling-webhooks)") +- Organization-level webhooks (must be re-enabled after your migration, see "[Enabling webhooks](/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products#enabling-webhooks)") - Default branch name for new repositories created in the organization All repositories are migrated with private visibility. If you want to set a repository's visibility to public or internal, you can do this after the migration using the UI or API. -Team membership is **not** migrated. After the migration, you'll need to add members to migrated teams. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer#recreating-teams)." +Team membership is **not** migrated. After the migration, you'll need to add members to migrated teams. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products#recreating-teams)." {% note %} @@ -87,7 +87,7 @@ When you migrate a repository, either directly or as part of an organization mig - Projects (classic) at the repository level - {% data variables.product.prodname_actions %} workflows - Commit comments -- Active webhooks (must be re-enabled after your migration, see "[Enabling webhooks](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer#enabling-webhooks)") +- Active webhooks (must be re-enabled after your migration, see "[Enabling webhooks](/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products#enabling-webhooks)") - Repository topics - Repository settings - Branch protections (see "[Branch protections](#branch-protections)" for more details) @@ -175,6 +175,6 @@ There are limits to what {% data variables.product.prodname_importer_proper_name - **10 GB size limit for a Git repository:** This limit only applies to the source code. To inspect the size of your repository, use the [git-sizer](https://github.com/github/git-sizer) tool and check the total size of blobs. - **10 GB limit for metadata**: The {% data variables.product.prodname_importer_secondary_name %} cannot migrate repositories with more than 10 GB of metadata. Metadata includes issues, pull requests, releases, and attachments. In most cases, large metadata is caused by binary assets attached to releases. You can exclude releases from the migration with the `migrate-repo` command's `--skip-releases` flag, and then move your releases manually after the migration. - **{% data variables.large_files.product_name_short %} objects not migrated**: The {% data variables.product.prodname_importer_secondary_name %} can migrate repositories that use {% data variables.large_files.product_name_short %}, but the LFS objects themselves will not be migrated. They can be pushed to your migration destination as a follow-up task after the migration is complete. For more information, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/duplicating-a-repository#mirroring-a-repository-that-contains-git-large-file-storage-objects)." -- **Follow-up tasks required:** When migrating between {% data variables.product.prodname_dotcom %} products, certain settings are not migrated and must be reconfigured in the new repository. For a list of follow-up tasks you'll need to complete after each migration, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-between-github-products-with-github-enterprise-importer#completing-follow-up-tasks)." +- **Follow-up tasks required:** When migrating between {% data variables.product.prodname_dotcom %} products, certain settings are not migrated and must be reconfigured in the new repository. For a list of follow-up tasks you'll need to complete after each migration, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-between-github-products/overview-of-a-migration-between-github-products#completing-follow-up-tasks)." - **Delayed code search functionality:** Re-indexing the search index can take a few hours after a repository is migrated, and code searches may return unexpected results until re-indexing is complete. - **Rulesets configured for your organization can cause migrations to fail**: For example, if you configured a rule that requires email addresses for commit authors to end with `@monalisa.cat`, and the repository you're migrating contains commits that don't comply with this rule, your migration will fail. For more information about rulesets, see "[AUTOTITLE](/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)." From 7efe549308ac27f8f6a56b4e917bd39b6fd736e8 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:16:14 +0100 Subject: [PATCH 30/55] [Improvement]: Changing the duration of your billing cycle (#47702) --- .../changing-the-duration-of-your-billing-cycle.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md b/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md index f0280bf36d..6693bec2f1 100644 --- a/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md +++ b/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md @@ -20,6 +20,12 @@ shortTitle: Billing cycle --- When you change your billing cycle's duration, your {% data variables.product.prodname_dotcom %} subscription, along with any other paid features and products, will be moved to your new billing cycle on your next billing date. +{% note %} + +**Note:** Certain products, such as {% data variables.product.prodname_copilot_for_business %}, {% data variables.product.prodname_actions %}, or {% data variables.product.prodname_registry %}, only offer monthly billing. + +{% endnote %} + ## Changing the duration of your personal account's billing cycle {% data reusables.user-settings.access_settings %} From 4ce8b7190e02569a0d51a6030df6683b7cbfe54b Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Wed, 13 Dec 2023 14:17:16 +0000 Subject: [PATCH 31/55] Secret scanning: send alerts for secrets found in PRs and Discussions [Public Beta] (#46298) Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../secret-scanning/about-secret-scanning.md | 21 ++++++++----------- ...g-secret-scanning-for-your-repositories.md | 4 +--- ...-scanning-enhancements-prs-discussions.yml | 6 ++++++ .../beta-pr-and-discussions-scanned.md | 9 ++++++++ .../secret-scanning/what-is-scanned.md | 7 +++++++ 5 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 data/features/secret-scanning-enhancements-prs-discussions.yml create mode 100644 data/reusables/secret-scanning/beta-pr-and-discussions-scanned.md create mode 100644 data/reusables/secret-scanning/what-is-scanned.md diff --git a/content/code-security/secret-scanning/about-secret-scanning.md b/content/code-security/secret-scanning/about-secret-scanning.md index 5c8a627798..32df506d3c 100644 --- a/content/code-security/secret-scanning/about-secret-scanning.md +++ b/content/code-security/secret-scanning/about-secret-scanning.md @@ -26,12 +26,9 @@ topics: If your project communicates with an external service, you might use a token or private key for authentication. Tokens and private keys are examples of secrets that a service provider can issue. If you check a secret into a repository, anyone who has read access to the repository can use the secret to access the external service with your privileges. We recommend that you store secrets in a dedicated, secure location outside of the repository for your project. -{% data variables.product.prodname_secret_scanning_caps %} will scan your entire Git history on all branches present in your {% data variables.product.prodname_dotcom %} repository for secrets{% ifversion ghec or ghes or ghae %}, even if the repository is archived{% endif %}. {% ifversion secret-scanning-issue-body-comments %}{% data reusables.secret-scanning.scan-issue-description-and-comments %}{% else %}{% data variables.product.prodname_secret_scanning_caps %} does not scan issues.{% endif %} +{% data variables.product.prodname_secret_scanning_caps %} will scan your entire Git history on all branches present in your {% data variables.product.prodname_dotcom %} repository for secrets{% ifversion ghec or ghes or ghae %}, even if the repository is archived{% endif %}.{% ifversion ghes < 3.11 %} {% data variables.product.prodname_secret_scanning_caps %} does not scan issues.{% endif %} -{% ifversion secret-scanning-backfills-historical-issues %} -Additionally, {% data variables.product.prodname_secret_scanning %} scans the titles, descriptions, and comments, in open and closed historical issues, and reports leaked secrets as alerts on {% data variables.product.prodname_dotcom %}{% ifversion ghec %}. A notification is sent to the relevant partner when a historical partner pattern is detected{% endif %}. - -{% endif %} +{% data reusables.secret-scanning.what-is-scanned %} {% ifversion fpt or ghec %} {% data variables.product.prodname_secret_scanning_caps %} is available on {% data variables.product.prodname_dotcom_the_website %} in two forms: @@ -42,7 +39,7 @@ Additionally, {% data variables.product.prodname_secret_scanning %} scans the ti {% ifversion fpt %}The following users can enable and configure additional scanning: - Owners of repositories on {% data variables.product.prodname_dotcom_the_website %}, on any _public_ repositories they own. - Organizations owning _public_ repositories, on any of these repositories. - - Organizations using {% data variables.product.prodname_ghe_cloud %}, on any public repositories (for free), and on any private and internal repositories, when you have a license for {% data variables.product.prodname_GH_advanced_security %}.{% elsif ghec %}You can enable and configure additional scanning for repositories owned by organizations that use {% data variables.product.prodname_ghe_cloud %} for any public repositories (for free), and for private and internal repositorites when you have a license for {% data variables.product.prodname_GH_advanced_security %}.{% endif %} + - Organizations using {% data variables.product.prodname_ghe_cloud %}, on any public repositories (for free), and on any private and internal repositories, when you have a license for {% data variables.product.prodname_GH_advanced_security %}.{% elsif ghec %}You can enable and configure additional scanning for repositories owned by organizations that use {% data variables.product.prodname_ghe_cloud %} for any public repositories (for free), and for private and internal repositories when you have a license for {% data variables.product.prodname_GH_advanced_security %}.{% endif %} Any strings that match patterns provided by secret scanning partners, by other service providers, or defined by you or your organization, are reported as alerts in the **Security** tab of repositories. If a string in a public repository matches a partner pattern, it is also reported to the partner. For more information, see the "[About {% data variables.secret-scanning.user_alerts %}](#about-secret-scanning-alerts-for-users)" section below.{% endif %} @@ -70,7 +67,7 @@ Additionally, {% data variables.product.prodname_secret_scanning %} scans the ti ## About {% data variables.secret-scanning.partner_alerts %} -When you make a repository public, or push changes to a public repository, {% data variables.product.product_name %} always scans the code for secrets that match partner patterns. Public packages on the npm registry are also scanned. {% ifversion secret-scanning-issue-body-comments %}{% data reusables.secret-scanning.scan-issue-description-and-comments %}{% endif %} If {% data variables.product.prodname_secret_scanning %} detects a potential secret, we notify the service provider who issued the secret. The service provider validates the string and then decides whether they should revoke the secret, issue a new secret, or contact you directly. Their action will depend on the associated risks to you or them. For more information, see "[AUTOTITLE](/code-security/secret-scanning/secret-scanning-patterns#supported-secrets)." +When you make a repository public, or push changes to a public repository, {% data variables.product.product_name %} always scans the code for secrets that match partner patterns. Public packages on the npm registry are also scanned. If {% data variables.product.prodname_secret_scanning %} detects a potential secret, we notify the service provider who issued the secret. The service provider validates the string and then decides whether they should revoke the secret, issue a new secret, or contact you directly. Their action will depend on the associated risks to you or them. For more information, see "[AUTOTITLE](/code-security/secret-scanning/secret-scanning-patterns#supported-secrets)." You cannot change the configuration of {% data variables.product.prodname_secret_scanning %} for partner patterns on public repositories. @@ -78,9 +75,9 @@ You cannot change the configuration of {% data variables.product.prodname_secret ## About {% data variables.secret-scanning.user_alerts %}{% ifversion ghes or ghae %} on {% data variables.product.product_name %}{% endif %} -{% ifversion ghes or ghae %}{% data variables.secret-scanning.user_alerts_caps %} is available on all organization-owned repositories as part of {% data variables.product.prodname_GH_advanced_security %}. The feature is not available on user-owned repositories.{% endif %}{% ifversion fpt or ghec %}{% data variables.secret-scanning.user_alerts_caps %} are available for free on all public repositories{% endif %}{% ifversion fpt %}.{% endif %}{%ifversion ghec %}, and for private and internal repositories that are owned by organizations using {% data variables.product.prodname_ghe_cloud %} with a license for {% data variables.product.prodname_GH_advanced_security %}.{% endif %} When you enable {% data variables.product.prodname_secret_scanning %} for a repository, {% data variables.product.prodname_dotcom %} scans the code for patterns that match secrets used by many service providers. {% ifversion secret-scanning-backfill-email %}When the scan is completed, {% data variables.product.prodname_dotcom %} sends an email alert to the enterprise and organization owners, even if no secrets were found.{% endif %} +{% ifversion ghes or ghae %}{% data variables.secret-scanning.user_alerts_caps %} is available on all organization-owned repositories as part of {% data variables.product.prodname_GH_advanced_security %}. The feature is not available on user-owned repositories.{% endif %}{% ifversion fpt or ghec %}{% data variables.secret-scanning.user_alerts_caps %} are available for free on all public repositories{% endif %}{% ifversion fpt %}.{% endif %}{%ifversion ghec %}, and for private and internal repositories that are owned by organizations using {% data variables.product.prodname_ghe_cloud %} with a license for {% data variables.product.prodname_GH_advanced_security %}.{% endif %} When you enable {% data variables.product.prodname_secret_scanning %} for a repository, {% data variables.product.prodname_dotcom %} scans the code for patterns that match secrets used by many service providers. {% ifversion secret-scanning-backfill-email %}When the scan is completed, {% data variables.product.prodname_dotcom %} sends an email alert to the enterprise and organization owners, even if no secrets were found.{% endif %} For more information about the repository content that is scanned, see "[About {% data variables.product.prodname_secret_scanning %}](#about--data-variablesproductprodname_secret_scanning)" above. -{% ifversion secret-scanning-issue-body-comments %}{% data reusables.secret-scanning.scan-issue-description-and-comments %}{% endif %} When a supported secret is leaked, {% data variables.product.product_name %} generates a {% data variables.product.prodname_secret_scanning %} alert. {% ifversion secret-scanning-backfills %}{% data variables.product.prodname_dotcom %} will also periodically run a full git history scan of existing content in {% ifversion fpt %}public{% else %}{% data variables.product.prodname_GH_advanced_security %}{% endif %} repositories where {% data variables.product.prodname_secret_scanning %} is enabled, and send alert notifications following the {% data variables.product.prodname_secret_scanning %} alert notification settings.{% endif %}{% ifversion secret-scanning-non-provider-patterns %} User alerts can be of two types: high confidence alerts, or non-provider alerts.{% endif %} For more information, see "{% ifversion fpt or ghec %}[About user alerts](/code-security/secret-scanning/secret-scanning-patterns#about-user--alerts){% else %}[{% data variables.product.prodname_secret_scanning_caps %} patterns](/code-security/secret-scanning/secret-scanning-patterns#about-user-secret-scanning-alerts){% endif %}." +When a supported secret is leaked, {% data variables.product.product_name %} generates a {% data variables.product.prodname_secret_scanning %} alert. {% ifversion secret-scanning-backfills %}{% data variables.product.prodname_dotcom %} will also periodically run a full git history scan of existing content in {% ifversion fpt %}public{% else %}{% data variables.product.prodname_GH_advanced_security %}{% endif %} repositories where {% data variables.product.prodname_secret_scanning %} is enabled, and send alert notifications following the {% data variables.product.prodname_secret_scanning %} alert notification settings.{% endif %}{% ifversion secret-scanning-non-provider-patterns %} User alerts can be of two types: high confidence alerts, or non-provider alerts.{% endif %} For more information, see "{% ifversion fpt or ghec %}[About user alerts](/code-security/secret-scanning/secret-scanning-patterns#about-user--alerts){% else %}[{% data variables.product.prodname_secret_scanning_caps %} patterns](/code-security/secret-scanning/secret-scanning-patterns#about-user-secret-scanning-alerts){% endif %}." If you're a repository administrator, you can enable {% data variables.secret-scanning.user_alerts %} for any {% ifversion fpt %}public{% endif %} repository{% ifversion ghec or ghes or ghae %}, including archived repositories{% endif %}. Organization owners can also enable {% data variables.secret-scanning.user_alerts %} for all {% ifversion fpt %}public {% endif %}repositories or for all new {% ifversion fpt %}public {% endif %}repositories within an organization. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)" and "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)." @@ -91,12 +88,12 @@ You can also define custom {% data variables.product.prodname_secret_scanning %} ### Accessing {% data variables.secret-scanning.alerts %} -When you enable {% data variables.product.prodname_secret_scanning %} for a repository or push commits to a repository with {% data variables.product.prodname_secret_scanning %} enabled, {% data variables.product.prodname_dotcom %} scans the contents for secrets that match patterns defined by service providers{% ifversion ghes or ghae or ghec %} and any custom patterns defined in your enterprise, organization, or repository{% endif %}. {% ifversion secret-scanning-issue-body-comments %}{% data reusables.secret-scanning.scan-issue-description-and-comments %}{% endif %} {% ifversion secret-scanning-backfills %}{% data variables.product.prodname_dotcom %} also runs a scan of all historical code content in {% ifversion fpt %}public {% endif %}repositories with {% data variables.product.prodname_secret_scanning %} enabled when a new partner pattern {% ifversion not fpt %}or custom pattern{% endif %} is added or updated.{% endif%} +When you enable {% data variables.product.prodname_secret_scanning %} for a repository or push commits to a repository with {% data variables.product.prodname_secret_scanning %} enabled, {% data variables.product.prodname_dotcom %} scans the contents for secrets that match patterns defined by service providers{% ifversion ghes or ghae or ghec %} and any custom patterns defined in your enterprise, organization, or repository{% endif %}. -If {% data variables.product.prodname_secret_scanning %} detects a secret in a commit,{% ifversion secret-scanning-issue-body-comments %} issue description, or comment,{% endif %} {% data variables.product.prodname_dotcom %} generates an alert. +When {% data variables.product.prodname_secret_scanning %} detects a secret, {% data variables.product.prodname_dotcom %} generates an alert. - {% data variables.product.prodname_dotcom %} sends an email alert to the repository administrators and organization owners. You'll receive an alert if you are watching the repository{% ifversion secret-scanning-notification-settings %}, {% else %}, and {% endif %}if you have enabled notifications either for security alerts or for all the activity on the repository{% ifversion secret-scanning-notification-settings %}, and if, in your notification settings, you have selected to receive email notifications for the repositories that you are watching.{% else %}.{% endif %} -- If the person who introduced the secret in the commit{% ifversion secret-scanning-issue-body-comments %}, issue description, or comment{% endif %} isn't ignoring the repository, {% data variables.product.prodname_dotcom %} will also send them an email alert. The emails contains a link to the related {% data variables.product.prodname_secret_scanning %} alert. The person who introduced the secret can then view the alert in the repository, and resolve the alert. +- If the person who introduced the secret isn't ignoring the repository, {% data variables.product.prodname_dotcom %} will also send them an email alert. The emails contains a link to the related {% data variables.product.prodname_secret_scanning %} alert. The person who introduced the secret can then view the alert in the repository, and resolve the alert. - {% data variables.product.prodname_dotcom %} displays an alert in the **Security** tab of the repository. For more information about viewing and resolving {% data variables.secret-scanning.alerts %}, see "[AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning)." diff --git a/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md b/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md index 4bd09991c9..be505f160f 100644 --- a/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md +++ b/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md @@ -25,9 +25,7 @@ shortTitle: Configure secret scans ## Enabling {% data variables.secret-scanning.user_alerts %} -You can enable {% data variables.secret-scanning.user_alerts %} for any {% ifversion fpt %}free public{% endif %} repository{% ifversion ghec or ghes or ghae %} that is owned by an organization{% else %} that you own{% endif %}. Once enabled, {% data reusables.secret-scanning.secret-scanning-process %} {% ifversion secret-scanning-issue-body-comments %}{% data reusables.secret-scanning.scan-issue-description-and-comments %} - -{% endif %} +You can enable {% data variables.secret-scanning.user_alerts %} for any {% ifversion fpt %}free public{% endif %} repository{% ifversion ghec or ghes or ghae %} that is owned by an organization{% else %} that you own{% endif %}. Once enabled, {% data reusables.secret-scanning.secret-scanning-process %}{% ifversion ghes < 3.11 %} {% data variables.product.prodname_secret_scanning_caps %} does not scan issues.{% endif %} {% data reusables.secret-scanning.what-is-scanned %} You can also enable {% data variables.product.prodname_secret_scanning %} for multiple repositories in an organization at the same time. For more information, see "[AUTOTITLE](/code-security/getting-started/securing-your-organization)." diff --git a/data/features/secret-scanning-enhancements-prs-discussions.yml b/data/features/secret-scanning-enhancements-prs-discussions.yml new file mode 100644 index 0000000000..672d23720c --- /dev/null +++ b/data/features/secret-scanning-enhancements-prs-discussions.yml @@ -0,0 +1,6 @@ +# Reference: #12555. +# [2023-12-08]: Secret scanning: send alerts for secrets found in PRs and Discussions [Public Beta] +versions: + fpt: '*' + ghec: '*' + ghes: '>3.12' diff --git a/data/reusables/secret-scanning/beta-pr-and-discussions-scanned.md b/data/reusables/secret-scanning/beta-pr-and-discussions-scanned.md new file mode 100644 index 0000000000..d1a8359304 --- /dev/null +++ b/data/reusables/secret-scanning/beta-pr-and-discussions-scanned.md @@ -0,0 +1,9 @@ +{% ifversion secret-scanning-enhancements-prs-discussions %} + +{% note %} + +**Note:** The scanning of content in pull requests and {% data variables.product.prodname_discussions %} is currently in beta and subject to change. + +{% endnote %} + +{% endif %} diff --git a/data/reusables/secret-scanning/what-is-scanned.md b/data/reusables/secret-scanning/what-is-scanned.md new file mode 100644 index 0000000000..a63debef8c --- /dev/null +++ b/data/reusables/secret-scanning/what-is-scanned.md @@ -0,0 +1,7 @@ +{% ifversion fpt or ghec or ghes > 3.10 %}Additionally, {% data variables.product.prodname_secret_scanning %} scans:{% ifversion secret-scanning-issue-body-comments %} +- Descriptions and comments in issues{% endif %}{% ifversion secret-scanning-backfills-historical-issues %} +- Titles, descriptions, and comments, in open and closed _historical_ issues{% ifversion ghec %}. A notification is sent to the relevant partner when a historical partner pattern is detected.{% endif %}{% endif %}{% ifversion secret-scanning-enhancements-prs-discussions %} +- Titles, descriptions, and comments in pull requests +- Titles, descriptions, and comments in {% data variables.product.prodname_discussions %} +{% data reusables.secret-scanning.beta-pr-and-discussions-scanned %}{% endif %} +{% endif %} From 2067d285d518b4783645c7cf640598bcc21d9aa2 Mon Sep 17 00:00:00 2001 From: Anne-Marie <102995847+am-stead@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:41:42 +0100 Subject: [PATCH 32/55] Secret scanning: filter by alert bypass state on the index view [GA] #12554 (#47279) Co-authored-by: Courtney Claessens --- .../managing-alerts-from-secret-scanning.md | 3 ++- ...ction-for-repositories-and-organizations.md | 18 ++++++++++++------ .../features/secret-scanning-bypass-filter.yml | 6 ++++++ 3 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 data/features/secret-scanning-bypass-filter.yml diff --git a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md index 85a66f2228..53285444b5 100644 --- a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md +++ b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md @@ -47,7 +47,8 @@ shortTitle: Manage secret alerts {% data reusables.secret-scanning.validity-check-partner-patterns-beta %} {% data reusables.secret-scanning.validity-check-partner-patterns-enabled %} -{% endif %} +{% endif %}{% ifversion secret-scanning-bypass-filter %} +1. Optionally, to see which alerts are the result of a user bypassing push protection, select the "Bypassed" dropdown menu, then click **True**.{% endif %} 1. Under "{% data variables.product.prodname_secret_scanning_caps %}", click the alert you want to view.{% ifversion secret-scanning-non-provider-patterns %} {% note %} diff --git a/content/code-security/secret-scanning/push-protection-for-repositories-and-organizations.md b/content/code-security/secret-scanning/push-protection-for-repositories-and-organizations.md index 14fa1a9356..704272a847 100644 --- a/content/code-security/secret-scanning/push-protection-for-repositories-and-organizations.md +++ b/content/code-security/secret-scanning/push-protection-for-repositories-and-organizations.md @@ -28,12 +28,12 @@ If a contributor bypasses a push protection block for a secret, {% data variable - adds the bypass event to the audit log.{% ifversion secret-scanning-push-protection-email %} - sends an email alert to organization or personal account owners, security managers, and repository administrators who are watching the repository, with a link to the secret and the reason why it was allowed.{% endif %} -{% ifversion ghec or fpt %} -{% note %} +{% data reusables.secret-scanning.bypass-reasons-and-alerts %} -**Note:** The github.dev web-based editor doesn't support push protection. For more information about the editor, see "[AUTOTITLE](/codespaces/the-githubdev-web-based-editor)." +{% ifversion secret-scanning-bypass-filter %} + +On the {% data variables.product.prodname_secret_scanning %} alerts page for a repository or organization, you can apply the `bypassed:true` filter to easily see which alerts are the result of a user bypassing push protection. -{% endnote %} {% endif %} You can monitor security alerts to discover when users are bypassing push protections and creating alerts. For more information, see "[AUTOTITLE](/code-security/getting-started/auditing-security-alerts)." @@ -42,10 +42,16 @@ You can monitor security alerts to discover when users are bypassing push protec If you are an organization owner or security manager, you can view metrics on how push protection is performing across your organization. For more information, see "[AUTOTITLE](/code-security/security-overview/viewing-metrics-for-secret-scanning-push-protection-in-your-organization)." {% endif %} -{% data reusables.secret-scanning.bypass-reasons-and-alerts %} - For information on the secrets and service providers supported for push protection, see "[AUTOTITLE](/code-security/secret-scanning/secret-scanning-patterns#supported-secrets)." +{% ifversion ghec or fpt %} +{% note %} + +**Note:** The github.dev web-based editor doesn't support push protection. For more information about the editor, see "[AUTOTITLE](/codespaces/the-githubdev-web-based-editor)." + +{% endnote %} +{% endif %} + {% ifversion secret-scanning-push-protection-for-users %} {% data reusables.secret-scanning.push-protection-for-users %} diff --git a/data/features/secret-scanning-bypass-filter.yml b/data/features/secret-scanning-bypass-filter.yml new file mode 100644 index 0000000000..ddc3bf4729 --- /dev/null +++ b/data/features/secret-scanning-bypass-filter.yml @@ -0,0 +1,6 @@ +# Reference: #12554 +# Documentation for secret scanning: filter by bypassed secrets in alert view +versions: + fpt: '*' + ghec: '*' + ghes: '>3.12' From 82c75cb80369d7b79fe3ca42106cbe513c3a0215 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:34:52 -0500 Subject: [PATCH 33/55] Update audit log event data (#47770) --- src/audit-logs/data/ghec/enterprise.json | 20 -------------------- src/audit-logs/lib/config.json | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/src/audit-logs/data/ghec/enterprise.json b/src/audit-logs/data/ghec/enterprise.json index 0c93324edf..c73ae6ccb2 100644 --- a/src/audit-logs/data/ghec/enterprise.json +++ b/src/audit-logs/data/ghec/enterprise.json @@ -109,11 +109,6 @@ "description": "A billing manager was added to an enterprise.", "docs_reference_links": "N/A" }, - { - "action": "business.add_billing_viewer", - "description": "N/A", - "docs_reference_links": "N/A" - }, { "action": "business.add_organization", "description": "An organization was added to an enterprise.", @@ -164,11 +159,6 @@ "description": "An invitation for someone to be an billing manager of an enterprise was canceled.", "docs_reference_links": "N/A" }, - { - "action": "business.cancel_billing_viewer_invitation", - "description": "N/A", - "docs_reference_links": "N/A" - }, { "action": "business.cancel_trial", "description": "The trial of GitHub Enterprise Cloud was cancelled.", @@ -304,11 +294,6 @@ "description": "An invitation for someone to be an billing manager of an enterprise was sent.", "docs_reference_links": "N/A" }, - { - "action": "business.invite_billing_viewer", - "description": "N/A", - "docs_reference_links": "N/A" - }, { "action": "business.members_can_update_protected_branches.clear", "description": "An enterprise owner unset a policy for whether members of an enterprise can update protected branches on repositories for individual organizations. Organization owners can choose whether to allow updating protected branches settings.", @@ -364,11 +349,6 @@ "description": "A billing manager was removed from an enterprise.", "docs_reference_links": "N/A" }, - { - "action": "business.remove_billing_viewer", - "description": "N/A", - "docs_reference_links": "N/A" - }, { "action": "business.remove_member", "description": "A member was removed from an enterprise.", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index 6d64b9b8bc..d75c3045f3 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -1,4 +1,4 @@ { "apiOnlyEventsAdditionalDescription": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", - "sha": "24d023f9d4570cddd3c78bdc4cae2a52aa420924" + "sha": "8fcac9942f2d261caff9d040f5ebf30242b548da" } \ No newline at end of file From 93e1ca65e04d90682351e6a76393b23de9eb560a Mon Sep 17 00:00:00 2001 From: Steven Leabo Date: Wed, 13 Dec 2023 12:05:21 -0500 Subject: [PATCH 34/55] Fixed Contributing Guide link (top link) within /contributing/README.md (#30585) --- contributing/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/README.md b/contributing/README.md index 7f00037ae5..4d4322240d 100644 --- a/contributing/README.md +++ b/contributing/README.md @@ -1,6 +1,6 @@ # Contributing to github/docs -Check out our [contributing guide](../CONTRIBUTING.md) to see all the ways you can participate in the GitHub docs community :sparkling_heart: +Check out our [contributing guide](../.github/CONTRIBUTING.md) to see all the ways you can participate in the GitHub docs community :sparkling_heart: Visit "[Contributing to GitHub Docs documentation](https://docs.github.com/en/contributing)" for additional information about how to write and collaborate the GitHub Docs way. From 3d0424c1274d249e5b69050541bbdef0e1d4938f Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Wed, 13 Dec 2023 09:28:28 -0800 Subject: [PATCH 35/55] Document the status API (#47661) --- content/graphql/overview/about-the-graphql-api.md | 2 ++ content/rest/using-the-rest-api/troubleshooting-the-rest-api.md | 2 +- .../learning-about-github-support/about-github-support.md | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/content/graphql/overview/about-the-graphql-api.md b/content/graphql/overview/about-the-graphql-api.md index d8a68ec2e3..22e6409804 100644 --- a/content/graphql/overview/about-the-graphql-api.md +++ b/content/graphql/overview/about-the-graphql-api.md @@ -57,3 +57,5 @@ For other information, such as authentication and rate limit details, check out ## Requesting support {% data reusables.support.help_resources %} + +If you observe unexpected failures, you can use [githubstatus.com](https://www.githubstatus.com/) or the [{% data variables.product.company_short %} status API](https://www.githubstatus.com/api) to check for incidents affecting the API. diff --git a/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md index 75345d452a..b19cfef06b 100644 --- a/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md +++ b/content/rest/using-the-rest-api/troubleshooting-the-rest-api.md @@ -163,7 +163,7 @@ curl sends a valid `User-Agent` header by default. If you observe an error that is not addressed here, you should refer to the error message that the API gives you. Most error messages will provide a clue about what is wrong and a link to relevant documentation. -If you observe unexpected failures, you can check the status of the REST API at [githubstatus.com](https://www.githubstatus.com/). +If you observe unexpected failures, you can use [githubstatus.com](https://www.githubstatus.com/) or the [{% data variables.product.company_short %} status API](https://www.githubstatus.com/api) to check for incidents affecting the API. ## Further reading diff --git a/content/support/learning-about-github-support/about-github-support.md b/content/support/learning-about-github-support/about-github-support.md index 0e5bf7e628..8a8f98e4a1 100644 --- a/content/support/learning-about-github-support/about-github-support.md +++ b/content/support/learning-about-github-support/about-github-support.md @@ -113,6 +113,8 @@ You can check for any incidents currently affecting {% data variables.product.pr You can also subscribe and get alerted via email, text message, and webhook whenever there's an incident affecting {% data variables.product.product_name %}. +You can also use the {% data variables.product.company_short %} Status API to check for incidents. For more information, see [{% data variables.product.company_short %} Status API](https://www.githubstatus.com/api/). + {% endif %} {% ifversion ghec or ghes %} From d505488eba1e901a48de5f6536bd34b52ec40965 Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Wed, 13 Dec 2023 11:55:46 -0800 Subject: [PATCH 36/55] Remove duplicate fixtures (#47777) --- .../comparing-githubs-rest-api-and-graphql-api.md | 13 ------------- .../content/rest/about-the-rest-api/index.md | 12 ------------ 2 files changed, 25 deletions(-) delete mode 100644 tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md delete mode 100644 tests/fixtures/content/rest/about-the-rest-api/index.md diff --git a/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md b/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md deleted file mode 100644 index c7af7b15be..0000000000 --- a/tests/fixtures/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: About GitHub's APIs -intro: 'Gentle and fun intro about APIs' -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' ---- - -## About {% data variables.product.company_short %}'s APIs - -First paragraph right here. diff --git a/tests/fixtures/content/rest/about-the-rest-api/index.md b/tests/fixtures/content/rest/about-the-rest-api/index.md deleted file mode 100644 index 36340c4bbd..0000000000 --- a/tests/fixtures/content/rest/about-the-rest-api/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: REST API overview -shortTitle: Overview -intro: 'Learn about resources, libraries, previews and troubleshooting for {% data variables.product.prodname_dotcom %}''s REST API.' -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -children: - - /comparing-githubs-rest-api-and-graphql-api ---- From 97c70307b6b6b63297394c07b3def2879775684e Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Wed, 13 Dec 2023 11:58:43 -0800 Subject: [PATCH 37/55] Consolidate uses of AJV (#47662) --- src/content-linter/tests/lint-versioning.js | 20 +++------- src/events/middleware.js | 10 ++--- src/events/tests/middleware-errors.js | 15 +++---- src/frame/lib/read-frontmatter.js | 33 +++++----------- src/frame/tests/site-tree.js | 12 +++--- src/github-apps/scripts/sync.js | 14 +++++-- src/graphql/tests/validate-schema.js | 37 +++++++----------- src/learning-track/tests/validate-schema.js | 12 +++--- src/products/tests/products.js | 13 +++---- src/release-notes/tests/validate-schema.js | 12 +++--- src/rest/scripts/utils/operation.js | 8 +++- src/rest/scripts/utils/validate-data.js | 10 ----- src/secret-scanning/tests/validate-schema.js | 12 +++--- src/tests/lib/ajv-validate.js | 16 -------- src/tests/lib/validate-json-schema.js | 41 ++++++++++++++++++++ src/versions/tests/versions.js | 11 +++--- src/webhooks/scripts/webhook.js | 11 +++--- 17 files changed, 138 insertions(+), 149 deletions(-) delete mode 100644 src/rest/scripts/utils/validate-data.js delete mode 100644 src/tests/lib/ajv-validate.js create mode 100644 src/tests/lib/validate-json-schema.js diff --git a/src/content-linter/tests/lint-versioning.js b/src/content-linter/tests/lint-versioning.js index 3e6376aca1..4d76d08fdb 100644 --- a/src/content-linter/tests/lint-versioning.js +++ b/src/content-linter/tests/lint-versioning.js @@ -1,10 +1,8 @@ import { jest } from '@jest/globals' -import Ajv from 'ajv' -import addErrors from 'ajv-errors' -import semver from 'semver' import featureVersionsSchema from '../lib/feature-versions-schema.js' import { getDeepDataByLanguage } from '#src/data-directory/lib/get-data.js' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' /* @@ -18,26 +16,18 @@ import { formatAjvErrors } from '#src/tests/helpers/schemas.js' jest.useFakeTimers({ legacyFakeTimers: true }) const featureVersions = Object.entries(getDeepDataByLanguage('features', 'en')) - -const ajv = new Ajv({ allErrors: true, allowUnionTypes: true }) -addErrors(ajv) -// *** TODO: We can drop this override once the frontmatter schema has been updated to work with AJV. *** -ajv.addFormat('semver', { - validate: (x) => semver.validRange(x), -}) -// *** End TODO *** -const validate = ajv.compile(featureVersionsSchema) +const validate = getJsonValidator(featureVersionsSchema) // Make sure data/features/*.yml contains valid versioning. describe('lint feature versions', () => { test.each(featureVersions)('data/features/%s matches the schema', (name, featureVersion) => { - const valid = validate(featureVersion) + const isValid = validate(featureVersion) let errors - if (!valid) { + if (!isValid) { errors = formatAjvErrors(validate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) diff --git a/src/events/middleware.js b/src/events/middleware.js index 94f5313d35..e70d6bd951 100644 --- a/src/events/middleware.js +++ b/src/events/middleware.js @@ -1,23 +1,19 @@ import express from 'express' import { omit, without, mapValues } from 'lodash-es' -import Ajv from 'ajv' -import addFormats from 'ajv-formats' import QuickLRU from 'quick-lru' import { schemas, hydroNames } from './lib/schema.js' import catchMiddlewareError from '#src/observability/middleware/catch-middleware-error.js' import { noCacheControl } from '#src/frame/middleware/cache-control.js' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { formatErrors } from './lib/middleware-errors.js' import { publish as _publish } from './lib/hydro.js' const router = express.Router() -const ajv = new Ajv() -addFormats(ajv) const OMIT_FIELDS = ['type'] const allowedTypes = new Set(without(Object.keys(schemas), 'validation')) const isProd = process.env.NODE_ENV === 'production' -const validations = mapValues(schemas, (schema) => ajv.compile(schema)) - +const validators = mapValues(schemas, (schema) => getJsonValidator(schema)) // In production, fire and not wait to respond. // _publish will send an error to failbot, // so we don't get alerts but we still track it. @@ -47,7 +43,7 @@ router.post( } // Validate the data matches the corresponding data schema - const validate = validations[type] + const validate = validators[type] if (!validate(req.body)) { const hash = `${req.ip}:${validate.errors .map((error) => error.message + error.instancePath) diff --git a/src/events/tests/middleware-errors.js b/src/events/tests/middleware-errors.js index 8a986e655f..931b42f5a1 100644 --- a/src/events/tests/middleware-errors.js +++ b/src/events/tests/middleware-errors.js @@ -1,17 +1,13 @@ -import Ajv from 'ajv' -import addFormats from 'ajv-formats' +import { validateJson } from '#src/tests/lib/validate-json-schema.js' import { formatErrors } from '../lib/middleware-errors.js' import { schemas } from '../lib/schema.js' -const ajv = new Ajv() -addFormats(ajv) - expect.extend({ toMatchSchema(data, schema) { - const isValid = ajv.validate(schema, data) + const { isValid, errors } = validateJson(schema, data) return { pass: isValid, - message: () => (isValid ? '' : ajv.errorsText()), + message: () => (isValid ? '' : errors.message), } }, }) @@ -19,8 +15,9 @@ expect.extend({ describe('formatErrors', () => { it('should produce objects that match the validation spec', () => { // Produce an error - ajv.validate({ type: 'string' }, 0) - for (const formatted of formatErrors(ajv.errors, '')) { + const { errors } = validateJson({ type: 'string' }, 0) + const formattedErrors = formatErrors(errors, '') + for (const formatted of formattedErrors) { expect(formatted).toMatchSchema(schemas.validation) } }) diff --git a/src/frame/lib/read-frontmatter.js b/src/frame/lib/read-frontmatter.js index 82779b5ee9..0cfdb1bbed 100644 --- a/src/frame/lib/read-frontmatter.js +++ b/src/frame/lib/read-frontmatter.js @@ -1,25 +1,12 @@ import matter from 'gray-matter' -import Ajv from 'ajv' -import addErrors from 'ajv-errors' -import addFormats from 'ajv-formats' -import semver from 'semver' -const ajv = new Ajv({ allErrors: true, allowUnionTypes: true }) -ajv.addKeyword({ - keyword: 'translatable', -}) -ajv.addFormat('semver', { - validate: (x) => semver.validRange(x), -}) -addErrors(ajv) -addFormats(ajv) +import { validateJson } from '#src/tests/lib/validate-json-schema.js' function readFrontmatter(markdown, opts = {}) { const schema = opts.schema || { type: 'object', properties: {} } const filepath = opts.filepath || null let content, data - let errors = [] try { ;({ content, data } = matter(markdown)) @@ -39,18 +26,13 @@ function readFrontmatter(markdown, opts = {}) { } if (filepath) error.filepath = filepath - errors.push(error) + const errors = [error] console.warn(errors) return { errors } } - const ajvValidate = ajv.compile(schema) - const valid = ajvValidate(data) - - if (!valid) { - errors = ajvValidate.errors - } + const validate = validateJson(schema, data) // Combine the AJV-supplied `instancePath` and `params` into a more user-friendly frontmatter path. // For example, given: @@ -69,8 +51,10 @@ function readFrontmatter(markdown, opts = {}) { return typeof mainProps !== 'object' ? `${prefixProps}.${mainProps}` : prefixProps } - if (!valid && filepath) { - errors = ajvValidate.errors.map((error) => { + const errors = [] + + if (!validate.isValid && filepath) { + const formattedErrors = validate.errors.map((error) => { const userFriendly = {} userFriendly.property = cleanPropertyPath(error.params, error.instancePath) userFriendly.message = error.message @@ -78,6 +62,9 @@ function readFrontmatter(markdown, opts = {}) { userFriendly.filepath = filepath return userFriendly }) + errors.push(...formattedErrors) + } else if (!validate.isValid) { + errors.push(...validate.errors) } return { content, data, errors } diff --git a/src/frame/tests/site-tree.js b/src/frame/tests/site-tree.js index a3e3f06236..a7940ce902 100644 --- a/src/frame/tests/site-tree.js +++ b/src/frame/tests/site-tree.js @@ -1,5 +1,6 @@ -import Ajv from 'ajv' import { jest } from '@jest/globals' + +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import schema from '#src/tests/helpers/schemas/site-tree-schema.js' import EnterpriseServerReleases from '#src/versions/lib/enterprise-server-releases.js' import { loadSiteTree } from '#src/frame/lib/page-data.js' @@ -8,8 +9,7 @@ import { formatAjvErrors } from '#src/tests/helpers/schemas.js' const latestEnterpriseRelease = EnterpriseServerReleases.latest -const ajv = new Ajv({ allErrors: true }) -const siteTreeValidate = ajv.compile(schema.childPage) +const siteTreeValidate = getJsonValidator(schema.childPage) describe('siteTree', () => { jest.setTimeout(3 * 60 * 1000) @@ -58,14 +58,14 @@ describe('siteTree', () => { function validate(currentPage) { ;(currentPage.childPages || []).forEach((childPage) => { - const valid = siteTreeValidate(childPage) + const isValid = siteTreeValidate(childPage) let errors - if (!valid) { + if (!isValid) { errors = `file ${childPage.page.fullPath}: ${formatAjvErrors(siteTreeValidate.errors)}` } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) // Run recurisvely until we run out of child pages validate(childPage) diff --git a/src/github-apps/scripts/sync.js b/src/github-apps/scripts/sync.js index 544fb18a42..9a2021ae75 100644 --- a/src/github-apps/scripts/sync.js +++ b/src/github-apps/scripts/sync.js @@ -10,7 +10,7 @@ import yaml from 'js-yaml' import { getContents } from '#src/workflows/git-utils.js' import permissionSchema from './permission-list-schema.js' import enabledSchema from './enabled-list-schema.js' -import { validateData } from '../../rest/scripts/utils/validate-data.js' +import { validateJson } from '#src/tests/lib/validate-json-schema.js' const ENABLED_APPS_DIR = 'src/github-apps/data' const CONFIG_FILE = 'src/github-apps/lib/config.json' @@ -287,12 +287,20 @@ function initAppData(storage, category, data) { async function validateAppData(data, pageType) { if (pageType.includes('permissions')) { for (const value of Object.values(data)) { - validateData(value, permissionSchema) + const { isValid, errors } = validateJson(permissionSchema, value) + if (!isValid) { + console.error(JSON.stringify(errors, null, 2)) + throw new Error('GitHub Apps permission schema validation failed') + } } } else { for (const arrayItems of Object.values(data)) { for (const item of arrayItems) { - validateData(item, enabledSchema) + const { isValid, errors } = validateJson(enabledSchema, item) + if (!isValid) { + console.error(JSON.stringify(errors, null, 2)) + throw new Error('GitHub Apps enabled apps schema validation failed') + } } } } diff --git a/src/graphql/tests/validate-schema.js b/src/graphql/tests/validate-schema.js index 1d6bc78dff..f201e24d3b 100644 --- a/src/graphql/tests/validate-schema.js +++ b/src/graphql/tests/validate-schema.js @@ -1,6 +1,6 @@ import { jest } from '@jest/globals' -import Ajv from 'ajv' +import { getJsonValidator, validateJson } from '#src/tests/lib/validate-json-schema.js' import readJsonFile from '#src/frame/lib/read-json-file.js' import { schemaValidator, previewsValidator, upcomingChangesValidator } from '../lib/validator.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' @@ -11,15 +11,8 @@ const allVersionValues = Object.values(allVersions) const graphqlVersions = allVersionValues.map((v) => v.openApiVersionName) const graphqlTypes = readJsonFile('./src/graphql/lib/types.json').map((t) => t.kind) -const ajv = new Ajv({ allErrors: true, allowUnionTypes: true }) -const previewsValidate = ajv.compile(previewsValidator) -const upcomingChangesValidate = ajv.compile(upcomingChangesValidator) -// setup ajv validator functions for each graphql type (e.g. queries, mutations, -// etc.) -const schemaValidatorFunctions = {} -graphqlTypes.forEach((type) => { - schemaValidatorFunctions[type] = ajv.compile(schemaValidator[type]) -}) +const previewsValidate = getJsonValidator(previewsValidator) +const upcomingChangesValidate = getJsonValidator(upcomingChangesValidator) describe('graphql json files', () => { jest.setTimeout(3 * 60 * 1000) @@ -38,16 +31,16 @@ describe('graphql json files', () => { if (typeObjsTested.has(key)) return typeObjsTested.add(key) - const valid = schemaValidatorFunctions[type](typeObj) - let errors + const { isValid, errors } = validateJson(schemaValidator[type], typeObj) - if (!valid) { - errors = `kind: ${typeObj.kind}, name: ${typeObj.name}: ${formatAjvErrors( - schemaValidatorFunctions[type].errors, + let formattedErrors = errors + if (!isValid) { + formattedErrors = `kind: ${typeObj.kind}, name: ${typeObj.name}: ${formatAjvErrors( + errors, )}` } - expect(valid, errors).toBe(true) + expect(isValid, formattedErrors).toBe(true) }) }) }) @@ -57,14 +50,14 @@ describe('graphql json files', () => { graphqlVersions.forEach((version) => { const previews = readJsonFile(`${GRAPHQL_DATA_DIR}/${version}/previews.json`) previews.forEach((preview) => { - const valid = previewsValidate(preview) + const isValid = previewsValidate(preview) let errors - if (!valid) { + if (!isValid) { errors = formatAjvErrors(previewsValidate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) }) @@ -75,14 +68,14 @@ describe('graphql json files', () => { for (const changes of Object.values(upcomingChanges)) { // each object value is an array of changes changes.forEach((changeObj) => { - const valid = upcomingChangesValidate(changeObj) + const isValid = upcomingChangesValidate(changeObj) let errors - if (!valid) { + if (!isValid) { errors = formatAjvErrors(upcomingChangesValidate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) } }) diff --git a/src/learning-track/tests/validate-schema.js b/src/learning-track/tests/validate-schema.js index 333e5becac..766600fc57 100644 --- a/src/learning-track/tests/validate-schema.js +++ b/src/learning-track/tests/validate-schema.js @@ -6,10 +6,10 @@ import { jest } from '@jest/globals' import { liquid } from '#src/content-render/index.js' import learningTracksSchema from '../lib/learning-tracks-schema.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' -import { ajvValidate } from '#src/tests/lib/ajv-validate.js' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' const learningTrackRootPath = 'data/learning-tracks' -const jsonValidator = ajvValidate(learningTracksSchema) +const validate = getJsonValidator(learningTracksSchema) const yamlWalkOptions = { globs: ['**/*.yml'], directories: false, @@ -31,14 +31,14 @@ describe('lint learning tracks', () => { }) it('matches the schema', () => { - const valid = jsonValidator(yamlContent) + const isValid = validate(yamlContent) let errors - if (!valid) { - errors = formatAjvErrors(jsonValidator.errors) + if (!isValid) { + errors = formatAjvErrors(validate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) it('contains valid liquid', () => { diff --git a/src/products/tests/products.js b/src/products/tests/products.js index 0c87ac34c8..b86a427a71 100644 --- a/src/products/tests/products.js +++ b/src/products/tests/products.js @@ -1,10 +1,9 @@ -import Ajv from 'ajv' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { productMap } from '#src/products/lib/all-products.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' import schema from '#src/tests/helpers/schemas/products-schema.js' -const ajv = new Ajv({ allErrors: true }) -const validate = ajv.compile(schema) +const validate = getJsonValidator(schema) describe('products module', () => { test('is an object with product ids as keys', () => { @@ -14,13 +13,13 @@ describe('products module', () => { test('every product is valid', () => { Object.values(productMap).forEach((product) => { - const valid = validate(product) + const isValid = validate(product) let errors - if (!valid) { - errors = formatAjvErrors(valid.errors) + if (!isValid) { + errors = formatAjvErrors(validate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) }) diff --git a/src/release-notes/tests/validate-schema.js b/src/release-notes/tests/validate-schema.js index 841b3889cd..dbdb0b394e 100644 --- a/src/release-notes/tests/validate-schema.js +++ b/src/release-notes/tests/validate-schema.js @@ -5,10 +5,10 @@ import { jest } from '@jest/globals' import releaseNotesSchema from '../lib/release-notes-schema.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' -import { ajvValidate } from '#src/tests/lib/ajv-validate.js' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' const ghesReleaseNoteRootPath = 'data/release-notes' -const jsonValidator = ajvValidate(releaseNotesSchema) +const validate = getJsonValidator(releaseNotesSchema) const yamlWalkOptions = { globs: ['**/*.yml'], directories: false, @@ -29,14 +29,14 @@ describe('lint enterprise release notes', () => { }) it('matches the schema', () => { - const valid = jsonValidator(yamlContent) + const isValid = validate(yamlContent) let errors - if (!valid) { - errors = formatAjvErrors(jsonValidator.errors) + if (!isValid) { + errors = formatAjvErrors(validate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) }) diff --git a/src/rest/scripts/utils/operation.js b/src/rest/scripts/utils/operation.js index 5d0e2fa069..ad655d6fcd 100644 --- a/src/rest/scripts/utils/operation.js +++ b/src/rest/scripts/utils/operation.js @@ -7,7 +7,7 @@ import mergeAllOf from 'json-schema-merge-allof' import { renderContent } from '#src/content-render/index.js' import getCodeSamples from './create-rest-examples.js' import operationSchema from './operation-schema.js' -import { validateData } from './validate-data.js' +import { validateJson } from '#src/tests/lib/validate-json-schema.js' import { getBodyParams } from './get-body-params.js' export default class Operation { @@ -59,7 +59,11 @@ export default class Operation { this.renderPreviewNotes(), ]) - validateData(this, operationSchema) + const { isValid, errors } = validateJson(operationSchema, this) + if (!isValid) { + console.error(JSON.stringify(errors, null, 2)) + throw new Error('Invalid OpenAPI operation found') + } } async renderDescription() { diff --git a/src/rest/scripts/utils/validate-data.js b/src/rest/scripts/utils/validate-data.js deleted file mode 100644 index 38095df004..0000000000 --- a/src/rest/scripts/utils/validate-data.js +++ /dev/null @@ -1,10 +0,0 @@ -import Ajv from 'ajv' -const ajv = new Ajv() - -export async function validateData(data, schema) { - const valid = ajv.validate(schema, data) - if (!valid) { - console.error(JSON.stringify(ajv.errors, null, 2)) - throw new Error('Invalid OpenAPI operation found') - } -} diff --git a/src/secret-scanning/tests/validate-schema.js b/src/secret-scanning/tests/validate-schema.js index 02c182881b..294a409738 100644 --- a/src/secret-scanning/tests/validate-schema.js +++ b/src/secret-scanning/tests/validate-schema.js @@ -2,7 +2,7 @@ import fs from 'fs' import yaml from 'js-yaml' import { jest } from '@jest/globals' -import { ajvValidate } from '#src/tests/lib/ajv-validate.js' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { formatAjvErrors } from '#src/tests/helpers/schemas.js' import secretScanningSchema from '../lib/secret-scanning-schema.js' @@ -10,16 +10,16 @@ jest.useFakeTimers({ legacyFakeTimers: true }) describe('lint secret-scanning', () => { const yamlContent = yaml.load(fs.readFileSync('data/secret-scanning.yml', 'utf8')) - const jsonValidate = ajvValidate(secretScanningSchema) + const validate = getJsonValidator(secretScanningSchema) test('matches the schema', () => { - const valid = jsonValidate(yamlContent) + const isValid = validate(yamlContent) let errors - if (!valid) { - errors = formatAjvErrors(jsonValidate.errors) + if (!isValid) { + errors = formatAjvErrors(validate.errors) } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) diff --git a/src/tests/lib/ajv-validate.js b/src/tests/lib/ajv-validate.js deleted file mode 100644 index 0a520e2350..0000000000 --- a/src/tests/lib/ajv-validate.js +++ /dev/null @@ -1,16 +0,0 @@ -import Ajv from 'ajv' -import addErrors from 'ajv-errors' -import addFormats from 'ajv-formats' -import semver from 'semver' - -const ajv = new Ajv({ allErrors: true, allowUnionTypes: true }) -addFormats(ajv) -addErrors(ajv) -// *** TODO: We can drop this override once the frontmatter schema has been updated to work with AJV. *** -ajv.addFormat('semver', { - validate: (x) => semver.validRange(x), -}) - -export function ajvValidate(schema) { - return ajv.compile(schema) -} diff --git a/src/tests/lib/validate-json-schema.js b/src/tests/lib/validate-json-schema.js new file mode 100644 index 0000000000..f5ba06951f --- /dev/null +++ b/src/tests/lib/validate-json-schema.js @@ -0,0 +1,41 @@ +import Ajv from 'ajv' +import addErrors from 'ajv-errors' +import addFormats from 'ajv-formats' +import semver from 'semver' + +const ajv = new Ajv({ allErrors: true, allowUnionTypes: true }) +addFormats(ajv) +addErrors(ajv) + +// Custom JSON keywords +ajv.addKeyword({ + keyword: 'translatable', +}) + +// Custom JSON formats +ajv.addFormat('semver', { + validate: (x) => semver.validRange(x), +}) + +// The ajv.validate function is supposed to cache +// the compiled schema, but the documentation says +// that the best permformance is achieved by calling +// the compile function and then calling validate. +// So when the same schema is validated multiple times, +// this is the best function to use. If the schema +// changes from one call to the next, then the validateJson +// function makes more sense to use. +export function getJsonValidator(schema) { + return ajv.compile(schema) +} + +// The next call to ajv.validate will overwrite +// the ajv.errors property, so returning it here +// ensures that it remains accessible. +export function validateJson(schema, data) { + const isValid = ajv.validate(schema, data) + return { + isValid, + errors: isValid ? null : structuredClone(ajv.errors), + } +} diff --git a/src/versions/tests/versions.js b/src/versions/tests/versions.js index 52859d93da..1c1950199d 100644 --- a/src/versions/tests/versions.js +++ b/src/versions/tests/versions.js @@ -1,6 +1,6 @@ import { jest } from '@jest/globals' -import Ajv from 'ajv' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { allVersions } from '#src/versions/lib/all-versions.js' import { latest } from '#src/versions/lib/enterprise-server-releases.js' import schema from '#src/tests/helpers/schemas/versions-schema.js' @@ -9,8 +9,7 @@ import { formatAjvErrors } from '#src/tests/helpers/schemas.js' jest.useFakeTimers({ legacyFakeTimers: true }) -const ajv = new Ajv({ allErrors: true }) -const validate = ajv.compile(schema) +const validate = getJsonValidator(schema) describe('versions module', () => { test('is an object with versions as keys', () => { @@ -20,14 +19,14 @@ describe('versions module', () => { test('every version is valid', () => { Object.values(allVersions).forEach((versionObj) => { - const valid = validate(versionObj) + const isValid = validate(versionObj) let errors - if (!valid) { + if (!isValid) { errors = `version '${versionObj.version}': ${formatAjvErrors(validate.errors)}` } - expect(valid, errors).toBe(true) + expect(isValid, errors).toBe(true) }) }) diff --git a/src/webhooks/scripts/webhook.js b/src/webhooks/scripts/webhook.js index 0c770154b5..59e56a0bc3 100644 --- a/src/webhooks/scripts/webhook.js +++ b/src/webhooks/scripts/webhook.js @@ -1,7 +1,7 @@ #!/usr/bin/env node -import Ajv from 'ajv' import { get, isPlainObject } from 'lodash-es' +import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' import { renderContent } from '#src/content-render/index.js' import webhookSchema from './webhook-schema.js' import { getBodyParams } from '../../rest/scripts/utils/get-body-params.js' @@ -15,6 +15,8 @@ const NO_CHILD_PROPERTIES = [ 'sender', ] +const validate = getJsonValidator(webhookSchema) + export default class Webhook { #webhook constructor(webhook) { @@ -50,10 +52,9 @@ export default class Webhook { async process() { await Promise.all([this.renderDescription(), this.renderBodyParameterDescriptions()]) - const ajv = new Ajv() - const valid = ajv.validate(webhookSchema, this) - if (!valid) { - console.error(JSON.stringify(ajv.errors, null, 2)) + const isValid = validate(this) + if (!isValid) { + console.error(JSON.stringify(validate.errors, null, 2)) throw new Error(`Invalid OpenAPI webhook found: ${this.category}`) } } From c2bcee148ef3226c73b8175cbd1b9ac2798bc6db Mon Sep 17 00:00:00 2001 From: Rachael Rose Renk <91027132+rachaelrenk@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:18:44 -0700 Subject: [PATCH 38/55] [Improvement]: Get started (phase 1): Moving "Create a repo" from Quickstart to Repositories (#47448) Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> --- content/get-started/quickstart/github-flow.md | 2 +- content/get-started/quickstart/index.md | 1 - content/get-started/quickstart/set-up-git.md | 2 +- content/github-cli/index.md | 2 +- .../about-repositories.md | 2 +- .../index.md | 1 + .../quickstart-for-repositories.md} | 29 ++++--------------- content/repositories/index.md | 2 +- .../getting-started/create-a-repository.md | 2 +- 9 files changed, 12 insertions(+), 31 deletions(-) rename content/{get-started/quickstart/create-a-repo.md => repositories/creating-and-managing-repositories/quickstart-for-repositories.md} (75%) diff --git a/content/get-started/quickstart/github-flow.md b/content/get-started/quickstart/github-flow.md index fed42a1117..3d6a943855 100644 --- a/content/get-started/quickstart/github-flow.md +++ b/content/get-started/quickstart/github-flow.md @@ -23,7 +23,7 @@ topics: ## Prerequisites -To follow {% data variables.product.prodname_dotcom %} flow, you will need a {% data variables.product.prodname_dotcom %} account and a repository. {% ifversion fpt or ghec %}For information on how to create an account, see "[AUTOTITLE](/get-started/quickstart/creating-an-account-on-github)."{% elsif ghes or ghae %}For more information, contact your site administrator.{% endif %} For information on how to create a repository, see "[AUTOTITLE](/get-started/quickstart/create-a-repo)."{% ifversion fpt or ghec %} For information on how to find an existing repository to contribute to, see "[AUTOTITLE](/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)."{% endif %} +To follow {% data variables.product.prodname_dotcom %} flow, you will need a {% data variables.product.prodname_dotcom %} account and a repository. {% ifversion fpt or ghec %}For information on how to create an account, see "[AUTOTITLE](/get-started/quickstart/creating-an-account-on-github)."{% elsif ghes or ghae %}For more information, contact your site administrator.{% endif %} For information on how to create a repository, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/quickstart-for-repositories)."{% ifversion fpt or ghec %} For information on how to find an existing repository to contribute to, see "[AUTOTITLE](/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)."{% endif %} ## Following {% data variables.product.prodname_dotcom %} flow diff --git a/content/get-started/quickstart/index.md b/content/get-started/quickstart/index.md index 48d1917428..f715bbd20b 100644 --- a/content/get-started/quickstart/index.md +++ b/content/get-started/quickstart/index.md @@ -15,7 +15,6 @@ children: - /creating-an-account-on-github - /hello-world - /set-up-git - - /create-a-repo - /fork-a-repo - /github-flow - /contributing-to-projects diff --git a/content/get-started/quickstart/set-up-git.md b/content/get-started/quickstart/set-up-git.md index 829bf43470..1b3e694218 100644 --- a/content/get-started/quickstart/set-up-git.md +++ b/content/get-started/quickstart/set-up-git.md @@ -32,7 +32,7 @@ If you want to work with Git locally, but do not want to use the command line, y If you do not need to work with files locally, {% data variables.product.product_name %} lets you complete many Git-related actions directly in the browser, including: -- [Creating a repository](/get-started/quickstart/create-a-repo) +- [AUTOTITLE](/repositories/creating-and-managing-repositories/quickstart-for-repositories) - [Forking a repository](/get-started/quickstart/fork-a-repo) - [Managing files](/repositories/working-with-files/managing-files) - [Being social](/get-started/quickstart/be-social) diff --git a/content/github-cli/index.md b/content/github-cli/index.md index 247a894f34..c3916551f3 100644 --- a/content/github-cli/index.md +++ b/content/github-cli/index.md @@ -23,7 +23,7 @@ featuredLinks: - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request - /issues/tracking-your-work-with-issues/creating-an-issue - /authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account - - /get-started/quickstart/create-a-repo + - /repositories/creating-and-managing-repositories/quickstart-for-repositories - /pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally - /pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request - /get-started/quickstart/fork-a-repo diff --git a/content/repositories/creating-and-managing-repositories/about-repositories.md b/content/repositories/creating-and-managing-repositories/about-repositories.md index 68c638f790..52b89db938 100644 --- a/content/repositories/creating-and-managing-repositories/about-repositories.md +++ b/content/repositories/creating-and-managing-repositories/about-repositories.md @@ -24,7 +24,7 @@ topics: A repository is the most basic element of {% data variables.product.prodname_dotcom %}. It's a place where you can store your code, your files, and each file's revision history. Repositories can have multiple collaborators and can be either public{% ifversion ghes or ghec %}, internal,{% endif %} or private. -To create a new repository, go to [https://github.com/new](https://github.com/new). For instructions, see "[AUTOTITLE](/get-started/quickstart/create-a-repo)." +To create a new repository, go to [https://github.com/new](https://github.com/new). For instructions, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/quickstart-for-repositories)." ## Repository terminology diff --git a/content/repositories/creating-and-managing-repositories/index.md b/content/repositories/creating-and-managing-repositories/index.md index 765c772c72..72a922e064 100644 --- a/content/repositories/creating-and-managing-repositories/index.md +++ b/content/repositories/creating-and-managing-repositories/index.md @@ -14,6 +14,7 @@ topics: children: - /about-repositories - /best-practices-for-repositories + - /quickstart-for-repositories - /repository-limits - /creating-a-new-repository - /creating-a-repository-from-a-template diff --git a/content/get-started/quickstart/create-a-repo.md b/content/repositories/creating-and-managing-repositories/quickstart-for-repositories.md similarity index 75% rename from content/get-started/quickstart/create-a-repo.md rename to content/repositories/creating-and-managing-repositories/quickstart-for-repositories.md index 5dc81bf1a2..87da8931ae 100644 --- a/content/get-started/quickstart/create-a-repo.md +++ b/content/repositories/creating-and-managing-repositories/quickstart-for-repositories.md @@ -1,11 +1,13 @@ --- -title: Create a repo +title: Quickstart for repositories +type: quick_start redirect_from: - /create-a-repo - /articles/create-a-repo - /github/getting-started-with-github/create-a-repo - /github/getting-started-with-github/quickstart/create-a-repo -intro: 'To put your project up on {% data variables.product.prodname_dotcom %}, you will need to create a repository for it to live in.' + - /get-started/quickstart/create-a-repo +intro: 'Learn how to create a new repository and commit your first change in 5 minutes.' versions: fpt: '*' ghes: '*' @@ -19,28 +21,7 @@ topics: --- ## Create a repository -{% ifversion fpt or ghec %} - -You can store a variety of projects in {% data variables.product.prodname_dotcom %} repositories, including open source projects. With open source projects, you can share code to make better, more reliable software. You can use repositories to collaborate with others and track your work. For more information, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/about-repositories)." To learn more about open source projects, visit [OpenSource.org](https://opensource.org/about). - -{% elsif ghes or ghae %} - -You can store a variety of projects in {% data variables.product.product_name %} repositories, including innersource projects. With innersource, you can share code to make better, more reliable software. For more information on innersource, see {% data variables.product.company_short %}'s white paper "[An introduction to innersource](https://resources.github.com/whitepapers/introduction-to-innersource/)." - -{% endif %} - -{% ifversion fpt or ghec %} - -{% note %} - -**Notes:** -- You can create public repositories for an open source project. When creating your public repository, make sure to include a [license file](https://choosealicense.com/) that determines how you want your project to be shared with others. {% data reusables.open-source.open-source-guide-repositories %} -- {% data reusables.open-source.open-source-learning %} -- You can also add community health files to your repositories, to set guidelines on how to contribute, keep your repositories safe, and much more. For more information, see "[AUTOTITLE](/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." - -{% endnote %} - -{% endif %} +{% data variables.product.product_name %} repositories store a variety of projects. In this guide, you'll create a repository and commit your first change. {% webui %} diff --git a/content/repositories/index.md b/content/repositories/index.md index 09c9105c31..fed306eb9f 100644 --- a/content/repositories/index.md +++ b/content/repositories/index.md @@ -3,7 +3,7 @@ title: Repositories documentation shortTitle: Repositories intro: Learn to use and manage the repositories that allow you to store and collaborate on your project's code. introLinks: - quickstart: /get-started/quickstart/create-a-repo + quickstart: /repositories/creating-and-managing-repositories/quickstart-for-repositories overview: /repositories/creating-and-managing-repositories/about-repositories featuredLinks: startHere: diff --git a/data/reusables/getting-started/create-a-repository.md b/data/reusables/getting-started/create-a-repository.md index 83343b0b29..588d68ceb3 100644 --- a/data/reusables/getting-started/create-a-repository.md +++ b/data/reusables/getting-started/create-a-repository.md @@ -1 +1 @@ -Creating a repository for your project allows you to store code in {% data variables.product.prodname_dotcom %}. This provides a backup of your work that you can choose to share with other developers. For more information, see “[Create a repository](/get-started/quickstart/create-a-repo)." +Creating a repository for your project allows you to store code in {% data variables.product.prodname_dotcom %}. This provides a backup of your work that you can choose to share with other developers. For more information, see “[AUTOTITLE](/repositories/creating-and-managing-repositories/quickstart-for-repositories)." From 1281e6e463bc6b059708d72aa76f88f8531c9da0 Mon Sep 17 00:00:00 2001 From: Jye Horan Date: Thu, 14 Dec 2023 04:23:17 +0800 Subject: [PATCH 39/55] Added section on custom domain default (#47401) Co-authored-by: Laura Coursen --- .../about-custom-domains-and-github-pages.md | 10 ++++++++-- .../about-github-pages.md | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md index d938a66d93..681c4fb6ed 100644 --- a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md +++ b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md @@ -30,7 +30,13 @@ You can set up either or both of apex and `www` subdomain configurations for you We recommend always using a `www` subdomain, even if you also use an apex domain. When you create a new site with an apex domain, we automatically attempt to secure the `www` subdomain for use when serving your site's content, but you need to make the DNS changes to use the `www` subdomain. If you configure a `www` subdomain, we automatically attempt to secure the associated apex domain. For more information, see "[AUTOTITLE](/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site)." -After you configure a custom domain for a user or organization site, the custom domain will replace the `.github.io` or `.github.io` portion of the URL for any project sites owned by the account that are published publicly and do not have a custom domain configured. For example, if the custom domain for your user site is `www.octocat.com`, and you have a project site with no custom domain configured that is published from a repository called `octo-project`, the {% data variables.product.prodname_pages %} site for that repository will be available at `www.octocat.com/octo-project`. +## Using a custom domain across multiple repositories + +If you set a custom domain for a user or organization site, by default, the same custom domain will be used for all project sites owned by the same account. For more information about site types, see "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites)." + +For example, if the custom domain for your user site is `www.octocat.com`, and you have a project site with no custom domain configured that is published from a repository called `octo-project`, the {% data variables.product.prodname_pages %} site for that repository will be available at `www.octocat.com/octo-project`. + +You can override the default custom domain by adding a custom domain to the individual repository. {% note %} @@ -38,7 +44,7 @@ After you configure a custom domain for a user or organization site, the custom {% endnote %} -For more information about each type of site and handling custom domains, see "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites)." +To remove the default custom domain, you must remove the custom domain from your user or organization site. ## Using a subdomain for your {% data variables.product.prodname_pages %} site diff --git a/content/pages/getting-started-with-github-pages/about-github-pages.md b/content/pages/getting-started-with-github-pages/about-github-pages.md index 5c8c97f4f7..f6512a1217 100644 --- a/content/pages/getting-started-with-github-pages/about-github-pages.md +++ b/content/pages/getting-started-with-github-pages/about-github-pages.md @@ -51,7 +51,7 @@ If you publish your site privately, the URL for your site will be different. For {% endif %} {% ifversion fpt or ghec %} -For more information about how custom domains affect the URL for your site, see "[AUTOTITLE](/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages)." +For more information about how custom domains affect the URL for your site, see "[AUTOTITLE](/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages#using-a-custom-domain-across-multiple-repositories)." {% endif %} You can only create one user or organization site for each account on {% data variables.product.product_name %}. Project sites, whether owned by an organization or a personal account, are unlimited. From b01a54787290211d14675af34b14b9d8ed1e6797 Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Wed, 13 Dec 2023 13:14:42 -0800 Subject: [PATCH 40/55] Consolidate data schema validation tests (#47729) --- .../style-guide.md | 2 +- ...sing-markdown-and-liquid-in-github-docs.md | 2 +- data/{variables => }/code-languages.yml | 0 data/release-notes/.gitkeep | 0 src/content-linter/style/base.js | 2 +- .../tests/learning-track-liquid.js} | 15 --- ...ontmatter.js => lint-frontmatter-links.js} | 0 src/content-linter/tests/lint-versioning.js | 33 ------ src/content-render/unified/annotate.js | 2 +- src/content-render/unified/code-header.js | 2 +- .../lib/data-schemas/code-languages.js | 16 +++ .../lib/data-schemas/features.js} | 0 .../lib/data-schemas/glossaries.js | 39 +++++++ .../lib/data-schemas/learning-tracks.js} | 7 +- .../lib/data-schemas/release-notes.js} | 8 +- .../lib/data-schemas/secret-scanning.js} | 0 .../lib/data-schemas/variables.js | 6 + src/data-directory/tests/data-schemas.js | 103 ++++++++++++++++++ src/data-directory/tests/glossary.js | 40 ------- src/release-notes/tests/validate-schema.js | 42 ------- src/secret-scanning/tests/validate-schema.js | 25 ----- 21 files changed, 181 insertions(+), 163 deletions(-) rename data/{variables => }/code-languages.yml (100%) delete mode 100644 data/release-notes/.gitkeep rename src/{learning-track/tests/validate-schema.js => content-linter/tests/learning-track-liquid.js} (69%) rename src/content-linter/tests/{lint-frontmatter.js => lint-frontmatter-links.js} (100%) delete mode 100644 src/content-linter/tests/lint-versioning.js create mode 100644 src/data-directory/lib/data-schemas/code-languages.js rename src/{content-linter/lib/feature-versions-schema.js => data-directory/lib/data-schemas/features.js} (100%) create mode 100644 src/data-directory/lib/data-schemas/glossaries.js rename src/{learning-track/lib/learning-tracks-schema.js => data-directory/lib/data-schemas/learning-tracks.js} (74%) rename src/{release-notes/lib/release-notes-schema.js => data-directory/lib/data-schemas/release-notes.js} (90%) rename src/{secret-scanning/lib/secret-scanning-schema.js => data-directory/lib/data-schemas/secret-scanning.js} (100%) create mode 100644 src/data-directory/lib/data-schemas/variables.js create mode 100644 src/data-directory/tests/data-schemas.js delete mode 100644 src/data-directory/tests/glossary.js delete mode 100644 src/release-notes/tests/validate-schema.js delete mode 100644 src/secret-scanning/tests/validate-schema.js diff --git a/content/contributing/style-guide-and-content-model/style-guide.md b/content/contributing/style-guide-and-content-model/style-guide.md index c0c60f0605..84b224ce18 100644 --- a/content/contributing/style-guide-and-content-model/style-guide.md +++ b/content/contributing/style-guide-and-content-model/style-guide.md @@ -87,7 +87,7 @@ Style your CTAs using the following format. Keep lines in code samples to about 60 characters, to avoid requiring readers to scroll horizontally in the code block. Locate explanatory text before the code block, rather than using comments inside the code block. See "[AUTOTITLE](/contributing/syntax-and-versioning-for-github-docs/using-markdown-and-liquid-in-github-docs#code-sample-syntax-highlighting)" for more information on the syntax and formatting of code blocks. Within code blocks: -- Specify the language of the sample after the first code fence. For a list of all supported languages, see "[Code languages](https://github.com/github/docs/blob/main/data/variables/code-languages.yml)" in the `github/docs` repository. +- Specify the language of the sample after the first code fence. For a list of all supported languages, see "[Code languages](https://github.com/github/docs/blob/main/data/code-languages.yml)" in the `github/docs` repository. - Do not use HTML to style or markup a code block. - Style any placeholders that people need to replace with their own values in all caps. - **Use:** `git checkout -b BRANCH-NAME` diff --git a/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md b/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md index 4683364591..8e5af1dee9 100644 --- a/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md +++ b/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md @@ -75,7 +75,7 @@ For information on when to use callout tags, see "[AUTOTITLE](/contributing/styl ## Code sample syntax highlighting -To render syntax highlighting in command line instructions and code samples, we use triple backticks followed by the language of the sample. For a list of all supported languages, see [`code-languages.yml`](https://github.com/github/docs/blob/main/data/variables/code-languages.yml). +To render syntax highlighting in command line instructions and code samples, we use triple backticks followed by the language of the sample. For a list of all supported languages, see [`code-languages.yml`](https://github.com/github/docs/blob/main/data/code-languages.yml). ### Example usage of code syntax highlighting diff --git a/data/variables/code-languages.yml b/data/code-languages.yml similarity index 100% rename from data/variables/code-languages.yml rename to data/code-languages.yml diff --git a/data/release-notes/.gitkeep b/data/release-notes/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/content-linter/style/base.js b/src/content-linter/style/base.js index bd90a07849..bcc66c630a 100644 --- a/src/content-linter/style/base.js +++ b/src/content-linter/style/base.js @@ -2,7 +2,7 @@ import fs from 'fs' import yaml from 'js-yaml' const allowedCodeFenceLanguages = Object.keys( - yaml.load(fs.readFileSync('data/variables/code-languages.yml', 'utf8')), + yaml.load(fs.readFileSync('data/code-languages.yml', 'utf8')), ) export const baseConfig = { diff --git a/src/learning-track/tests/validate-schema.js b/src/content-linter/tests/learning-track-liquid.js similarity index 69% rename from src/learning-track/tests/validate-schema.js rename to src/content-linter/tests/learning-track-liquid.js index 766600fc57..9e49e7255e 100644 --- a/src/learning-track/tests/validate-schema.js +++ b/src/content-linter/tests/learning-track-liquid.js @@ -4,12 +4,8 @@ import walk from 'walk-sync' import { jest } from '@jest/globals' import { liquid } from '#src/content-render/index.js' -import learningTracksSchema from '../lib/learning-tracks-schema.js' -import { formatAjvErrors } from '#src/tests/helpers/schemas.js' -import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' const learningTrackRootPath = 'data/learning-tracks' -const validate = getJsonValidator(learningTracksSchema) const yamlWalkOptions = { globs: ['**/*.yml'], directories: false, @@ -30,17 +26,6 @@ describe('lint learning tracks', () => { yamlContent = await yaml.load(fileContents) }) - it('matches the schema', () => { - const isValid = validate(yamlContent) - let errors - - if (!isValid) { - errors = formatAjvErrors(validate.errors) - } - - expect(isValid, errors).toBe(true) - }) - it('contains valid liquid', () => { const toLint = [] Object.values(yamlContent).forEach(({ title, description }) => { diff --git a/src/content-linter/tests/lint-frontmatter.js b/src/content-linter/tests/lint-frontmatter-links.js similarity index 100% rename from src/content-linter/tests/lint-frontmatter.js rename to src/content-linter/tests/lint-frontmatter-links.js diff --git a/src/content-linter/tests/lint-versioning.js b/src/content-linter/tests/lint-versioning.js deleted file mode 100644 index 4d76d08fdb..0000000000 --- a/src/content-linter/tests/lint-versioning.js +++ /dev/null @@ -1,33 +0,0 @@ -import { jest } from '@jest/globals' - -import featureVersionsSchema from '../lib/feature-versions-schema.js' -import { getDeepDataByLanguage } from '#src/data-directory/lib/get-data.js' -import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' -import { formatAjvErrors } from '#src/tests/helpers/schemas.js' - -/* - NOTE: This test suite does NOT validate the `versions` frontmatter in content files. - That's because lib/page.js validates frontmatter when loading all the pages (which happens - when running npm start or tests) and throws an error immediately if there are any issues. - This test suite DOES validate the data/features `versions` according to the same FM schema. - Some tests/unit/page.js tests also exercise the frontmatter validation. -*/ - -jest.useFakeTimers({ legacyFakeTimers: true }) - -const featureVersions = Object.entries(getDeepDataByLanguage('features', 'en')) -const validate = getJsonValidator(featureVersionsSchema) - -// Make sure data/features/*.yml contains valid versioning. -describe('lint feature versions', () => { - test.each(featureVersions)('data/features/%s matches the schema', (name, featureVersion) => { - const isValid = validate(featureVersion) - let errors - - if (!isValid) { - errors = formatAjvErrors(validate.errors) - } - - expect(isValid, errors).toBe(true) - }) -}) diff --git a/src/content-render/unified/annotate.js b/src/content-render/unified/annotate.js index 2731ad451c..086ec39b38 100644 --- a/src/content-render/unified/annotate.js +++ b/src/content-render/unified/annotate.js @@ -37,7 +37,7 @@ import { fromMarkdown } from 'mdast-util-from-markdown' import { toHast } from 'mdast-util-to-hast' import { header } from './code-header.js' -const languages = yaml.load(fs.readFileSync('./data/variables/code-languages.yml', 'utf8')) +const languages = yaml.load(fs.readFileSync('./data/code-languages.yml', 'utf8')) const commentRegexes = { number: /^\s*#\s*/, // also known has hash or sharp; but the unicode name is "number sign" diff --git a/src/content-render/unified/code-header.js b/src/content-render/unified/code-header.js index 6e8b814ca6..38fe1afe2a 100644 --- a/src/content-render/unified/code-header.js +++ b/src/content-render/unified/code-header.js @@ -11,7 +11,7 @@ import { parse } from 'parse5' import { fromParse5 } from 'hast-util-from-parse5' import murmur from 'imurmurhash' -const languages = yaml.load(fs.readFileSync('./data/variables/code-languages.yml', 'utf8')) +const languages = yaml.load(fs.readFileSync('./data/code-languages.yml', 'utf8')) const matcher = (node) => node.type === 'element' && diff --git a/src/data-directory/lib/data-schemas/code-languages.js b/src/data-directory/lib/data-schemas/code-languages.js new file mode 100644 index 0000000000..e3c89a434f --- /dev/null +++ b/src/data-directory/lib/data-schemas/code-languages.js @@ -0,0 +1,16 @@ +export default { + type: 'object', + additionalProperties: { + type: 'object', + required: ['name', 'comment'], + properties: { + name: { + type: 'string', + }, + comment: { + type: 'string', + enum: ['number', 'slash', 'percent', 'hyphen', 'xml', 'none'], + }, + }, + }, +} diff --git a/src/content-linter/lib/feature-versions-schema.js b/src/data-directory/lib/data-schemas/features.js similarity index 100% rename from src/content-linter/lib/feature-versions-schema.js rename to src/data-directory/lib/data-schemas/features.js diff --git a/src/data-directory/lib/data-schemas/glossaries.js b/src/data-directory/lib/data-schemas/glossaries.js new file mode 100644 index 0000000000..585a99bb30 --- /dev/null +++ b/src/data-directory/lib/data-schemas/glossaries.js @@ -0,0 +1,39 @@ +const term = { + type: 'string', + minLength: 1, + pattern: '^((?!\\*).)*$', // no asterisks allowed +} + +export const candidates = { + type: 'array', + items: { + type: 'object', + required: ['term'], + additionalProperties: false, + properties: { + term, + }, + }, + minItems: 21, +} + +export const external = { + type: 'array', + items: { + type: 'object', + required: ['term', 'description'], + additionalProperties: false, + properties: { + term, + description: { + type: 'string', + }, + }, + }, + minItems: 21, +} + +export default { + candidates, + external, +} diff --git a/src/learning-track/lib/learning-tracks-schema.js b/src/data-directory/lib/data-schemas/learning-tracks.js similarity index 74% rename from src/learning-track/lib/learning-tracks-schema.js rename to src/data-directory/lib/data-schemas/learning-tracks.js index 77db9553e7..8997ecd6de 100644 --- a/src/learning-track/lib/learning-tracks-schema.js +++ b/src/data-directory/lib/data-schemas/learning-tracks.js @@ -24,7 +24,12 @@ export default { }, guides: { type: 'array', - items: { type: 'string' }, + items: { + type: 'string', + // matches Liquid tags and URLs with trailing backslash + // if this regex becomes problematic, we can remove it + pattern: '^(\\{%.*%\\})?\\s*(\\/((\\w|-|\\.))+)+\\s*(\\{%.*%\\})?$', + }, }, versions: versionsProps, }, diff --git a/src/release-notes/lib/release-notes-schema.js b/src/data-directory/lib/data-schemas/release-notes.js similarity index 90% rename from src/release-notes/lib/release-notes-schema.js rename to src/data-directory/lib/data-schemas/release-notes.js index 4873e366fd..76bee158c4 100644 --- a/src/release-notes/lib/release-notes-schema.js +++ b/src/data-directory/lib/data-schemas/release-notes.js @@ -2,7 +2,9 @@ const section = { anyOf: [ { type: 'array', - items: { type: 'string' }, + items: { + type: 'string', + }, minItems: 1, }, { @@ -18,7 +20,9 @@ const section = { }, notes: { type: 'array', - items: { type: 'string' }, + items: { + type: 'string', + }, minItems: 1, }, }, diff --git a/src/secret-scanning/lib/secret-scanning-schema.js b/src/data-directory/lib/data-schemas/secret-scanning.js similarity index 100% rename from src/secret-scanning/lib/secret-scanning-schema.js rename to src/data-directory/lib/data-schemas/secret-scanning.js diff --git a/src/data-directory/lib/data-schemas/variables.js b/src/data-directory/lib/data-schemas/variables.js new file mode 100644 index 0000000000..8356fd18fe --- /dev/null +++ b/src/data-directory/lib/data-schemas/variables.js @@ -0,0 +1,6 @@ +export default { + type: 'object', + additionalProperties: { + type: 'string', + }, +} diff --git a/src/data-directory/tests/data-schemas.js b/src/data-directory/tests/data-schemas.js new file mode 100644 index 0000000000..577f30652a --- /dev/null +++ b/src/data-directory/tests/data-schemas.js @@ -0,0 +1,103 @@ +import yaml from 'js-yaml' +import { readFileSync } from 'fs' +import walk from 'walk-sync' + +import { getJsonValidator, validateJson } from '#src/tests/lib/validate-json-schema.js' +import { formatAjvErrors } from '#src/tests/helpers/schemas.js' +import { getDeepDataByLanguage } from '#src/data-directory/lib/get-data.js' + +import glossariesSchema from '#src/data-directory/lib/data-schemas/glossaries.js' +import fbvSchema from '#src/data-directory/lib/data-schemas/features.js' +import learningTrackSchema from '#src/data-directory/lib/data-schemas/learning-tracks.js' +import releaseNotesSchema from '#src/data-directory/lib/data-schemas/release-notes.js' +import secretScanningSchema from '#src/data-directory/lib/data-schemas/secret-scanning.js' +import codeLanguagesSchema from '#src/data-directory/lib/data-schemas/code-languages.js' +import variablesSchema from '#src/data-directory/lib/data-schemas/variables.js' + +describe('glossaries', () => { + const glossariesData = Object.entries(getDeepDataByLanguage('glossaries', 'en')) + test.each(glossariesData)('data/glossaries/%s.yml matches schema', (name, data) => { + const { isValid, errors } = validateJson(glossariesSchema[name], data) + expect(isValid, errors).toBe(true) + }) +}) + +/* + NOTE: This test suite does NOT validate the `versions` frontmatter in content files. + That's because lib/page.js validates frontmatter when loading all the pages (which happens + when running npm start or tests) and throws an error immediately if there are any issues. + This test suite DOES validate the data/features `versions` according to the same FM schema. + Some tests/unit/page.js tests also exercise the frontmatter validation. +*/ +describe('features', () => { + const featureData = Object.entries(getDeepDataByLanguage('features', 'en')) + const validate = getJsonValidator(fbvSchema) + + test.each(featureData)('data/features/%s matches the schema', (name, data) => { + const isValid = validate(data) + const formattedErrors = isValid ? validate.errors : formatAjvErrors(validate.errors) + expect(isValid, formattedErrors).toBe(true) + }) +}) + +describe('learning-tracks', () => { + const learningTrackData = Object.entries(getDeepDataByLanguage('learning-tracks', 'en')) + const validate = getJsonValidator(learningTrackSchema) + + test.each(learningTrackData)('data/learning-tracks/%s matches the schema', (name, data) => { + const isValid = validate(data) + const formattedErrors = isValid ? validate.errors : formatAjvErrors(validate.errors) + expect(isValid, formattedErrors).toBe(true) + }) +}) + +describe('release-notes', () => { + const yamlWalkOptions = { + globs: ['**/*.yml'], + directories: false, + includeBasePath: true, + } + const yamlFileList = walk('data/release-notes', yamlWalkOptions).sort() + const validate = getJsonValidator(releaseNotesSchema) + + test.each(yamlFileList)('%s matches the schema', (yamlAbsPath) => { + const yamlContent = yaml.load(readFileSync(yamlAbsPath, 'utf8')) + const isValid = validate(yamlContent) + const formattedErrors = isValid ? validate.errors : formatAjvErrors(validate.errors) + + expect(isValid, formattedErrors).toBe(true) + }) +}) + +describe('secret-scanning', () => { + const ymlData = yaml.load(readFileSync('data/secret-scanning.yml', 'utf8')) + + test('data/secret-scanning.yml matches the schema', () => { + const { isValid, errors } = validateJson(secretScanningSchema, ymlData) + const formattedErrors = isValid ? errors : formatAjvErrors(errors) + + expect(isValid, formattedErrors).toBe(true) + }) +}) + +describe('code-languages', () => { + const ymlData = yaml.load(readFileSync('data/code-languages.yml', 'utf8')) + + test('data/code-languages.yml matches the schema', () => { + const { isValid, errors } = validateJson(codeLanguagesSchema, ymlData) + const formattedErrors = isValid ? errors : formatAjvErrors(errors) + + expect(isValid, formattedErrors).toBe(true) + }) +}) + +describe('variables', () => { + const variablesData = Object.entries(getDeepDataByLanguage('variables', 'en')) + const validate = getJsonValidator(variablesSchema) + + test.each(variablesData)('data/variables/%s matches the schema', (name, data) => { + const isValid = validate(data) + const formattedErrors = isValid ? validate.errors : formatAjvErrors(validate.errors) + expect(isValid, formattedErrors).toBe(true) + }) +}) diff --git a/src/data-directory/tests/glossary.js b/src/data-directory/tests/glossary.js deleted file mode 100644 index c27feaa7f3..0000000000 --- a/src/data-directory/tests/glossary.js +++ /dev/null @@ -1,40 +0,0 @@ -import { getDataByLanguage } from '#src/data-directory/lib/get-data' - -describe('glossaries', () => { - const glossaries = { - external: getDataByLanguage('glossaries.external', 'en'), - candidates: getDataByLanguage('glossaries.candidates', 'en'), - } - - test('are broken into external, internal, and candidates', async () => { - const keys = Object.keys(glossaries) - expect(keys).toHaveLength(2) - expect(keys).toContain('candidates') - expect(keys).toContain('external') - }) - - test('every entry has a valid term', async () => { - function hasValidTerm(entry) { - return entry.term && entry.term.length && !entry.term.includes('*') - } - - expect(glossaries.external.every(hasValidTerm)).toBe(true) - expect(glossaries.candidates.every(hasValidTerm)).toBe(true) - }) - - test('external glossary has entries, and they all have descriptions', async () => { - expect(glossaries.external.length).toBeGreaterThan(20) - glossaries.external.forEach((entry) => { - const message = `entry '${entry.term}' is missing a description` - expect(entry.description && entry.description.length > 0, message).toBe(true) - }) - }) - - test('candidates all have a term, but no description', async () => { - expect(glossaries.candidates.length).toBeGreaterThan(20) - glossaries.candidates.forEach((entry) => { - const message = `entry '${entry.term}' not expected to have a description` - expect(!entry.description, message).toBe(true) - }) - }) -}) diff --git a/src/release-notes/tests/validate-schema.js b/src/release-notes/tests/validate-schema.js deleted file mode 100644 index dbdb0b394e..0000000000 --- a/src/release-notes/tests/validate-schema.js +++ /dev/null @@ -1,42 +0,0 @@ -import yaml from 'js-yaml' -import { readFile } from 'fs/promises' -import walk from 'walk-sync' -import { jest } from '@jest/globals' - -import releaseNotesSchema from '../lib/release-notes-schema.js' -import { formatAjvErrors } from '#src/tests/helpers/schemas.js' -import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' - -const ghesReleaseNoteRootPath = 'data/release-notes' -const validate = getJsonValidator(releaseNotesSchema) -const yamlWalkOptions = { - globs: ['**/*.yml'], - directories: false, - includeBasePath: true, -} -const yamlFileList = walk(ghesReleaseNoteRootPath, yamlWalkOptions).sort() - -jest.useFakeTimers({ legacyFakeTimers: true }) - -describe('lint enterprise release notes', () => { - if (yamlFileList.length < 1) return - describe.each(yamlFileList)('%s', (yamlAbsPath) => { - let yamlContent - - beforeAll(async () => { - const fileContents = await readFile(yamlAbsPath, 'utf8') - yamlContent = yaml.load(fileContents) - }) - - it('matches the schema', () => { - const isValid = validate(yamlContent) - let errors - - if (!isValid) { - errors = formatAjvErrors(validate.errors) - } - - expect(isValid, errors).toBe(true) - }) - }) -}) diff --git a/src/secret-scanning/tests/validate-schema.js b/src/secret-scanning/tests/validate-schema.js deleted file mode 100644 index 294a409738..0000000000 --- a/src/secret-scanning/tests/validate-schema.js +++ /dev/null @@ -1,25 +0,0 @@ -import fs from 'fs' -import yaml from 'js-yaml' -import { jest } from '@jest/globals' - -import { getJsonValidator } from '#src/tests/lib/validate-json-schema.js' -import { formatAjvErrors } from '#src/tests/helpers/schemas.js' -import secretScanningSchema from '../lib/secret-scanning-schema.js' - -jest.useFakeTimers({ legacyFakeTimers: true }) - -describe('lint secret-scanning', () => { - const yamlContent = yaml.load(fs.readFileSync('data/secret-scanning.yml', 'utf8')) - const validate = getJsonValidator(secretScanningSchema) - - test('matches the schema', () => { - const isValid = validate(yamlContent) - let errors - - if (!isValid) { - errors = formatAjvErrors(validate.errors) - } - - expect(isValid, errors).toBe(true) - }) -}) From edb3cb738414c67f4d584a65f031cf48a77cb6af Mon Sep 17 00:00:00 2001 From: Robert Sese <734194+rsese@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:34:19 -0600 Subject: [PATCH 41/55] some secret scanning tests moved under data-directory tests (#47793) --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dba0c07c7d..48d7d34bb6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -71,7 +71,6 @@ jobs: - release-notes - rest - search - - secret-scanning - shielding # - tests # - tools From f7e2ad57bacc5db9b42b11326582dbf7429dd6f0 Mon Sep 17 00:00:00 2001 From: Jess Hosman <1183847+jhosman@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:23:17 -0700 Subject: [PATCH 42/55] Delete "Resources in the REST API" and move content elsewhere (#47726) Co-authored-by: Peter Bengtsson Co-authored-by: Sarah Edwards --- content/rest/pulls/pulls.md | 2 +- .../getting-started-with-the-rest-api.md | 24 ++- content/rest/using-the-rest-api/index.md | 4 +- .../resources-in-the-rest-api.md | 194 ------------------ .../timezones-and-the-rest-api.md | 51 +++++ ...and-jsonp-to-make-cross-origin-requests.md | 122 +++++++++++ .../lib/static/redirect-exceptions.txt | 4 +- .../tests/routing/redirect-exceptions.js | 2 +- 8 files changed, 202 insertions(+), 201 deletions(-) delete mode 100644 content/rest/using-the-rest-api/resources-in-the-rest-api.md create mode 100644 content/rest/using-the-rest-api/timezones-and-the-rest-api.md create mode 100644 content/rest/using-the-rest-api/using-cors-and-jsonp-to-make-cross-origin-requests.md diff --git a/content/rest/pulls/pulls.md b/content/rest/pulls/pulls.md index e67bcffe73..25737ff86e 100644 --- a/content/rest/pulls/pulls.md +++ b/content/rest/pulls/pulls.md @@ -41,7 +41,7 @@ Pull requests have these possible link relations: - `issue`: The API location of this pull request's [issue](/rest/issues) - `comments`: The API location of this pull request's [issue comments](/rest/issues#comments) - `review_comments`: The API location of this pull request's [review comments](/rest/pulls#comments) -- `review_comment`: The [URL template](/rest#hypermedia) to construct the API location for a [review comment](/rest/pulls#comments) in this pull request's repository +- `review_comment`: The [URL template](/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to construct the API location for a [review comment](/rest/pulls#comments) in this pull request's repository - `commits`: The API location of this pull request's [commits](#list-commits-on-a-pull-request) - `statuses`: The API location of this pull request's [commit statuses](/rest/commits#commit-statuses), which are the statuses of its `head` branch diff --git a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md index cb4726229e..5f68558d24 100644 --- a/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md +++ b/content/rest/using-the-rest-api/getting-started-with-the-rest-api.md @@ -11,6 +11,9 @@ topics: - API redirect_from: - /rest/guides/getting-started-with-the-rest-api + - /rest/initialize-the-repo + - /rest/overview/resources-in-the-rest-api + - /rest/using-the-rest-api/resources-in-the-rest-api --- ## Introduction @@ -691,8 +694,25 @@ Note that authorization sometimes influences the amount of detail included in a The reason for this is because some attributes are computationally expensive for the API to provide, so {% data variables.product.prodname_dotcom %} excludes those attributes from the summary representation. To obtain those attributes, you can fetch the detailed representation. -The documentation provides an example response for each API method. The example -response illustrates all attributes that are returned by that method. +The documentation provides an example response for each API method. The example response illustrates all attributes that are returned by that method. + +#### Hypermedia + +All resources may have one or more `*_url` properties linking to other resources. These are meant to provide explicit URLs so that proper API clients don't need to construct URLs on their own. It is highly recommended that API clients use these. Doing so will make future upgrades of the API easier for developers. All URLs are expected to be proper [RFC 6570](https://datatracker.ietf.org/doc/html/rfc6570) URI templates. + +You can then expand these templates using something like the [uri_template](https://github.com/hannesg/uri_template) gem: + +```ruby +>> tmpl = URITemplate.new('/notifications{?since,all,participating}') +>> tmpl.expand +=> "/notifications" + +>> tmpl.expand all: 1 +=> "/notifications?all=1" + +>> tmpl.expand all: 1, participating: 1 +=> "/notifications?all=1&participating=1" +``` ## Next steps diff --git a/content/rest/using-the-rest-api/index.md b/content/rest/using-the-rest-api/index.md index 3a4755645b..6a27334f01 100644 --- a/content/rest/using-the-rest-api/index.md +++ b/content/rest/using-the-rest-api/index.md @@ -11,12 +11,14 @@ topics: children: - /getting-started-with-the-rest-api - /rate-limits-for-the-rest-api - - /resources-in-the-rest-api - /using-pagination-in-the-rest-api - /libraries-for-the-rest-api - /media-types - /best-practices-for-using-the-rest-api - /troubleshooting-the-rest-api + - /timezones-and-the-rest-api + - /using-cors-and-jsonp-to-make-cross-origin-requests - /issue-event-types - /github-event-types --- + diff --git a/content/rest/using-the-rest-api/resources-in-the-rest-api.md b/content/rest/using-the-rest-api/resources-in-the-rest-api.md deleted file mode 100644 index 8904961ba1..0000000000 --- a/content/rest/using-the-rest-api/resources-in-the-rest-api.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: Resources in the REST API -intro: 'Learn how to navigate the resources provided by the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.' -redirect_from: - - /rest/initialize-the-repo - - /rest/overview/resources-in-the-rest-api -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - API ---- - -## Root endpoint - -You can issue a `GET` request to the root endpoint to get all the endpoint categories that the REST API supports: - -```shell -$ curl {% ifversion fpt or ghae or ghec %} --u USERNAME:TOKEN {% endif %}{% ifversion ghes %}-u USERNAME:PASSWORD {% endif %}{% data variables.product.api_url_pre %} -``` - -## GraphQL global node IDs - -See the guide on "[AUTOTITLE](/graphql/guides/using-global-node-ids)" for detailed information about how to find `node_id`s via the REST API and use them in GraphQL operations. - -## Hypermedia - -All resources may have one or more `*_url` properties linking to other -resources. These are meant to provide explicit URLs so that proper API clients -don't need to construct URLs on their own. It is highly recommended that API -clients use these. Doing so will make future upgrades of the API easier for -developers. All URLs are expected to be proper [RFC 6570](https://datatracker.ietf.org/doc/html/rfc6570) URI templates. - -You can then expand these templates using something like the [uri_template](https://github.com/hannesg/uri_template) -gem: - - >> tmpl = URITemplate.new('/notifications{?since,all,participating}') - >> tmpl.expand - => "/notifications" - - >> tmpl.expand all: 1 - => "/notifications?all=1" - - >> tmpl.expand all: 1, participating: 1 - => "/notifications?all=1&participating=1" - -## Cross origin resource sharing - -The API supports Cross Origin Resource Sharing (CORS) for AJAX requests from -any origin. -You can read the [CORS W3C Recommendation](http://www.w3.org/TR/cors/), or -[this intro](https://code.google.com/archive/p/html5security/wikis/CrossOriginRequestSecurity.wiki) from the -HTML 5 Security Guide. - -Here's a sample request sent from a browser hitting -`http://example.com`: - -```shell -$ curl -I {% data variables.product.api_url_pre %} -H "Origin: http://example.com" -HTTP/2 302 -Access-Control-Allow-Origin: * -Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval -``` - -This is what the CORS preflight request looks like: - -```shell -$ curl -I {% data variables.product.api_url_pre %} -H "Origin: http://example.com" -X OPTIONS -HTTP/2 204 -Access-Control-Allow-Origin: * -Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-GitHub-OTP, X-Requested-With -Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE -Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval -Access-Control-Max-Age: 86400 -``` - -## JSON-P callbacks - -You can send a `?callback` parameter to any GET call to have the results -wrapped in a JSON function. This is typically used when browsers want -to embed {% data variables.product.product_name %} content in web pages by getting around cross domain -issues. The response includes the same data output as the regular API, -plus the relevant HTTP Header information. - -```shell -$ curl {% data variables.product.api_url_pre %}?callback=foo - -> /**/foo({ -> "meta": { -> "status": 200, -> "x-ratelimit-limit": "5000", -> "x-ratelimit-remaining": "4966", -> "x-ratelimit-reset": "1372700873", -> "Link": [ // pagination headers and other links -> ["{% data variables.product.api_url_pre %}?page=2", {"rel": "next"}] -> ] -> }, -> "data": { -> // the data -> } -> }) -``` - -You can write a JavaScript handler to process the callback. Here's a minimal example you can try out: - - - - - - - -

Open up your browser's console.

- - - -All of the headers are the same String value as the HTTP Headers with one -notable exception: Link. Link headers are pre-parsed for you and come -through as an array of `[url, options]` tuples. - -A link that looks like this: - - Link: ; rel="next", ; rel="foo"; bar="baz" - -... will look like this in the Callback output: - -```json -{ - "Link": [ - [ - "url1", - { - "rel": "next" - } - ], - [ - "url2", - { - "rel": "foo", - "bar": "baz" - } - ] - ] -} -``` - -## Timezones - -Some requests that create new data, such as creating a new commit, allow you to provide time zone information when specifying or generating timestamps. We apply the following rules, in order of priority, to determine timezone information for such API calls. - -- [Explicitly providing an ISO 8601 timestamp with timezone information](#explicitly-providing-an-iso-8601-timestamp-with-timezone-information) -- [Using the `Time-Zone` header](#using-the-time-zone-header) -- [Using the last known timezone for the user](#using-the-last-known-timezone-for-the-user) -- [Defaulting to UTC without other timezone information](#defaulting-to-utc-without-other-timezone-information) - -Note that these rules apply only to data passed to the API, not to data returned by the API. As mentioned in "[Schema](#schema)," timestamps returned by the API are in UTC time, ISO 8601 format. - -### Explicitly providing an ISO 8601 timestamp with timezone information - -For API calls that allow for a timestamp to be specified, we use that exact timestamp. An example of this is the API to manage commits. For more information, see "[AUTOTITLE](/rest/git#commits)." - -These timestamps look something like `2014-02-27T15:05:06+01:00`. Also see [this example](/rest/git#example-input) for how these timestamps can be specified. - -### Using the `Time-Zone` header - -It is possible to supply a `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). - -```shell -curl -H "Time-Zone: Europe/Amsterdam" -X POST {% data variables.product.api_url_pre %}/repos/github-linguist/linguist/contents/new_file.md -``` - -This means that we generate a timestamp for the moment your API call is made in the timezone this header defines. For example, the API to manage contents generates a git commit for each addition or change and uses the current time as the timestamp. For more information, see "[AUTOTITLE](/rest/repos#contents)." This header will determine the timezone used for generating that current timestamp. - -### Using the last known timezone for the user - -If no `Time-Zone` header is specified and you make an authenticated call to the API, we use the last known timezone for the authenticated user. The last known timezone is updated whenever you browse the {% data variables.product.product_name %} website. - -### Defaulting to UTC without other timezone information - -If the steps above don't result in any information, we use UTC as the timezone to create the git commit. diff --git a/content/rest/using-the-rest-api/timezones-and-the-rest-api.md b/content/rest/using-the-rest-api/timezones-and-the-rest-api.md new file mode 100644 index 0000000000..0b5d233f08 --- /dev/null +++ b/content/rest/using-the-rest-api/timezones-and-the-rest-api.md @@ -0,0 +1,51 @@ +--- +title: Timezones and the REST API +shortTitle: Timezones +intro: 'Some REST API endpoints allow you to specify timezone information with your request.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +--- + +Some requests that create new data, such as creating a new commit, allow you to provide timezone information when specifying or generating timestamps. + +Note that these rules apply only to data passed to the API, not to data returned by the API. Timestamps returned by the API are in UTC time, ISO 8601 format. + +## Determining the timezone for a request + +To determine timezone information for applicable API calls, we apply these rules in order of priority: + +1. [Explicitly providing an ISO 8601 timestamp with timezone information](#explicitly-providing-an-iso-8601-timestamp-with-timezone-information) +1. [Using the `Time-Zone` header](#using-the-time-zone-header) +1. [Using the last known timezone for the user](#using-the-last-known-timezone-for-the-user) +1. [Defaulting to UTC without other timezone information](#defaulting-to-utc-without-other-timezone-information) + +### Explicitly providing an ISO 8601 timestamp with timezone information + +For API calls that allow for a timestamp to be specified, we use that exact timestamp. These timestamps look something like `2014-02-27T15:05:06+01:00`. + +An example of this is the API to manage commits. For more information, see "[AUTOTITLE](/rest/git/commits#create-a-commit)." + +### Using the `Time-Zone` header + +It is possible to supply a `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). + +```shell +curl -H "Time-Zone: Europe/Amsterdam" -X POST {% data variables.product.api_url_pre %}/repos/github-linguist/linguist/contents/new_file.md +``` + +This means that we generate a timestamp for the moment your API call is made, in the timezone this header defines. + +For example, the API to manage contents generates a git commit for each addition or change, and it uses the current time as the timestamp. For more information, see "[AUTOTITLE](/rest/repos#contents)." The `Time-Zone` header will determine the timezone used for generating that current timestamp. + +### Using the last known timezone for the user + +If no `Time-Zone` header is specified and you make an authenticated call to the API, we use the last known timezone for the authenticated user. The last known timezone is updated whenever you browse the {% data variables.product.product_name %} website. + +### Defaulting to UTC without other timezone information + +If the steps above don't result in any information, we use UTC as the timezone. diff --git a/content/rest/using-the-rest-api/using-cors-and-jsonp-to-make-cross-origin-requests.md b/content/rest/using-the-rest-api/using-cors-and-jsonp-to-make-cross-origin-requests.md new file mode 100644 index 0000000000..90b6677d7e --- /dev/null +++ b/content/rest/using-the-rest-api/using-cors-and-jsonp-to-make-cross-origin-requests.md @@ -0,0 +1,122 @@ +--- +title: Using CORS and JSONP to make cross-origin requests +shortTitle: CORS and JSONP +intro: You can make API requests across domains using cross-origin resource sharing (CORS) and JSONP callbacks. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +--- + +## About cross-origin requests + +A cross-origin request is a request made to a different domain than the one originating the request. For security reasons, most web browsers block cross-origin requests. However, you can use cross-origin resource sharing (CORS) and JSONP callbacks to make cross-origin requests. + +## Cross-origin resource sharing (CORS) + +The REST API supports cross-origin resource sharing (CORS) for AJAX requests from any origin. For more information, see the "[CORS W3C Recommendation](http://www.w3.org/TR/cors/)" and the [HTML 5 Security Guide](https://code.google.com/archive/p/html5security/wikis/CrossOriginRequestSecurity.wiki) + +Here's a sample request sent from a browser hitting +`http://example.com`: + +```shell +$ curl -I {% data variables.product.api_url_pre %} -H "Origin: http://example.com" +HTTP/2 302 +Access-Control-Allow-Origin: * +Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval +``` + +This is what the CORS preflight request looks like: + +```shell +$ curl -I {% data variables.product.api_url_pre %} -H "Origin: http://example.com" -X OPTIONS +HTTP/2 204 +Access-Control-Allow-Origin: * +Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-GitHub-OTP, X-Requested-With +Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE +Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval +Access-Control-Max-Age: 86400 +``` + +## JSON-P callbacks + +You can send a `?callback` parameter to any GET call to have the results +wrapped in a JSON function. This is typically used when browsers want to embed {% data variables.product.product_name %} content in web pages and avoid cross-domain problems. The response includes the same data output as the regular API, plus the relevant HTTP Header information. + +```shell +$ curl {% data variables.product.api_url_pre %}?callback=foo + +> /**/foo({ +> "meta": { +> "status": 200, +> "x-ratelimit-limit": "5000", +> "x-ratelimit-remaining": "4966", +> "x-ratelimit-reset": "1372700873", +> "Link": [ // pagination headers and other links +> ["{% data variables.product.api_url_pre %}?page=2", {"rel": "next"}] +> ] +> }, +> "data": { +> // the data +> } +> }) +``` + +You can write a JavaScript handler to process the callback. Here's a minimal example you can try: + +```html + + + + + + +

Open up your browser's console.

+ + +``` + +All of the headers have the same string value as the HTTP Headers, except `Link`. `Link` headers are pre-parsed for you and come through as an array of `[url, options]` tuples. + +For example, a link that looks like this: + +```shell +Link: ; rel="next", ; rel="foo"; bar="baz" +``` + +will look like this in the Callback output: + +```json +{ + "Link": [ + [ + "url1", + { + "rel": "next" + } + ], + [ + "url2", + { + "rel": "foo", + "bar": "baz" + } + ] + ] +} +``` diff --git a/src/redirects/lib/static/redirect-exceptions.txt b/src/redirects/lib/static/redirect-exceptions.txt index 030054efae..c68a901a17 100644 --- a/src/redirects/lib/static/redirect-exceptions.txt +++ b/src/redirects/lib/static/redirect-exceptions.txt @@ -11,7 +11,7 @@ - /admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise # FPT versioning was removed as part of github/docs-content#5166 -/rest/using-the-rest-api/resources-in-the-rest-api +/rest/using-the-rest-api/getting-started-with-the-rest-api - /rest/overview/api-previews /enterprise-server@latest/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment @@ -39,4 +39,4 @@ - /github-ae@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository /billing/managing-your-github-billing-settings/redeeming-a-coupon -- /enterprise-cloud@latest/billing/managing-your-github-billing-settings/redeeming-a-coupon \ No newline at end of file +- /enterprise-cloud@latest/billing/managing-your-github-billing-settings/redeeming-a-coupon diff --git a/src/redirects/tests/routing/redirect-exceptions.js b/src/redirects/tests/routing/redirect-exceptions.js index 14a5035856..41e104a37e 100644 --- a/src/redirects/tests/routing/redirect-exceptions.js +++ b/src/redirects/tests/routing/redirect-exceptions.js @@ -22,7 +22,7 @@ describe('redirect exceptions', () => { `/enterprise-server@${latest}`, )}` const { statusCode, headers } = await get(oldPath, { followRedirects: false }) - expect(statusCode).toBe(302) + expect(statusCode, `Did not get a 302 from loading ${oldPath}`).toBe(302) expect(headers.location).toBe(englishNewPath) }) }) From bac834f90a43f2f24d9b2d15157dd7532717b9f2 Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Thu, 14 Dec 2023 08:27:24 +0000 Subject: [PATCH 43/55] Optimize the ignore section in the doc to avoid use of private dependencies with ignore conditions (#46844) Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> --- .../configuration-options-for-the-dependabot.yml-file.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md index a43846333d..225c6e3971 100644 --- a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md +++ b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md @@ -366,6 +366,15 @@ You can also manage pull requests for grouped version updates using comment comm Dependencies can be ignored either by adding them to `ignore` or by using the `@dependabot ignore` command on a pull request opened by {% data variables.product.prodname_dependabot %}. +{% warning %} + +**Warning**: +- We recommend you do _not_ use `ignore` to prevent {% data variables.product.prodname_dependabot %} from accessing private registries. This may work for some ecosystems but we have no means of knowing whether package managers require access to all dependencies to be able to successfully perform updates, which makes this method unreliable. The supported way to handle private dependencies is to give {% data variables.product.prodname_dependabot %} access to private registries or private repositories. For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot)." + +- For {% data variables.product.prodname_actions %} and Docker, you may use `ignore` to prevent {% data variables.product.prodname_dependabot %} from accessing private registries. + +{% endwarning %} + #### Creating `ignore` conditions from `@dependabot ignore` Dependencies ignored by using the `@dependabot ignore` command are stored centrally for each package manager. If you start ignoring dependencies in the `dependabot.yml` file, these existing preferences are considered alongside the `ignore` dependencies in the configuration. From 3fc7ca0143d2ff6c07285a142b0aa9c4fe40a973 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 14 Dec 2023 10:26:11 +0100 Subject: [PATCH 44/55] [Improvement]: Ruleset Information Compared to Branch Protection Rules (#46207) --- .../managing-rulesets/available-rules-for-rulesets.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md index db6f6d4814..08f455c07c 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md @@ -50,6 +50,10 @@ You can require that changes are successfully deployed to specific environments When you enable required commit signing on a branch, contributors {% ifversion fpt or ghec %}and bots{% endif %} can only push commits that have been signed and verified to the branch. For more information, see "[AUTOTITLE](/authentication/managing-commit-signature-verification/about-commit-signature-verification)." +Branch protection rules and rulesets behave differently when you create a branch: with rulesets, we check only the commits that aren't accessible from other branches, whereas with branch protection rules, we do not verify signed commits unless you restrict pushes that create matching branches. With both, when you update a branch, we still check all the commits in the specified range, even if a commit is reachable from other branches. + +With both methods, we use the `verified_signature?` to confirm if a commit has a valid signature. If not, the update is not accepted. + {% note %} {% ifversion fpt or ghec %} From 7c5c7f1410cc60044f6bbcc7e5757406a1989fbf Mon Sep 17 00:00:00 2001 From: Nick Quinlan Date: Fri, 15 Dec 2023 01:50:14 +1300 Subject: [PATCH 45/55] add note for installing the cli extension (#30593) Co-authored-by: hubwriter --- .../enabling-github-copilot-in-the-cli.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/copilot/github-copilot-in-the-cli/enabling-github-copilot-in-the-cli.md b/content/copilot/github-copilot-in-the-cli/enabling-github-copilot-in-the-cli.md index 06c8b0613f..1b665ab07b 100644 --- a/content/copilot/github-copilot-in-the-cli/enabling-github-copilot-in-the-cli.md +++ b/content/copilot/github-copilot-in-the-cli/enabling-github-copilot-in-the-cli.md @@ -17,6 +17,12 @@ shortTitle: Enabling Copilot in the CLI The {% data variables.product.prodname_copilot_cli %} public beta is available to all organizations{% ifversion ghec %} and enterprises{% endif %} that have an active {% data variables.product.prodname_copilot_for_business %} license. You can enable or disable {% data variables.product.prodname_copilot_cli_short %} for your organization{% ifversion ghec %} or enterprise{% endif %} in the {% data variables.product.prodname_copilot_short %} settings. +{% note %} + +**Note:** To use {% data variables.product.prodname_copilot_cli %}, after it has been enabled, users must install the {% data variables.product.prodname_copilot_cli %} extension, see "[AUTOTITLE](/copilot/github-copilot-in-the-cli/using-github-copilot-in-the-cli)." + +{% endnote %} + ## Enabling or disabling {% data variables.product.prodname_copilot_cli_short %} at the organization level An organization owner can enable or disable {% data variables.product.prodname_copilot_cli_short %} for the organization. {% ifversion ghec %}You may not be able to configure this setting for your organization, if an enterprise owner has set a policy at the enterprise level.{% endif %} From d21c4d3afc9aff8e070174d770514dc5976f01a7 Mon Sep 17 00:00:00 2001 From: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:46:41 +0000 Subject: [PATCH 46/55] Makes distinction clearer between enterprise- and organization-level security overview (#46495) --- .../about-security-overview.md | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/content/code-security/security-overview/about-security-overview.md b/content/code-security/security-overview/about-security-overview.md index 9c5904a270..d82f1daa79 100644 --- a/content/code-security/security-overview/about-security-overview.md +++ b/content/code-security/security-overview/about-security-overview.md @@ -129,24 +129,22 @@ At the team level, security overview displays repository-specific security infor ## Permission to view data in security overview -If you are an owner or security manager for an organization, you can see data for all the repositories in the organization in all views.{% ifversion security-overview-org-risk-coverage-enterprise %} You can see the data in the organization-level security overview, or see data for all organizations where you are an owner or security manager in the enterprise-level security overview.{% endif %} +{% ifversion security-overview-org-risk-coverage-enterprise %} -{% ifversion ghec or ghes or ghae > 3.5 %}If you are an enterprise owner, you will need to join an organization as an organization owner to view data for the organization's repositories in either the organization-level or enterprise-level overview. For more information, see "[AUTOTITLE](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)."{% endif %} +### Organization-level overview -If you are an organization member, you can view security overview for the organization and see data for repositories where you have access.{% ifversion security-overview-org-risk-coverage-enterprise %} You can view this data in the organization-level overview, but you cannot access the enterprise-level overview.{% endif %} +{% endif %} -{% note %} +If you are an owner or security manager for an organization, you can see data for all the repositories in the organization in all views. -**Note:** To ensure a consistent and responsive experience, for organization members, the organization-level security overview pages will only display results from the most recently updated 3,000 repositories. If your results have been restricted, a notification will appear at the top of the page. Organization owners and security managers will see results from all repositories. - -{% endnote %} +If you are an organization member, you can view security overview for the organization and see data for repositories where you have access. {% ifversion security-overview-dashboard %} {% rowheaders %} | Organization member with | Overview dashboard (beta) view | Risk and alerts views | Coverage view | |--------------------|-------------|---------------------|---------| -| `admin` access for one or more repositories | View data for those repositories | View data for those repositories | View data for those repositories | +| `admin` access for one or more repositories | View data for those repositories | View data for those repositories | View data for those repositories, and enable and disable security features | | `write` access for one or more repositories | View {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} data for those repositories | View {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} data for those repositories | No access for those repositories | | Security alert access for one or more repositories | View all security alert data for those repositories | View all security alert data for those repositories | No access for those repositories | Custom organization role with permission to view one or more types of security alert | View allowed alert data for all repositories | View allowed alert data for all repositories in all views | No access | @@ -157,7 +155,7 @@ If you are an organization member, you can view security overview for the organi | Organization member with | Risk and alerts views | Coverage view | |--------------------|-------------|---------------------| -| `admin` access for one or more repositories | View data for those repositories | View data for those repositories | +| `admin` access for one or more repositories | View data for those repositories | View data for those repositories, and enable and disable security features | | `write` access for one or more repositories | View {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} data for those repositories | No access for those repositories | | Security alert access for one or more repositories | View all security alert data for those repositories | No access for those repositories | Custom organization role with permission to view one or more types of security alert | View allowed alert data for all repositories in all views | No access | @@ -165,10 +163,31 @@ If you are an organization member, you can view security overview for the organi {% endrowheaders %} {% endif %} +{% note %} + +**Note:** To ensure a consistent and responsive experience, for organization members, the organization-level security overview pages will only display results from the most recently updated 3,000 repositories. If your results have been restricted, a notification will appear at the top of the page. Organization owners and security managers will see results from all repositories. + +{% endnote %} + For more information about access to security alerts and related views, see "[AUTOTITLE](/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)" and "[AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/about-custom-repository-roles#security)." {% endif %} +{% ifversion security-overview-org-risk-coverage-enterprise %} + +### Enterprise-level overview + +{% ifversion ghec or ghes or ghae > 3.5 %} +{% note %} + +**Note:** If you are an enterprise owner, you will need to join an organization as an organization owner to view data for the organization's repositories in both the organization-level and enterprise-level overview. For more information, see "[AUTOTITLE](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." + +{% endnote %} +{% endif %} + +In the enterprise-level security overview, you can see data for all organizations where you are an organization owner or security manager. However, you cannot use the enterprise-level security overview to enable and disable security features. For more information, see "[AUTOTITLE](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +{% endif %} + ## Further reading - "[AUTOTITLE](/code-security/getting-started/securing-your-repository)" From 0ae9dc37c5851a46696824e23aa58639b0ab9aea Mon Sep 17 00:00:00 2001 From: Dan Nelson <55757989+danelson@users.noreply.github.com> Date: Thu, 14 Dec 2023 08:48:15 -0600 Subject: [PATCH 47/55] Add audit log troubleshooting note (#30637) Co-authored-by: Laura Coursen --- .../streaming-the-audit-log-for-your-enterprise.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index e611eace62..17402c9cb2 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -245,6 +245,12 @@ To set up streaming to Google Cloud Storage, you must create a service account i To stream audit logs to Splunk's HTTP Event Collector (HEC) endpoint you must make sure that the endpoint is configured to accept HTTPS connections. For more information, see [Set up and use HTTP Event Collector in Splunk Web](https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector) in the Splunk documentation. +{% note %} + +**Note**: {% data variables.product.prodname_dotcom %} validates the HEC endpoint via `:port/services/collector`. If self-hosting the HEC endpoint (such as with [Splunk HEC Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/splunkhecreceiver) via OpenTelemetry), ensure the endpoint is reachable at this destination. + +{% endnote %} + {% ifversion ghec %} To get a list of IP address ranges that {% data variables.product.prodname_dotcom %} uses for connections to the HEC endpoint, you can use the REST API. The `meta` endpoint for {% data variables.product.product_name %} includes a `hooks` key with a list of the IP addresses. For more information, see "[Meta](/rest/meta/meta#get-github-enterprise-cloud-meta-information)" in the REST API documentation. {% endif %} From d82e604fe32f4516779df2ab4379d55180c82a49 Mon Sep 17 00:00:00 2001 From: Carlos Alarcon Date: Thu, 14 Dec 2023 17:27:50 +0100 Subject: [PATCH 48/55] Add Search based on the custom property section (#47293) Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../searching-for-repositories.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/content/search-github/searching-on-github/searching-for-repositories.md b/content/search-github/searching-on-github/searching-for-repositories.md index 18bc217a21..1448f9babf 100644 --- a/content/search-github/searching-on-github/searching-for-repositories.md +++ b/content/search-github/searching-on-github/searching-for-repositories.md @@ -154,6 +154,26 @@ You can filter your search based on the visibility of the repositories. For more | `is:internal` | [**is:internal test**](https://github.com/search?q=is%3Ainternal+test&type=Repositories) matches internal repositories that you can access and contain the word "test".{% endif %} | `is:private` | [**is:private pages**](https://github.com/search?q=is%3Aprivate+pages&type=Repositories) matches private repositories that you can access and contain the word "pages." +{% ifversion repository-properties %} + +## Search based on repository custom property + +{% note %} + +**Note:** Repository properties are in public beta and subject to change. + +{% endnote %} + +You can filter repositories based on custom properties using the `props.` prefixed qualifiers. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)." + +For these qualifiers to work, the search must be limited to a single organization. Otherwise, `props.` qualifiers are ignored. + +| Qualifier | Example +| ------------- | ------------- +| props.PROPERTY:VALUE | [**org:github props.environment:production**](https://github.com/search?utf8=%E2%9C%93&q=org%3Agithub+props.environment%3Atesting&type=Repositories) matches repositories from the `github` organization that have the custom property `environment` set to `production`. + +{% endif %} + {% ifversion fpt or ghec %} ## Search based on whether a repository is a mirror From 3515c586682ce586343ce6cb09c2ec19d7c274d6 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:32:36 -0500 Subject: [PATCH 49/55] Update audit log event data (#47831) --- src/audit-logs/lib/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index d75c3045f3..fd20776152 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -1,4 +1,4 @@ { "apiOnlyEventsAdditionalDescription": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", - "sha": "8fcac9942f2d261caff9d040f5ebf30242b548da" + "sha": "4dcbff116bbe9842cf8a961260eb7d7f8191c7c4" } \ No newline at end of file From 69f6e9a9a076545c67d9ca027edb762184a8431d Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:34:27 -0500 Subject: [PATCH 50/55] GraphQL schema update (#47832) Co-authored-by: rachmari --- data/graphql/ghae/schema.docs-ghae.graphql | 450 ++++++++++++- src/graphql/data/ghae/schema.json | 729 +++++++++++++++++++++ 2 files changed, 1178 insertions(+), 1 deletion(-) diff --git a/data/graphql/ghae/schema.docs-ghae.graphql b/data/graphql/ghae/schema.docs-ghae.graphql index 84b8bc03d0..8f5206444a 100644 --- a/data/graphql/ghae/schema.docs-ghae.graphql +++ b/data/graphql/ghae/schema.docs-ghae.graphql @@ -888,6 +888,41 @@ type AddUpvotePayload { subject: Votable } +""" +Represents an 'added_to_merge_queue' event on a given pull request. +""" +type AddedToMergeQueueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who added this Pull Request to the merge queue + """ + enqueuer: User + + """ + The Node ID of the AddedToMergeQueueEvent object + """ + id: ID! + + """ + The merge queue where this pull request was added to. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + """ Represents a 'added_to_project' event on a given issue or pull request. """ @@ -9755,6 +9790,36 @@ enum DeploymentStatusState { WAITING } +""" +Autogenerated input type of DequeuePullRequest +""" +input DequeuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the pull request to be dequeued. + """ + id: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of DequeuePullRequest +""" +type DequeuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry of the dequeued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + """ The possible sides of a diff. """ @@ -10912,6 +10977,46 @@ type EnablePullRequestAutoMergePayload { pullRequest: PullRequest } +""" +Autogenerated input type of EnqueuePullRequest +""" +input EnqueuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The expected head OID of the pull request. + """ + expectedHeadOid: GitObjectID + + """ + Add the pull request to the front of the queue. + """ + jump: Boolean + + """ + The ID of the pull request to enqueue. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of EnqueuePullRequest +""" +type EnqueuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry for the enqueued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + """ An account to manage multiple organizations with consolidated policy and billing. """ @@ -18462,6 +18567,257 @@ type MergePullRequestPayload { pullRequest: PullRequest } +""" +The queue of pull request entries to be merged into a protected branch in a repository. +""" +type MergeQueue implements Node { + """ + The configuration for this merge queue + """ + configuration: MergeQueueConfiguration + + """ + The entries in the queue + """ + entries( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): MergeQueueEntryConnection + + """ + The Node ID of the MergeQueue object + """ + id: ID! + + """ + The estimated time in seconds until a newly added entry would be merged + """ + nextEntryEstimatedTimeToMerge: Int + + """ + The repository this merge queue belongs to + """ + repository: Repository + + """ + The HTTP path for this merge queue + """ + resourcePath: URI! + + """ + The HTTP URL for this merge queue + """ + url: URI! +} + +""" +Configuration for a MergeQueue +""" +type MergeQueueConfiguration { + """ + The amount of time in minutes to wait for a check response before considering it a failure. + """ + checkResponseTimeout: Int + + """ + The maximum number of entries to build at once. + """ + maximumEntriesToBuild: Int + + """ + The maximum number of entries to merge at once. + """ + maximumEntriesToMerge: Int + + """ + The merge method to use for this queue. + """ + mergeMethod: PullRequestMergeMethod + + """ + The strategy to use when merging entries. + """ + mergingStrategy: MergeQueueMergingStrategy + + """ + The minimum number of entries required to merge at once. + """ + minimumEntriesToMerge: Int + + """ + The amount of time in minutes to wait before ignoring the minumum number of + entries in the queue requirement and merging a collection of entries + """ + minimumEntriesToMergeWaitTime: Int +} + +""" +Entries in a MergeQueue +""" +type MergeQueueEntry implements Node { + """ + The base commit for this entry + """ + baseCommit: Commit + + """ + The date and time this entry was added to the merge queue + """ + enqueuedAt: DateTime! + + """ + The actor that enqueued this entry + """ + enqueuer: Actor! + + """ + The estimated time in seconds until this entry will be merged + """ + estimatedTimeToMerge: Int + + """ + The head commit for this entry + """ + headCommit: Commit + + """ + The Node ID of the MergeQueueEntry object + """ + id: ID! + + """ + Whether this pull request should jump the queue + """ + jump: Boolean! + + """ + The merge queue that this entry belongs to + """ + mergeQueue: MergeQueue + + """ + The position of this entry in the queue + """ + position: Int! + + """ + The pull request that will be added to a merge group + """ + pullRequest: PullRequest + + """ + Does this pull request need to be deployed on its own + """ + solo: Boolean! + + """ + The state of this entry in the queue + """ + state: MergeQueueEntryState! +} + +""" +The connection type for MergeQueueEntry. +""" +type MergeQueueEntryConnection { + """ + A list of edges. + """ + edges: [MergeQueueEntryEdge] + + """ + A list of nodes. + """ + nodes: [MergeQueueEntry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type MergeQueueEntryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: MergeQueueEntry +} + +""" +The possible states for a merge queue entry. +""" +enum MergeQueueEntryState { + """ + The entry is currently waiting for checks to pass. + """ + AWAITING_CHECKS + + """ + The entry is currently locked. + """ + LOCKED + + """ + The entry is currently mergeable. + """ + MERGEABLE + + """ + The entry is currently queued. + """ + QUEUED + + """ + The entry is currently unmergeable. + """ + UNMERGEABLE +} + +""" +The possible merging strategies for a merge queue. +""" +enum MergeQueueMergingStrategy { + """ + Entries only allowed to merge if they are passing. + """ + ALLGREEN + + """ + Failing Entires are allowed to merge if they are with a passing entry. + """ + HEADGREEN +} + """ Detailed status information about a pull request merge. """ @@ -19989,6 +20345,16 @@ type Mutation { input: DeleteUserListInput! ): DeleteUserListPayload + """ + Remove a pull request from the merge queue. + """ + dequeuePullRequest( + """ + Parameters for DequeuePullRequest + """ + input: DequeuePullRequestInput! + ): DequeuePullRequestPayload + """ Disable auto merge on the given pull request """ @@ -20029,6 +20395,16 @@ type Mutation { input: EnablePullRequestAutoMergeInput! ): EnablePullRequestAutoMergePayload + """ + Add a pull request to the merge queue. + """ + enqueuePullRequest( + """ + Parameters for EnqueuePullRequest + """ + input: EnqueuePullRequestInput! + ): EnqueuePullRequestPayload + """ Follow an organization. """ @@ -28356,6 +28732,11 @@ type PullRequest implements Assignable & Closable & Comment & Labelable & Lockab """ mergeCommit: Commit + """ + The merge queue entry of the pull request in the base branch's merge queue + """ + mergeQueueEntry: MergeQueueEntry + """ Detailed information about the current pull request merge state status. """ @@ -30462,7 +30843,8 @@ type PullRequestTimelineItemEdge { An item in a pull request timeline """ union PullRequestTimelineItems = - AddedToProjectEvent + AddedToMergeQueueEvent + | AddedToProjectEvent | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent @@ -30503,6 +30885,7 @@ union PullRequestTimelineItems = | PullRequestRevisionMarker | ReadyForReviewEvent | ReferencedEvent + | RemovedFromMergeQueueEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent @@ -30578,6 +30961,11 @@ type PullRequestTimelineItemsEdge { The possible item types found in a timeline. """ enum PullRequestTimelineItemsItemType { + """ + Represents an 'added_to_merge_queue' event on a given pull request. + """ + ADDED_TO_MERGE_QUEUE_EVENT + """ Represents a 'added_to_project' event on a given issue or pull request. """ @@ -30783,6 +31171,11 @@ enum PullRequestTimelineItemsItemType { """ REFERENCED_EVENT + """ + Represents a 'removed_from_merge_queue' event on a given pull request. + """ + REMOVED_FROM_MERGE_QUEUE_EVENT + """ Represents a 'removed_from_project' event on a given issue or pull request. """ @@ -32809,6 +33202,51 @@ type RemoveUpvotePayload { subject: Votable } +""" +Represents a 'removed_from_merge_queue' event on a given pull request. +""" +type RemovedFromMergeQueueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the before commit SHA for the 'removed_from_merge_queue' event. + """ + beforeCommit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who removed this Pull Request from the merge queue + """ + enqueuer: User + + """ + The Node ID of the RemovedFromMergeQueueEvent object + """ + id: ID! + + """ + The merge queue where this pull request was removed from. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest + + """ + The reason this pull request was removed from the queue. + """ + reason: String +} + """ Represents a 'removed_from_project' event on a given issue or pull request. """ @@ -36233,6 +36671,16 @@ type Repository implements Node & ProjectOwner & RepositoryInfo & Starrable & Su """ mergeCommitTitle: MergeCommitTitle! + """ + The merge queue for a specified branch, otherwise the default branch if not provided. + """ + mergeQueue( + """ + The name of the branch to get the merge queue for. Case sensitive. + """ + branch: String + ): MergeQueue + """ Returns a single milestone from the current repository by number. """ diff --git a/src/graphql/data/ghae/schema.json b/src/graphql/data/ghae/schema.json index c4f43dd125..ebff98b3bf 100644 --- a/src/graphql/data/ghae/schema.json +++ b/src/graphql/data/ghae/schema.json @@ -3183,6 +3183,40 @@ } ] }, + { + "name": "dequeuePullRequest", + "kind": "mutations", + "id": "dequeuepullrequest", + "href": "/graphql/reference/mutations#dequeuepullrequest", + "description": "

Remove a pull request from the merge queue.

", + "inputFields": [ + { + "name": "input", + "type": "DequeuePullRequestInput!", + "id": "dequeuepullrequestinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#dequeuepullrequestinput" + } + ], + "returnFields": [ + { + "name": "clientMutationId", + "type": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string", + "description": "

A unique identifier for the client performing the mutation.

" + }, + { + "name": "mergeQueueEntry", + "type": "MergeQueueEntry", + "id": "mergequeueentry", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentry", + "description": "

The merge queue entry of the dequeued pull request.

" + } + ] + }, { "name": "disablePullRequestAutoMerge", "kind": "mutations", @@ -3335,6 +3369,40 @@ } ] }, + { + "name": "enqueuePullRequest", + "kind": "mutations", + "id": "enqueuepullrequest", + "href": "/graphql/reference/mutations#enqueuepullrequest", + "description": "

Add a pull request to the merge queue.

", + "inputFields": [ + { + "name": "input", + "type": "EnqueuePullRequestInput!", + "id": "enqueuepullrequestinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#enqueuepullrequestinput" + } + ], + "returnFields": [ + { + "name": "clientMutationId", + "type": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string", + "description": "

A unique identifier for the client performing the mutation.

" + }, + { + "name": "mergeQueueEntry", + "type": "MergeQueueEntry", + "id": "mergequeueentry", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentry", + "description": "

The merge queue entry for the enqueued pull request.

" + } + ] + }, { "name": "followOrganization", "kind": "mutations", @@ -7055,6 +7123,70 @@ } ] }, + { + "name": "AddedToMergeQueueEvent", + "kind": "objects", + "id": "addedtomergequeueevent", + "href": "/graphql/reference/objects#addedtomergequeueevent", + "description": "

Represents anadded_to_merge_queueevent on a given pull request.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "actor", + "description": "

Identifies the actor who performed the event.

", + "type": "Actor", + "id": "actor", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#actor" + }, + { + "name": "createdAt", + "description": "

Identifies the date and time when the object was created.

", + "type": "DateTime!", + "id": "datetime", + "kind": "scalars", + "href": "/graphql/reference/scalars#datetime" + }, + { + "name": "enqueuer", + "description": "

The user who added this Pull Request to the merge queue.

", + "type": "User", + "id": "user", + "kind": "objects", + "href": "/graphql/reference/objects#user" + }, + { + "name": "id", + "description": "

The Node ID of the AddedToMergeQueueEvent object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "mergeQueue", + "description": "

The merge queue where this pull request was added to.

", + "type": "MergeQueue", + "id": "mergequeue", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeue" + }, + { + "name": "pullRequest", + "description": "

PullRequest referenced by event.

", + "type": "PullRequest", + "id": "pullrequest", + "kind": "objects", + "href": "/graphql/reference/objects#pullrequest" + } + ] + }, { "name": "AddedToProjectEvent", "kind": "objects", @@ -28003,6 +28135,363 @@ } ] }, + { + "name": "MergeQueue", + "kind": "objects", + "id": "mergequeue", + "href": "/graphql/reference/objects#mergequeue", + "description": "

The queue of pull request entries to be merged into a protected branch in a repository.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "configuration", + "description": "

The configuration for this merge queue.

", + "type": "MergeQueueConfiguration", + "id": "mergequeueconfiguration", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueconfiguration" + }, + { + "name": "entries", + "description": "

The entries in the queue.

", + "type": "MergeQueueEntryConnection", + "id": "mergequeueentryconnection", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentryconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "id", + "description": "

The Node ID of the MergeQueue object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "nextEntryEstimatedTimeToMerge", + "description": "

The estimated time in seconds until a newly added entry would be merged.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "repository", + "description": "

The repository this merge queue belongs to.

", + "type": "Repository", + "id": "repository", + "kind": "objects", + "href": "/graphql/reference/objects#repository" + }, + { + "name": "resourcePath", + "description": "

The HTTP path for this merge queue.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + }, + { + "name": "url", + "description": "

The HTTP URL for this merge queue.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + } + ] + }, + { + "name": "MergeQueueConfiguration", + "kind": "objects", + "id": "mergequeueconfiguration", + "href": "/graphql/reference/objects#mergequeueconfiguration", + "description": "

Configuration for a MergeQueue.

", + "fields": [ + { + "name": "checkResponseTimeout", + "description": "

The amount of time in minutes to wait for a check response before considering it a failure.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "maximumEntriesToBuild", + "description": "

The maximum number of entries to build at once.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "maximumEntriesToMerge", + "description": "

The maximum number of entries to merge at once.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "mergeMethod", + "description": "

The merge method to use for this queue.

", + "type": "PullRequestMergeMethod", + "id": "pullrequestmergemethod", + "kind": "enums", + "href": "/graphql/reference/enums#pullrequestmergemethod" + }, + { + "name": "mergingStrategy", + "description": "

The strategy to use when merging entries.

", + "type": "MergeQueueMergingStrategy", + "id": "mergequeuemergingstrategy", + "kind": "enums", + "href": "/graphql/reference/enums#mergequeuemergingstrategy" + }, + { + "name": "minimumEntriesToMerge", + "description": "

The minimum number of entries required to merge at once.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "minimumEntriesToMergeWaitTime", + "description": "

The amount of time in minutes to wait before ignoring the minumum number of\nentries in the queue requirement and merging a collection of entries.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, + { + "name": "MergeQueueEntry", + "kind": "objects", + "id": "mergequeueentry", + "href": "/graphql/reference/objects#mergequeueentry", + "description": "

Entries in a MergeQueue.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "baseCommit", + "description": "

The base commit for this entry.

", + "type": "Commit", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "enqueuedAt", + "description": "

The date and time this entry was added to the merge queue.

", + "type": "DateTime!", + "id": "datetime", + "kind": "scalars", + "href": "/graphql/reference/scalars#datetime" + }, + { + "name": "enqueuer", + "description": "

The actor that enqueued this entry.

", + "type": "Actor!", + "id": "actor", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#actor" + }, + { + "name": "estimatedTimeToMerge", + "description": "

The estimated time in seconds until this entry will be merged.

", + "type": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "headCommit", + "description": "

The head commit for this entry.

", + "type": "Commit", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "id", + "description": "

The Node ID of the MergeQueueEntry object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "jump", + "description": "

Whether this pull request should jump the queue.

", + "type": "Boolean!", + "id": "boolean", + "kind": "scalars", + "href": "/graphql/reference/scalars#boolean" + }, + { + "name": "mergeQueue", + "description": "

The merge queue that this entry belongs to.

", + "type": "MergeQueue", + "id": "mergequeue", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeue" + }, + { + "name": "position", + "description": "

The position of this entry in the queue.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "pullRequest", + "description": "

The pull request that will be added to a merge group.

", + "type": "PullRequest", + "id": "pullrequest", + "kind": "objects", + "href": "/graphql/reference/objects#pullrequest" + }, + { + "name": "solo", + "description": "

Does this pull request need to be deployed on its own.

", + "type": "Boolean!", + "id": "boolean", + "kind": "scalars", + "href": "/graphql/reference/scalars#boolean" + }, + { + "name": "state", + "description": "

The state of this entry in the queue.

", + "type": "MergeQueueEntryState!", + "id": "mergequeueentrystate", + "kind": "enums", + "href": "/graphql/reference/enums#mergequeueentrystate" + } + ] + }, + { + "name": "MergeQueueEntryConnection", + "kind": "objects", + "id": "mergequeueentryconnection", + "href": "/graphql/reference/objects#mergequeueentryconnection", + "description": "

The connection type for MergeQueueEntry.

", + "fields": [ + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[MergeQueueEntryEdge]", + "id": "mergequeueentryedge", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentryedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[MergeQueueEntry]", + "id": "mergequeueentry", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentry" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, + { + "name": "MergeQueueEntryEdge", + "kind": "objects", + "id": "mergequeueentryedge", + "href": "/graphql/reference/objects#mergequeueentryedge", + "description": "

An edge in a connection.

", + "fields": [ + { + "name": "cursor", + "description": "

A cursor for use in pagination.

", + "type": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "node", + "description": "

The item at the end of the edge.

", + "type": "MergeQueueEntry", + "id": "mergequeueentry", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentry" + } + ] + }, { "name": "MergedEvent", "kind": "objects", @@ -39880,6 +40369,14 @@ "kind": "objects", "href": "/graphql/reference/objects#commit" }, + { + "name": "mergeQueueEntry", + "description": "

The merge queue entry of the pull request in the base branch's merge queue.

", + "type": "MergeQueueEntry", + "id": "mergequeueentry", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeueentry" + }, { "name": "mergeStateStatus", "description": "

Detailed information about the current pull request merge state status.

", @@ -45127,6 +45624,86 @@ } ] }, + { + "name": "RemovedFromMergeQueueEvent", + "kind": "objects", + "id": "removedfrommergequeueevent", + "href": "/graphql/reference/objects#removedfrommergequeueevent", + "description": "

Represents aremoved_from_merge_queueevent on a given pull request.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "actor", + "description": "

Identifies the actor who performed the event.

", + "type": "Actor", + "id": "actor", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#actor" + }, + { + "name": "beforeCommit", + "description": "

Identifies the before commit SHA for theremoved_from_merge_queueevent.

", + "type": "Commit", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "createdAt", + "description": "

Identifies the date and time when the object was created.

", + "type": "DateTime!", + "id": "datetime", + "kind": "scalars", + "href": "/graphql/reference/scalars#datetime" + }, + { + "name": "enqueuer", + "description": "

The user who removed this Pull Request from the merge queue.

", + "type": "User", + "id": "user", + "kind": "objects", + "href": "/graphql/reference/objects#user" + }, + { + "name": "id", + "description": "

The Node ID of the RemovedFromMergeQueueEvent object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "mergeQueue", + "description": "

The merge queue where this pull request was removed from.

", + "type": "MergeQueue", + "id": "mergequeue", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeue" + }, + { + "name": "pullRequest", + "description": "

PullRequest referenced by event.

", + "type": "PullRequest", + "id": "pullrequest", + "kind": "objects", + "href": "/graphql/reference/objects#pullrequest" + }, + { + "name": "reason", + "description": "

The reason this pull request was removed from the queue.

", + "type": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + ] + }, { "name": "RemovedFromProjectEvent", "kind": "objects", @@ -50992,6 +51569,26 @@ "kind": "enums", "href": "/graphql/reference/enums#mergecommittitle" }, + { + "name": "mergeQueue", + "description": "

The merge queue for a specified branch, otherwise the default branch if not provided.

", + "type": "MergeQueue", + "id": "mergequeue", + "kind": "objects", + "href": "/graphql/reference/objects#mergequeue", + "arguments": [ + { + "name": "branch", + "description": "

The name of the branch to get the merge queue for. Case sensitive.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + } + ] + }, { "name": "milestone", "description": "

Returns a single milestone from the current repository by number.

", @@ -69213,6 +69810,52 @@ } ] }, + { + "name": "MergeQueueEntryState", + "kind": "enums", + "id": "mergequeueentrystate", + "href": "/graphql/reference/enums#mergequeueentrystate", + "description": "

The possible states for a merge queue entry.

", + "values": [ + { + "name": "AWAITING_CHECKS", + "description": "

The entry is currently waiting for checks to pass.

" + }, + { + "name": "LOCKED", + "description": "

The entry is currently locked.

" + }, + { + "name": "MERGEABLE", + "description": "

The entry is currently mergeable.

" + }, + { + "name": "QUEUED", + "description": "

The entry is currently queued.

" + }, + { + "name": "UNMERGEABLE", + "description": "

The entry is currently unmergeable.

" + } + ] + }, + { + "name": "MergeQueueMergingStrategy", + "kind": "enums", + "id": "mergequeuemergingstrategy", + "href": "/graphql/reference/enums#mergequeuemergingstrategy", + "description": "

The possible merging strategies for a merge queue.

", + "values": [ + { + "name": "ALLGREEN", + "description": "

Entries only allowed to merge if they are passing.

" + }, + { + "name": "HEADGREEN", + "description": "

Failing Entires are allowed to merge if they are with a passing entry.

" + } + ] + }, { "name": "MergeStateStatus", "kind": "enums", @@ -70334,6 +70977,10 @@ "href": "/graphql/reference/enums#pullrequesttimelineitemsitemtype", "description": "

The possible item types found in a timeline.

", "values": [ + { + "name": "ADDED_TO_MERGE_QUEUE_EVENT", + "description": "

Represents anadded_to_merge_queueevent on a given pull request.

" + }, { "name": "ADDED_TO_PROJECT_EVENT", "description": "

Represents aadded_to_projectevent on a given issue or pull request.

" @@ -70498,6 +71145,10 @@ "name": "REFERENCED_EVENT", "description": "

Represents areferencedevent on a given ReferencedSubject.

" }, + { + "name": "REMOVED_FROM_MERGE_QUEUE_EVENT", + "description": "

Represents aremoved_from_merge_queueevent on a given pull request.

" + }, { "name": "REMOVED_FROM_PROJECT_EVENT", "description": "

Represents aremoved_from_projectevent on a given issue or pull request.

" @@ -73161,6 +73812,11 @@ "href": "/graphql/reference/unions#pullrequesttimelineitems", "description": "

An item in a pull request timeline.

", "possibleTypes": [ + { + "name": "AddedToMergeQueueEvent", + "id": "addedtomergequeueevent", + "href": "/graphql/reference/objects#addedtomergequeueevent" + }, { "name": "AddedToProjectEvent", "id": "addedtoprojectevent", @@ -73366,6 +74022,11 @@ "id": "referencedevent", "href": "/graphql/reference/objects#referencedevent" }, + { + "name": "RemovedFromMergeQueueEvent", + "id": "removedfrommergequeueevent", + "href": "/graphql/reference/objects#removedfrommergequeueevent" + }, { "name": "RemovedFromProjectEvent", "id": "removedfromprojectevent", @@ -77719,6 +78380,32 @@ } ] }, + { + "name": "DequeuePullRequestInput", + "kind": "inputObjects", + "id": "dequeuepullrequestinput", + "href": "/graphql/reference/input-objects#dequeuepullrequestinput", + "description": "

Autogenerated input type of DequeuePullRequest.

", + "inputFields": [ + { + "name": "clientMutationId", + "description": "

A unique identifier for the client performing the mutation.

", + "type": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "id", + "description": "

The ID of the pull request to be dequeued.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "DisablePullRequestAutoMergeInput", "kind": "inputObjects", @@ -77994,6 +78681,48 @@ } ] }, + { + "name": "EnqueuePullRequestInput", + "kind": "inputObjects", + "id": "enqueuepullrequestinput", + "href": "/graphql/reference/input-objects#enqueuepullrequestinput", + "description": "

Autogenerated input type of EnqueuePullRequest.

", + "inputFields": [ + { + "name": "clientMutationId", + "description": "

A unique identifier for the client performing the mutation.

", + "type": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "expectedHeadOid", + "description": "

The expected head OID of the pull request.

", + "type": "GitObjectID", + "id": "gitobjectid", + "kind": "scalars", + "href": "/graphql/reference/scalars#gitobjectid" + }, + { + "name": "jump", + "description": "

Add the pull request to the front of the queue.

", + "type": "Boolean", + "id": "boolean", + "kind": "scalars", + "href": "/graphql/reference/scalars#boolean" + }, + { + "name": "pullRequestId", + "description": "

The ID of the pull request to enqueue.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "EnterpriseAdministratorInvitationOrder", "kind": "inputObjects", From 57a3234cef67a9d85774e2eae970f42066c23e9b Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:01:45 +0100 Subject: [PATCH 51/55] [Improvement]: Make screenshot org relevant (#47821) Co-authored-by: github-actions --- .../billing/cancel-pending-changes-org.png | Bin 0 -> 101963 bytes ...nd-managing-pending-changes-to-your-plan.md | 2 +- .../cancel-pending-changes-org.md | 3 +++ 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 assets/images/help/billing/cancel-pending-changes-org.png create mode 100644 data/reusables/dotcom_billing/cancel-pending-changes-org.md diff --git a/assets/images/help/billing/cancel-pending-changes-org.png b/assets/images/help/billing/cancel-pending-changes-org.png new file mode 100644 index 0000000000000000000000000000000000000000..83701dd82c416bd7d1f4f8170dde6b3fb97c8a84 GIT binary patch literal 101963 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 H-q-#KX{3BJ literal 0 HcmV?d00001 diff --git a/content/billing/managing-the-plan-for-your-github-account/viewing-and-managing-pending-changes-to-your-plan.md b/content/billing/managing-the-plan-for-your-github-account/viewing-and-managing-pending-changes-to-your-plan.md index fb4fc35011..803665e7a1 100644 --- a/content/billing/managing-the-plan-for-your-github-account/viewing-and-managing-pending-changes-to-your-plan.md +++ b/content/billing/managing-the-plan-for-your-github-account/viewing-and-managing-pending-changes-to-your-plan.md @@ -37,7 +37,7 @@ When you cancel a pending change, your plan will not change until your next bill {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.review-pending-changes %} -{% data reusables.dotcom_billing.cancel-pending-changes %} +{% data reusables.dotcom_billing.cancel-pending-changes-org %} {% data reusables.dotcom_billing.confirm-cancel-pending-changes %} ## Further reading diff --git a/data/reusables/dotcom_billing/cancel-pending-changes-org.md b/data/reusables/dotcom_billing/cancel-pending-changes-org.md new file mode 100644 index 0000000000..e405ea214a --- /dev/null +++ b/data/reusables/dotcom_billing/cancel-pending-changes-org.md @@ -0,0 +1,3 @@ +1. Next to the pending change you'd like to cancel, click **Cancel**. + + ![Screenshot the "Current plan" section. After the text "The new price will be $0/year", a link labeled "Cancel" is highlighted with an orange outline.](/assets/images/help/billing/cancel-pending-changes-org.png) From 84d6a5dc444a577a9b337b968e544662bb704199 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:02:28 +0100 Subject: [PATCH 52/55] [Improvement]: Add context on deleting locked and protected branches (#47828) --- .../about-protected-branches.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches.md index 6a1aaa27d8..b6a1ed7d76 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches.md @@ -180,7 +180,8 @@ You can require that changes are successfully deployed to specific environments ### Lock branch -Locking a branch ensures that no commits can be made to the branch. +Locking a branch will make the branch read-only and ensures that no commits can be made to the branch. Locked branches can also not be deleted. + By default, a forked repository does not support syncing from its upstream repository. You can enable **Allow fork syncing** to pull changes from the upstream repository while preventing other contributions to the fork's branch. {% endif %} @@ -227,3 +228,9 @@ If a site administrator has blocked force pushes to the default branch only, you ### Allow deletions By default, you cannot delete a protected branch. When you enable deletion of a protected branch, anyone with at least write permissions to the repository can delete the branch. + +{% note %} + +**Note:** If the branch is locked, you cannot delete the branch even if you have permission to delete it. + +{% endnote %} From 1556b5afe38553a09ca7004be2fd3beef057dd78 Mon Sep 17 00:00:00 2001 From: Grace Park Date: Thu, 14 Dec 2023 09:33:09 -0800 Subject: [PATCH 53/55] Add margin top for large and xlarge breakpoints (#47801) --- src/frame/components/ui/MiniTocs/MiniTocs.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/frame/components/ui/MiniTocs/MiniTocs.tsx b/src/frame/components/ui/MiniTocs/MiniTocs.tsx index c5575950cb..ae2b9cb429 100644 --- a/src/frame/components/ui/MiniTocs/MiniTocs.tsx +++ b/src/frame/components/ui/MiniTocs/MiniTocs.tsx @@ -60,7 +60,12 @@ export function MiniTocs({ miniTocItems }: MiniTocsPropsT) { as="h2" id="in-this-article" className="mb-1 ml-3" - sx={{ fontSize: 1 }} + sx={{ + '@media (min-width: 1012px) and (max-width: 1400px)': { + marginTop: '2rem', + }, + fontSize: 1, + }} aria-label={t('miniToc')} > {t('miniToc')} From 478b415829e63906695f1beed765660d7f74c787 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Thu, 14 Dec 2023 09:58:39 -0800 Subject: [PATCH 54/55] Add REST API orientation article (#47646) Co-authored-by: Jess Hosman <1183847+jhosman@users.noreply.github.com> --- .../about-the-rest-api/about-the-rest-api.md | 46 +++++++++++++++++++ ...paring-githubs-rest-api-and-graphql-api.md | 2 +- content/rest/about-the-rest-api/index.md | 1 + content/rest/index.md | 6 +-- 4 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 content/rest/about-the-rest-api/about-the-rest-api.md diff --git a/content/rest/about-the-rest-api/about-the-rest-api.md b/content/rest/about-the-rest-api/about-the-rest-api.md new file mode 100644 index 0000000000..aa57a30f70 --- /dev/null +++ b/content/rest/about-the-rest-api/about-the-rest-api.md @@ -0,0 +1,46 @@ +--- +title: About the REST API +shortTitle: About the REST API +intro: 'Get oriented to the REST API documentation.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' + ghae: '*' +topics: + - API +--- + +You can use {% data variables.product.company_short %}'s API to build scripts and applications that automate processes, integrate with {% data variables.product.company_short %}, and extend {% data variables.product.company_short %}. For example, you could use the API to triage issues, build an analytics dashboard, or manage releases. + +Each REST API endpoint is documented individually, and the endpoints are categorized by the resource that they primarily affect. For example, you can find endpoints relating to issues in "[AUTOTITLE](/rest/issues)." + +## Getting started with the REST API + +**If you are new to REST APIs**, you may find it helpful to refer to the Quickstart or Getting Started guide for an introduction. For more information, see: + +- "[AUTOTITLE](/rest/quickstart)" +- "[AUTOTITLE](/rest/guides/getting-started-with-the-rest-api)" + +**If you are familiar with REST APIs** but new to {% data variables.product.company_short %}'s REST API, you may find it helpful to refer to the authentication documentation. For more information, see: + +- "[AUTOTITLE](/rest/overview/authenticating-to-the-rest-api)" + +**If you are building scripts or applications** that use the REST API, you may find some of the following guides helpful. For examples of scripting with the REST API, see: + +- "[AUTOTITLE](/rest/guides/scripting-with-the-rest-api-and-javascript)" +- "[AUTOTITLE](/rest/guides/scripting-with-the-rest-api-and-ruby)" +- "[AUTOTITLE](/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events)" +- "[AUTOTITLE](/apps/creating-github-apps/writing-code-for-a-github-app/building-a-cli-with-a-github-app)" +- "[AUTOTITLE](/webhooks/using-webhooks/automatically-redelivering-failed-deliveries-for-a-repository-webhook)" + +For a list of libraries to facilitate scripting with the REST API, see "[AUTOTITLE](/rest/overview/libraries-for-the-rest-api)." + +If you are building scripts or applications that use the REST API, you might also be interested in using webhooks to get notified about events or a {% data variables.product.prodname_github_app %} to access resources on behalf of a user or in an organization. For more information, see "[AUTOTITLE](/webhooks/about-webhooks)" and "[AUTOTITLE](/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app)." + +## Further reading + +- "[AUTOTITLE](/rest/overview/comparing-githubs-rest-api-and-graphql-api)" +- "[AUTOTITLE](/rest/guides/best-practices-for-using-the-rest-api)" +- "[AUTOTITLE](/rest/overview/keeping-your-api-credentials-secure)" +- "[AUTOTITLE](/rest/overview/troubleshooting-the-rest-api)" diff --git a/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md index 5a67662770..eeba078b9b 100644 --- a/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md +++ b/content/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api.md @@ -24,7 +24,7 @@ topics: You should use the API that best aligns with your needs and that you are most comfortable using. You don't need to exclusively use one API over the other. Node IDs let you move between the REST API and GraphQL API. For more information, see "[AUTOTITLE](/graphql/guides/using-global-node-ids)." -This article discusses the benefits of each API. For more information about the GraphQL API, see "[AUTOTITLE](/graphql/overview/about-the-graphql-api)." For more information about the REST API, see [the REST documentation](/rest). +This article discusses the benefits of each API. For more information about the GraphQL API, see "[AUTOTITLE](/graphql/overview/about-the-graphql-api)." For more information about the REST API, see "[AUTOTITLE](/rest/about-the-rest-api/about-the-rest-api)". ## Choosing the GraphQL API diff --git a/content/rest/about-the-rest-api/index.md b/content/rest/about-the-rest-api/index.md index 4ecfeadf34..9d948e0b60 100644 --- a/content/rest/about-the-rest-api/index.md +++ b/content/rest/about-the-rest-api/index.md @@ -9,6 +9,7 @@ versions: topics: - API children: + - /about-the-rest-api - /comparing-githubs-rest-api-and-graphql-api - /api-versions - /breaking-changes diff --git a/content/rest/index.md b/content/rest/index.md index 12a94b71f6..49e20bbaf0 100644 --- a/content/rest/index.md +++ b/content/rest/index.md @@ -3,18 +3,16 @@ title: GitHub REST API documentation shortTitle: REST API intro: 'Create integrations, retrieve data, and automate your workflows with the {% data variables.product.prodname_dotcom %} REST API.' introLinks: + overview: /rest/overview/about-the-rest-api quickstart: /rest/quickstart - overview: /rest/using-the-rest-api/getting-started-with-the-rest-api featuredLinks: startHere: + - /rest/about-the-rest-api/about-the-rest-api - /rest/using-the-rest-api/getting-started-with-the-rest-api - /rest/authentication/authenticating-to-the-rest-api - /rest/using-the-rest-api/best-practices-for-using-the-rest-api - - /rest/using-the-rest-api/using-pagination-in-the-rest-api popular: - /rest/using-the-rest-api/rate-limits-for-the-rest-api - - /rest/about-the-rest-api/api-versions - - /rest/authentication/authenticating-to-the-rest-api - /rest/using-the-rest-api/troubleshooting-the-rest-api - /rest/guides/scripting-with-the-rest-api-and-javascript - /rest/authentication/keeping-your-api-credentials-secure From 4990a05141807cce6c871625139906427f08c525 Mon Sep 17 00:00:00 2001 From: Grace Park Date: Thu, 14 Dec 2023 12:41:25 -0800 Subject: [PATCH 55/55] Update spotlight bold color (#47837) --- src/content-render/stylesheets/spotlight.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content-render/stylesheets/spotlight.scss b/src/content-render/stylesheets/spotlight.scss index 6107bf31dc..a80050df9a 100644 --- a/src/content-render/stylesheets/spotlight.scss +++ b/src/content-render/stylesheets/spotlight.scss @@ -18,7 +18,7 @@ $colors: "default", "muted", "subtle", "accent", "success", "attention", .ghd-spotlight-#{$color} { border-left-color: var(--fgColor-#{$color}, var(--color-#{$color}-fg)); - strong:first-child, + p:first-child strong:first-child, b:first-child { color: var(--fgColor-#{$color}, var(--color-#{$color}-fg)); }