From 0632114fcd9c32ae0c514c10ca085e54a8b4c4b1 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Wed, 6 Dec 2023 09:39:40 +0100 Subject: [PATCH 01/71] PR for staging preview of early access docs (#47294) From cdf2b265ceb660ea61eaeb4a15799fcd10b0ddc6 Mon Sep 17 00:00:00 2001 From: Mark Maxwell <138938022+mark-mxwl@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:22:06 -0800 Subject: [PATCH 02/71] Update searching-issues-and-pull-requests.md (#30277) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../searching-issues-and-pull-requests.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index a16cbf9775..306179ff32 100644 --- a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -160,6 +160,15 @@ You can use the `involves` qualifier to find issues that in some way involve a c | involves:USERNAME | **[involves:defunkt involves:jlord](https://github.com/search?q=involves%3Adefunkt+involves%3Ajlord&type=Issues)** matches issues either @defunkt or @jlord are involved in. | `in:body` involves:USERNAME | [**NOT bootstrap in:body involves:mdo**](https://github.com/search?q=NOT+bootstrap+in%3Abody+involves%3Amdo&type=Issues) matches issues @mdo is involved in that do not contain the word "bootstrap" in the body. +## Search for my issues and pull requests + +You can search for issues and pull requests you have created or have interacted with by following the desired qualifier with `@me`. Any qualifier that works with a username allows you to limit your search to issues and pull requests you created, are assigned, mentioned on, or are requested as a reviewer of. + +| Qualifier | Example +| ------------- | ------------- +| author:@me | **[author:@me](https://github.com/search?q=author%3A%40me)** matches issues and pull requests you have authored. +| is:pr commenter:@me | **[is:pr commenter:@me](https://github.com/search?q=is%3Apr+commenter%3A%40me&type=pullrequests)** matches pull requests you have commented on. + ## Search for linked issues and pull requests You can narrow your results to only include issues that are linked to a pull request by a closing reference, or pull requests that are linked to an issue that the pull request may close. From c624dd84ab07fd8a527f555800189402a96c33d4 Mon Sep 17 00:00:00 2001 From: Janella Co <106457244+janellaco@users.noreply.github.com> Date: Wed, 6 Dec 2023 05:39:54 -0500 Subject: [PATCH 03/71] Update validity check for Stripe Test API Key (#47308) Co-authored-by: Courtney Claessens --- data/secret-scanning.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/secret-scanning.yml b/data/secret-scanning.yml index 7d4fcf19ab..07c9acb828 100644 --- a/data/secret-scanning.yml +++ b/data/secret-scanning.yml @@ -2731,7 +2731,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: false - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' - provider: 'Stripe' supportedSecret: 'Stripe Webhook Signing Secret' From e4fb1c290dd533e85c38016cf2c230ba4579e4a2 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Wed, 6 Dec 2023 08:58:59 -0500 Subject: [PATCH 04/71] Update OpenAPI Description (#47297) --- .../fpt-2022-11-28/fine-grained-pat-permissions.json | 9 --------- .../data/fpt-2022-11-28/fine-grained-pat.json | 6 ------ .../data/ghae/fine-grained-pat-permissions.json | 9 --------- src/github-apps/data/ghae/fine-grained-pat.json | 6 ------ .../ghec-2022-11-28/fine-grained-pat-permissions.json | 9 --------- .../data/ghec-2022-11-28/fine-grained-pat.json | 6 ------ .../fine-grained-pat-permissions.json | 9 --------- .../data/ghes-3.10-2022-11-28/fine-grained-pat.json | 6 ------ .../fine-grained-pat-permissions.json | 9 --------- .../data/ghes-3.11-2022-11-28/fine-grained-pat.json | 6 ------ .../data/ghes-3.7/fine-grained-pat-permissions.json | 9 --------- src/github-apps/data/ghes-3.7/fine-grained-pat.json | 6 ------ .../data/ghes-3.8/fine-grained-pat-permissions.json | 9 --------- src/github-apps/data/ghes-3.8/fine-grained-pat.json | 6 ------ .../fine-grained-pat-permissions.json | 9 --------- .../data/ghes-3.9-2022-11-28/fine-grained-pat.json | 6 ------ 16 files changed, 120 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 399b84b3e6..69c0289a35 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 @@ -3200,15 +3200,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json index 385629b3d1..d15d2e94b9 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json @@ -1670,12 +1670,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 ce856e0cab..741289d3aa 100644 --- a/src/github-apps/data/ghae/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghae/fine-grained-pat-permissions.json @@ -1863,15 +1863,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghae/fine-grained-pat.json b/src/github-apps/data/ghae/fine-grained-pat.json index 22c17674db..1050db2e3a 100644 --- a/src/github-apps/data/ghae/fine-grained-pat.json +++ b/src/github-apps/data/ghae/fine-grained-pat.json @@ -962,12 +962,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 ed131cdd8e..ceae1d008e 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 @@ -3858,15 +3858,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json index c67b9b64c1..b89113f37d 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json @@ -1786,12 +1786,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 31aede8834..9dd885ff41 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 @@ -2890,15 +2890,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat.json index d4a9e5bf66..4f29d47785 100644 --- a/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghes-3.10-2022-11-28/fine-grained-pat.json @@ -1422,12 +1422,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 daef262314..e1c378adf3 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 @@ -2962,15 +2962,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat.json index 5892953a7d..cfb5f4df54 100644 --- a/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghes-3.11-2022-11-28/fine-grained-pat.json @@ -1422,12 +1422,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 5b69dc7ce0..1478e6e2fc 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 @@ -2598,15 +2598,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghes-3.7/fine-grained-pat.json b/src/github-apps/data/ghes-3.7/fine-grained-pat.json index 220ab4f825..cceb44169c 100644 --- a/src/github-apps/data/ghes-3.7/fine-grained-pat.json +++ b/src/github-apps/data/ghes-3.7/fine-grained-pat.json @@ -1264,12 +1264,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 8c78c3ca1f..734dc5542c 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 @@ -2711,15 +2711,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghes-3.8/fine-grained-pat.json b/src/github-apps/data/ghes-3.8/fine-grained-pat.json index 9c358bcb00..f871fcd432 100644 --- a/src/github-apps/data/ghes-3.8/fine-grained-pat.json +++ b/src/github-apps/data/ghes-3.8/fine-grained-pat.json @@ -1392,12 +1392,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", 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 e8b798a193..cf03e4d06b 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 @@ -2827,15 +2827,6 @@ "additional-permissions": [], "access": "read" }, - { - "category": "collaborators", - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}", - "additional-permissions": [], - "access": "write" - }, { "category": "collaborators", "slug": "decline-a-repository-invitation", diff --git a/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat.json index 6d19813063..1c50e4985a 100644 --- a/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghes-3.9-2022-11-28/fine-grained-pat.json @@ -1410,12 +1410,6 @@ "verb": "get", "requestPath": "/user/repository_invitations" }, - { - "slug": "accept-a-repository-invitation", - "subcategory": "invitations", - "verb": "patch", - "requestPath": "/user/repository_invitations/{invitation_id}" - }, { "slug": "decline-a-repository-invitation", "subcategory": "invitations", From 6c220603b83a638149da725b8500af663ce790bd Mon Sep 17 00:00:00 2001 From: Allie <25503691+GalaxyAllie@users.noreply.github.com> Date: Wed, 6 Dec 2023 15:08:30 +0000 Subject: [PATCH 05/71] Clarify GitHub Support scope and role for sensitive data removal (#47286) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../removing-sensitive-data-from-a-repository.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md index 72d790db6d..79bc551a10 100644 --- a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md +++ b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md @@ -24,7 +24,7 @@ You can remove the file from the latest commit with `git rm`. For information on {% warning %} -**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. +**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. {% data variables.contact.github_support %} only assists in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials. Once you have pushed a commit to {% data variables.product.product_name %}, you should consider any sensitive data in the commit compromised. If you have committed a password, you should change it. If you have committed a key, generate a new one. Removing the compromised data doesn't resolve its initial exposure, especially in existing clones or forks of your repository. @@ -180,6 +180,12 @@ After using either the BFG tool or `git filter-repo` to remove the sensitive dat 1. Contact {% data variables.contact.contact_support %}, and ask to remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %}. Please provide the name of the repository and/or a link to the commit you need removed.{% ifversion ghes %} For more information about how site administrators can remove unreachable Git objects, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repo-gc)."{% endif %} + {% note %} + + **Note:** {% data variables.contact.github_support %} won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials. + + {% endnote %} + 1. Tell your collaborators to [rebase](https://git-scm.com/book/en/Git-Branching-Rebasing), _not_ merge, any branches they created off of your old (tainted) repository history. One merge commit could reintroduce some or all of the tainted history that you just went to the trouble of purging. 1. After some time has passed and you're confident that the BFG tool / `git filter-repo` had no unintended side effects, you can force all objects in your local repository to be dereferenced and garbage collected with the following commands (using Git 1.8.5 or newer): From 844443dc407e137d27bd51dcb61f5a5cf3b2ab3f Mon Sep 17 00:00:00 2001 From: Vallie Joseph Date: Wed, 6 Dec 2023 10:12:21 -0500 Subject: [PATCH 06/71] Update `results-receiver` domain for self-hosted whitelist instructions (#47246) --- .../managing-self-hosted-runners/about-self-hosted-runners.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md index 6aca74d9d9..024ad3fc41 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md @@ -188,7 +188,7 @@ codeload.github.com **Needed for uploading/downloading job summaries, logs, workflow artifacts, and caches:** ```shell copy -actions-results-receiver-production.githubapp.com +results-receiver.actions.githubusercontent.com *.blob.core.windows.net ``` From 9572249d7efc9c9c9226304de6d7ed043e38122e Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 6 Dec 2023 10:55:25 -0500 Subject: [PATCH 07/71] Remove some statsd gauges we don't use (#47343) --- src/frame/lib/warm-server.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/frame/lib/warm-server.js b/src/frame/lib/warm-server.js index fcefc7d1ef..0d405d7bf9 100644 --- a/src/frame/lib/warm-server.js +++ b/src/frame/lib/warm-server.js @@ -30,10 +30,6 @@ async function warmServer() { statsd.gauge('memory_heap_used', process.memoryUsage().heapUsed, ['event:warm-server']) - statsd.gauge('num_redirects', Object.keys(redirects).length) - statsd.gauge('num_page_map', Object.keys(pageMap).length) - statsd.gauge('num_page_list', Object.keys(pageList).length) - if (process.env.NODE_ENV !== 'test') { console.log(`Context primed in ${Date.now() - startTime} ms`) } From b529022601cba4e7dff8e45d6ff855fdb9eb2c39 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 6 Dec 2023 10:58:11 -0500 Subject: [PATCH 08/71] Set DD_HOSTNAME in datadog agent config (#47351) --- src/workflows/docker-compose.prod.tmpl.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/workflows/docker-compose.prod.tmpl.yaml b/src/workflows/docker-compose.prod.tmpl.yaml index b4a1ea8e5f..f12a3c86d8 100644 --- a/src/workflows/docker-compose.prod.tmpl.yaml +++ b/src/workflows/docker-compose.prod.tmpl.yaml @@ -30,3 +30,4 @@ services: DD_API_KEY: ${DD_API_KEY} DD_AGENT_HOST: datadog-agent DD_HISTOGRAM_PERCENTILES: 0.99 0.95 0.50 + DD_HOSTNAME: docs.github.com From e4a8431a8512f4fcd3ca3b860295f72cc8389aac Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 6 Dec 2023 10:58:33 -0500 Subject: [PATCH 09/71] playwright@1.40.1 (#47349) --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index f09606993f..98550ac872 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,13 +95,13 @@ "devDependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", - "@axe-core/playwright": "^4.8.1", + "@axe-core/playwright": "^4.8.2", "@github/markdownlint-github": "^0.4.1", "@graphql-inspector/core": "^5.0.0", "@graphql-tools/load": "^8.0.0", "@jest/globals": "29.7.0", "@octokit/rest": "^20.0.2", - "@playwright/test": "1.39.0", + "@playwright/test": "1.40.1", "@types/imurmurhash": "^0.1.4", "@types/js-cookie": "^3.0.6", "@types/lodash": "^4.14.201", @@ -224,9 +224,9 @@ } }, "node_modules/@axe-core/playwright": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.8.1.tgz", - "integrity": "sha512-KC1X++UdRAwMLRvB+BIKFheyLHUnbJTL0t0Wbv6TJMozn2V2QyEtAcN6jyUiudtGiLUGhHCtj/eWorBnVZ4dAA==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.8.2.tgz", + "integrity": "sha512-9KOhX2tNuvqn9DzpBNyqoqNKRZBrexeSiN9irQ0sEdq8zH13JnatepCJxobuXn4UopNy6iIpP4342beMiH+MSQ==", "dev": true, "dependencies": { "axe-core": "~4.8.2" @@ -2256,12 +2256,12 @@ "dev": true }, "node_modules/@playwright/test": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz", - "integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", + "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", "dev": true, "dependencies": { - "playwright": "1.39.0" + "playwright": "1.40.1" }, "bin": { "playwright": "cli.js" @@ -12015,12 +12015,12 @@ } }, "node_modules/playwright": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz", - "integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", + "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", "dev": true, "dependencies": { - "playwright-core": "1.39.0" + "playwright-core": "1.40.1" }, "bin": { "playwright": "cli.js" @@ -12033,9 +12033,9 @@ } }, "node_modules/playwright-core": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", - "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", + "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", "dev": true, "bin": { "playwright-core": "cli.js" diff --git a/package.json b/package.json index 09b591afe8..b7822dddf0 100644 --- a/package.json +++ b/package.json @@ -292,13 +292,13 @@ "devDependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", - "@axe-core/playwright": "^4.8.1", + "@axe-core/playwright": "^4.8.2", "@github/markdownlint-github": "^0.4.1", "@graphql-inspector/core": "^5.0.0", "@graphql-tools/load": "^8.0.0", "@jest/globals": "29.7.0", "@octokit/rest": "^20.0.2", - "@playwright/test": "1.39.0", + "@playwright/test": "1.40.1", "@types/imurmurhash": "^0.1.4", "@types/js-cookie": "^3.0.6", "@types/lodash": "^4.14.201", From e89c64483b6eb96c18f84362a3488c177cc57a23 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Wed, 6 Dec 2023 11:35:03 -0500 Subject: [PATCH 10/71] Update audit log event data (#47355) --- 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 9c8b9b597c..fcc42c7260 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": "68fdc3e1d8457be8528802ace4eb3f87def140fe" + "sha": "9bb34ccd50585f756e23704680c2c9683635496f" } \ No newline at end of file From 7e25f391d9fbf0b9e622eb93f61fea6b90af1b06 Mon Sep 17 00:00:00 2001 From: Patrick Knight Date: Wed, 6 Dec 2023 10:59:36 -0600 Subject: [PATCH 11/71] Pknight repos overview branches commits (#47232) Co-authored-by: github-actions Co-authored-by: jc-clark Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- ...h-selection-dropdown-global-nav-update.png | Bin 22313 -> 19635 bytes assets/images/help/releases/release-link.png | Bin 69229 -> 104577 bytes assets/images/help/repository/code-button.png | Bin 32892 -> 14601 bytes .../file-tree-view-jump-to-file.png | Bin 15729 -> 20400 bytes assets/images/help/repository/fork-button.png | Bin 79331 -> 40742 bytes .../help/repository/https-url-clone-cli.png | Bin 45942 -> 69468 bytes .../help/repository/repo-actions-watch.png | Bin 42498 -> 25357 bytes ...ory-main-page-go-to-file-no-search-bar.png | Bin 0 -> 15496 bytes .../repository-main-page-go-to-file.png | Bin 0 -> 22893 bytes .../help/repository/upload-files-button.png | Bin 40101 -> 63135 bytes .../finding-files-on-github.md | 8 ++++---- 11 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 assets/images/help/repository/repository-main-page-go-to-file-no-search-bar.png create mode 100644 assets/images/help/repository/repository-main-page-go-to-file.png diff --git a/assets/images/help/branches/branch-selection-dropdown-global-nav-update.png b/assets/images/help/branches/branch-selection-dropdown-global-nav-update.png index 2a20f5813e1503ff8e4bad8055f3e241ac873e26..367749034612968d94451e7ae3d95ff24b6524ef 100644 GIT binary patch literal 19635 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 ZAOBysTIlZN4xa@Q_H^}gS?83{1OPTJk9`0D literal 22313 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

yUAA)#savRiezN4WC0><&N5QxM zq0}8F*O$*iWy~JJF?_l~*w}6dO@l{i@P|19iEZ@z{ju)k*B4XX5^<3tIZqi$+!hgh zC;DwGgV{>)$B*c9wUXgMg4e2FZ0^2hjW-JT^t`i!_j7rG?10YQg8i8XE6Wv3wQVem zcbD^@b&&)z`UHki@Ui;TBy1b(E(_#7Y8{d96IMG|&074nXw%p(I^x>g3_E%r{d;cF z+PH0)rao&>f^jj1S=-x1`VN)eCKWtSUM?w^5Myps$$yFLVsFfyYSK{bgdystr}q7o zfkHU{ENG%QR>_dneG|$+YG?h}-y|it=C#^<6gG15G}+Li%TwfLpIVXciWe2_&Xb1) zgk(%S3ycsh$9-!ChQfjZJpOjP<-(kPqKm(q>x{&eFiJ#;3Vh3NPN=N?DKxGmijs_p z2@%FPWP>f5c5J;Bn4&RFEGg=O(8SCb_T ztcc#JDaF6gpaNGWlIX*#nn1Wk%PluUdBuq_wy8ZaRRq#p!d^*a6C<+BZy;fx31o^o z5Do!xg1utJO1}|xTeSrv)a&qXbCiF3>@WyHG1dae{tJvXbFY%Zb6gd4c3$dm2k7Wq zn&z)jGL5_8u&Pb@Ia;aXdzz0>?r0^fOXg#+WMAd5mw;`;`r@#Ag|H81i?{Y^P2|h- zo9B@HuX%3uh(C5$WCz_vW$dgZX-9i>PN_ZKH9W?&kJt8I0mf2{SSMCaJ?^>9YgN0W zZ0gHDeyEZpNNTa>8x4c;%(IyR@s5r_}P0|rJOlj!duobv+ zmFXGd++G0vU1&O5e1COCU5hY%?~$G!59SCQtAIC-=iQ+*6O{MS#3O=d7N1#ru&P^M z9#&?3!g$$QY8QcrtO@*>>j=~+l|K~I8e5uwF0fkfck3CIyxZPjbowp_iijn}@9bNAO(Gp1z+5UiQI7kZ1<@#|c))b`AuC$>(!pF`15KXrp*S~B%4 zeD^}paB3ohy5V1cKH=9h%zmn=!-(}7+1Xd$jQMB;L9+?`Msn)puVlvo|M=sUXTZNm zS^aquf`=!3Mm(;sruQ#b{4*8=?@vH{GO%$Z7adO;WBkvI6I(+(sgj-hI5g4x7higv Y7ei`jc*Bw(zgh_%$f?NYL5yGi55pO#b^rhX literal 69229 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 diff --git a/assets/images/help/repository/code-button.png b/assets/images/help/repository/code-button.png index 45719e599f2d2d8aa5d98e1bd37fc3a98b7268c2..db8cee792b7a1fa4f764d6b06590d000627518b7 100644 GIT binary patch literal 14601 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 diff --git a/assets/images/help/repository/file-tree-view-jump-to-file.png b/assets/images/help/repository/file-tree-view-jump-to-file.png index 350750f96a3c6c92da145602cf64ad502e6c2487..008c432a9a360fabe0d1648c43bb885e4d18d4f1 100644 GIT binary patch literal 20400 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 literal 15729 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≀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

65`Vn!EeGC)i{!TF^;bTv`3% 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 DhV)WW literal 45942 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 literal 42498 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 OSS2}i*$U~`AN~&@0yRGX literal 0 HcmV?d00001 diff --git a/assets/images/help/repository/repository-main-page-go-to-file.png b/assets/images/help/repository/repository-main-page-go-to-file.png new file mode 100644 index 0000000000000000000000000000000000000000..e87ebc0a654555da7d9f2e6026df746e782e33bb GIT binary patch literal 22893 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 WR7;Sdu@4YeOroI*Q7L-_3;7#WXUGx& literal 0 HcmV?d00001 diff --git a/assets/images/help/repository/upload-files-button.png b/assets/images/help/repository/upload-files-button.png index 12aaa1f8ce46a25fd44c52236d526f225767bc43..ada1366b75bb38eea9fc26ec7d2986678d93801d 100644 GIT binary patch literal 63135 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 literal 40101 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 b@Pf+gxOl%ni@cx};AdfCjemCB`H%ksg^xZ( diff --git a/content/search-github/searching-on-github/finding-files-on-github.md b/content/search-github/searching-on-github/finding-files-on-github.md index 16e13db394..a9dd511383 100644 --- a/content/search-github/searching-on-github/finding-files-on-github.md +++ b/content/search-github/searching-on-github/finding-files-on-github.md @@ -26,10 +26,10 @@ topics: {% ifversion code-search-code-view %} {% data reusables.repositories.navigate-to-repo %} -1. In the file tree view, click the {% octicon "filter" aria-hidden="true" %} **Jump to file** search bar. You can also find the {% octicon "filter" aria-hidden="true" %} **Jump to file** search bar at the top of the integrated file editor. - - ![Screenshot of the file tree view for a repository. A search bar, labeled "Jump to file", is outlined in dark orange.](/assets/images/help/repository/file-tree-view-jump-to-file.png) -1. In the search bar, type the name of the file or directory you'd like to find. +1. In the “Go to file” search bar, type the name of the file or directory you'd like to find. + ![Screenshot of the main view for a repository. A search bar, labeled "Go to file", is outlined in dark orange.](/assets/images/help/repository/repository-main-page-go-to-file.png) +1. Alternatively, if there is no "Go to file" search bar, click **Go to file**, then type the name of the file or directory you'd like to find. + ![Screenshot of the main view for a repository. A "Go to file" button is outlined in dark orange.](/assets/images/help/repository/repository-main-page-go-to-file-no-search-bar.png) 1. In the list of results, click the file or directory you wanted to find. You can view the file path for a directory or file below each search result. {% else %} {% data reusables.repositories.navigate-to-repo %} From 782d61cabede48d22d65a3720a5b3e99f1fb84d0 Mon Sep 17 00:00:00 2001 From: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Date: Wed, 6 Dec 2023 17:51:07 +0000 Subject: [PATCH 12/71] Adds code to bypass isDocsTeam checker for docs-bot (#47358) --- src/workflows/projects.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/workflows/projects.js b/src/workflows/projects.js index fb04379d75..63deb83d99 100644 --- a/src/workflows/projects.js +++ b/src/workflows/projects.js @@ -84,6 +84,10 @@ export async function addItemToProject(item, project) { // Given a GitHub login, returns a bool indicating // whether the login is part of the docs team export async function isDocsTeamMember(login) { + // Returns true if login is docs-bot, to bypass the checks and make PRs opened by docs-bot be treated as though they were made by a docs team member + if (login === 'docs-bot') { + return true + } // Get all members of the docs team const data = await graphql( ` From 5d3e95c758e02437c2803ab1e79d13c6c0ff6412 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 6 Dec 2023 13:10:06 -0500 Subject: [PATCH 13/71] Don't send `url` in `middleware.get_remote_json` statsd increment (#47345) --- src/frame/lib/get-remote-json.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frame/lib/get-remote-json.js b/src/frame/lib/get-remote-json.js index 4dc69068af..ddaeb04476 100644 --- a/src/frame/lib/get-remote-json.js +++ b/src/frame/lib/get-remote-json.js @@ -85,7 +85,7 @@ export default async function getRemoteJSON(url, config) { } } } - const tags = [`url:${url}`, `from_cache:${fromCache}`] + const tags = [`from_cache:${fromCache}`] statsd.increment('middleware.get_remote_json', 1, tags) return cache.get(cacheKey) } From f3860da93eff878702ad1a15145117f249451519 Mon Sep 17 00:00:00 2001 From: Justin Alex Paramanandan <1155821+jusuchin85@users.noreply.github.com> Date: Thu, 7 Dec 2023 07:36:32 +1100 Subject: [PATCH 14/71] [Improvement]: Update Link to Configure GHES with Azure AD for SAML (#47172) --- ...configuring-saml-single-sign-on-for-your-enterprise.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md index 8a08229428..9241da62be 100644 --- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md +++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md @@ -67,9 +67,13 @@ After a user successfully authenticates on your IdP, the user's SAML session for {% data reusables.saml.saml-supported-idps %} -For more information about connecting Azure AD to your enterprise, see [Tutorial: Azure Active Directory SSO integration with GitHub Enterprise Cloud - Enterprise Account](https://learn.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-cloud-enterprise-account-tutorial) in Microsoft Docs. +{% ifversion ghec %} -{% ifversion ghes or ghae %} +For more information about connecting Azure AD to your enterprise, see [Tutorial: Microsoft Entra SSO integration with GitHub Enterprise Cloud - Enterprise Account](https://learn.microsoft.com/en-us/entra/identity/saas-apps/github-enterprise-cloud-enterprise-account-tutorial) in Microsoft Docs. + +{% elsif ghes or ghae %} + +For more information about connecting Azure AD to your enterprise, see [Tutorial: Microsoft Entra SSO integration with GitHub Enterprise Server](https://learn.microsoft.com/en-us/entra/identity/saas-apps/github-ae-tutorial) in Microsoft Docs. ## Username considerations with SAML From 49e4b35f63f84a002caeb8e3635828708f202068 Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Wed, 6 Dec 2023 20:44:44 +0000 Subject: [PATCH 15/71] Document that webhooks need to be re-enabled after a GEI migration (#47361) Co-authored-by: Laura Coursen --- .../migration-support-for-github-enterprise-importer.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 3f7ffcaacd..b492a85127 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,7 +64,7 @@ When you migrate an organization, a new organization is created within the desti - Repositories - Team access to repositories - Member privileges -- Organization-level webhooks +- 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)") - 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. @@ -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 +- 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)") - Repository topics - Repository settings - Branch protections (see "[Branch protections](#branch-protections)" for more details) From 41036e0666209bafdf146e9fec909675787c8fe5 Mon Sep 17 00:00:00 2001 From: Andrew Porter Date: Wed, 6 Dec 2023 15:51:24 -0500 Subject: [PATCH 16/71] Test doc updates (#47347) Co-authored-by: Sarah Edwards From bcfbb42d8bff5987616a67445b31e1009b52d779 Mon Sep 17 00:00:00 2001 From: Adam Ross Russell Date: Wed, 6 Dec 2023 13:12:09 -0800 Subject: [PATCH 17/71] Update about-billing-for-github-actions.md (#47367) --- .../about-billing-for-github-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/billing/managing-billing-for-github-actions/about-billing-for-github-actions.md b/content/billing/managing-billing-for-github-actions/about-billing-for-github-actions.md index 9de2421a34..ee5aa71df2 100644 --- a/content/billing/managing-billing-for-github-actions/about-billing-for-github-actions.md +++ b/content/billing/managing-billing-for-github-actions/about-billing-for-github-actions.md @@ -25,7 +25,7 @@ shortTitle: Billing for GitHub Actions {% data reusables.actions.actions-spending-limit-brief %} For more information, see "[About spending limits](#about-spending-limits)." -If you are an organization owner{% ifversion ghec %} or enterprise owner{% endif%}, you can connect an Azure Subscription ID to your organization {% ifversion ghec %}or enterprise{% endif%} account to enable and pay for {% data variables.product.prodname_actions %} usage beyond the amounts including with your account. For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription)." +If you are an organization owner{% ifversion ghec %} or enterprise owner{% endif%}, you can connect an Azure Subscription ID to your organization {% ifversion ghec %}or enterprise{% endif%} account to enable and pay for {% data variables.product.prodname_actions %} usage beyond the amounts included with your account. For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription)." Minutes reset every month, while storage usage does not. From 5b9df46216a9ebad9bc8c104a94822a957df9ce7 Mon Sep 17 00:00:00 2001 From: Pyry Jahkola Date: Thu, 7 Dec 2023 00:21:21 +0200 Subject: [PATCH 18/71] Fix Runner_ and Worker_ prefixes in self-hosted runner docs (#30352) --- .../monitoring-and-troubleshooting-self-hosted-runners.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md index 41800e680e..4dba856434 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md @@ -123,13 +123,13 @@ export GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY=1 ## Reviewing the self-hosted runner application log files -You can monitor the status of the self-hosted runner application and its activities. Log files are kept in the `_diag` directory where you installed the runner application, and a new log is generated each time the application is started. The filename begins with \_Runner__, and is followed by a UTC timestamp of when the application was started. +You can monitor the status of the self-hosted runner application and its activities. Log files are kept in the `_diag` directory where you installed the runner application, and a new log is generated each time the application is started. The filename begins with `Runner_`, and is followed by a UTC timestamp of when the application was started. -For detailed logs on workflow job executions, see the next section describing the \_Worker__ files. +For detailed logs on workflow job executions, see the next section describing the `Worker_` files. ## Reviewing a job's log file -The self-hosted runner application creates a detailed log file for each job that it processes. These files are stored in the `_diag` directory where you installed the runner application, and the filename begins with \_Worker__. +The self-hosted runner application creates a detailed log file for each job that it processes. These files are stored in the `_diag` directory where you installed the runner application, and the filename begins with `Worker_`. {% linux %} @@ -243,7 +243,7 @@ PS C:\actions-runner> Get-EventLog -LogName Application -Source ActionsRunnerSer We recommend that you regularly check the automatic update process, as the self-hosted runner will not be able to process jobs if it falls below a certain version threshold. The self-hosted runner application automatically updates itself, but note that this process does not include any updates to the operating system or other software; you will need to separately manage these updates. -You can view the update activities in the \_Runner__ log files. For example: +You can view the update activities in the `Runner_` log files. For example: ```shell [Feb 12 12:37:07 INFO SelfUpdater] An update is available. From 073c423ff7dda1d60dc4452f5a24b04c9c4c1a43 Mon Sep 17 00:00:00 2001 From: Taylor Faubion <61430347+faubion-hbo@users.noreply.github.com> Date: Wed, 6 Dec 2023 14:30:44 -0800 Subject: [PATCH 19/71] fix: remove duplicate word from `secret-scanning-configure-notifications.md` (#30379) Co-authored-by: Melanie Yarbrough <11952755+myarb@users.noreply.github.com> --- .../secret-scanning/secret-scanning-configure-notifications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/secret-scanning/secret-scanning-configure-notifications.md b/data/reusables/secret-scanning/secret-scanning-configure-notifications.md index f7de794cda..e6a8110a79 100644 --- a/data/reusables/secret-scanning/secret-scanning-configure-notifications.md +++ b/data/reusables/secret-scanning/secret-scanning-configure-notifications.md @@ -1,7 +1,7 @@ When a new secret is detected, {% data variables.product.product_name %} notifies all users with access to security alerts for the repository according to their notification preferences. These users include: - Repository administrators - Security managers -- Users with with custom roles with read/write access +- Users with custom roles with read/write access - Organization owners and enterprise owners, if they are administrators of repositories where secrets were leaked {% note %} From 891f0980cd6b335f3f6bf00e6643a10ebef58be4 Mon Sep 17 00:00:00 2001 From: Anton Halim Date: Wed, 6 Dec 2023 17:33:26 -0500 Subject: [PATCH 20/71] Fix typo (#30384) Co-authored-by: Melanie Yarbrough <11952755+myarb@users.noreply.github.com> --- .../basic-writing-and-formatting-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md index d90341ae90..e1f75f6356 100644 --- a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md +++ b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md @@ -346,7 +346,7 @@ Footnotes are not supported in wikis. Alerts are an extension of the blockquote syntax that you can use to emphasize critical information. On {% data variables.product.product_name %}, they are displayed with distinctive colors and icons to indicate the importance of the content. Alert syntax is supported in: - Issues -- Pull requestes +- Pull requests - Markdown files - Discussions - Gists From 149305706491a30b8dfab194393f5ff0d43d1a9c Mon Sep 17 00:00:00 2001 From: monholm <73996878+monholm@users.noreply.github.com> Date: Wed, 6 Dec 2023 23:57:42 +0100 Subject: [PATCH 21/71] docs(actions): fix incorrect statement regarding permissions & secrets (#25118) Co-authored-by: Simon-TechForm <73996878+Simon-TechForm@users.noreply.github.com> Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../security-guides/security-hardening-for-github-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-guides/security-hardening-for-github-actions.md index 577cafcc25..95c9716fba 100644 --- a/content/actions/security-guides/security-hardening-for-github-actions.md +++ b/content/actions/security-guides/security-hardening-for-github-actions.md @@ -249,7 +249,7 @@ These sections consider some of the steps an attacker can take if they're able t ### Accessing secrets -Workflows triggered using the `pull_request` event have read-only permissions and have no access to secrets. However, these permissions differ for various event triggers such as `issue_comment`, `issues` and `push`, where the attacker could attempt to steal repository secrets or use the write permission of the job's [`GITHUB_TOKEN`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token). +Workflows triggered from a forked repository using the `pull_request` event have read-only permissions and have no access to secrets. However, these permissions differ for various event triggers such as `issue_comment`, `issues`, `push` and `pull_request` from a branch within the repository, where the attacker could attempt to steal repository secrets or use the write permission of the job's [`GITHUB_TOKEN`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token). - If the secret or token is set to an environment variable, it can be directly accessed through the environment using `printenv`. - If the secret is used directly in an expression, the generated shell script is stored on-disk and is accessible. From 0198255dba9e4d1c1a50f7396d37de4b533a360a Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 6 Dec 2023 19:13:23 -0500 Subject: [PATCH 22/71] Set DD_HOSTNAME_TRUST_UTS_NAMESPACE=true (#47378) --- src/workflows/docker-compose.prod.tmpl.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/workflows/docker-compose.prod.tmpl.yaml b/src/workflows/docker-compose.prod.tmpl.yaml index f12a3c86d8..20c43a86ee 100644 --- a/src/workflows/docker-compose.prod.tmpl.yaml +++ b/src/workflows/docker-compose.prod.tmpl.yaml @@ -31,3 +31,4 @@ services: DD_AGENT_HOST: datadog-agent DD_HISTOGRAM_PERCENTILES: 0.99 0.95 0.50 DD_HOSTNAME: docs.github.com + DD_HOSTNAME_TRUST_UTS_NAMESPACE: true From 0a9029fd23a089f3a9b98c960098ef57a1660185 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Wed, 6 Dec 2023 17:02:55 -0800 Subject: [PATCH 23/71] Delete repo-freeze-check.yml (#46926) --- .github/workflows/repo-freeze-check.yml | 46 ------------------------- 1 file changed, 46 deletions(-) delete mode 100644 .github/workflows/repo-freeze-check.yml diff --git a/.github/workflows/repo-freeze-check.yml b/.github/workflows/repo-freeze-check.yml deleted file mode 100644 index 79bee9b44f..0000000000 --- a/.github/workflows/repo-freeze-check.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Repo Freeze Check - -# **What it does**: Prevent pull requests from merging during freezes. -# **Why we have it**: Sometimes we need to freeze deployments for various reasons. -# **Who does it impact**: Anyone working on docs. - -on: - workflow_dispatch: - merge_group: - # Needed in lieu of `pull_request` so that PRs from a fork can stopped from merging when there's a freeze. - pull_request_target: - types: - - opened - - reopened - - synchronize - - ready_for_review - - unlocked - branches: - - main - -permissions: - contents: read - -# **IMPORTANT:** Do not change the FREEZE environment variable set here! -# This workflow runs on a recurring basis. To temporarily disable it (e.g., -# during a docs deployment freeze), add an Actions Secret to the repo settings -# called `FREEZE` with a value of `true`. To re-enable Audit Logs updates, simply -# delete that Secret from the repo settings. The environment variable here -# will duplicate that Secret's value for later evaluation. -env: - FREEZE: ${{ secrets.FREEZE }} - -jobs: - check-freezer: - if: ${{ github.repository == 'github/docs-internal' || github.repository == 'github/docs' }} - name: Prevent merging during deployment freezes - runs-on: ubuntu-latest - steps: - - name: Check out repo - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - - - name: Fail if repo merges are paused - if: ${{ env.FREEZE == 'true' && github.event.pull_request.user.login != 'docs-bot' }} - run: | - echo 'Merges into the "main" branch on this repo are currently paused!' - exit 1 From 6dc48eebd380ed95fa34d93ed9e727aff1f68612 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 7 Dec 2023 10:31:40 +0100 Subject: [PATCH 24/71] Adds versioning to information about GitHub Support (#47399) --- .../removing-sensitive-data-from-a-repository.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md index 79bc551a10..0c2c9f06bc 100644 --- a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md +++ b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md @@ -24,7 +24,7 @@ You can remove the file from the latest commit with `git rm`. For information on {% warning %} -**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. {% data variables.contact.github_support %} only assists in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials. +**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. {% ifversion fpt or ghec %}{% data variables.contact.github_support %} only assists in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials.{% endif %} Once you have pushed a commit to {% data variables.product.product_name %}, you should consider any sensitive data in the commit compromised. If you have committed a password, you should change it. If you have committed a key, generate a new one. Removing the compromised data doesn't resolve its initial exposure, especially in existing clones or forks of your repository. @@ -126,9 +126,9 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil ``` {% note %} - + **Note:** If the file with sensitive data used to exist at any other paths (because it was moved or renamed), you must run this command on those paths, as well. - + {% endnote %} 1. Add your file with sensitive data to `.gitignore` to ensure that you don't accidentally commit it again. @@ -143,7 +143,7 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil 1. Double-check that you've removed everything you wanted to from your repository's history, and that all of your branches are checked out. 1. The `git filter-repo` tool will automatically remove your configured remotes. Use the `git remote set-url` command to restore your remotes, replacing `OWNER` and `REPO` with your repository details. For more information, see "[AUTOTITLE](/get-started/getting-started-with-git/managing-remote-repositories#adding-a-remote-repository)." - + ```shell git remote add origin https://github.com/OWNER/REPOSITORY.git ``` @@ -178,13 +178,13 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil After using either the BFG tool or `git filter-repo` to remove the sensitive data and pushing your changes to {% data variables.product.product_name %}, you must take a few more steps to fully remove the data from {% data variables.product.product_name %}. -1. Contact {% data variables.contact.contact_support %}, and ask to remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %}. Please provide the name of the repository and/or a link to the commit you need removed.{% ifversion ghes %} For more information about how site administrators can remove unreachable Git objects, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repo-gc)."{% endif %} +1. Contact {% data variables.contact.contact_support %}, and ask to remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %}. Please provide the name of the repository and/or a link to the commit you need removed.{% ifversion ghes %} For more information about how site administrators can remove unreachable Git objects, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repo-gc)."{% endif %}{% ifversion fpt or ghec %} {% note %} **Note:** {% data variables.contact.github_support %} won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials. - {% endnote %} + {% endnote %}{% endif %} 1. Tell your collaborators to [rebase](https://git-scm.com/book/en/Git-Branching-Rebasing), _not_ merge, any branches they created off of your old (tainted) repository history. One merge commit could reintroduce some or all of the tainted history that you just went to the trouble of purging. From 024de423cab5a1d428c51dd83114ed432fe7b34e Mon Sep 17 00:00:00 2001 From: Osvaldo Ortega <48293249+osortega@users.noreply.github.com> Date: Thu, 7 Dec 2023 02:26:49 -0800 Subject: [PATCH 25/71] Update troubleshooting-your-connection-to-github-codespaces.md (#46933) Co-authored-by: hubwriter --- ...ng-your-connection-to-github-codespaces.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md b/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md index 016eaaa27c..6d30eccb2a 100644 --- a/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md +++ b/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md @@ -26,9 +26,27 @@ Sometimes you may not be able to access a codespace from your browser. If this h - If the codespace is not listed on that page, check that you are the owner of the codespace you are trying to connect to. You can only open a codespace that you created. - If the codespace is listed but you cannot connect from that page, check whether you can connect using a different browser. -Your company network may be blocking the connection. If possible, check any logging for rejected connections on your device. +### Diagnose by error message -If you still cannot connect, {% data reusables.codespaces.contact-support %} +#### "Oh no, it looks like you are offline" + +Check that you have a stable internet connection and that your company network is not blocking the connection. If possible, check logging for rejected connections on your device. + +If you see rejected connections, make sure the domains documented by the `/meta` REST API endpoint are not blocked by your firewall. For more information, see "[AUTOTITLE](/rest/meta/meta?apiVersion=2022-11-28#get-github-meta-information)." + +To get the list of domains required by {% data variables.product.prodname_github_codespaces %}, execute the following command using {% data variables.product.prodname_cli %}: + +`gh api meta | jq .domains.codespaces` + +### "We are having trouble fetching your codespace information" + +This is a transitional error. Wait for a few minutes and try again. + +### "We were unable to authenticate your connection" + +This indicates that something went wrong with authentication. Try clearing up your local storage and cookies and try again. + +If you still can't connect and the message you're seeing isn't in this list, check the service availability of {% data variables.product.prodname_codespaces %} at [githubstatus.com](https://www.githubstatus.com/). If the {% data variables.product.prodname_codespaces %} service is available, {% data reusables.codespaces.contact-support %} ## Unable to connect to your codespace in JupyterLab From 3adfce3e5bd866757069a9316ed0d6379ad539cc Mon Sep 17 00:00:00 2001 From: Soundarya Koutharapu <71914071+SoundaryaKoutharapu@users.noreply.github.com> Date: Thu, 7 Dec 2023 18:23:59 +0530 Subject: [PATCH 26/71] Add Symlinks Resolution and Source File Clarification to SARIF Reports (#30039) Co-authored-by: Felicity Chapman --- .../sarif-support-for-code-scanning.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md index 1f37109c3d..6e25f9953e 100644 --- a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md +++ b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md @@ -63,7 +63,13 @@ SARIF files support both rules and results. The information stored in these elem When you compare SARIF files generated by analyzing different codebases with the same tool and rules, you should see differences in the results of the analyses but not in the rules. -## Specifying the root for source files +## Specifying the location for source files + +Specifying source file locations ensures code scanning alerts are displayed accurately within the file containing the identified problem, allowing for targeted issue resolution. + +This precision enhances the efficiency of code review and resolution processes, streamlining development workflows by enabling developers to address issues directly in the context of their codebase. + +### Specifying the root for source files {% data variables.product.prodname_code_scanning_caps %} interprets results that are reported with relative paths as relative to the root of the repository analyzed. If a result contains an absolute URI, the URI is converted to a relative URI. The relative URI can then be matched against a file committed to the repository. @@ -86,6 +92,10 @@ file:///tmp/go-build/tmp.go -> file:///tmp/go-build/tmp.go The file is successfully uploaded as both absolute URIs use the same URI scheme as the source root. +### Resolving symlinks before generating SARIF results + +If the relative URI for a result is matched against a file defined using a symlink, code scanning is unable to display the result. So you need to resolve any symlinked files, and report any results in those files using the resolved URI. + ## Validating your SARIF file From 309587f39ad3e9bee832fac026008fda4c0f5dea Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 7 Dec 2023 08:21:20 -0500 Subject: [PATCH 27/71] make sure all scripts are aliased in package.json (#47375) --- .../check-broken-links-github-github.yml | 2 +- .../lint-entire-content-data-markdown.yml | 2 +- .github/workflows/move-content.yml | 4 ++-- .github/workflows/orphaned-assets-check.yml | 4 ++-- .github/workflows/test.yml | 6 +++--- .../workflows/translation-health-report.yml | 2 +- package.json | 19 ++++++++++++++++++- src/early-access/scripts/clone-locally | 2 +- src/ghes-releases/lib/deprecation-steps.md | 12 ++++++------ src/ghes-releases/lib/release-steps.md | 4 ++-- .../scripts/remove-liquid-statements.js | 2 +- .../create-translation-health-report.js | 2 +- src/search/scripts/analyze-text.js | 2 +- 13 files changed, 40 insertions(+), 23 deletions(-) diff --git a/.github/workflows/check-broken-links-github-github.yml b/.github/workflows/check-broken-links-github-github.yml index a21a6628eb..e0fe49d49f 100644 --- a/.github/workflows/check-broken-links-github-github.yml +++ b/.github/workflows/check-broken-links-github-github.yml @@ -52,7 +52,7 @@ jobs: - name: Run broken github/github link check run: | - src/links/scripts/check-github-github-links.js broken_github_github_links.md + npm run check-github-github-links -- broken_github_github_links.md - name: Get title for issue # If the file 'broken_github_github_links.md' got created, diff --git a/.github/workflows/lint-entire-content-data-markdown.yml b/.github/workflows/lint-entire-content-data-markdown.yml index cae494e077..22f6a049b1 100644 --- a/.github/workflows/lint-entire-content-data-markdown.yml +++ b/.github/workflows/lint-entire-content-data-markdown.yml @@ -41,7 +41,7 @@ jobs: REPORT_AUTHOR: docs-bot REPORT_LABEL: broken content markdown report REPORT_REPOSITORY: github/docs-content - run: node src/content-linter/scripts/post-lints.js --path /tmp/error-lints.json + run: npm run post-lints -- --path /tmp/error-lints.json - uses: ./.github/actions/slack-alert if: ${{ failure() && github.event_name != 'workflow_dispatch' }} diff --git a/.github/workflows/move-content.yml b/.github/workflows/move-content.yml index b5c0d1cc46..12ddbaef4d 100644 --- a/.github/workflows/move-content.yml +++ b/.github/workflows/move-content.yml @@ -40,7 +40,7 @@ jobs: src/fixtures/fixtures/content/get-started/quickstart/hello-world.md \ src/fixtures/fixtures/content/get-started/quickstart/hello-wurld.md - node src/content-render/scripts/test-moved-content.js \ + npm run test-moved-content -- \ src/fixtures/fixtures/content/get-started/quickstart/hello-world.md \ src/fixtures/fixtures/content/get-started/quickstart/hello-wurld.md @@ -55,7 +55,7 @@ jobs: src/fixtures/fixtures/content/code-security/getting-started \ src/fixtures/fixtures/content/code-security/got-started - node src/content-render/scripts/test-moved-content.js \ + npm run test-moved-content -- \ src/fixtures/fixtures/content/code-security/getting-started \ src/fixtures/fixtures/content/code-security/got-started diff --git a/.github/workflows/orphaned-assets-check.yml b/.github/workflows/orphaned-assets-check.yml index 24c7d61a4e..fd218d2ffd 100644 --- a/.github/workflows/orphaned-assets-check.yml +++ b/.github/workflows/orphaned-assets-check.yml @@ -41,7 +41,7 @@ jobs: run: | set -e - filesToRemove=`./src/assets/scripts/find-orphaned-assets.js` + filesToRemove=`npm run find-orphaned-assets` [ -z "$filesToRemove" ] && exit 0 echo $filesToRemove | xargs git rm @@ -64,7 +64,7 @@ jobs: gh pr create \ --title "Delete orphaned assets ($date)" \ - --body "Found with the find-orphaned-assets.js script.\n\nFor more info see https://github.com/github/docs-engineering/blob/main/docs/orphaned-assets.md" \ + --body "Found with the 'npm run find-orphaned-assets' script.\n\nFor more info see https://github.com/github/docs-engineering/blob/main/docs/orphaned-assets.md" \ --repo github/docs-internal \ --label docs-content-fr diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 190a17055f..dba0c07c7d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -104,7 +104,7 @@ jobs: - name: Check the test fixture data (if applicable) if: ${{ matrix.name == 'fixtures' }} - run: ./src/tests/scripts/copy-fixture-data.js --check + run: npm run copy-fixture-data -- --check # This keeps our fixture content/data in check - name: Check the test fixture content (if applicable) @@ -114,11 +114,11 @@ jobs: run: | # If either of these fail, it means our fixture content's internal # links can and should be updated. - ./src/links/scripts/update-internal-links.js --dry-run --check --strict \ + npm run update-internal-links -- --dry-run --check --strict \ src/fixtures/fixtures/content \ --exclude src/fixtures/fixtures/content/get-started/foo/typo-autotitling.md \ --exclude src/fixtures/fixtures/content/get-started/foo/anchor-autotitling.md - ./src/links/scripts/update-internal-links.js --dry-run --check --strict \ + npm run update-internal-links -- --dry-run --check --strict \ src/fixtures/fixtures/data - name: Clone all translations diff --git a/.github/workflows/translation-health-report.yml b/.github/workflows/translation-health-report.yml index 9dcd11974b..216df2c39e 100644 --- a/.github/workflows/translation-health-report.yml +++ b/.github/workflows/translation-health-report.yml @@ -85,7 +85,7 @@ jobs: env: POPULAR_PAGES_JSON: popular-pages/records/popular-pages.json run: | - node src/languages/scripts/create-translation-health-report.js \ + npm run create-translation-health-report -- \ --language ${{ matrix.language }} \ --gitref ${{ env.gitref }} \ >> $GITHUB_WORKSPACE/translation-health-report.json diff --git a/package.json b/package.json index b7822dddf0..58c1fa0a79 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,15 @@ }, "exports": "./src/frame/server.js", "scripts": { + "analyze-text": "node src/search/scripts/analyze-text.js", + "archive-version": "node src/ghes-releases/scripts/archive-version.js", "build": "next build", + "check-github-github-links": "node src/links/scripts/check-github-github-links.js", + "copy-fixture-data": "node src/tests/scripts/copy-fixture-data.js", + "create-translation-health-report": "node src/languages/scripts/create-translation-health-report.js", "debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES=en nodemon --inspect src/frame/server.js", "dev": "cross-env npm start", + "find-orphaned-assets": "node src/assets/scripts/find-orphaned-assets.js", "fixture-dev": "cross-env ROOT=src/fixtures/fixtures npm start", "fixture-test": "cross-env ROOT=src/fixtures/fixtures npm test -- src/fixtures/tests", "index-test-fixtures": "node src/search/scripts/index-elasticsearch.js -l en -l ja -V ghae -V dotcom --index-prefix tests -- src/search/tests/fixtures/search-indexes", @@ -28,16 +34,21 @@ "move-content": "node src/content-render/scripts/move-content.js", "openapi-docs": "node src/rest/docs.js", "playwright-test": "playwright test --config src/fixtures/playwright.config.ts --project=\"Google Chrome\"", + "post-lints": "node src/content-linter/scripts/post-lints.js", "postinstall": "cp package-lock.json .installed.package-lock.json && echo \"Updated .installed.package-lock.json\" # see husky/post-checkout and husky/post-merge", "prepare": "husky install src/workflows/husky", "prettier": "prettier -w \"**/*.{ts,tsx,js,mjs,scss,yml,yaml}\"", "prettier-check": "prettier -c \"**/*.{ts,tsx,js,mjs,scss,yml,yaml}\"", "prevent-pushes-to-main": "node src/workflows/prevent-pushes-to-main.js", + "release-banner": "node src/ghes-releases/scripts/release-banner.js", + "remove-version-markup": "node src/ghes-releases/scripts/remove-version-markup.js", + "rendered-content-link-checker-cli": "node src/links/scripts/rendered-content-link-checker-cli.js", "rest-dev": "node src/rest/scripts/update-files.js", "show-action-deps": "echo 'Action Dependencies:' && rg '^[\\s|-]*(uses:.*)$' .github -I -N --no-heading -r '$1$2' | sort | uniq | cut -c 7-", "start": "cross-env NODE_ENV=development ENABLED_LANGUAGES=en nodemon src/frame/server.js", "start-all-languages": "cross-env NODE_ENV=development nodemon src/frame/server.js", "start-for-playwright": "cross-env ROOT=src/fixtures/fixtures TRANSLATIONS_FIXTURE_ROOT=src/fixtures/fixtures/translations ENABLED_LANGUAGES=en,ja NODE_ENV=test node src/frame/server.js", + "symlink-from-local-repo": "node src/early-access/scripts/symlink-from-local-repo.js", "sync-rest": "node src/rest/scripts/update-files.js", "sync-search": "cross-env NODE_OPTIONS='--max_old_space_size=8192' start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-ghes-release": "cross-env GHES_RELEASE=1 start-server-and-test sync-search-server 4002 sync-search-indices", @@ -45,8 +56,14 @@ "sync-search-server": "cross-env NODE_ENV=production PORT=4002 MINIMAL_RENDER=true CHANGELOG_DISABLED=true node src/frame/server.js", "sync-webhooks": "src/rest/scripts/update-files.js -o webhooks", "test": "cross-env NODE_OPTIONS='--max_old_space_size=4096 --experimental-vm-modules' jest --logHeapUsage", + "test-moved-content": "node src/content-render/scripts/test-moved-content.js", "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage", - "tsc": "tsc --noEmit" + "toggle-ghae-feature-flags": "node src/versions/scripts/toggle-ghae-feature-flags.js", + "tsc": "tsc --noEmit", + "update-data-and-image-paths": "node src/early-access/scripts/update-data-and-image-paths.js", + "update-internal-links": "node src/links/scripts/update-internal-links.js", + "validate-asset-images": "node src/assets/scripts/validate-asset-images.js", + "warmup-remotejson": "node src/archives/scripts/warmup-remotejson.js" }, "lint-staged": { "*.{js,mjs,ts,tsx}": "eslint --cache --fix", diff --git a/src/early-access/scripts/clone-locally b/src/early-access/scripts/clone-locally index 93443c3575..ac6d135c15 100755 --- a/src/early-access/scripts/clone-locally +++ b/src/early-access/scripts/clone-locally @@ -24,6 +24,6 @@ git clone https://github.com/github/docs-early-access.git popd > /dev/null # Symlink the local docs-early-access repo into this repo -node src/early-access/scripts/symlink-from-local-repo.js -p ../docs-early-access +npm run symlink-from-local-repo -- -p ../docs-early-access echo -e '\nDone!' diff --git a/src/ghes-releases/lib/deprecation-steps.md b/src/ghes-releases/lib/deprecation-steps.md index 11c715645c..23c110f93d 100644 --- a/src/ghes-releases/lib/deprecation-steps.md +++ b/src/ghes-releases/lib/deprecation-steps.md @@ -60,7 +60,7 @@ The dates we use for Enterprise releases and deprecations are stored in [release 1. Do a dry run by scraping a small amount of files to test locally on your machine. This command does not overwrite the references to asset files so they will render on your machine. ```shell - node --max-old-space-size=8192 src/ghes-releases/scripts/archive-version.js --dry-run --local-dev + npm run archive-version -- --dry-run --local-dev ``` 1. Navigate to the scraped files directory (`tmpArchivalDir_`) inside your docs-internal checkout. Open a few HTML files and ensure they render and drop-down pickers work correctly. @@ -68,7 +68,7 @@ The dates we use for Enterprise releases and deprecations are stored in [release 1. If the dry-run looks good, scrape all content files. This will take about 20-30 minutes. **Note:** This will overwrite the directory that was previously generated with new files. You can also create a specific output directory using the `--output` flag. ```shell - node --max-old-space-size=8192 src/ghes-releases/scripts/archive-version.js + npm run archive-version ``` 1. Revert changes to `src/search/components/Search.tsx`. @@ -90,7 +90,7 @@ The dates we use for Enterprise releases and deprecations are stored in [release 1. Click `Containers` in the left sidebar, then click the `enterprise` container. 1. Click `Upload` in the top bar. Drag and drop or click `Browse for files` to select the directory inside of `tmpArchivalDir_`. For example, at the time of this writing, the directory name was `3.5`. The upload will take several minutes and the UI may not give feedback immediately. Don't close the browser tab or navigate away from the page until the upload is complete. - + App method: 1. Open the Microsoft Azure Storage Explorer app from the `Overview` tab [githubdocs Azure Storage Blob resource page](https://portal.azure.com/#@githubazure.onmicrosoft.com/resource/subscriptions/fa6134a7-f27e-4972-8e9f-0cedffa328f1/resourceGroups/docs-production/providers/Microsoft.Storage/storageAccounts/githubdocs/overview). @@ -144,7 +144,7 @@ This step will remove the version from the drop-down picker, effectively depreca 1. Manually delete the deprecated directory in `data/graphql`. For example, if you are deprecating the 3.5 release, you'd delete the `data/graphql/ghes-3.5` directory. -1. Open a new PR. Reviewers will be automatically assigned. +1. Open a new PR. Reviewers will be automatically assigned. 1. When the PR is approved, merge it in. 🚢 @@ -157,7 +157,7 @@ This step will remove the version from the drop-down picker, effectively depreca 1. Remove the outdated Liquid markup and frontmatter. ```shell - src/ghes-releases/scripts/remove-version-markup.js --release + npm run remove-version-markup -- --release ``` 1. If data resuables were deleted automatically, you'll need to remove references to the deleted reusable in the content. Using VSCode to find the occurrences is quick and there are typically only a few to update. If you have any questions, reach out to the docs-content team in #docs-content to ask for help updating the Markdown files. @@ -178,7 +178,7 @@ This step will remove the version from the drop-down picker, effectively depreca ## Re-scraping a page or all pages -Occasionally, a change will need to be added to our archived enterprise versions. If this occurs, you can check out the `enterprise--release` branch and re-scrape the page or all pages using `src/ghes-releases/scripts/archive-version.js`. To scrape a single page you can use the `—page ` option. +Occasionally, a change will need to be added to our archived enterprise versions. If this occurs, you can check out the `enterprise--release` branch and re-scrape the page or all pages using `npm run archive-version`. To scrape a single page you can use the `—page ` option. For each language, upload the new file to Azure blob storage in the `enterprise` container. diff --git a/src/ghes-releases/lib/release-steps.md b/src/ghes-releases/lib/release-steps.md index 3e4fff9344..be32404b5e 100644 --- a/src/ghes-releases/lib/release-steps.md +++ b/src/ghes-releases/lib/release-steps.md @@ -31,7 +31,7 @@ If you aren't comfortable going through the steps alone, sync up with a docs eng - [ ] If this is a release candidate release, add a Release Candidate banner: ``` - src/ghes-releases/scripts/release-banner.js --action create --version + npm run release-banner -- --action create --version ``` - [ ] Create a PR with the above changes. This PR is used to track all docs changes and smoke tests associated with the release. For example https://github.com/github/docs-internal/pull/22286. @@ -73,7 +73,7 @@ This file should be automatically updated, but you can also run `src/ghes-releas - [ ] Add any required smoke tests to the opening post in the megabranch PR. Usually, we should smoke test any new GHES admin guides, any large features landing in this GHES version for the first time, and the REST and GraphQL API references. -- [ ] A few days before shipping, check for broken links. Run `/src/links/scripts/rendered-content-link-checker-cli.js` in a local copy of the megabranch. +- [ ] A few days before shipping, check for broken links. Run `npm run rendered-content-link-checker-cli` in a local copy of the megabranch. - [ ] [Freeze the repos](https://github.com/github/docs-content/blob/main/docs-content-docs/docs-content-workflows/freezing.md) at least 1-2 days before the release, and post an announcement in Slack so everybody knows. It's helpful to freeze the repos before doing the OpenAPI merges to avoid changes to the megabranch while preparing and deploying. - [ ] Alert the Neon Squad (formally docs-ecosystem team) 1-2 days before the release to deploy to `github/github`. A PR should already be open in `github/github` to change the OpenAPI schema config `published` to `true` in `app/api/description/config/releases/ghes-.yaml`. They will need to: - [ ] Get the required approval from `@github/ecosystem-api-reviewers` then deploy the PR to dotcom. This process generally takes 30-90 minutes. diff --git a/src/ghes-releases/scripts/remove-liquid-statements.js b/src/ghes-releases/scripts/remove-liquid-statements.js index 8969302c7f..328b189146 100644 --- a/src/ghes-releases/scripts/remove-liquid-statements.js +++ b/src/ghes-releases/scripts/remove-liquid-statements.js @@ -17,7 +17,7 @@ const tokenize = (str) => { return tokenizer.readTopLevelTokens() } // This module is used by -// src/ghes-releases/scripts/remove-version-markup.js to remove +// `npm run remove-version-markup` to remove // and update Liquid conditionals when a GHES release is being deprecated. It is also used by // src/ghes-releases/tests/remove-liquid-statements.js. export default function removeLiquidStatements(content, release, nextOldestRelease, file) { diff --git a/src/languages/scripts/create-translation-health-report.js b/src/languages/scripts/create-translation-health-report.js index 4a5cb6c9aa..74847991c6 100755 --- a/src/languages/scripts/create-translation-health-report.js +++ b/src/languages/scripts/create-translation-health-report.js @@ -8,7 +8,7 @@ /* Nota bene: If you are getting more errors all the sudden, try running this: - $ src/languages/scripts/create-translation-health-report.js -l en -r 000 + $ npm run create-translation-health-report -- -l en -r 000 If there's any errors before getting the JSON output, const context = { ... } probably needs more data. */ diff --git a/src/search/scripts/analyze-text.js b/src/search/scripts/analyze-text.js index 6e545739ae..17e6e0e122 100755 --- a/src/search/scripts/analyze-text.js +++ b/src/search/scripts/analyze-text.js @@ -8,7 +8,7 @@ // // Example: // -// ./src/search/scripts/analyze-text.js my words to tokenize +// npm run analyze-text "my words" to tokenize // // [end-readme] From 99fb30ca6226c2a601ab025ad635b9afb35682f0 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 7 Dec 2023 10:16:30 -0500 Subject: [PATCH 28/71] Use the right name on Guides page (#47413) Co-authored-by: hubwriter --- content/actions/guides.md | 3 +-- src/fixtures/fixtures/content/code-security/index.md | 8 ++------ src/fixtures/tests/guides.js | 4 ++-- src/landings/components/ProductGuides.tsx | 3 ++- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/content/actions/guides.md b/content/actions/guides.md index 5bb2119b07..9c3d861159 100644 --- a/content/actions/guides.md +++ b/content/actions/guides.md @@ -1,5 +1,5 @@ --- -title: Guides for GitHub Actions +title: Guides for {% data variables.product.prodname_actions %} intro: 'These guides for {% data variables.product.prodname_actions %} include specific use cases and examples to help you configure workflows.' allowTitleToDifferFromFilename: true layout: product-guides @@ -70,4 +70,3 @@ includeGuides: - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service --- - diff --git a/src/fixtures/fixtures/content/code-security/index.md b/src/fixtures/fixtures/content/code-security/index.md index 527bd6053b..c5d77b375c 100644 --- a/src/fixtures/fixtures/content/code-security/index.md +++ b/src/fixtures/fixtures/content/code-security/index.md @@ -1,6 +1,6 @@ --- -title: Code security documentation -shortTitle: Code security +title: '{% data variables.product.product_name %} Code security documentation' +shortTitle: '{% data variables.product.product_name %} Code security' intro: 'Code security' layout: product-landing featuredLinks: @@ -16,7 +16,3 @@ children: - /getting-started - /guides --- - - - - diff --git a/src/fixtures/tests/guides.js b/src/fixtures/tests/guides.js index dbc23900d8..fd95f2db98 100644 --- a/src/fixtures/tests/guides.js +++ b/src/fixtures/tests/guides.js @@ -8,9 +8,9 @@ describe('guides', () => { expect($('title').text()).toMatch(title) expect($('h1').text()).toMatch(title) const learningPaths = $('h2#learning-paths') - expect(learningPaths.text()).toMatch('Code security learning paths') + expect(learningPaths.text()).toMatch('HubGit Code security learning paths') const allGuides = $('h2#all-guides') - expect(allGuides.text()).toMatch('All Code security guides') + expect(allGuides.text()).toMatch('All HubGit Code security guides') }) }) diff --git a/src/landings/components/ProductGuides.tsx b/src/landings/components/ProductGuides.tsx index c60de8a66e..e80e5dab97 100644 --- a/src/landings/components/ProductGuides.tsx +++ b/src/landings/components/ProductGuides.tsx @@ -12,7 +12,8 @@ export const ProductGuides = () => { const { t } = useTranslation('product_guides') const { currentProduct } = useMainContext() - const productName = currentProduct?.name || title + + const productName = currentProduct?.nameRendered || title const nameRegex = /{{\s*name\s*}}/ return ( From d5a0e8415d7ae764760e57b70128923987a41e3d Mon Sep 17 00:00:00 2001 From: Annelisa Stephan Date: Thu, 7 Dec 2023 16:20:28 +0100 Subject: [PATCH 29/71] Scannability improvements to "About GitHub Desktop" (#46980) Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> --- .../installing-github-desktop.md | 3 +++ .../desktop/overview/about-github-desktop.md | 19 +++++++++++++------ data/reusables/desktop/desktop-cta-button.md | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 data/reusables/desktop/desktop-cta-button.md diff --git a/content/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop.md b/content/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop.md index 917147c84b..e519ad42b6 100644 --- a/content/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop.md +++ b/content/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop.md @@ -9,6 +9,9 @@ redirect_from: versions: feature: desktop --- + +{% data reusables.desktop.desktop-cta-button %} + ## About {% data variables.product.prodname_desktop %} installation You can install {% data variables.product.prodname_desktop %} on supported operating systems, which currently include {% data variables.desktop.mac-osx-versions %} and {% data variables.desktop.windows-versions %}. If you have an account on {% data variables.product.prodname_dotcom %} or {% data variables.product.prodname_enterprise %}, you can connect your account to {% data variables.product.prodname_desktop %}.{% ifversion fpt or ghec %} For more information about creating an account, see "[AUTOTITLE](/get-started/quickstart/creating-an-account-on-github)."{% endif %}{% ifversion ghec %} If you're part of an organization that uses {% data variables.product.prodname_emus %} and you do not have an account, contact your enterprise administrator.{% elsif ghes or ghae %} If you're a member of an organization that uses {% data variables.product.product_name %} and you do not have an account, contact your {% data variables.product.prodname_enterprise %} site administrator.{% endif %} diff --git a/content/desktop/overview/about-github-desktop.md b/content/desktop/overview/about-github-desktop.md index e989bd732c..9d2345909c 100644 --- a/content/desktop/overview/about-github-desktop.md +++ b/content/desktop/overview/about-github-desktop.md @@ -11,21 +11,28 @@ redirect_from: - /get-started/using-github/github-desktop --- +{% data reusables.desktop.desktop-cta-button %} + ## About {% data variables.product.prodname_desktop %} {% data variables.product.prodname_desktop %} is a free, open source application that helps you to work with files hosted on {% data variables.product.prodname_dotcom %} or other Git hosting services. -You can use {% data variables.product.prodname_desktop %} alongside any tools you need to contribute to a project. For example, a typical workflow would be to use {% data variables.product.prodname_desktop %} to download a {% data variables.product.prodname_dotcom %} repository to your computer and create a new branch, use an editor such as {% data variables.product.prodname_vscode %} to make changes to the code, then return to {% data variables.product.prodname_desktop %} to commit and push the changes to {% data variables.product.prodname_dotcom %}. +## Benefits of {% data variables.product.prodname_desktop %} -## About the benefits of {% data variables.product.prodname_desktop %} +{% data variables.product.prodname_desktop %} is useful for beginning and advanced users. Benefits include: -Like any tool for contributing changes to repositories on {% data variables.product.prodname_dotcom %}, {% data variables.product.prodname_desktop %} is built around the version control software Git. If you're new to Git and {% data variables.product.prodname_dotcom %}, you may find it easier to get started with {% data variables.product.prodname_desktop %} than you would using Git on the command line. Because {% data variables.product.prodname_desktop %} has a graphical user interface, it simplifies many of the aspects of Git that can be challenging for new users, such as memorizing commands and visualizing the changes you're making. +- **Get started easily.** If you're new to Git and {% data variables.product.prodname_dotcom %}, you may find it easier to use {% data variables.product.prodname_desktop %} than to use Git on the command line. {% data variables.product.prodname_desktop %} has a graphical user interface that simplifies commands and helps you visualize changes. +- **Find commands.** Because {% data variables.product.prodname_desktop %} has a visual interface, you can easily access less-common Git commands, such as choosing which changed lines to include in a commit or adding a co-author to a commit, without needing to memorize or look up syntax. +- **Follow best practices.** {% data variables.product.prodname_desktop %} encourages best practices. For example, it helps you to create an accurate and easy-to-follow commit history so other collaborators on a project can easily review your work. +- **Integrate with {% data variables.product.prodname_dotcom %}.** {% data variables.product.prodname_desktop %} is specifically designed for use with {% data variables.product.prodname_dotcom %}. For example, you can authenticate to {% data variables.product.prodname_dotcom_the_website %} or {% data variables.product.prodname_ghe_server %} quickly, without needing to use a separate credential manager. You can also check out a pull request to run checks without needing to open your browser. -Even if you have experience with command-line Git, you may benefit from incorporating {% data variables.product.prodname_desktop %} into your work. If you frequently need to look up syntax for less common Git commands, such as choosing which changed lines to include in a commit or adding a co-author to a commit, you may benefit from switching to {% data variables.product.prodname_desktop %} to perform these commands. +## {% data variables.product.prodname_desktop %} workflow -Because {% data variables.product.prodname_desktop %} makes commands like these easy to find, and helps you visualize the changes you're introducing with an integrated diff view, it encourages best practices and helps you to create an accurate and easy-to-follow commit history so other collaborators on a project can easily review your work. +You can use {% data variables.product.prodname_desktop %} alongside any tools you need to contribute to a project. For example, a typical workflow is: -Unlike other Git clients, {% data variables.product.prodname_desktop %} is specifically designed for use with {% data variables.product.prodname_dotcom %}, so it can make you more productive when working with repositories on {% data variables.product.prodname_dotcom %}. For example, you can authenticate to {% data variables.product.prodname_dotcom_the_website %} or {% data variables.product.prodname_ghe_server %} quickly, without needing to use a separate credential manager, and you can check out a pull request to run checks without needing to open your browser. +- Use {% data variables.product.prodname_desktop %} to download a {% data variables.product.prodname_dotcom %} repository to your computer and create a new branch +- Use an editor such as {% data variables.product.prodname_vscode %} to make changes to the code +- Return to {% data variables.product.prodname_desktop %} to commit and push the changes to {% data variables.product.prodname_dotcom %} ## Getting started diff --git a/data/reusables/desktop/desktop-cta-button.md b/data/reusables/desktop/desktop-cta-button.md new file mode 100644 index 0000000000..e9462c5193 --- /dev/null +++ b/data/reusables/desktop/desktop-cta-button.md @@ -0,0 +1 @@ +Download {% data variables.product.prodname_desktop %} {% octicon "link-external" height:16 %} From 6af1f7121a422eabd11dd9cb29648c39df010d17 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 7 Dec 2023 10:43:23 -0500 Subject: [PATCH 30/71] Set default jest timeout from 5s to 30s (#47421) --- package.json | 1 + src/fixtures/tests/footer.js | 4 ---- src/fixtures/tests/images.js | 5 ----- src/fixtures/tests/sidebar.js | 4 ---- 4 files changed, 1 insertion(+), 13 deletions(-) diff --git a/package.json b/package.json index 58c1fa0a79..ba51f8bd60 100644 --- a/package.json +++ b/package.json @@ -188,6 +188,7 @@ ] }, "jest": { + "testTimeout": 30000, "coverageThreshold": { "global": { "branches": 95, diff --git a/src/fixtures/tests/footer.js b/src/fixtures/tests/footer.js index 112dbeae33..2cc435a1ab 100644 --- a/src/fixtures/tests/footer.js +++ b/src/fixtures/tests/footer.js @@ -1,11 +1,7 @@ -import { jest } from '@jest/globals' - import { getDOM } from '#src/tests/helpers/e2etest.js' import nonEnterpriseDefaultVersion from '#src/versions/lib/non-enterprise-default-version.js' describe('footer', () => { - jest.setTimeout(10 * 60 * 1000) - describe('"contact us" link', () => { test('leads to support from articles', async () => { const $ = await getDOM( diff --git a/src/fixtures/tests/images.js b/src/fixtures/tests/images.js index 003703fd3e..938d22e659 100644 --- a/src/fixtures/tests/images.js +++ b/src/fixtures/tests/images.js @@ -1,14 +1,9 @@ -import { jest } from '@jest/globals' import sharp from 'sharp' import { get, head, getDOM } from '#src/tests/helpers/e2etest.js' import { MAX_WIDTH } from '#src/content-render/unified/rewrite-asset-img-tags.js' describe('render Markdown image tags', () => { - // The default timeout is 5 seconds, which is not enough for this test - // in potentially slower CI environments. - jest.setTimeout(30 * 1000) - test('page with a single image', async () => { const $ = await getDOM('/get-started/images/single-image') diff --git a/src/fixtures/tests/sidebar.js b/src/fixtures/tests/sidebar.js index 645806f940..a865b431b8 100644 --- a/src/fixtures/tests/sidebar.js +++ b/src/fixtures/tests/sidebar.js @@ -1,9 +1,5 @@ -import { jest } from '@jest/globals' - import { getDOMCached as getDOM } from '#src/tests/helpers/e2etest.js' -jest.setTimeout(10 * 60 * 1000) - describe('sidebar', () => { test('top level product mentioned at top of sidebar', async () => { const $ = await getDOM('/get-started') From bc35a685a1d5f301c4573b27872f2b88ed7828a4 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 7 Dec 2023 10:48:08 -0500 Subject: [PATCH 31/71] Correct French translation around Copilot pricing (#47419) Co-authored-by: Grace Park --- src/data-directory/lib/get-data.js | 2 +- src/languages/lib/correct-translation-content.js | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/data-directory/lib/get-data.js b/src/data-directory/lib/get-data.js index f595765260..b0650cd48e 100644 --- a/src/data-directory/lib/get-data.js +++ b/src/data-directory/lib/get-data.js @@ -205,7 +205,7 @@ function getDataByDir(dottedPath, dir, englishRoot) { throw error } } - content = correctTranslatedContentStrings(content, englishContent) + content = correctTranslatedContentStrings(content, englishContent, { dottedPath }) } return content } diff --git a/src/languages/lib/correct-translation-content.js b/src/languages/lib/correct-translation-content.js index 45c23fbe04..a363f1483b 100644 --- a/src/languages/lib/correct-translation-content.js +++ b/src/languages/lib/correct-translation-content.js @@ -68,7 +68,19 @@ export function correctTranslatedContentStrings(content, englishContent, context content = content.replaceAll('|:---|{% ifversion', '|:---|\n{%- ifversion') } - // A lot of Liquid tags lose their linebreak after the `}` which can + if (context.dottedPath === 'reusables.copilot.differences-cfi-cfb-table') { + // As of Dec 2023, the French translation has a subtle typo. + // This string replace is highly specific and clearly only going to + // work if the exact French, incorrect, translation is still in use. + // Consider deleting these lines in mid-2024 because hopefully by then + // the translation mistake, which we've reported, will be corrected. + content = content.replace( + '{% data variables.copilot.cfi_price_per_month %} par utilisateur et par mois', + '{% data variables.copilot.cfb_price_per_month %} par utilisateur et par mois.', + ) + } + + // A lot of Liquid tags lose their linebreak after the `}` // result in formatting problems, especially around Markdown tables. // This code here, compares each Liquid statement, in the translation, // and tests if it appears like that but with a newline in the English. From 17c58a21189f7dbbd5b87fb3e9c2b4b1a6c1b060 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:34:40 -0500 Subject: [PATCH 32/71] Update audit log event data (#47425) --- 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 fcc42c7260..302c58095d 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": "9bb34ccd50585f756e23704680c2c9683635496f" + "sha": "bcb393dba4ec2b6e2db003c64a03ff5a6c53baa5" } \ No newline at end of file From 92762dee68ea805a582ebf387c764087cf4db9b0 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 7 Dec 2023 08:47:44 -0800 Subject: [PATCH 33/71] Events miscategorization 3 (#47391) --- src/events/components/events.ts | 60 ++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/src/events/components/events.ts b/src/events/components/events.ts index 5e120eab78..a9e0d68064 100644 --- a/src/events/components/events.ts +++ b/src/events/components/events.ts @@ -296,45 +296,51 @@ function initPageAndExitEvent() { }) // Client-side routing - Router.events.on('routeChangeStart', (url) => { + Router.events.on('routeChangeStart', async (url) => { // Don't trigger page events on query string or hash changes previousPath = location.pathname // pathname set to "prior" url, arg "upcoming" url const newPath = url?.toString().split('?')[0].split('#')[0] const shouldSendEvents = newPath !== previousPath if (shouldSendEvents) { sendExit() - } - }) - - Router.events.on('routeChangeComplete', (url) => { - // Don't trigger page events on query string or hash changes - // Don't set `previousPath` here as location.pathname is now updated - const newPath = url?.toString().split('?')[0].split('#')[0] - const shouldSendEvents = newPath !== previousPath - if (shouldSendEvents) { + await waitForPageReady() resetPageParams() - waitForDomMutateStop(sendPage) + sendPage() } }) } -// The DOM still mutates after `routeChangeComplete` -// so we need to wait for it to stop mutating to get accurate data -function waitForDomMutateStop(fn: Function, minMs = 35, pollMs = 5) { - let lastMutate = Date.now() - const observer = new MutationObserver(() => { - lastMutate = Date.now() - }) - observer.observe(document.documentElement, { subtree: true, childList: true }) - function poll() { - if (Date.now() - lastMutate > minMs) { - observer.disconnect() - fn() - } else { - setTimeout(poll, pollMs) +// We want to wait for the DOM to mutate the tags +// as well as finish routeChangeComplete (location.pathname) +// before sending the page event in order to get accurate data +async function waitForPageReady() { + const route = new Promise((resolve) => { + const handler = () => { + Router.events.off('routeChangeComplete', handler) + resolve(true) } - } - poll() + Router.events.on('routeChangeComplete', handler) + }) + const mutate = new Promise((resolve) => { + const observer = new MutationObserver((mutations) => { + const metaMutated = mutations.find( + (mutation) => + mutation.target?.nodeName === 'META' || + Array.from(mutation.addedNodes).find((node) => node.nodeName === 'META') || + Array.from(mutation.removedNodes).find((node) => node.nodeName === 'META'), + ) + if (metaMutated) { + observer.disconnect() + resolve(true) + } + }) + observer.observe(document.getElementsByTagName('head')[0], { + subtree: true, + childList: true, + attributes: true, + }) + }) + return Promise.all([route, mutate]) } function initClipboardEvent() { From 88b2b888c9930f35ac1c448d7eaaa2fbc1bdf653 Mon Sep 17 00:00:00 2001 From: Robert Sese <734194+rsese@users.noreply.github.com> Date: Thu, 7 Dec 2023 12:31:05 -0600 Subject: [PATCH 34/71] use rendered name for hamburger sidebar (#47431) --- src/frame/components/page-header/Header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frame/components/page-header/Header.tsx b/src/frame/components/page-header/Header.tsx index 40d33acb63..f9c46ad88f 100644 --- a/src/frame/components/page-header/Header.tsx +++ b/src/frame/components/page-header/Header.tsx @@ -375,7 +375,7 @@ export const Header = () => { href={currentProduct.href} className="d-block pl-1 mb-2 h3 color-fg-default no-underline" > - {currentProduct.name} + {currentProduct.nameRendered} )} From 8e87e845c21b1961601ef280927e8d219ba73e2d Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Thu, 7 Dec 2023 10:47:12 -0800 Subject: [PATCH 35/71] Dependabot Grouped Security Updates - [Public Beta] (#47003) Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> --- .../about-dependabot-security-updates.md | 10 +++++ ...configuring-dependabot-security-updates.md | 43 +++++++++++++++++++ ...ion-options-for-the-dependabot.yml-file.md | 2 +- .../customizing-dependency-updates.md | 8 +++- ...ng-pull-requests-for-dependency-updates.md | 8 +++- .../troubleshooting-dependabot-errors.md | 37 ++++++++++++++-- .../dependabot-grouped-security-updates.yml | 4 ++ ...abot-grouped-security-updates-beta-note.md | 5 +++ ...dabot-security-updates-groups-supported.md | 7 +++ 9 files changed, 117 insertions(+), 7 deletions(-) create mode 100644 data/features/dependabot-grouped-security-updates.yml create mode 100644 data/reusables/dependabot/dependabot-grouped-security-updates-beta-note.md create mode 100644 data/reusables/dependabot/dependabot-security-updates-groups-supported.md diff --git a/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md b/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md index 9cd0d6ca22..f6354bc039 100644 --- a/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md +++ b/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md @@ -63,6 +63,16 @@ When you merge a pull request that contains a security update, the corresponding {% data reusables.dependabot.automated-tests-note %} +{% ifversion dependabot-grouped-security-updates %} + +## About grouped security updates + +{% data reusables.dependabot.dependabot-grouped-security-updates-beta-note %} + +To further reduce the number of pull requests you may be seeing, you can enable grouped security updates to group sets of dependencies together (per package ecosystem). {% data variables.product.prodname_dependabot %} then raises a single pull request to update as many vulnerable dependencies as possible in the group to secure versions at the same time. For security updates, {% data variables.product.prodname_dependabot %} **will** group dependencies from different directories. {% data variables.product.prodname_dependabot %} **will not** group dependencies from different package ecosystems together, and it **will not** group security updates with version updates. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates#grouping-dependabot-security-updates-into-a-single-pull-request)." + +{% endif %} + {% ifversion fpt or ghec %} ## About compatibility scores diff --git a/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md b/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md index a4a8b69940..b49db90459 100644 --- a/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md +++ b/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md @@ -59,10 +59,53 @@ You can also enable or disable {% data variables.product.prodname_dependabot_sec {% data reusables.repositories.navigate-to-code-security-and-analysis %} 1. Under "Code security and analysis", to the right of "{% data variables.product.prodname_dependabot %} security updates", click **Enable** to enable the feature or **Disable** to disable it. {% ifversion fpt or ghec %}For public repositories, the button is disabled if the feature is always enabled.{% endif %} +{% ifversion dependabot-grouped-security-updates %} + +## Grouping {% data variables.product.prodname_dependabot_security_updates %} into a single pull request + +{% data reusables.dependabot.dependabot-grouped-security-updates-beta-note %} + +To reduce the number of pull requests you may be seeing, you can enable grouped security updates for your repository or organization. When this is enabled, {% data variables.product.prodname_dependabot %} will group security updates into one pull request for each package ecosystem. In order to use grouped security updates, you must first enable the following features: + +- **Dependency graph**. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-the-dependency-graph)." +- **{% data variables.product.prodname_dependabot_alerts %}**. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/configuring-dependabot-alerts)." +- **{% data variables.product.prodname_dependabot_security_updates %}**. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)." + +{% note %} + +**Note:** When grouped security updates are first enabled, {% data variables.product.prodname_dependabot %} will immediately try to create grouped pull requests. You may notice {% data variables.product.prodname_dependabot %} closing old pull requests and opening new ones. + +{% endnote %} + +### Enabling or disabling grouped {% data variables.product.prodname_dependabot_security_updates %} for an individual repository + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.navigate-to-code-security-and-analysis %} +1. Under "Code security and analysis", to the right of "Grouped security updates", click **Enable** to enable the feature or **Disable** to disable it. + +### Enabling or disabling grouped {% data variables.product.prodname_dependabot_security_updates %} for an organization + +Organization owners can enable or disable grouped security updates for all repositories in their organization. However, individual repositories can update their settings to override the default organization settings. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.organizations.security-and-analysis %} +1. Under "Code security and analysis", to the right of "Grouped security updates", click **Disable all** or **Enable all**. +1. Optionally, to enable grouped {% data variables.product.prodname_dependabot_security_updates %} for new repositories in your organization, select **Automatically enable for new repositories**. + +{% endif %} + ## Overriding the default behavior with a configuration file You can override the default behavior of {% data variables.product.prodname_dependabot_security_updates %} by adding a `dependabot.yml` file to your repository. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file)." +{% ifversion dependabot-grouped-security-updates %}{% note %} + +**Note:** If you use grouped security updates, you cannot use the configuration file to customize the default grouping behavior for {% data variables.product.prodname_dependabot_security_updates %}. The `groups` option in the `dependabot.yml` file only applies to grouped version updates. + +{% endnote %}{% endif %} + If you only require security updates and want to exclude version updates, you can set `open-pull-requests-limit` to `0` in order to prevent version updates for a given `package-ecosystem`. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#open-pull-requests-limit)." ```yaml 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 01b8561709..a43846333d 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 @@ -337,7 +337,7 @@ If you use the same configuration as in the example above, bumping the `requests ### `groups` -{% data reusables.dependabot.dependabot-version-updates-groups-supported %} +{% ifversion dependabot-grouped-security-updates %}{% data reusables.dependabot.dependabot-security-updates-groups-supported %}{% else %}{% data reusables.dependabot.dependabot-version-updates-groups-supported %}{% endif %} {% data reusables.dependabot.dependabot-version-updates-groups-about %} diff --git a/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md b/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md index 13adcec617..06b7560dc5 100644 --- a/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md +++ b/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md @@ -46,6 +46,12 @@ If you customize the `dependabot.yml` file, you may notice some changes to the p For an example, see "[Setting custom labels](#setting-custom-labels)" below. +{% ifversion dependabot-grouped-security-updates %}{% note %} + +**Note:** If you use grouped security updates, the grouped pull requests will also inherit relevant configuration settings from the `dependabot.yml` file. However, they will not inherit any customizations made with the `groups` option, which only applies to version updates. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-grouped-security-updates)." + +{% endnote %}{% endif %} + ## Modifying scheduling When you set a `daily` update schedule, by default, {% data variables.product.prodname_dependabot %} checks for new versions at 05:00 UTC. You can use `schedule.time` to specify an alternative time of day to check for updates (format: `hh:mm`). @@ -150,7 +156,7 @@ updates: {% data reusables.dependabot.dependabot-version-updates-groups-match-first %} -{% data reusables.dependabot.dependabot-version-updates-groups-supported %} +{% ifversion dependabot-grouped-security-updates %}{% data reusables.dependabot.dependabot-security-updates-groups-supported %}{% else %}{% data reusables.dependabot.dependabot-version-updates-groups-supported %}{% endif %} You must configure groups per package ecosystem. diff --git a/content/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates.md b/content/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates.md index fea581d92a..884b7cd759 100644 --- a/content/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates.md +++ b/content/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates.md @@ -30,7 +30,7 @@ shortTitle: Manage Dependabot PRs When {% data variables.product.prodname_dependabot %} raises a pull request, you're notified by your chosen method for the repository. Each pull request contains detailed information about the proposed change, taken from the package manager. These pull requests follow the normal checks and tests defined in your repository. {% ifversion fpt or ghec %}In addition, where enough information is available, you'll see a compatibility score. This may also help you decide whether or not to merge the change. For information about this score, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)."{% endif %} -If you have many dependencies to manage, you may want to customize the configuration for each package manager so that pull requests have specific reviewers, assignees, and labels. {% ifversion dependabot-version-updates-groups %} You may also want to group sets of dependencies together, so that multiple dependencies are updated in a single pull request.{% endif %} For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates)." +If you have many dependencies to manage, you may want to customize the configuration for each package manager so that pull requests have specific reviewers, assignees, and labels. {% ifversion dependabot-version-updates-groups %} You may also want to group sets of dependencies together, so that multiple dependencies are updated in a single pull request.{% endif %} For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates){% ifversion dependabot-grouped-security-updates %} and "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates#grouping-dependabot-security-updates-into-a-single-pull-request)."{% else %}."{% endif %} {% ifversion dependabot-updates-paused %} @@ -88,6 +88,12 @@ For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-vers In {% data variables.product.prodname_dependabot %} pull requests for grouped version updates, you can use comment commands to ignore and un-ignore updates for specific dependencies and versions. You can use any of the following commands to manage ignore conditions for grouped version updates. +{% ifversion dependabot-grouped-security-updates %}{% note %} + +**Note:** The following comment commands do not work for grouped {% data variables.product.prodname_dependabot_security_updates %}. + +{% endnote %}{% endif %} + - `@dependabot ignore DEPENDENCY_NAME` closes the pull request and prevents {% data variables.product.prodname_dependabot %} from updating this dependency. - `@dependabot ignore DEPENDENCY_NAME major version` closes the pull request and prevents {% data variables.product.prodname_dependabot %} from updating this dependency's major version. - `@dependabot ignore DEPENDENCY_NAME minor version` closes the pull request and prevents {% data variables.product.prodname_dependabot %} from updating this dependency's minor version. diff --git a/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md b/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md index 6031e2b8e8..e198ec11fe 100644 --- a/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md +++ b/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md @@ -155,11 +155,11 @@ To allow {% data variables.product.prodname_dependabot %} to update the dependen {% ifversion dependabot-version-updates-groups %} -### {% data variables.product.prodname_dependabot %} fails to group a set of dependencies into a single pull request +### {% data variables.product.prodname_dependabot %} fails to group a set of dependencies into a single pull request for {% data variables.product.prodname_dependabot_version_updates %} -{% data reusables.dependabot.dependabot-version-updates-groups-supported %} +{% ifversion dependabot-grouped-security-updates %}The [`groups`](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups) configuration settings in the `dependabot.yml` file only apply to version updates.{% else %}{% data reusables.dependabot.dependabot-version-updates-groups-supported %}{% endif %} -You must configure groups per package ecosystem. To debug the problem, we recommend you look at the logs. For information about accessing the logs for a manifest, see "[Investigating errors with {% data variables.product.prodname_dependabot_version_updates %}](#investigating-errors-with-dependabot-version-updates)" above. +When you configure grouped version updates, you must configure groups per package ecosystem. To debug the problem, we recommend you look at the logs. For information about accessing the logs for a manifest, see "[Investigating errors with {% data variables.product.prodname_dependabot_version_updates %}](#investigating-errors-with-dependabot-version-updates)" above. You may have unintentionally created empty groups. This happens, for example, when you set a `dependency-type` in the `allow` key for the overall job. @@ -183,9 +183,30 @@ You need to ensure that configuration settings don't cancel each other, and upda For more information on how to configure groups for {% data variables.product.prodname_dependabot_version_updates %}, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups)." +{% ifversion dependabot-grouped-security-updates %} + +### {% data variables.product.prodname_dependabot %} fails to group a set of dependencies into a single pull request for {% data variables.product.prodname_dependabot_security_updates %} + +The [`groups`](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups) configuration settings in the `dependabot.yml` file only apply to version updates. + +For grouped security updates, {% data variables.product.prodname_dependabot %} uses the following guidelines to create grouped pull requests. + +- {% data variables.product.prodname_dependabot %} **will** group dependencies from the same package ecosystem that are located in different directories. +- {% data variables.product.prodname_dependabot %} **will** apply other relevant customization options from the `dependabot.yml` file to pull requests for grouped security updates. +- {% data variables.product.prodname_dependabot %} **will not** group dependencies from different package ecosystems together. +- {% data variables.product.prodname_dependabot %} **will not** group security updates with version updates. + +For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates#impact-of-configuration-changes-on-security-updates)" and "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-grouped-security-updates)." + +{% endif %} + ### {% data variables.product.prodname_dependabot %} fails to update one of the dependencies in a grouped pull request -**Version updates only.**{% data variables.product.prodname_dependabot %} will show the failed update in your logs, as well as in the job summary at the end of your logs. You should use the `@dependabot recreate` comment on the pull request to build the group again. For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)." +{% ifversion dependabot-grouped-security-updates %}There are different troubleshooting techniques you can use for failed version updates and failed security updates. + +#### Handling failures in grouped version updates{% endif %} + +**Version updates only.** {% data variables.product.prodname_dependabot %} will show the failed update in your logs, as well as in the job summary at the end of your logs. You should use the `@dependabot recreate` comment on the pull request to build the group again. For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)." If the dependency still fails to update, you should use the `exclude-patterns` configuration so that the dependency is excluded from the group. {% data variables.product.prodname_dependabot %} will then raise a separate pull request to update the dependency. @@ -193,6 +214,14 @@ If the dependency still fails to update, there may be a problem with the depende {% data reusables.dependabot.dependabot-ignore-dependencies %} +{% ifversion dependabot-grouped-security-updates %} + +#### Handling failures in grouped security updates + +**Security updates only.** If a grouped pull request for security updates fails or is unable to be merged, we recommend you manually open pull requests to bump the versions of breaking changes. When you manually update a package that is included in a grouped pull request, {% data variables.product.prodname_dependabot %} will rebase the pull request so it does not include the manually updated package. + +{% endif %} + ### Continuous integration (CI) fails on my grouped pull request **Version updates only.** If the failure is due to a single dependency, you should use the `exclude-patterns` configuration so that the dependency is excluded from the group. {% data variables.product.prodname_dependabot %} will then raise a separate pull request to update the dependency. diff --git a/data/features/dependabot-grouped-security-updates.yml b/data/features/dependabot-grouped-security-updates.yml new file mode 100644 index 0000000000..3f032aafdc --- /dev/null +++ b/data/features/dependabot-grouped-security-updates.yml @@ -0,0 +1,4 @@ +# Reference: Issue #12592 Dependabot Grouped Security Updates +versions: + fpt: '*' + ghec: '*' diff --git a/data/reusables/dependabot/dependabot-grouped-security-updates-beta-note.md b/data/reusables/dependabot/dependabot-grouped-security-updates-beta-note.md new file mode 100644 index 0000000000..2cfad0395e --- /dev/null +++ b/data/reusables/dependabot/dependabot-grouped-security-updates-beta-note.md @@ -0,0 +1,5 @@ +{% note %} + +**Note:** Grouped pull requests for {% data variables.product.prodname_dependabot_security_updates %} are in beta and subject to change. + +{% endnote %} diff --git a/data/reusables/dependabot/dependabot-security-updates-groups-supported.md b/data/reusables/dependabot/dependabot-security-updates-groups-supported.md new file mode 100644 index 0000000000..45132c5aa5 --- /dev/null +++ b/data/reusables/dependabot/dependabot-security-updates-groups-supported.md @@ -0,0 +1,7 @@ +You can only use the `dependabot.yml` file to create groups for {% data variables.product.prodname_dependabot_version_updates %}. Grouped {% data variables.product.prodname_dependabot_security_updates %} are enabled or disabled in your repository or organization settings and do not support customization. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-grouped-security-updates)." + +{% note %} + +**Note:** If a grouped pull request for {% data variables.product.prodname_dependabot_version_updates %} contains a vulnerable package, {% data variables.product.prodname_dependabot_security_updates %} will still attempt to create a _separate_ pull request to update the vulnerable package to a secure version. Creating a separate pull request for security updates ensures you have visibility into package vulnerabilities. + +{% endnote %} From c2888b942b5711b6ed99abca0e8d4ae6a18e6bbb Mon Sep 17 00:00:00 2001 From: jasonvhir <101231847+jasonvhir@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:04:11 -0800 Subject: [PATCH 36/71] Add validity check for Notion integration token (#47374) Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- data/secret-scanning.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/secret-scanning.yml b/data/secret-scanning.yml index 07c9acb828..9b63e3b851 100644 --- a/data/secret-scanning.yml +++ b/data/secret-scanning.yml @@ -1849,7 +1849,7 @@ isPublic: false isPrivateWithGhas: true hasPushProtection: false - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' - provider: 'Notion' supportedSecret: 'Notion OAuth Client Secret' From 9472f235e10091e76e5d4581555e7dc095f28849 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 7 Dec 2023 15:55:02 -0500 Subject: [PATCH 37/71] Rewrite code scanning query list in JS (#47287) Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> Co-authored-by: Felicity Chapman --- .../generate-code-scanning-query-lists.yml | 37 +- package-lock.json | 429 +++++++++++++++++- package.json | 2 + .../generate-code-scanning-query-list.py | 244 ---------- .../generate-code-scanning-query-list.ts | 239 ++++++++++ 5 files changed, 694 insertions(+), 257 deletions(-) delete mode 100644 src/code-scanning/generate-code-scanning-query-list.py create mode 100644 src/code-scanning/scripts/generate-code-scanning-query-list.ts diff --git a/.github/workflows/generate-code-scanning-query-lists.yml b/.github/workflows/generate-code-scanning-query-lists.yml index 78acd93e7e..9ff57aedab 100644 --- a/.github/workflows/generate-code-scanning-query-lists.yml +++ b/.github/workflows/generate-code-scanning-query-lists.yml @@ -22,11 +22,13 @@ permissions: jobs: generate-query-lists: if: github.repository == 'github/docs-internal' - runs-on: ubuntu-latest + runs-on: ubuntu-20.04-xl steps: - name: Checkout repository code uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: ./.github/actions/node-npm-setup + - name: Checkout codeql repo uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: @@ -42,22 +44,38 @@ jobs: echo "OPENAPI_COMMIT_SHA=$OPENAPI_COMMIT_SHA" >> $GITHUB_OUTPUT echo "Copied files from github/codeql repo. Commit SHA: $OPENAPI_COMMIT_SHA" - - name: Set up Python 3.8 - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1 - with: - python-version: 3.8 - - name: Download CodeQL CLI - # Look under the `codeql` directory, as this is where we checked out the `github/codeql` repo + # Look under the `codeql` directory, as this is where we checked out the `github/codeql` repo uses: ./codeql/.github/actions/fetch-codeql + - name: Test CodeQL CLI Download + run: codeql --version + + # "Server for running multiple commands while avoiding repeated JVM initialization." + # Having started this should speed up the execution of the various + # CLI calls of the executable. + - name: Start CodeQL CLI server in the background + run: | + codeql execute cli-server & + sleep 3 + codeql --version + - name: Build code scanning query list run: | for lang in "cpp" "csharp" "go" "java" "javascript" "python" "ruby" "swift"; do echo "Generating code scanning query list for $lang" - python src/code-scanning/generate-code-scanning-query-list.py $lang > data/reusables/code-scanning/codeql-query-tables/$lang.md + npm run generate-code-scanning-query-list -- \ + --verbose \ + --codeql-path codeql \ + --codeql-dir codeql \ + -o data/reusables/code-scanning/codeql-query-tables/$lang.md \ + $lang done + - name: Debug + run: | + git diff + - name: Create pull request env: GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} @@ -75,7 +93,7 @@ jobs: branchname=codeql-query-tables-${{ steps.codeql.outputs.OPENAPI_COMMIT_SHA }} - # Exit if the branch already exists. Since the actions/checkout fetch-depth is 1, + # Exit if the branch already exists. Since the actions/checkout fetch-depth is 1, # it doesn't "know" about branches locally, so we need to manually list them. branchExists=$(git ls-remote --heads origin refs/heads/$branchname | wc -l) @@ -93,7 +111,6 @@ jobs: echo "Creating pull request..." gh pr create \ --title "Update CodeQL query tables" \ - --draft \ --repo github/docs-internal \ --label "codeql-query-tables,skip FR board" \ --body '👋 humans. This PR updates the **CodeQL query table reusables** with the latest changes in preparation for the next **CodeQL CLI** release. diff --git a/package-lock.json b/package-lock.json index 98550ac872..9464034466 100644 --- a/package-lock.json +++ b/package-lock.json @@ -152,6 +152,7 @@ "sass": "^1.52.3", "start-server-and-test": "^2.0.3", "ts-jest": "29.1.1", + "tsx": "4.6.2", "typescript": "^5.2.2", "unist-util-remove": "^4.0.0", "unist-util-visit-parents": "6.0.1", @@ -930,6 +931,358 @@ "version": "0.7.5", "license": "MIT" }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "dev": true, @@ -5252,6 +5605,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "node_modules/escalade": { "version": "3.1.1", "license": "MIT", @@ -6764,9 +7154,9 @@ "license": "MIT" }, "node_modules/get-tsconfig": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", - "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -14913,6 +15303,39 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" }, + "node_modules/tsx": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.6.2.tgz", + "integrity": "sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==", + "dev": true, + "dependencies": { + "esbuild": "~0.18.20", + "get-tsconfig": "^4.7.2" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/tunnel": { "version": "0.0.6", "dev": true, diff --git a/package.json b/package.json index ba51f8bd60..9bb8eecbc8 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "lint": "eslint '**/*.{js,mjs,ts,tsx}'", "lint-content": "node src/content-linter/scripts/lint-content.js", "lint-translation": "cross-env NODE_OPTIONS=--experimental-vm-modules jest src/content-linter/tests/lint-files.js", + "generate-code-scanning-query-list": "tsx src/code-scanning/scripts/generate-code-scanning-query-list.ts", "move-content": "node src/content-render/scripts/move-content.js", "openapi-docs": "node src/rest/docs.js", "playwright-test": "playwright test --config src/fixtures/playwright.config.ts --project=\"Google Chrome\"", @@ -367,6 +368,7 @@ "sass": "^1.52.3", "start-server-and-test": "^2.0.3", "ts-jest": "29.1.1", + "tsx": "4.6.2", "typescript": "^5.2.2", "unist-util-remove": "^4.0.0", "unist-util-visit-parents": "6.0.1", diff --git a/src/code-scanning/generate-code-scanning-query-list.py b/src/code-scanning/generate-code-scanning-query-list.py deleted file mode 100644 index 3b0db1fa14..0000000000 --- a/src/code-scanning/generate-code-scanning-query-list.py +++ /dev/null @@ -1,244 +0,0 @@ -import subprocess -import json -import shutil -import sys -import os -import argparse - -""" -This script collects CodeQL queries that are part of code scanning query packs -and prints a markdown table to stdout that describes which packs contain which queries. - -Errors are printed to stderr. This script requires that 'git' and 'codeql' commands -are on the PATH. It'll try to automatically set the CodeQL search path correctly, -as long as you run the script from one of the following locations: - - anywhere from within a clone of the CodeQL Git repo - - from the parent directory of a clone of the CodeQL Git repo (assuming 'codeql' - directory exists) -""" - -parser = argparse.ArgumentParser(__name__) -parser.add_argument( - "--ignore-missing-query-packs", - action="store_true", - help="Don't fail if a query pack can't be found", -) -parser.add_argument( - "language", - help="The language to generate the query list for", -) -arguments = parser.parse_args() -assert hasattr(arguments, "ignore_missing_query_packs") -assert hasattr(arguments, "language") - -# Define which languages and query packs to consider -language = arguments.language - -packs = [ "code-scanning", "security-extended" ] - -class CodeQL: - def __init__(self): - pass - - def __enter__(self): - self.proc = subprocess.Popen(['codeql', 'execute','cli-server'], - executable=shutil.which('codeql'), - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=sys.stderr, - env=os.environ.copy(), - ) - return self - def __exit__(self, type, value, tb): - self.proc.stdin.write(b'["shutdown"]\0') - self.proc.stdin.close() - try: - self.proc.wait(5) - except: - self.proc.kill() - - def command(self, args): - data = json.dumps(args) - data_bytes = data.encode('utf-8') - self.proc.stdin.write(data_bytes) - self.proc.stdin.write(b'\0') - self.proc.stdin.flush() - res = b'' - while True: - b = self.proc.stdout.read(1) - if b == b'\0': - return res.decode('utf-8') - res += b - -def get_docs_link(language, query_id): - """ - Gets the documentation link for a query, given the query ID. - The documentation link contains the query language, followed by the ID, with slashes - replaced by dashes. - - For example: - cpp/external-entity-expansion - becomes: - https://codeql.github.com/codeql-query-help/cpp/cpp-external-entity-expansion/ - """ - return "https://codeql.github.com/codeql-query-help/%s/%s/" % (language, query_id.replace("/","-")) - -def single_spaces(input): - """ - Workaround for https://github.com/github/codeql-coreql-team/issues/470 which causes - some metadata strings to contain newlines and spaces without a good reason. - """ - return " ".join(input.split()) - - -def get_query_metadata(key, metadata, queryfile): - """Returns query metadata or prints a warning to stderr if a particular piece of metadata is not available.""" - if key in metadata: return single_spaces(metadata[key]) - query_id = metadata['id'] if 'id' in metadata else 'unknown' - return "" - -def get_query_cwes(tags): - """ - Returns a list of CWEs that are associated with a query, given its tags. - For example, if the list of tags is: - maintainability readability external/cwe/cwe-1078 external/cwe/cwe-670 security - - We return: - ["1078", "670"] - """ - cwes = [] - tags = tags.split() - for tag in tags: - if tag.startswith("external/cwe/cwe-"): - cwe = tag.split("-")[-1] - cwes.append(cwe) - return cwes - - -def subprocess_run(cmd): - """Runs a command through subprocess.run, with a few tweaks. Raises an Exception if exit code != 0.""" - return subprocess.run(cmd, capture_output=True, text=True, env=os.environ.copy(), check=True) - - - -try: # Check for `git` on path - subprocess_run(["git","--version"]) -except Exception as e: - print("Error: couldn't invoke 'git'. Is it on the path? Aborting.", file=sys.stderr) - raise e - -with CodeQL() as codeql: - try: # Check for `codeql` on path - codeql.command(["--version"]) - except Exception as e: - print("Error: couldn't invoke CodeQL CLI 'codeql'. Is it on the path? Aborting.", file=sys.stderr) - raise e - - # Define CodeQL search path so it'll find the CodeQL repositories: - # - anywhere in the current Git clone (including current working directory) - # - the 'codeql' subdirectory of the cwd - codeql_search_path = "./codeql:." # will be extended further down - - # Extend CodeQL search path by detecting root of the current Git repo (if any). This means that you - # can run this script from any location within the CodeQL git repository. - try: - git_toplevel_dir = subprocess_run(["git","rev-parse","--show-toplevel"]) - - # Current working directory is in a Git repo. Add it to the search path, just in case it's the CodeQL repo - git_toplevel_dir = git_toplevel_dir.stdout.strip() - codeql_search_path += ":" + git_toplevel_dir - except: - # git rev-parse --show-toplevel exited with non-zero exit code. We're not in a Git repo - pass - - # Write a markdown table to stdout - table_data = [] - - # Define the header row - table_data.append(["Query name", "Related CWEs", "Default", "Extended"]) - - # Iterate over all packs, and resolve which queries are part of those packs - queries_dict = {} - - for pack in packs: - # Get absolute paths to queries in this pack by using 'codeql resolve queries' - try: - queries_subp = codeql.command(["resolve","queries","--search-path", codeql_search_path, "%s-%s.qls" % (language, pack)]) - except Exception as e: - # Resolving queries might go wrong if the github/codeql repository is not - # on the search path. - level = "Warning" if arguments.ignore_missing_query_packs else "Error" - print( - "%s: couldn't find query pack '%s' for language '%s'. Do you have the right repositories in the right places (search path: '%s')?" % (level, pack, language, codeql_search_path), - file=sys.stderr - ) - if arguments.ignore_missing_query_packs: - continue - else: - sys.exit("You can use '--ignore-missing-query-packs' to ignore this error") - - # Investigate metadata for every query by using 'codeql resolve metadata' - for queryfile in queries_subp.strip().split("\n"): - query_metadata_json = codeql.command(["resolve","metadata",queryfile]).strip() - - # Turn an absolute path to a query file into an nwo-prefixed path (e.g. github/codeql/java/ql/src/....) - - meta = json.loads(query_metadata_json) - - # Format a markdown link from the query name and the docs link - query_id = get_query_metadata('id', meta, queryfile) - query_docs_link = get_docs_link(language, query_id) - - query_name = get_query_metadata('name', meta, queryfile) - query_name = query_name.replace('"', '"') # Replace quotation marks with HTML entities - query_markdown_link = "[%s](%s)" % (query_name, query_docs_link) - - # Get query CWEs - query_tags = get_query_metadata('tags', meta, queryfile) - query_cwes = get_query_cwes(query_tags) - - # Only include queries that have CWEs, since the other queries deal with code scanning - # metadata and metrics (e.g. counting lines of code or number of files) and have no docs link - if query_cwes: - if query_id not in queries_dict: - queries_dict[query_id] = { - 'query_markdown_link': query_markdown_link, - 'packs': [pack], - 'cwes': query_cwes - } - else: - queries_dict[query_id]['packs'].append(pack) - - # Sort the queries alphabetically - sorted_queries = sorted(queries_dict.items(), key=lambda item: item[1]['query_markdown_link']) - - # Write the sorted rows to the markdown table - for query_id, query_dict in sorted_queries: - default = '{% octicon "x" aria-label="Not included" %}' - extended = '{% octicon "x" aria-label="Not included" %}' - if "code-scanning" in query_dict['packs']: - default = '{% octicon "check" aria-label="Included" %}' - if "security-extended" in query_dict['packs']: - extended = '{% octicon "check" aria-label="Included" %}' - - table_data.append([ - query_dict['query_markdown_link'], - ', '.join(query_dict['cwes']), - default, - extended - ]) - - # Write "row headers" to make rows accessible - print("{% rowheaders %}") - - # Write 'table_data' as markdown - md_table = '\n| ' + ' | '.join(table_data[0]) + ' |\n' - md_table += '| ' + ' | '.join(['---'] * len(table_data[0])) + ' |\n' - - for row in table_data[1:]: - md_table += '| ' + ' | '.join(row) + ' |\n' - md_table = md_table.rstrip() - print(md_table) - - # Write end of "row headers" - print("\n{% endrowheaders %}") diff --git a/src/code-scanning/scripts/generate-code-scanning-query-list.ts b/src/code-scanning/scripts/generate-code-scanning-query-list.ts new file mode 100644 index 0000000000..d0c4041e04 --- /dev/null +++ b/src/code-scanning/scripts/generate-code-scanning-query-list.ts @@ -0,0 +1,239 @@ +#!/usr/bin/env node + +/** + * This script generates a block of Markdown that can be saved as a reusable. + * The reusable lists all the queries for one programming language, with CWEs, as a Markdown table. + * + * To be able to execute this script, you need to have the CodeQL CLI installed. + * To do that, you need two things: + * + * 1. The directory where the github/codeql repo is clone + * 2. The path to the executable `codeql` file. + * + * The directory where the github/codeql repo is cloned is needed because + * that's how it looks up files. You can set it up like this: + * + * cd /tmp + * git clone git@github.com:github/codeql.git + * cd codeql + * pwd + * + * To install the codeql executable, use `gh` like this: + * + * gh extension install github/gh-codeql + * gh codeql set-channel nightly + * gh codeql version + * + * Note that when you run the `gh codeql version` command, it will tell you + * where the executable is installed. For example: + * + * /Users/peterbe/.local/share/gh/extensions/gh-codeql/dist/nightly/codeql-bundle-20231204/codeql + * + * If you've git cloned github/codeql in /tmp/ now you can execute this script. + * For example, to generate the Markdown + * for Python: + * + * npm run generate-code-scanning-query-list -- \ + * --codeql-path ~/.local/share/gh/extensions/gh-codeql/dist/nightly/codeql-bundle-20231204/codeql \ + * --codeql-dir /tmp/codeql python | tee /tmp/python.md + * less /tmp/python.md + */ + +import fs from 'fs' +import { execFileSync } from 'child_process' + +import chalk from 'chalk' +import { program } from 'commander' + +program + .description('Generate a reusable Markdown for for a code scanning query language') + .option('--verbose', 'Verbose outputs') + .option('--codeql-path ', 'path to the codeql executable', 'codeql') + .option('--codeql-dir ', 'path to the codeql executable', '.codeql/') + .option('-o, --output-file ', 'path to the codeql executable', 'stdout') + .option('-p, --pack ', 'which packs to search for', ['code-scanning', 'security-extended']) + .argument('', 'for example java') + .parse(process.argv) + +type Options = { + codeqlPath: string + codeqlDir: string + outputFile: string + packs: string[] + verbose: boolean +} + +type QueryMetadata = { + id?: string + name?: string + tags?: string +} + +type Query = { + name: string + url: string + packs: string[] + cwes: string[] +} + +const opts = program.opts() +main( + { + codeqlPath: opts.codeqlPath, + codeqlDir: opts.codeqlDir, + outputFile: opts.outputFile, + packs: opts.pack, + verbose: Boolean(opts.verbose), + }, + program.args[0], +) + +async function main(options: Options, language: string) { + if (!options.packs.length) { + throw new Error("no packs specified, use '--pack code-scanning' or '--pack security-extended'") + } + + if (options.verbose && options.outputFile === 'stdout') { + console.warn(chalk.yellow('Verbose mode is on but output is going to stdout')) + } + + if (!testCodeQLPath(options)) { + process.exit(1) + } + + const queries: { + [id: string]: Query + } = {} + + for (const pack of options.packs) { + const languagePack = `${language}-${pack}.qls` + if (options.verbose) console.log(chalk.dim(`Searching for queries in ${languagePack}`)) + const res = execFileSync( + options.codeqlPath, + ['resolve', 'queries', `--search-path=${options.codeqlDir}`, languagePack], + { + encoding: 'utf-8', + }, + ) + for (const line of res.split('\n')) { + if (line.trim()) { + if (options.verbose) console.log('found', line) + const metadata = getMetadata(options, line) + const { id, name, tags } = metadata + if (id && name) { + const cwes = getCWEs(tags || '') + const url = getDocsLink(language, id) + + // Only include queries that have CWEs, since the other queries deal with code scanning + // metadata and metrics (e.g. counting lines of code or number of files) and have no docs link + if (cwes.length) { + if (!(id in queries)) { + queries[id] = { url, name, packs: [], cwes } + } + queries[id].packs.push(pack) + } else { + if (options.verbose) { + console.log(chalk.dim(`Skipping ${id} because it has no CWEs`)) + } + } + } + } + } + } + + const entries = Object.values(queries) + entries.sort((a, b) => a.name.localeCompare(b.name)) + printQueries(options, entries) +} + +function printQueries(options: Options, queries: Query[]) { + const markdown = [] + markdown.push('{% rowheaders %}') + markdown.push('') // blank line + const header = ['Query name', 'Related CWEs', 'Default', 'Extended'] + markdown.push(`| ${header.join(' | ')} |`) + markdown.push(`| ${header.map(() => '---').join(' | ')} |`) + + const notIncludedOcticon = '{% octicon "x" aria-label="Not included" %}' + const includedOcticon = '{% octicon "check" aria-label="Included" %}' + + for (const query of queries) { + const markdownLink = `[${query.name}](${query.url})` + let defaultIcon = notIncludedOcticon + let extendedIcon = notIncludedOcticon + if (query.packs.includes('code-scanning')) { + defaultIcon = includedOcticon + } + if (query.packs.includes('security-extended')) { + extendedIcon = includedOcticon + } + markdown.push( + `| ${markdownLink} | ${query.cwes.join(', ')} | ${defaultIcon} | ${extendedIcon} |`, + ) + } + markdown.push('') // blank line + markdown.push('{% endrowheaders %}') + markdown.push('') // always end with a blank line + + if (options.outputFile === 'stdout') { + console.log(markdown.join('\n')) + } else { + fs.writeFileSync(options.outputFile, markdown.join('\n'), 'utf-8') + } +} + +function getMetadata(options: Options, queryFile: string): QueryMetadata { + const metadataJson = execFileSync(options.codeqlPath, ['resolve', 'metadata', queryFile], { + encoding: 'utf-8', + }) + const parsed = JSON.parse(metadataJson) + return parsed +} + +/** + * + * @param language 'cpp' + * @param queryId 'external-entity-expansion' + * @returns https://codeql.github.com/codeql-query-help/cpp/cpp-external-entity-expansion/ + */ +function getDocsLink(language: string, queryId: string) { + return `https://codeql.github.com/codeql-query-help/${language}/${queryId.replaceAll('/', '-')}/` +} + +/** + * + * @param tags 'maintainability readability external/cwe/cwe-1078 external/cwe/cwe-670 security' + * @returns ['1078', '670'] + */ +function getCWEs(tags: string) { + const cwes: string[] = [] + for (const tag of tags.split(/\s+/g)) { + if (tag.startsWith('external/cwe/cwe-')) { + const cwe = tag.split('-').pop() || '' + if (cwe) cwes.push(cwe) + } + } + return cwes +} + +function testCodeQLPath(options: Options) { + try { + const output = execFileSync(options.codeqlPath, ['--version'], { encoding: 'utf-8' }) + if (options.verbose) { + const matched = output.match(/CodeQL command-line toolchain release ([\d.+]+)/) + if (matched) { + console.log('codeql version', chalk.green(matched[0])) + return true + } + } + return true + } catch (error) { + console.error('Could not find codeql executable at', options.codeqlPath) + if (options.verbose) { + throw error + } else { + console.log(chalk.yellow(`${options.codeqlPath} --version`), 'failed') + return false + } + } +} From e8f1306956495e5fec16ec9bdf4e0eacea0ef4a3 Mon Sep 17 00:00:00 2001 From: Chad Fawcett Date: Thu, 7 Dec 2023 17:17:59 -0700 Subject: [PATCH 38/71] Audit essential-features-of-github-actions.md workflow examples (#45838) Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../essential-features-of-github-actions.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/actions/learn-github-actions/essential-features-of-github-actions.md b/content/actions/learn-github-actions/essential-features-of-github-actions.md index ddb1553eaf..a2a3ee8dc0 100644 --- a/content/actions/learn-github-actions/essential-features-of-github-actions.md +++ b/content/actions/learn-github-actions/essential-features-of-github-actions.md @@ -25,6 +25,7 @@ topics: ```yaml jobs: example-job: + runs-on: ubuntu-latest steps: - name: Connect to PostgreSQL run: node client.js @@ -97,6 +98,7 @@ For example, you can create a file and then upload it as an artifact. jobs: example-job: name: Save output + runs-on: ubuntu-latest steps: - shell: bash run: | @@ -113,6 +115,7 @@ To download an artifact from a separate workflow run, you can use the `actions/d ```yaml jobs: example-job: + runs-on: ubuntu-latest steps: - name: Download a single artifact uses: {% data reusables.actions.action-download-artifact %} From a2d861ef4f279bea64ed024cbab8cd65ba00d7e1 Mon Sep 17 00:00:00 2001 From: Robert Sese <734194+rsese@users.noreply.github.com> Date: Thu, 7 Dec 2023 18:29:22 -0600 Subject: [PATCH 39/71] remove from fr board workflow: don't need to alert on failure (#47445) --- .github/workflows/remove-from-fr-board.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/remove-from-fr-board.yaml b/.github/workflows/remove-from-fr-board.yaml index d1e48ca3f6..8ecef70699 100644 --- a/.github/workflows/remove-from-fr-board.yaml +++ b/.github/workflows/remove-from-fr-board.yaml @@ -29,12 +29,3 @@ jobs: env: GITHUB_TOKEN: ${{secrets.DOCS_BOT_PAT_WORKFLOW_READORG}} PR_URL: https://github.com/${{ github.event.client_payload.command.repository.full_name }}/pull/${{ github.event.client_payload.command.resource.number }} - - - name: Check out repo - if: ${{ failure() }} - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - - uses: ./.github/actions/slack-alert - if: ${{ failure() }} - with: - slack_channel_id: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} - slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} From 3c8fab9723561bd730c733c3aa3d34e083319a1a Mon Sep 17 00:00:00 2001 From: Alex Kelly Date: Fri, 8 Dec 2023 00:50:16 +0000 Subject: [PATCH 40/71] Add new doc demonstrating how to traverse using pagination with our GraphQL API (#46563) Co-authored-by: skedwards88 --- .../guides/forming-calls-with-graphql.md | 2 +- content/graphql/guides/index.md | 2 +- .../graphql/guides/introduction-to-graphql.md | 2 +- .../using-pagination-in-the-graphql-api.md | 101 ++++++++++++++++++ content/graphql/index.md | 3 +- 5 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 content/graphql/guides/using-pagination-in-the-graphql-api.md diff --git a/content/graphql/guides/forming-calls-with-graphql.md b/content/graphql/guides/forming-calls-with-graphql.md index 1305db7558..2659ddd8ff 100644 --- a/content/graphql/guides/forming-calls-with-graphql.md +++ b/content/graphql/guides/forming-calls-with-graphql.md @@ -407,7 +407,7 @@ For more information on the difference between enums and strings, see the [offic There is a _lot_ more you can do when forming GraphQL calls. Here are some places to look next: -- [Pagination](https://graphql.org/learn/pagination/) +- [AUTOTITLE](/graphql/guides/using-pagination-in-the-graphql-api) - [Fragments](https://graphql.org/learn/queries/#fragments) - [Inline fragments](https://graphql.org/learn/queries/#inline-fragments) - [Directives](https://graphql.org/learn/queries/#directives) diff --git a/content/graphql/guides/index.md b/content/graphql/guides/index.md index 7311e5cf39..d745f87d6f 100644 --- a/content/graphql/guides/index.md +++ b/content/graphql/guides/index.md @@ -16,8 +16,8 @@ children: - /using-global-node-ids - /migrating-from-rest-to-graphql - /using-the-explorer + - /using-pagination-in-the-graphql-api - /managing-enterprise-accounts - /using-the-graphql-api-for-discussions - /migrating-graphql-global-node-ids --- - diff --git a/content/graphql/guides/introduction-to-graphql.md b/content/graphql/guides/introduction-to-graphql.md index 14b05bdf9c..661ff5d5fb 100644 --- a/content/graphql/guides/introduction-to-graphql.md +++ b/content/graphql/guides/introduction-to-graphql.md @@ -71,7 +71,7 @@ It's helpful to picture a graph: dots connected by lines. The dots are nodes, th ## Edge -Edges represent connections between nodes. When you query a connection, you traverse its edges to get to its nodes. Every `edges` field has a `node` field and a `cursor` field. Cursors are used for [pagination](https://graphql.github.io/learn/pagination/). +Edges represent connections between nodes. When you query a connection, you traverse its edges to get to its nodes. Every `edges` field has a `node` field and a `cursor` field. Cursors are used for pagination. For more information, see "[AUTOTITLE](/graphql/guides/using-pagination-in-the-graphql-api)." ## Node diff --git a/content/graphql/guides/using-pagination-in-the-graphql-api.md b/content/graphql/guides/using-pagination-in-the-graphql-api.md new file mode 100644 index 0000000000..896cc7dfe7 --- /dev/null +++ b/content/graphql/guides/using-pagination-in-the-graphql-api.md @@ -0,0 +1,101 @@ +--- +title: Using pagination in the GraphQL API +intro: Learn how to traverse data sets using cursor based pagination with the GraphQL API. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +shortTitle: Pagination +--- + +## About pagination + +{% data variables.product.company_short %}'s GraphQL API limits the number of items that you can fetch in a single request in order to protect against excessive or abusive requests to GitHub's servers. When you use the GraphQL API, you must supply a `first` or `last` argument on any connection. The value of these arguments must be between 1 and 100. The GraphQL API will return the number of connections specified by the `first` or `last` argument. + +If the data that you are accessing has more connections than the number of items specified by the `first` or `last` argument, the response is divided into smaller "pages" of the specified size. These pages can be fetched one at a time until the entire data set has been retrieved. Each page contains the number of items specified by the `first` or `last` argument, unless it is the last page, which may contain a lower number of items. + +This guide demonstrates how to request additional pages of results for paginated responses, how to change the number of results returned on each page, and how to write a script to fetch multiple pages of results. + +## Requesting a `cursor` in your query + +When using the GraphQL API, you use cursors to traverse through a paginated data set. The cursor represents a specific position in the data set. You can get the first and last cursor on a page by querying the `pageInfo` object. For example: + +```graphql +query($owner: String!, $name: String!) { + repository(owner: $owner, name: $name) { + pullRequests(first: 100, after: null) { + nodes { + createdAt + number + title + } + pageInfo { + endCursor + startCursor + hasNextPage + hasPreviousPage + } + } + } +} +``` + +In this example, `pageInfo.startCursor` gives the cursor for the first item on the page. `pageInfo.endCursor` gives the cursor for the last item on the page. `pageInfo.hasNextPage` and `pageInfo.hasPreviousPage` indicate whether there is a page before and after the page that was returned. + +## Changing the number of items per page + +The `first` and `last` arguments control how many items are returned. The maximum number of items you can fetch using the `first` or `last` argument is 100. You may need to request fewer than 100 items if your query touches a lot of data in order to avoid hitting a rate or node limit. For more information, see "[AUTOTITLE](/graphql/overview/rate-limits-and-node-limits-for-the-graphql-api)." + +## Traversing the data set using pagination + +Once you return a cursor from a query, you can use the cursor to request the next page of results. To do so, you will use the `after` or `before` argument and the cursor. + +For example, assuming the `pageInfo.endCursor` value from the previous example was `Y3Vyc29yOnYyOpHOUH8B7g==`, you can use this query to request the next page of results: + +```graphql +query($owner: String!, $name: String!) { + repository(owner: $owner, name: $name) { + pullRequests(first: 1, after: "Y3Vyc29yOnYyOpHOUH8B7g==") { + nodes { + createdAt + number + title + } + pageInfo { + endCursor + hasNextPage + hasPreviousPage + } + } + } +} +``` + +You can continue to send queries with the new `pageInfo.endCursor` value returned in the response until there are no pages left to traverse, indicated by `pageInfo.hasNextPage` returning `false`. + +If you specified the `last` instead of the `first` argument, the last page of results will be returned first. In this case, you will use the `pageInfo.startCursor` value and the `before` argument to get the previous page of results. Once `pageInfo.hasPreviousPage` returns `false`, you have reached the last page. For example: + +```graphql +query($owner: String!, $name: String!) { + repository(owner: $owner, name: $name) { + pullRequests(last: 1, before: "R3Vyc29yOnYyOpHOHcfoOg==") { + nodes { + createdAt + number + title + } + pageInfo { + startCursor + hasPreviousPage + } + } + } +} +``` + +## Next steps + +You can use {% data variables.product.company_short %}'s Octokit SDK and the `octokit/plugin-paginate-graphql` plugin to support pagination in your scripts. For more information, see "[plugin-paginate-graphql.js](https://github.com/octokit/plugin-paginate-graphql.js)." diff --git a/content/graphql/index.md b/content/graphql/index.md index 73d31225ef..4502d00d5c 100644 --- a/content/graphql/index.md +++ b/content/graphql/index.md @@ -13,7 +13,7 @@ featuredLinks: - /graphql/overview/explorer - /graphql/overview/public-schema - /graphql/overview/schema-previews - - /graphql/guides/using-the-graphql-api-for-discussions + - /graphql/guides/using-pagination-in-the-graphql-api guideCards: - /graphql/guides/migrating-from-rest-to-graphql - /graphql/guides/managing-enterprise-accounts @@ -33,4 +33,3 @@ children: - /reference - /guides --- - From e4a7f2e313f24bd5321abeaabddbd3fdfa85f2a7 Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Fri, 8 Dec 2023 08:41:06 +0000 Subject: [PATCH 41/71] Review the links to the `github/dependabot/dependabot-core` repo (#46968) --- ...he-configuration-of-private-registries-for-dependabot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md b/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md index 33fd3fa7b9..c61cc6a0f5 100644 --- a/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md +++ b/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md @@ -126,8 +126,8 @@ registries: - Image names may not always be detected in Containerfiles, Helm files, or yaml files. - Dockerfiles may only receive a version update to the first `FROM` directive. -- Dockerfiles do not receive updates to images specified with the `ARG` directive. There is a workaround available for the `COPY` directive. For more information, see https://github.com/dependabot/dependabot-core/issues/5103#issuecomment-1692420920. -- {% data variables.product.prodname_dependabot %} doesn't support multi-stage Docker builds. For more information, see https://github.com/dependabot/dependabot-core/issues/7640. +- Dockerfiles do not receive updates to images specified with the `ARG` directive. There is a workaround available for the `COPY` directive. For more information, see "[{% data variables.product.prodname_dependabot %} ignores image references in COPY Dockerfile statement](https://github.com/dependabot/dependabot-core/issues/5103#issuecomment-1692420920)" in the `github/dependabot/dependabot-core` repository. +- {% data variables.product.prodname_dependabot %} doesn't support multi-stage Docker builds. For more information, see "[Support for Docker multi-stage builds](https://github.com/dependabot/dependabot-core/issues/7640)" in the `github/dependabot/dependabot-core` repository. ### Gradle @@ -510,7 +510,7 @@ If the `yarn.lock` file doesn't list the private registry as the dependency sour - Manually set the private registry to the `.yarnrc` file by adding the registry to a `.yarnrc.yml` file in the project root with the key `npmRegistryServer`, or - Perform the same action by running `yarn config set npmRegistryServer ` in your terminal. - Example of a `.yarnrc.yml` file with a private registry configured: + Example of a `.yarnrc.yml` file with a private registry configured: `npmRegistryServer: "https://nexus.example.com/repository/yarn-all"` For more information, see [npmRegistryServer](https://yarnpkg.com/configuration/yarnrc#npmRegistryServer) in the Yarn documentation. From d2343c1cd5310e1d7de3608959e29d4e2750e1cb Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:09:47 +0100 Subject: [PATCH 42/71] [Improvement]: Managing visibility of your projects (#47423) --- .../managing-your-project/managing-access-to-your-projects.md | 4 ++-- .../managing-visibility-of-your-projects.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-access-to-your-projects.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-access-to-your-projects.md index 49dac203d7..56df0abf80 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-access-to-your-projects.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-access-to-your-projects.md @@ -56,7 +56,7 @@ You can also add teams, external collaborators, and individual organization memb {% ifversion projects-v2-add-to-team %} -If you grant a team read permissions or greater for a project, the project is also displayed on the team's projects page. You can also add projects to a team on the team's projects page. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-team)." +If you grant a team read permissions or greater for a project, the project is also displayed on the team's projects page. You can also add projects to a team on the team's projects page. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/adding-your-project-to-a-team)." {% endif %} @@ -93,7 +93,7 @@ You can only invite an individual user to collaborate on your organization-level {% note %} -This only affects collaborators for your project, not for repositories in your project. To view an item on the project, someone must have the required permissions for the repository that the item belongs to. If your project includes items from a private repository, people who are not collaborators in the repository will not be able to view items from that repository. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)" and "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)." +This only affects collaborators for your project, not for repositories in your project. To view an item on the project, someone must have the required permissions for the repository that the item belongs to. Only people with access to a private repository will be able to view project items from that private repository. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)" and "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)." {% endnote %} diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-visibility-of-your-projects.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-visibility-of-your-projects.md index 952680a45e..f92ec50f1c 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-visibility-of-your-projects.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-visibility-of-your-projects.md @@ -17,7 +17,7 @@ permissions: Organization owners can manage the visibility of project boards in Projects can be public or private. For public projects, everyone on the internet can view the project. For private projects, only users granted at least read access can see the project. -Only the project visibility is affected; to view an item on the project, someone must have the required permissions for the repository that the item belongs to. If your project includes items from a private repository, people who are not collaborators in the repository will not be able to view items from that repository. +Only the project visibility is affected; to view an item on the project, someone must have the required permissions for the repository that the item belongs to. Only people with access to a private repository will be able to view project items from that private repository. ![Screenshot showing a project using a table layout. One of the items is marked with a padlock icon, indicating it's hidden, and highlighted with an orange outline.](/assets/images/help/projects-v2/hidden-items.png) From d5c9d8e1f41a1404cab5fa8a28da7ab5a507d987 Mon Sep 17 00:00:00 2001 From: Robert Thorpe II Date: Fri, 8 Dec 2023 04:41:14 -0500 Subject: [PATCH 43/71] Update intro for Global Advisories in the Advisory Databse (#47251) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- ...wsing-security-advisories-in-the-github-advisory-database.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/browsing-security-advisories-in-the-github-advisory-database.md b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/browsing-security-advisories-in-the-github-advisory-database.md index 4b37629eed..e109bd74b4 100644 --- a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/browsing-security-advisories-in-the-github-advisory-database.md +++ b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/browsing-security-advisories-in-the-github-advisory-database.md @@ -1,6 +1,6 @@ --- title: Browsing security advisories in the GitHub Advisory Database -intro: 'You can browse the {% data variables.product.prodname_advisory_database %} to find advisories for security risks in open source projects that are hosted on {% data variables.product.company_short %}.' +intro: 'You can browse the {% data variables.product.prodname_advisory_database %} to find CVEs and {% data variables.product.prodname_dotcom %}-originated advisories affecting the open source world.' shortTitle: Browse Advisory Database redirect_from: - /github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database From b17abcbd7616bfe366f708bfe8ff9972ef687c03 Mon Sep 17 00:00:00 2001 From: Matt Pollard Date: Fri, 8 Dec 2023 13:46:44 +0100 Subject: [PATCH 44/71] Update phase for public SCIM schema (#47403) --- .../about-enterprise-managed-users.md | 2 +- data/reusables/scim/ghec-open-scim-beta-note.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/content/admin/identity-and-access-management/understanding-iam-for-enterprises/about-enterprise-managed-users.md b/content/admin/identity-and-access-management/understanding-iam-for-enterprises/about-enterprise-managed-users.md index abe59672ee..f397d0b76d 100644 --- a/content/admin/identity-and-access-management/understanding-iam-for-enterprises/about-enterprise-managed-users.md +++ b/content/admin/identity-and-access-management/understanding-iam-for-enterprises/about-enterprise-managed-users.md @@ -89,7 +89,7 @@ For more information about authentication and provisioning, see the following ar Some customers have reported success using a partner IdP's application only for authentication, in combination with a different IdP for provisioning. For example, a combination of Okta for authentication and a custom SCIM solution for provisioning, or a combination of Keycloak for authentication and SailPoint for provisioning. {% data variables.product.company_short %} has not tested all IdPs, and does not test partner IdPs in combination with other IdPs. -For more information about provisioning users from your IdP using the public beta of {% data variables.product.company_short %}'s SCIM schema, see "[AUTOTITLE](/admin/identity-and-access-management/provisioning-user-accounts-for-enterprise-managed-users/provisioning-users-with-scim-using-the-rest-api)," and consult your IdP's documentation, support team, or other resources. +For more information about provisioning users from your IdP using the private beta of {% data variables.product.company_short %}'s SCIM schema, see "[AUTOTITLE](/admin/identity-and-access-management/provisioning-user-accounts-for-enterprise-managed-users/provisioning-users-with-scim-using-the-rest-api)," and consult your IdP's documentation, support team, or other resources. {% data reusables.enterprise_user_management.authentication-or-provisioning-migration-not-supported %} diff --git a/data/reusables/scim/ghec-open-scim-beta-note.md b/data/reusables/scim/ghec-open-scim-beta-note.md index bcdafca53a..66985627be 100644 --- a/data/reusables/scim/ghec-open-scim-beta-note.md +++ b/data/reusables/scim/ghec-open-scim-beta-note.md @@ -2,7 +2,10 @@ {% note %} -**Note**: Support for provisioning users with {% data variables.product.company_short %}'s public SCIM schema is in public beta and subject to change. {% data variables.product.company_short %} recommends that you test provisioning in an environment that's isolated from the production data on your IdP and {% data variables.location.product_location %}. +**Notes**: + +- Support for provisioning users with {% data variables.product.company_short %}'s public SCIM schema is in private beta and subject to change. To request access to the beta, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. +- {% data variables.product.company_short %} recommends that you test provisioning in an environment that's isolated from the production data on your IdP and {% data variables.location.product_location %}. {% endnote %} From 9403f50768bf5698b7f2f2c91cd6184cc47fabcb Mon Sep 17 00:00:00 2001 From: Eboni <32157169+EboniLM@users.noreply.github.com> Date: Fri, 8 Dec 2023 09:19:46 -0600 Subject: [PATCH 45/71] Update about-github-copilot-enterprise.md (#30383) --- .../overview/about-github-copilot-enterprise.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/copilot/github-copilot-enterprise/overview/about-github-copilot-enterprise.md b/content/copilot/github-copilot-enterprise/overview/about-github-copilot-enterprise.md index 11c9208a36..6d9b4a230a 100644 --- a/content/copilot/github-copilot-enterprise/overview/about-github-copilot-enterprise.md +++ b/content/copilot/github-copilot-enterprise/overview/about-github-copilot-enterprise.md @@ -16,9 +16,9 @@ topics: ## About the {% data variables.product.prodname_copilot_enterprise_short %} beta -{% data variables.product.prodname_copilot_enterprise %} is a {% data variables.product.prodname_copilot_short %} plan available for organizations and enterprises that use {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.prodname_copilot_enterprise_short %} is currently in beta and available to a limited number of customers. +{% data variables.product.prodname_copilot_enterprise %} is a {% data variables.product.prodname_copilot_short %} plan available for enterprises that use {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.prodname_copilot_enterprise_short %} is currently in beta and available to a limited number of customers. -If {% data variables.product.prodname_copilot_enterprise_short %} is enabled for an organization or enterprise, members get access to the following {% data variables.product.prodname_copilot_short %} features on {% data variables.product.prodname_dotcom_the_website %}. +If {% data variables.product.prodname_copilot_enterprise_short %} is enabled for an enterprise, members get access to the following {% data variables.product.prodname_copilot_short %} features on {% data variables.product.prodname_dotcom_the_website %}. - {% data variables.product.prodname_copilot_chat_short %} (see "[AUTOTITLE](/copilot/github-copilot-enterprise/copilot-chat-in-github/about-github-copilot-chat)") - {% data variables.product.prodname_copilot_for_prs %} (see "[AUTOTITLE](/copilot/github-copilot-enterprise/copilot-pull-request-summaries/about-copilot-pull-request-summaries)") @@ -27,8 +27,8 @@ These features are in beta and subject to change. Additional features will be ad ## Signing up for the {% data variables.product.prodname_copilot_enterprise_short %} beta -You can nominate an organization or enterprise that you're a member of for the [{% data variables.product.prodname_copilot_enterprise_short %} waitlist](https://github.com/github-copilot/copilot_enterprise_waitlist_signup/join). To join the waitlist, the organization or enterprise must use {% data variables.product.prodname_ghe_cloud %} and have an active {% data variables.product.prodname_copilot_for_business %} subscription. +You can nominate an enterprise that you're a member of for the [{% data variables.product.prodname_copilot_enterprise_short %} waitlist](https://github.com/github-copilot/copilot_enterprise_waitlist_signup/join). To join the waitlist, the enterprise must use {% data variables.product.prodname_ghe_cloud %} and have an active {% data variables.product.prodname_copilot_for_business %} subscription. -Nominating an organization or enterprise for the waitlist does not guarantee access. By signing up to the waitlist, you are agreeing to the pre-release license terms. For more information, see "[AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-copilot-pre-release-license-terms)." +Nominating an enterprise for the waitlist does not guarantee access. By signing up to the waitlist, you are agreeing to the pre-release license terms. For more information, see "[AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-copilot-pre-release-license-terms)." -If an organization or enterprise is granted access to the {% data variables.product.prodname_copilot_enterprise_short %} beta, an administrator must enable the features before members can start using them. For more information, see {% ifversion ghec %}"[AUTOTITLE](/copilot/github-copilot-enterprise/overview/enabling-github-copilot-enterprise)."{% elsif fpt %}"[AUTOTITLE](/enterprise-cloud@latest/copilot/github-copilot-enterprise/overview/enabling-github-copilot-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} +If an enterprise is granted access to the {% data variables.product.prodname_copilot_enterprise_short %} beta, an administrator must enable the features before members can start using them. For more information, see {% ifversion ghec %}"[AUTOTITLE](/copilot/github-copilot-enterprise/overview/enabling-github-copilot-enterprise)."{% elsif fpt %}"[AUTOTITLE](/enterprise-cloud@latest/copilot/github-copilot-enterprise/overview/enabling-github-copilot-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} From 35b26c6a14a8f0dec88c96fbaad2100d847e3093 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Fri, 8 Dec 2023 10:47:24 -0500 Subject: [PATCH 46/71] Port test-moved-content.js to TypeScript (#47443) --- .github/workflows/move-content.yml | 1 + package.json | 2 +- ...moved-content.js => test-moved-content.ts} | 26 ++++++++++--------- 3 files changed, 16 insertions(+), 13 deletions(-) rename src/content-render/scripts/{test-moved-content.js => test-moved-content.ts} (66%) diff --git a/.github/workflows/move-content.yml b/.github/workflows/move-content.yml index 12ddbaef4d..8ed914b0dd 100644 --- a/.github/workflows/move-content.yml +++ b/.github/workflows/move-content.yml @@ -8,6 +8,7 @@ on: pull_request: paths: - src/content-render/scripts/move-content.js + - src/content-render/scripts/test-move-content.ts - 'src/frame/lib/**/*.js' - .github/workflows/move-content.yml diff --git a/package.json b/package.json index 9bb8eecbc8..0c8d82a4bf 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "sync-search-server": "cross-env NODE_ENV=production PORT=4002 MINIMAL_RENDER=true CHANGELOG_DISABLED=true node src/frame/server.js", "sync-webhooks": "src/rest/scripts/update-files.js -o webhooks", "test": "cross-env NODE_OPTIONS='--max_old_space_size=4096 --experimental-vm-modules' jest --logHeapUsage", - "test-moved-content": "node src/content-render/scripts/test-moved-content.js", + "test-moved-content": "tsx src/content-render/scripts/test-moved-content.ts", "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage", "toggle-ghae-feature-flags": "node src/versions/scripts/toggle-ghae-feature-flags.js", "tsc": "tsc --noEmit", diff --git a/src/content-render/scripts/test-moved-content.js b/src/content-render/scripts/test-moved-content.ts similarity index 66% rename from src/content-render/scripts/test-moved-content.js rename to src/content-render/scripts/test-moved-content.ts index de69712de1..e823001439 100644 --- a/src/content-render/scripts/test-moved-content.js +++ b/src/content-render/scripts/test-moved-content.ts @@ -4,56 +4,58 @@ import path from 'path' import { program } from 'commander' -import readFrontmatter from '#src/frame/lib/read-frontmatter.js' +import readFrontmatter from 'src/frame/lib/read-frontmatter.js' const ROOT = process.env.ROOT || '.' const CONTENT_ROOT = path.resolve(path.join(ROOT, 'content')) program .description('Test that a file correctly got moved') - .arguments('old', 'old file or folder name') - .arguments('new', 'new file or folder name') + .arguments('old') + .arguments('new') .parse(process.argv) -main(program.args) +main([program.args[0], program.args[1]]) -async function main(nameTuple) { +async function main(nameTuple: [string, string]) { const [before, after] = nameTuple assert(!fs.existsSync(before), `File or folder ${before} exists`) assert(fs.existsSync(after), `File or folder ${after} exists`) if (after.endsWith('.md')) { const fileContent = fs.readFileSync(after, 'utf-8') - const { data } = readFrontmatter(fileContent) + const fm = readFrontmatter(fileContent) + const { data } = fm const oldHref = makeHref(CONTENT_ROOT, before) - assert(data.redirect_from.includes(oldHref), `Redirect from ${oldHref} not found`) + if (data) assert(data.redirect_from.includes(oldHref), `Redirect from ${oldHref} not found`) { const parentIndexMd = path.join(path.dirname(after), 'index.md') const fileContent = fs.readFileSync(parentIndexMd, 'utf-8') const { data } = readFrontmatter(fileContent) const afterShortname = '/' + after.split('/').slice(-1)[0].replace(/\.md$/, '') - assert(data.children.includes(afterShortname), `Child ${afterShortname} not found`) + if (data) assert(data.children.includes(afterShortname), `Child ${afterShortname} not found`) } } else { const fileContent = fs.readFileSync(path.join(after, 'index.md'), 'utf-8') const { data } = readFrontmatter(fileContent) const oldHref = makeHref(CONTENT_ROOT, before) - assert(data.redirect_from.includes(oldHref), `Redirect from ${oldHref} not found`) + if (data) assert(data.redirect_from.includes(oldHref), `Redirect from ${oldHref} not found`) { const parentIndexMd = path.join(path.dirname(after), 'index.md') const fileContent = fs.readFileSync(parentIndexMd, 'utf-8') const { data } = readFrontmatter(fileContent) const afterShortname = '/' + after.split('/').slice(-1) - assert(data.children.includes(afterShortname), `Child ${afterShortname} not found`) + if (data) assert(data.children.includes(afterShortname), `Child ${afterShortname} not found`) } } } -function makeHref(root, filePath) { +function makeHref(root: string, filePath: string) { const nameSplit = path.relative(root, filePath).split(path.sep) if (nameSplit.slice(-1)[0] === 'index.md') { nameSplit.pop() } else { - nameSplit.push(nameSplit.pop().replace(/\.md$/, '')) + const last = nameSplit.pop() + if (last) nameSplit.push(last.replace(/\.md$/, '')) } return '/' + nameSplit.join('/') } From 3fc731ef45a45485875ef060fb430b44382500a2 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:34:51 -0500 Subject: [PATCH 47/71] Update audit log event data (#47495) --- 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 302c58095d..ed1a80b210 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": "bcb393dba4ec2b6e2db003c64a03ff5a6c53baa5" + "sha": "ad6124025136e49a7e7c93600bd001e7f581190b" } \ No newline at end of file From a60634d2048d19ea8853e61543acb155b3063802 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:42:19 -0500 Subject: [PATCH 48/71] Update OpenAPI Description (#47496) --- src/github-apps/lib/config.json | 2 +- src/rest/data/fpt-2022-11-28/schema.json | 1056 ++++++++- src/rest/data/ghae/schema.json | 1192 +++++++++- src/rest/data/ghec-2022-11-28/schema.json | 1056 ++++++++- .../data/ghes-3.10-2022-11-28/schema.json | 1914 ++++++++++++++++- .../data/ghes-3.11-2022-11-28/schema.json | 1914 ++++++++++++++++- src/rest/data/ghes-3.7/schema.json | 1906 +++++++++++++++- src/rest/data/ghes-3.8/schema.json | 1910 +++++++++++++++- src/rest/data/ghes-3.9-2022-11-28/schema.json | 1914 ++++++++++++++++- src/rest/lib/config.json | 2 +- src/webhooks/data/fpt/schema.json | 68 +- src/webhooks/data/ghae/schema.json | 60 +- src/webhooks/data/ghec/schema.json | 68 +- src/webhooks/data/ghes-3.10/schema.json | 64 +- src/webhooks/data/ghes-3.11/schema.json | 64 +- src/webhooks/data/ghes-3.7/schema.json | 64 +- src/webhooks/data/ghes-3.8/schema.json | 64 +- src/webhooks/data/ghes-3.9/schema.json | 64 +- src/webhooks/lib/config.json | 2 +- 19 files changed, 13046 insertions(+), 338 deletions(-) diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 6e0d610035..81ea3eedec 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "6922a6cfe785e1069e93d6e501805cf6e1891076" + "sha": "1fd29675070876e3278e71b47f4f2606601bc698" } \ No newline at end of file diff --git a/src/rest/data/fpt-2022-11-28/schema.json b/src/rest/data/fpt-2022-11-28/schema.json index 01a4da19ce..9f6c309312 100644 --- a/src/rest/data/fpt-2022-11-28/schema.json +++ b/src/rest/data/fpt-2022-11-28/schema.json @@ -4450,7 +4450,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization.", "enum": [ "none", "user", @@ -4506,7 +4506,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization.

", "isRequired": true, "enum": [ "none", @@ -68532,7 +68532,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -88617,6 +88617,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -88625,6 +88633,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -88817,6 +88833,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -88896,6 +88919,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -89602,6 +89680,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -89610,6 +89696,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -89802,6 +89896,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -89881,6 +89982,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -90279,6 +90435,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -90288,6 +90453,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -90504,6 +90678,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -90593,6 +90775,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -90796,6 +91040,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -90804,6 +91056,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -90996,6 +91256,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -91075,6 +91342,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -92816,6 +93138,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -92825,6 +93156,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -93041,6 +93381,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -93130,6 +93478,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -93520,6 +93930,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -93528,6 +93946,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -93720,6 +94146,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -93799,6 +94232,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -94921,6 +95409,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -94929,6 +95425,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -95121,6 +95625,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -95200,6 +95711,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -95910,6 +96476,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -95918,6 +96492,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -96110,6 +96692,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -96189,6 +96778,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -96897,6 +97541,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -96905,6 +97557,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -97097,6 +97757,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -97176,6 +97843,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99661,6 +100383,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99669,6 +100399,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99861,6 +100599,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99940,6 +100685,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -105350,6 +106150,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -105358,6 +106166,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -105550,6 +106366,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -105629,6 +106452,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106277,6 +107155,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106285,6 +107171,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -106477,6 +107371,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -106556,6 +107457,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -152197,7 +153153,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153081,7 +154037,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153401,7 +154357,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153683,7 +154639,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -154641,7 +155597,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -154758,7 +155714,7 @@ } ], "previews": [], - "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -154825,7 +155781,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -155032,7 +155988,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -352801,6 +353757,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -352809,6 +353773,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -353001,6 +353973,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -353080,6 +354059,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghae/schema.json b/src/rest/data/ghae/schema.json index 5fda426b9d..8487bb89f9 100644 --- a/src/rest/data/ghae/schema.json +++ b/src/rest/data/ghae/schema.json @@ -60914,6 +60914,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -60922,6 +60930,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -61073,6 +61089,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -61152,6 +61175,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -61858,6 +61936,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -61866,6 +61952,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -62017,6 +62111,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -62096,6 +62197,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -62494,6 +62650,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -62503,6 +62668,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -62673,6 +62847,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -62762,6 +62944,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -62965,6 +63209,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -62973,6 +63225,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -63124,6 +63384,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -63203,6 +63470,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -65620,6 +65942,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -65628,6 +65958,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -65779,6 +66117,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -65858,6 +66203,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -66568,6 +66968,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -66576,6 +66984,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -66727,6 +67143,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -66806,6 +67229,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -67514,6 +67992,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -67522,6 +68008,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -67673,6 +68167,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -67752,6 +68253,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -70152,6 +70708,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -70160,6 +70724,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -70311,6 +70883,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -70390,6 +70969,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -72883,6 +73517,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -72891,6 +73533,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -73042,6 +73692,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -73121,6 +73778,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -73769,6 +74481,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -73777,6 +74497,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -73928,6 +74656,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -74007,6 +74742,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -74715,6 +75505,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -74723,6 +75521,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -74874,6 +75680,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -74953,6 +75766,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -115270,7 +116138,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -116121,7 +116989,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -116441,7 +117309,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -116723,7 +117591,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -116909,7 +117777,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -117110,7 +117978,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -150709,6 +151577,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -150717,6 +151593,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -150868,6 +151752,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -150947,6 +151838,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -151654,6 +152600,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -151662,6 +152616,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -151813,6 +152775,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -151892,6 +152861,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -152469,6 +153493,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -152477,6 +153509,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -152628,6 +153668,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -152707,6 +153754,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -260092,6 +261194,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -260100,6 +261210,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -260251,6 +261369,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -260330,6 +261455,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghec-2022-11-28/schema.json b/src/rest/data/ghec-2022-11-28/schema.json index e8e6a24a8c..ca753b8411 100644 --- a/src/rest/data/ghec-2022-11-28/schema.json +++ b/src/rest/data/ghec-2022-11-28/schema.json @@ -5388,7 +5388,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", "enum": [ "none", "user", @@ -5445,7 +5445,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", "isRequired": true, "enum": [ "none", @@ -78288,7 +78288,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -98955,6 +98955,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -98963,6 +98971,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99155,6 +99171,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99234,6 +99257,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99940,6 +100018,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99948,6 +100034,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -100140,6 +100234,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -100219,6 +100320,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -100617,6 +100773,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -100626,6 +100791,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -100842,6 +101016,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -100931,6 +101113,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -101134,6 +101378,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -101142,6 +101394,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -101334,6 +101594,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -101413,6 +101680,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -103154,6 +103476,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -103163,6 +103494,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -103379,6 +103719,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -103468,6 +103816,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -103858,6 +104268,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -103866,6 +104284,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -104058,6 +104484,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104137,6 +104570,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -105259,6 +105747,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -105267,6 +105763,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -105459,6 +105963,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -105538,6 +106049,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106248,6 +106814,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106256,6 +106830,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -106448,6 +107030,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -106527,6 +107116,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -107235,6 +107879,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -107243,6 +107895,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -107435,6 +108095,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -107514,6 +108181,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -109999,6 +110721,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -110007,6 +110737,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -110199,6 +110937,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -110278,6 +111023,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -115688,6 +116488,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -115696,6 +116504,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -115888,6 +116704,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -115967,6 +116790,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -116615,6 +117493,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -116623,6 +117509,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -116815,6 +117709,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -116894,6 +117795,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -164190,7 +165146,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -165074,7 +166030,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -165394,7 +166350,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -165676,7 +166632,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -166634,7 +167590,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -166751,7 +167707,7 @@ } ], "previews": [], - "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -166818,7 +167774,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -167025,7 +167981,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -372863,6 +373819,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -372871,6 +373835,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -373063,6 +374035,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -373142,6 +374121,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghes-3.10-2022-11-28/schema.json b/src/rest/data/ghes-3.10-2022-11-28/schema.json index 58eaec8610..cfabc279a1 100644 --- a/src/rest/data/ghes-3.10-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.10-2022-11-28/schema.json @@ -5601,7 +5601,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", "enum": [ "none", "user", @@ -5658,7 +5658,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", "isRequired": true, "enum": [ "none", @@ -77852,7 +77852,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -98192,6 +98192,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -98200,6 +98208,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -98367,6 +98383,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -98446,6 +98469,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99152,6 +99230,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99160,6 +99246,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99327,6 +99421,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99406,6 +99507,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99804,6 +99960,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -99813,6 +99978,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -100001,6 +100175,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -100090,6 +100272,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -100293,6 +100537,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -100301,6 +100553,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -100468,6 +100728,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -100547,6 +100814,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -102288,6 +102610,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -102297,6 +102628,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -102485,6 +102825,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -102574,6 +102922,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -102964,6 +103374,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -102972,6 +103390,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -103139,6 +103565,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -103218,6 +103651,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -104340,6 +104828,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -104348,6 +104844,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -104515,6 +105019,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104594,6 +105105,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -105304,6 +105870,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -105312,6 +105886,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -105479,6 +106061,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -105558,6 +106147,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106266,6 +106910,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106274,6 +106926,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -106441,6 +107101,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -106520,6 +107187,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -109005,6 +109727,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -109013,6 +109743,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -109180,6 +109918,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -109259,6 +110004,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -111841,6 +112641,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -111849,6 +112657,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -112016,6 +112832,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -112095,6 +112918,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -112743,6 +113621,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -112751,6 +113637,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -112918,6 +113812,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -112997,6 +113898,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -158067,7 +159023,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158951,7 +159907,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159271,7 +160227,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159553,7 +160509,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159809,7 +160765,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159927,7 +160883,7 @@ } ], "previews": [], - "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159994,7 +160950,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -160195,7 +161151,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -214221,6 +215177,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -214229,6 +215193,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -214396,6 +215368,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -214475,6 +215454,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -215495,6 +216529,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -215503,6 +216545,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -215670,6 +216720,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -215749,6 +216806,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -216326,6 +217438,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -216334,6 +217454,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -216501,6 +217629,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -216580,6 +217715,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -324070,6 +325260,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -324078,6 +325276,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -324245,6 +325451,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -324324,6 +325537,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -324977,6 +326245,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -324985,6 +326261,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -325152,6 +326436,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -325231,6 +326522,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -325899,6 +327245,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -325907,6 +327261,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326074,6 +327436,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -326153,6 +327522,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -326733,6 +328157,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -326741,6 +328173,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326908,6 +328348,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -326987,6 +328434,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -327659,6 +329161,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -327667,6 +329177,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -327834,6 +329352,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -327913,6 +329438,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -328494,6 +330074,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -328502,6 +330090,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -328669,6 +330265,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -328748,6 +330351,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -329358,6 +331016,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -329366,6 +331032,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -329533,6 +331207,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -329612,6 +331293,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -330273,6 +332009,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -330281,6 +332025,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -330448,6 +332200,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -330527,6 +332286,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -333253,6 +335067,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -333261,6 +335083,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -333428,6 +335258,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -333507,6 +335344,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghes-3.11-2022-11-28/schema.json b/src/rest/data/ghes-3.11-2022-11-28/schema.json index 631ba29c9b..3abe38f6ca 100644 --- a/src/rest/data/ghes-3.11-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.11-2022-11-28/schema.json @@ -5601,7 +5601,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", "enum": [ "none", "user", @@ -5658,7 +5658,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", "isRequired": true, "enum": [ "none", @@ -77876,7 +77876,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -98216,6 +98216,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -98224,6 +98232,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -98391,6 +98407,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -98470,6 +98493,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99176,6 +99254,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99184,6 +99270,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99351,6 +99445,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99430,6 +99531,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99828,6 +99984,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -99837,6 +100002,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -100025,6 +100199,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -100114,6 +100296,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -100317,6 +100561,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -100325,6 +100577,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -100492,6 +100752,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -100571,6 +100838,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -102312,6 +102634,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -102321,6 +102652,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -102509,6 +102849,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -102598,6 +102946,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -102988,6 +103398,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -102996,6 +103414,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -103163,6 +103589,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -103242,6 +103675,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -104364,6 +104852,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -104372,6 +104868,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -104539,6 +105043,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104618,6 +105129,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -105328,6 +105894,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -105336,6 +105910,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -105503,6 +106085,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -105582,6 +106171,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106290,6 +106934,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106298,6 +106950,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -106465,6 +107125,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -106544,6 +107211,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -109029,6 +109751,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -109037,6 +109767,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -109204,6 +109942,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -109283,6 +110028,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -111865,6 +112665,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -111873,6 +112681,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -112040,6 +112856,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -112119,6 +112942,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -112767,6 +113645,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -112775,6 +113661,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -112942,6 +113836,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -113021,6 +113922,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -158091,7 +159047,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158975,7 +159931,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159295,7 +160251,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159577,7 +160533,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159845,7 +160801,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -159963,7 +160919,7 @@ } ], "previews": [], - "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -160030,7 +160986,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -160231,7 +161187,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -214286,6 +215242,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -214294,6 +215258,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -214461,6 +215433,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -214540,6 +215519,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -215560,6 +216594,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -215568,6 +216610,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -215735,6 +216785,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -215814,6 +216871,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -216391,6 +217503,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -216399,6 +217519,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -216566,6 +217694,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -216645,6 +217780,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -324135,6 +325325,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -324143,6 +325341,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -324310,6 +325516,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -324389,6 +325602,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -325042,6 +326310,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -325050,6 +326326,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -325217,6 +326501,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -325296,6 +326587,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -325964,6 +327310,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -325972,6 +327326,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326139,6 +327501,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -326218,6 +327587,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -326798,6 +328222,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -326806,6 +328238,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326973,6 +328413,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -327052,6 +328499,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -327724,6 +329226,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -327732,6 +329242,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -327899,6 +329417,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -327978,6 +329503,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -328559,6 +330139,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -328567,6 +330155,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -328734,6 +330330,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -328813,6 +330416,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -329423,6 +331081,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -329431,6 +331097,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -329598,6 +331272,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -329677,6 +331358,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -330338,6 +332074,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -330346,6 +332090,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -330513,6 +332265,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -330592,6 +332351,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -333332,6 +335146,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -333340,6 +335162,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -333507,6 +335337,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -333586,6 +335423,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghes-3.7/schema.json b/src/rest/data/ghes-3.7/schema.json index d1483f1025..dd5141a627 100644 --- a/src/rest/data/ghes-3.7/schema.json +++ b/src/rest/data/ghes-3.7/schema.json @@ -73376,7 +73376,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -93145,6 +93145,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -93153,6 +93161,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -93304,6 +93320,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -93383,6 +93406,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -94089,6 +94167,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -94097,6 +94183,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -94248,6 +94342,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -94327,6 +94428,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -94725,6 +94881,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -94734,6 +94899,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -94904,6 +95078,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -94993,6 +95175,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -95196,6 +95440,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -95204,6 +95456,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -95355,6 +95615,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -95434,6 +95701,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -97175,6 +97497,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -97184,6 +97515,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -97354,6 +97694,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -97443,6 +97791,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -97833,6 +98243,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -97841,6 +98259,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -97992,6 +98418,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -98071,6 +98504,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -99193,6 +99681,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99201,6 +99697,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99352,6 +99856,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99431,6 +99942,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -100141,6 +100707,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -100149,6 +100723,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -100300,6 +100882,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -100379,6 +100968,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -101087,6 +101731,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -101095,6 +101747,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -101246,6 +101906,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -101325,6 +101992,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -103810,6 +104532,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -103818,6 +104548,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -103969,6 +104707,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104048,6 +104793,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106626,6 +107426,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106634,6 +107442,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -106785,6 +107601,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -106864,6 +107687,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -107512,6 +108390,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -107520,6 +108406,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -107671,6 +108565,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -107750,6 +108651,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -152057,7 +153013,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

\n

Deprecation notice:\nThe instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by instances_url.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only. GitHub Apps must have the security_events read permission to use this endpoint.

\n

Deprecation notice:\nThe instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by instances_url.

", "statusCodes": [ { "httpStatusCode": "200", @@ -152941,7 +153897,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153261,7 +154217,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153543,7 +154499,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -153729,7 +154685,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -153930,7 +154886,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -199056,6 +200012,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -199064,6 +200028,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -199215,6 +200187,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -199294,6 +200273,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -200314,6 +201348,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -200322,6 +201364,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -200473,6 +201523,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -200552,6 +201609,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -201129,6 +202241,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -201137,6 +202257,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -201288,6 +202416,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -201367,6 +202502,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -308659,6 +309849,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -308667,6 +309865,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -308818,6 +310024,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -308897,6 +310110,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -309550,6 +310818,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -309558,6 +310834,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -309709,6 +310993,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -309788,6 +311079,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -310456,6 +311802,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -310464,6 +311818,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -310615,6 +311977,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -310694,6 +312063,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -311274,6 +312698,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -311282,6 +312714,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -311433,6 +312873,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -311512,6 +312959,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -312184,6 +313686,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -312192,6 +313702,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -312343,6 +313861,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -312422,6 +313947,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -313003,6 +314583,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -313011,6 +314599,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -313162,6 +314758,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -313241,6 +314844,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -313851,6 +315509,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -313859,6 +315525,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -314010,6 +315684,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -314089,6 +315770,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -314750,6 +316486,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -314758,6 +316502,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -314909,6 +316661,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -314988,6 +316747,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -317606,6 +319420,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -317614,6 +319436,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -317765,6 +319595,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -317844,6 +319681,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghes-3.8/schema.json b/src/rest/data/ghes-3.8/schema.json index 36ad7ea73f..5eea262a56 100644 --- a/src/rest/data/ghes-3.8/schema.json +++ b/src/rest/data/ghes-3.8/schema.json @@ -5601,7 +5601,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", "enum": [ "none", "user", @@ -5658,7 +5658,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", "isRequired": true, "enum": [ "none", @@ -76150,7 +76150,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -96178,6 +96178,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -96186,6 +96194,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -96345,6 +96361,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -96424,6 +96447,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -97130,6 +97208,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -97138,6 +97224,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -97297,6 +97391,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -97376,6 +97477,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -97774,6 +97930,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -97783,6 +97948,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -97962,6 +98136,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -98051,6 +98233,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -98254,6 +98498,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -98262,6 +98514,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -98421,6 +98681,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -98500,6 +98767,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -100241,6 +100563,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -100250,6 +100581,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -100429,6 +100769,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -100518,6 +100866,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -100908,6 +101318,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -100916,6 +101334,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -101075,6 +101501,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -101154,6 +101587,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -102276,6 +102764,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -102284,6 +102780,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -102443,6 +102947,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -102522,6 +103033,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -103232,6 +103798,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -103240,6 +103814,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -103399,6 +103981,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -103478,6 +104067,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -104186,6 +104830,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -104194,6 +104846,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -104353,6 +105013,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104432,6 +105099,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -106917,6 +107639,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -106925,6 +107655,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -107084,6 +107822,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -107163,6 +107908,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -109741,6 +110541,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -109749,6 +110557,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -109908,6 +110724,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -109987,6 +110810,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -110635,6 +111513,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -110643,6 +111529,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -110802,6 +111696,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -110881,6 +111782,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -155430,7 +156386,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -156314,7 +157270,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -156634,7 +157590,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -156916,7 +157872,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -157102,7 +158058,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -157303,7 +158259,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -209072,6 +210028,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -209080,6 +210044,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -209239,6 +210211,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -209318,6 +210297,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -210338,6 +211372,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -210346,6 +211388,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -210505,6 +211555,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -210584,6 +211641,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -211161,6 +212273,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -211169,6 +212289,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -211328,6 +212456,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -211407,6 +212542,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -318699,6 +319889,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -318707,6 +319905,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -318866,6 +320072,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -318945,6 +320158,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -319598,6 +320866,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -319606,6 +320882,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -319765,6 +321049,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -319844,6 +321135,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -320512,6 +321858,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -320520,6 +321874,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -320679,6 +322041,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -320758,6 +322127,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -321338,6 +322762,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -321346,6 +322778,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -321505,6 +322945,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -321584,6 +323031,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -322256,6 +323758,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -322264,6 +323774,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -322423,6 +323941,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -322502,6 +324027,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -323083,6 +324663,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -323091,6 +324679,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -323250,6 +324846,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -323329,6 +324932,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -323939,6 +325597,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -323947,6 +325613,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -324106,6 +325780,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -324185,6 +325866,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -324846,6 +326582,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -324854,6 +326598,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -325013,6 +326765,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -325092,6 +326851,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -327760,6 +329574,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -327768,6 +329590,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -327927,6 +329757,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -328006,6 +329843,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/data/ghes-3.9-2022-11-28/schema.json b/src/rest/data/ghes-3.9-2022-11-28/schema.json index e12c5eed4e..df970f8d67 100644 --- a/src/rest/data/ghes-3.9-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.9-2022-11-28/schema.json @@ -5601,7 +5601,7 @@ "properties": { "access_level": { "type": "string", - "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repos only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", + "description": "Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.\n\n`none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. `enterprise` level access allows sharing across the enterprise.", "enum": [ "none", "user", @@ -5658,7 +5658,7 @@ "type": "string", "name": "access_level", "in": "body", - "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repos only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", + "description": "

Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the\nrepository.

\n

none means the access is only possible from workflows in this repository. user level access allows sharing across user owned private repositories only. organization level access allows sharing across the organization. enterprise level access allows sharing across the enterprise.

", "isRequired": true, "enum": [ "none", @@ -76940,7 +76940,7 @@ } ], "previews": [], - "descriptionHTML": "

These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", + "descriptionHTML": "

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.

", "statusCodes": [ { "httpStatusCode": "200", @@ -97210,6 +97210,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -97218,6 +97226,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -97385,6 +97401,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -97464,6 +97487,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -98170,6 +98248,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -98178,6 +98264,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -98345,6 +98439,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -98424,6 +98525,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -98822,6 +98978,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -98831,6 +98996,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -99019,6 +99193,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -99108,6 +99290,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -99311,6 +99555,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -99319,6 +99571,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -99486,6 +99746,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -99565,6 +99832,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -101306,6 +101628,15 @@ "write" ] }, + { + "type": "string", + "name": "codespaces", + "description": "

The level of permission to grant the access token to create, edit, delete, and list Codespaces.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "contents", @@ -101315,6 +101646,15 @@ "write" ] }, + { + "type": "string", + "name": "dependabot_secrets", + "description": "

The leve of permission to grant the access token to manage Dependabot secrets.

", + "enum": [ + "read", + "write" + ] + }, { "type": "string", "name": "deployments", @@ -101503,6 +101843,14 @@ "write" ] }, + { + "type": "string", + "name": "organization_events", + "description": "

The level of permission to grant the access token to view events triggered by an activity in an organization.

", + "enum": [ + "read" + ] + }, { "type": "string", "name": "organization_hooks", @@ -101592,6 +101940,68 @@ "read", "write" ] + }, + { + "type": "string", + "name": "email_addresses", + "description": "

The level of permission to grant the access token to manage the email addresses belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "followers", + "description": "

The level of permission to grant the access token to manage the followers belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "git_ssh_keys", + "description": "

The level of permission to grant the access token to manage git SSH keys.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "gpg_keys", + "description": "

The level of permission to grant the access token to view and manage GPG keys belonging to a user.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "interaction_limits", + "description": "

The level of permission to grant the access token to view and manage interaction limits on a repository.

", + "enum": [ + "read", + "write" + ] + }, + { + "type": "string", + "name": "profile", + "description": "

The level of permission to grant the access token to manage the profile settings belonging to a user.

", + "enum": [ + "write" + ] + }, + { + "type": "string", + "name": "starring", + "description": "

The level of permission to grant the access token to list and manage repositories a user is starring.

", + "enum": [ + "read", + "write" + ] } ] } @@ -101982,6 +102392,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -101990,6 +102408,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -102157,6 +102583,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -102236,6 +102669,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -103358,6 +103846,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -103366,6 +103862,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -103533,6 +104037,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -103612,6 +104123,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -104322,6 +104888,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -104330,6 +104904,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -104497,6 +105079,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -104576,6 +105165,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -105284,6 +105928,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -105292,6 +105944,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -105459,6 +106119,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -105538,6 +106205,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -108023,6 +108745,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -108031,6 +108761,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -108198,6 +108936,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -108277,6 +109022,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -110855,6 +111655,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -110863,6 +111671,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -111030,6 +111846,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -111109,6 +111932,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -111757,6 +112635,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -111765,6 +112651,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -111932,6 +112826,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -112011,6 +112912,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -156804,7 +157760,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -157688,7 +158644,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Lists all instances of the specified code scanning alert.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158008,7 +158964,7 @@ } ], "previews": [], - "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", + "descriptionHTML": "

Lists the details of all code scanning analyses for a repository,\nstarting with the most recent.\nThe response is paginated and you can use the page and per_page parameters\nto list the analyses you're interested in.\nBy default 30 analyses are listed per page.

\n

The rules_count field in the response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

You must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

Deprecation notice:\nThe tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158290,7 +159246,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repos,\nthe public_repo scope also grants permission to read security events on public repos only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", + "descriptionHTML": "

Gets a specified code scanning analysis for a repository.\nYou must use an access token with the security_events scope to use this endpoint with private repositories,\nthe public_repo scope also grants permission to read security events on public repositories only.

\n

The default JSON response contains fields that describe the analysis.\nThis includes the Git reference and commit SHA to which the analysis relates,\nthe datetime of the analysis, the name of the code scanning tool,\nand the number of alerts.

\n

The rules_count field in the default response give the number of rules\nthat were run in the analysis.\nFor very old analyses this data is not available,\nand 0 is returned in this field.

\n

If you use the Accept header application/sarif+json,\nthe response contains the analysis data that was uploaded.\nThis is formatted as\nSARIF version 2.1.0.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158546,7 +159502,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Gets a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158658,7 +159614,7 @@ } ], "previews": [], - "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repos or the public_repo\nscope for public repos.

", + "descriptionHTML": "

Updates a code scanning default setup configuration.\nYou must use an access token with the repo scope to use this endpoint with private repositories or the public_repo\nscope for public repositories.

", "statusCodes": [ { "httpStatusCode": "200", @@ -158725,7 +159681,7 @@ "type": "string", "name": "ref", "in": "body", - "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/pull/<number>/merge, or refs/pull/<number>/head.

", + "description": "

The full Git reference, formatted as refs/heads/<branch name>,\nrefs/tags/<tag>, refs/pull/<number>/merge, or refs/pull/<number>/head.

", "isRequired": true }, { @@ -158926,7 +159882,7 @@ } ], "previews": [], - "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only.

", + "descriptionHTML": "

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see \"Get a code scanning analysis for a repository.\" You must use an access token with the security_events scope to use this endpoint with private repositories, the public_repo scope also grants permission to read security events on public repositories only.

", "statusCodes": [ { "httpStatusCode": "200", @@ -211693,6 +212649,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -211701,6 +212665,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -211868,6 +212840,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -211947,6 +212926,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -212967,6 +214001,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -212975,6 +214017,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -213142,6 +214192,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -213221,6 +214278,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -213798,6 +214910,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -213806,6 +214926,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -213973,6 +215101,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -214052,6 +215187,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -321454,6 +322644,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -321462,6 +322660,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -321629,6 +322835,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -321708,6 +322921,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -322361,6 +323629,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -322369,6 +323645,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -322536,6 +323820,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -322615,6 +323906,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -323283,6 +324629,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -323291,6 +324645,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -323458,6 +324820,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -323537,6 +324906,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -324117,6 +325541,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -324125,6 +325557,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -324292,6 +325732,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -324371,6 +325818,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -325043,6 +326545,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -325051,6 +326561,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -325218,6 +326736,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -325297,6 +326822,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -325878,6 +327458,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -325886,6 +327474,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326053,6 +327649,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -326132,6 +327735,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -326742,6 +328400,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -326750,6 +328416,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -326917,6 +328591,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -326996,6 +328677,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -327657,6 +329393,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -327665,6 +329409,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -327832,6 +329584,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -327911,6 +329670,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { @@ -330637,6 +332451,14 @@ "write" ] }, + "codespaces": { + "type": "string", + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, "contents": { "type": "string", "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", @@ -330645,6 +332467,14 @@ "write" ] }, + "dependabot_secrets": { + "type": "string", + "description": "The leve of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] + }, "deployments": { "type": "string", "description": "The level of permission to grant the access token for deployments and deployment statuses.", @@ -330812,6 +332642,13 @@ "write" ] }, + "organization_events": { + "type": "string", + "description": "The level of permission to grant the access token to view events triggered by an activity in an organization.", + "enum": [ + "read" + ] + }, "organization_hooks": { "type": "string", "description": "The level of permission to grant the access token to manage the post-receive hooks for an organization.", @@ -330891,6 +332728,61 @@ "read", "write" ] + }, + "email_addresses": { + "type": "string", + "description": "The level of permission to grant the access token to manage the email addresses belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "followers": { + "type": "string", + "description": "The level of permission to grant the access token to manage the followers belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "git_ssh_keys": { + "type": "string", + "description": "The level of permission to grant the access token to manage git SSH keys.", + "enum": [ + "read", + "write" + ] + }, + "gpg_keys": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage GPG keys belonging to a user.", + "enum": [ + "read", + "write" + ] + }, + "interaction_limits": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage interaction limits on a repository.", + "enum": [ + "read", + "write" + ] + }, + "profile": { + "type": "string", + "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", + "enum": [ + "write" + ] + }, + "starring": { + "type": "string", + "description": "The level of permission to grant the access token to list and manage repositories a user is starring.", + "enum": [ + "read", + "write" + ] } }, "example": { diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 712bc9f08c..7bd8e350ff 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -39,5 +39,5 @@ ] } }, - "sha": "6922a6cfe785e1069e93d6e501805cf6e1891076" + "sha": "1fd29675070876e3278e71b47f4f2606601bc698" } \ No newline at end of file diff --git a/src/webhooks/data/fpt/schema.json b/src/webhooks/data/fpt/schema.json index 215e1a2e81..109a454fcc 100644 --- a/src/webhooks/data/fpt/schema.json +++ b/src/webhooks/data/fpt/schema.json @@ -15323,7 +15323,7 @@ }, "dependabot_alert": { "auto_dismissed": { - "descriptionHtml": "

A Dependabot alert was automatically closed.

", + "descriptionHtml": "

A Dependabot alert was automatically closed by a Dependabot auto-triage rule.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15905,7 +15905,7 @@ "category": "dependabot_alert" }, "auto_reopened": { - "descriptionHtml": "

A Dependabot alert was automatically reopened.

", + "descriptionHtml": "

A Dependabot alert, that had been automatically closed by a Dependabot auto-triage rule, was automatically reopened because the alert metadata or rule changed.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -86995,8 +86995,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87277,8 +87277,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87536,8 +87536,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87796,8 +87796,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88078,8 +88078,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88363,8 +88363,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88628,8 +88628,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88893,8 +88893,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89157,8 +89157,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89455,8 +89455,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89722,8 +89722,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89843,8 +89843,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89964,8 +89964,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -90107,8 +90107,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -208914,7 +208914,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -209149,8 +209149,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -209386,7 +209386,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghae/schema.json b/src/webhooks/data/ghae/schema.json index 7c0c8bf359..7a214a420d 100644 --- a/src/webhooks/data/ghae/schema.json +++ b/src/webhooks/data/ghae/schema.json @@ -14895,7 +14895,7 @@ }, "dependabot_alert": { "auto_dismissed": { - "descriptionHtml": "

A Dependabot alert was automatically closed.

", + "descriptionHtml": "

A Dependabot alert was automatically closed by a Dependabot auto-triage rule.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15477,7 +15477,7 @@ "category": "dependabot_alert" }, "auto_reopened": { - "descriptionHtml": "

A Dependabot alert was automatically reopened.

", + "descriptionHtml": "

A Dependabot alert, that had been automatically closed by a Dependabot auto-triage rule, was automatically reopened because the alert metadata or rule changed.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -81516,8 +81516,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -81798,8 +81798,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -82057,8 +82057,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -82317,8 +82317,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -82599,8 +82599,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -82884,8 +82884,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83149,8 +83149,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83414,8 +83414,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83678,8 +83678,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83976,8 +83976,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84243,8 +84243,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84364,8 +84364,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84485,8 +84485,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84628,8 +84628,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghec/schema.json b/src/webhooks/data/ghec/schema.json index 677b005ac3..0ab045d841 100644 --- a/src/webhooks/data/ghec/schema.json +++ b/src/webhooks/data/ghec/schema.json @@ -15387,7 +15387,7 @@ }, "dependabot_alert": { "auto_dismissed": { - "descriptionHtml": "

A Dependabot alert was automatically closed.

", + "descriptionHtml": "

A Dependabot alert was automatically closed by a Dependabot auto-triage rule.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15969,7 +15969,7 @@ "category": "dependabot_alert" }, "auto_reopened": { - "descriptionHtml": "

A Dependabot alert was automatically reopened.

", + "descriptionHtml": "

A Dependabot alert, that had been automatically closed by a Dependabot auto-triage rule, was automatically reopened because the alert metadata or rule changed.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -87059,8 +87059,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87341,8 +87341,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87600,8 +87600,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -87860,8 +87860,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88142,8 +88142,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88427,8 +88427,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88692,8 +88692,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -88957,8 +88957,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89221,8 +89221,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89519,8 +89519,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89786,8 +89786,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -89907,8 +89907,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -90028,8 +90028,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -90171,8 +90171,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -208978,7 +208978,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -209213,8 +209213,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -209450,7 +209450,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.10/schema.json b/src/webhooks/data/ghes-3.10/schema.json index 6edd629bdf..50c76058b3 100644 --- a/src/webhooks/data/ghes-3.10/schema.json +++ b/src/webhooks/data/ghes-3.10/schema.json @@ -83026,8 +83026,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83308,8 +83308,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83567,8 +83567,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83827,8 +83827,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84109,8 +84109,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84394,8 +84394,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84659,8 +84659,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84924,8 +84924,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85188,8 +85188,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85486,8 +85486,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85753,8 +85753,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85874,8 +85874,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85995,8 +85995,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -86138,8 +86138,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -191036,7 +191036,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -191271,8 +191271,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -191508,7 +191508,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.11/schema.json b/src/webhooks/data/ghes-3.11/schema.json index e358e43503..9fe3102094 100644 --- a/src/webhooks/data/ghes-3.11/schema.json +++ b/src/webhooks/data/ghes-3.11/schema.json @@ -83155,8 +83155,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83437,8 +83437,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83696,8 +83696,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -83956,8 +83956,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84238,8 +84238,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84523,8 +84523,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -84788,8 +84788,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85053,8 +85053,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85317,8 +85317,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85615,8 +85615,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -85882,8 +85882,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -86003,8 +86003,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -86124,8 +86124,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -86267,8 +86267,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -195690,7 +195690,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -195925,8 +195925,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -196162,7 +196162,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.7/schema.json b/src/webhooks/data/ghes-3.7/schema.json index aee1efe2ab..0ae4799e2d 100644 --- a/src/webhooks/data/ghes-3.7/schema.json +++ b/src/webhooks/data/ghes-3.7/schema.json @@ -76438,8 +76438,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -76720,8 +76720,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -76979,8 +76979,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77239,8 +77239,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77521,8 +77521,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77806,8 +77806,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78071,8 +78071,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78336,8 +78336,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78600,8 +78600,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78898,8 +78898,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79165,8 +79165,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79286,8 +79286,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79407,8 +79407,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79550,8 +79550,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -181725,7 +181725,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -181960,8 +181960,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -182197,7 +182197,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.8/schema.json b/src/webhooks/data/ghes-3.8/schema.json index ff1b0ca103..5da55d5eea 100644 --- a/src/webhooks/data/ghes-3.8/schema.json +++ b/src/webhooks/data/ghes-3.8/schema.json @@ -76438,8 +76438,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -76720,8 +76720,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -76979,8 +76979,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77239,8 +77239,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77521,8 +77521,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -77806,8 +77806,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78071,8 +78071,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78336,8 +78336,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78600,8 +78600,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78898,8 +78898,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79165,8 +79165,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79286,8 +79286,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79407,8 +79407,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79550,8 +79550,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -181761,7 +181761,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -181996,8 +181996,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -182233,7 +182233,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.9/schema.json b/src/webhooks/data/ghes-3.9/schema.json index 1f9f4bf4a0..735a516fd0 100644 --- a/src/webhooks/data/ghes-3.9/schema.json +++ b/src/webhooks/data/ghes-3.9/schema.json @@ -77808,8 +77808,8 @@ }, "project_card": { "converted": { - "descriptionHtml": "

A note in a classic project was converted to an issue.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note in a project (classic) was converted to an issue.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78090,8 +78090,8 @@ "category": "project_card" }, "created": { - "descriptionHtml": "

A card was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78349,8 +78349,8 @@ "category": "project_card" }, "deleted": { - "descriptionHtml": "

A card on a classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78609,8 +78609,8 @@ "category": "project_card" }, "edited": { - "descriptionHtml": "

A note on a classic project was edited.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A note on a project (classic) was edited.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -78891,8 +78891,8 @@ "category": "project_card" }, "moved": { - "descriptionHtml": "

A card on a classic project was moved to another column or to another position in its column.

", - "summaryHtml": "

This event occurs when there is activity relating to a card on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a column on a project, use the project and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A card on a project (classic) was moved to another column or to another position in its column.

", + "summaryHtml": "

This event occurs when there is activity relating to a card on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a column on a project (classic), use the project and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79176,8 +79176,8 @@ }, "project": { "closed": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79441,8 +79441,8 @@ "category": "project" }, "created": { - "descriptionHtml": "

A classic project was created.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was created.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79706,8 +79706,8 @@ "category": "project" }, "deleted": { - "descriptionHtml": "

A classic project was deleted.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was deleted.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -79970,8 +79970,8 @@ "category": "project" }, "edited": { - "descriptionHtml": "

The name or description of a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name or description of a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -80268,8 +80268,8 @@ "category": "project" }, "reopened": { - "descriptionHtml": "

A classic project was closed.

", - "summaryHtml": "

This event occurs when there is activity relating to a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project, use the project_card and project_column event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A project (classic) was closed.

", + "summaryHtml": "

This event occurs when there is activity relating to a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a card or column on a project (classic), use the project_card and project_column event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -80535,8 +80535,8 @@ }, "project_column": { "created": { - "descriptionHtml": "

A column was added to a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was added to a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -80656,8 +80656,8 @@ "category": "project_column" }, "deleted": { - "descriptionHtml": "

A column was deleted from a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was deleted from a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -80777,8 +80777,8 @@ "category": "project_column" }, "edited": { - "descriptionHtml": "

The name of a column on a classic project was changed.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

The name of a column on a project (classic) was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -80920,8 +80920,8 @@ "category": "project_column" }, "moved": { - "descriptionHtml": "

A column was moved to a new position on a classic project.

", - "summaryHtml": "

This event occurs when there is activity relating to a column on a classic project. For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project or a card on a project, use the project and project_card event. For activity relating to Projects instead of Projects (classic), use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", + "descriptionHtml": "

A column was moved to a new position on a project (classic).

", + "summaryHtml": "

This event occurs when there is activity relating to a column on a project (classic). For more information, see \"About projects (classic).\" For information about the API to manage classic projects, see the GraphQL API documentation or \"Projects (classic)\" in the REST API documentation.

\n

For activity relating to a project (classic) or a card on a project (classic), use the project and project_card event.

\n

This event relates to projects (classic) only. For activity relating to the new Projects experience, use the projects_v2 event instead.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Projects\" repository or organization permission.

", "bodyParameters": [ { "type": "string", @@ -185788,7 +185788,7 @@ "security_advisory": { "published": { "descriptionHtml": "

A security advisory was published to the GitHub community.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -186023,8 +186023,8 @@ "category": "security_advisory" }, "updated": { - "descriptionHtml": "

The metadata or description of a security advisory was changed, or the security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "descriptionHtml": "

The metadata or description of a security advisory was changed.

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", @@ -186260,7 +186260,7 @@ }, "withdrawn": { "descriptionHtml": "

A previously published security advisory was withdrawn.

", - "summaryHtml": "

This event occurs when there is activity relating to a security advisory that was reviewed by GitHub. A GitHub-reviewed security advisory provides information about security-related vulnerabilities in software on GitHub. For more information about security advisories, see \"About GitHub Security Advisories for repositories.\" For information about the API to manage security advisories, see the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", + "summaryHtml": "

This event occurs when there is activity relating to a global security advisory that was reviewed by GitHub. A GitHub-reviewed global security advisory provides information about security vulnerabilities or malware that have been mapped to packages in ecosystems we support. For more information about global security advisories, see \"About global security advisories.\" For information about the API to manage security advisories, see the REST API documentation or the GraphQL documentation.

\n

GitHub Dependabot alerts are also powered by the security advisory dataset. For more information, see \"About Dependabot alerts.\"

", "bodyParameters": [ { "type": "string", diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index 90eac32a5c..ab65b89815 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "6922a6cfe785e1069e93d6e501805cf6e1891076" + "sha": "1fd29675070876e3278e71b47f4f2606601bc698" } \ No newline at end of file From d70b85e29573f2c012ee1eca1a8e68c0733def71 Mon Sep 17 00:00:00 2001 From: Mark Maxwell <138938022+mark-mxwl@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:52:46 -0800 Subject: [PATCH 49/71] Update improve-existing-docs.yaml (#30442) --- .github/ISSUE_TEMPLATE/improve-existing-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/improve-existing-docs.yaml b/.github/ISSUE_TEMPLATE/improve-existing-docs.yaml index e53ce2725e..716b76f015 100644 --- a/.github/ISSUE_TEMPLATE/improve-existing-docs.yaml +++ b/.github/ISSUE_TEMPLATE/improve-existing-docs.yaml @@ -18,7 +18,7 @@ body: label: Code of Conduct description: This project has a Code of Conduct that all participants are expected to understand and follow. options: - - label: I have read and agree to the GitHub Docs project's [Code of Conduct](https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md) + - label: I have read and agree to the GitHub Docs project's [Code of Conduct](https://github.com/github/docs/blob/main/.github/CODE_OF_CONDUCT.md) required: true - type: textarea From 9cba58d45c013efec04b5abea5f327ce815468ba Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Fri, 8 Dec 2023 15:12:33 -0500 Subject: [PATCH 50/71] Remove DD_HOSTNAME (#47503) --- src/workflows/docker-compose.prod.tmpl.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/workflows/docker-compose.prod.tmpl.yaml b/src/workflows/docker-compose.prod.tmpl.yaml index 20c43a86ee..8d48940906 100644 --- a/src/workflows/docker-compose.prod.tmpl.yaml +++ b/src/workflows/docker-compose.prod.tmpl.yaml @@ -30,5 +30,4 @@ services: DD_API_KEY: ${DD_API_KEY} DD_AGENT_HOST: datadog-agent DD_HISTOGRAM_PERCENTILES: 0.99 0.95 0.50 - DD_HOSTNAME: docs.github.com DD_HOSTNAME_TRUST_UTS_NAMESPACE: true From daa505836bed34a31058f7cb04840f200ba796b5 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Fri, 8 Dec 2023 15:36:38 -0500 Subject: [PATCH 51/71] Alias test-local-dev (#47506) --- .github/workflows/local-dev.yml | 2 +- package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/local-dev.yml b/.github/workflows/local-dev.yml index 56d621f32b..e57db89b7e 100644 --- a/.github/workflows/local-dev.yml +++ b/.github/workflows/local-dev.yml @@ -38,7 +38,7 @@ jobs: curl --fail --retry-connrefused --retry 5 http://localhost:4000/ - name: Run basic tests - run: node src/workflows/test-local-dev.js + run: npm run test-local-dev - if: ${{ failure() }} name: Debug server outputs on errors diff --git a/package.json b/package.json index 0c8d82a4bf..a3f06cec11 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "sync-search-server": "cross-env NODE_ENV=production PORT=4002 MINIMAL_RENDER=true CHANGELOG_DISABLED=true node src/frame/server.js", "sync-webhooks": "src/rest/scripts/update-files.js -o webhooks", "test": "cross-env NODE_OPTIONS='--max_old_space_size=4096 --experimental-vm-modules' jest --logHeapUsage", + "test-local-dev": "node src/workflows/test-local-dev.js", "test-moved-content": "tsx src/content-render/scripts/test-moved-content.ts", "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage", "toggle-ghae-feature-flags": "node src/versions/scripts/toggle-ghae-feature-flags.js", From 2636cde0e07708ca52647f5761e4124c6bebf974 Mon Sep 17 00:00:00 2001 From: Steve Guntrip Date: Fri, 8 Dec 2023 21:49:17 +0000 Subject: [PATCH 52/71] Recommended templates and new template dialog (#44976) Co-authored-by: github-actions Co-authored-by: Felicity Chapman Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../help/projects-v2/rec-template-handle.png | Bin 0 -> 21685 bytes .../help/projects-v2/rec-template-select.png | Bin 0 -> 52643 bytes ...-project-templates-in-your-organization.md | 53 +++++++++++++----- .../projects-v2-org-templates-GA-updates.yml | 5 ++ data/reusables/projects/create-project.md | 11 +++- .../reusables/projects/create-user-project.md | 11 +++- .../projects/org-templates-release-stage.md | 2 + data/reusables/projects/org-templates.md | 2 +- 8 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 assets/images/help/projects-v2/rec-template-handle.png create mode 100644 assets/images/help/projects-v2/rec-template-select.png create mode 100644 data/features/projects-v2-org-templates-GA-updates.yml diff --git a/assets/images/help/projects-v2/rec-template-handle.png b/assets/images/help/projects-v2/rec-template-handle.png new file mode 100644 index 0000000000000000000000000000000000000000..960634bf04488a84f8844597ac87d148ff8c6891 GIT binary patch literal 21685 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 WolF@4^j8MR^U{Rqs+K9=5C0z;Djui+ literal 0 HcmV?d00001 diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md index f3af0c566f..bd37f164a5 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md @@ -17,24 +17,13 @@ allowTitleToDifferFromFilename: true You can {% ifversion projects-v2-org-templates-improvements %}create a template, or {% endif %}set a project as a template{% ifversion projects-v2-org-templates-improvements %},{% endif %} to share a pre-configured project with other people in your organization which they can then use as the base for their projects. -The projects you have marked as templates are made available in the "Select a template" pop-up window when other people create projects in your organization. +The projects you mark as templates are shown in the "Create a project" dialog when anyone creates a project in your organization. {% ifversion projects-v2-org-templates-GA-updates %}You can also configure up to six templates to recommend to your organization's members.{% endif %} When someone creates a project from a template, the {% data reusables.projects.what-gets-copied %} are copied from the template to the new project. {% ifversion projects-v2-org-templates-improvements %}You can find the template that a project used from the project's settings page, under the "Templates" section.{% endif %} {% ifversion projects-v2-org-templates-improvements %} -## Creating templates - -{% else %} - -## Setting a project as a template - -{% endif %} - -{% ifversion projects-v2-org-templates-improvements %} -You can either create a new template directly, or you can set a project as a template. - -### Creating a new template +## Creating a new template {% data reusables.profile.access_org %} {% data reusables.user-settings.access_org %} @@ -42,9 +31,10 @@ You can either create a new template directly, or you can set a project as a tem {% data reusables.projects.templates-tab %} 1. Click **New template**. -### Setting a project as a template - {% endif %} + +## Setting a project as a template + If you have admin permissions for a project in your organization, you can set the project as a template and make it available for others in your organization to use. {% data reusables.projects.project-settings %} @@ -83,6 +73,39 @@ If you have write or admin permissions for a project in your organization, you c {% data reusables.projects.project-settings %} 1. In the "Templates" section, click {% octicon "duplicate" aria-hidden="true" %} **Copy as template**. +{% ifversion projects-v2-org-templates-GA-updates %} + +## Configuring recommended templates + +If you are an organization owner, you can select up to six templates to recommend to your organization's members. These recommended templates are suggested first when an organization member creates a new project. + +### Choosing which templates to recommend + +You can add up to six templates to your organization's recommended templates. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. Under "Recommended templates", click **Customize recommended templates**. +1. In the list of templates owned by your organization, select up to six templates that you want to recommend to your members. + + ![Screenshot of the recommended template selection modal.](/assets/images/help/projects-v2/rec-template-select.png) + +1. Click **Save**. + +### Arranging your recommended templates + +You can change the display order of your recommended templates in the "Create project" dialog. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. Under "Recommended templates", find the template you want to reposition, click on {% octicon "grabber" aria-label="Drag to reorder" %}, and drag the template to the new position. + + ![Screenshot of an organization's recommended templates settings. The 'Drag to reorder' handle is highlighted with an orange outline.](/assets/images/help/projects-v2/rec-template-handle.png) + +{% endif %} + ## Further reading - "[AUTOTITLE](/issues/planning-and-tracking-with-projects/creating-projects/creating-a-project)" diff --git a/data/features/projects-v2-org-templates-GA-updates.yml b/data/features/projects-v2-org-templates-GA-updates.yml new file mode 100644 index 0000000000..bd7ef2c129 --- /dev/null +++ b/data/features/projects-v2-org-templates-GA-updates.yml @@ -0,0 +1,5 @@ +# Issue 11855 +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.12' diff --git a/data/reusables/projects/create-project.md b/data/reusables/projects/create-project.md index 97de3caff3..53502504eb 100644 --- a/data/reusables/projects/create-project.md +++ b/data/reusables/projects/create-project.md @@ -4,9 +4,18 @@ ![Screenshot showing profile tabs. The 'Projects' tab is highlighted with an orange outline.](/assets/images/help/projects-v2/tab-projects.png) 1. Click **New project**. +{%- ifversion projects-v2-org-templates-GA-updates %} +1. Select which type of project or template you want to use. + - To create a blank project, under "Start from scratch", click **Table**{% ifversion projects-v2-roadmaps %}, **Roadmap**,{% endif %} or **Board**. + - To create a project from a template, click the template you want to use. You can select from the built-in templates curated by {% data variables.product.company_short %}, the templates created by your organization, and the recommended templates that have been chosen by your organization. +1. Optionally, if you selected a template, review the fields, views, workflows, and insights that will be created. +1. In the text box under "Project name", type a name for your new project. +1. Click **Create project**. +{%- else %} 1. Optionally, in the text box under "Project name", type a name for your new project. ![Screenshot showing the template selection modal. The title field is highlighted with an orange outline.](/assets/images/help/projects-v2/projects-select-template-title.png) -1. Click a {% ifversion projects-v2-org-templates %}built-in template, a template from your organization{% else %}template{% endif %} or, to start with an empty project, click **Table** or **Board**. +1. Click a {% ifversion projects-v2-org-templates %}built-in template, a template from your organization{% else %}template{% endif %} or, to start with an empty project, click **Table**{% ifversion projects-v2-roadmaps %}, **Roadmap**,{% endif %} or **Board**. 1. Click **Create**. +{%- endif %} diff --git a/data/reusables/projects/create-user-project.md b/data/reusables/projects/create-user-project.md index 6ad7a3f1d2..6bf18cb527 100644 --- a/data/reusables/projects/create-user-project.md +++ b/data/reusables/projects/create-user-project.md @@ -4,9 +4,18 @@ ![Screenshot showing profile tabs. The 'Projects' tab is highlighted with an orange outline.](/assets/images/help/projects-v2/tab-projects.png) 1. Click **New project**. +{%- ifversion projects-v2-org-templates-GA-updates %} +1. Select which type of project or template you want to use. + - To create a blank project, under "Start from scratch", click **Table**{% ifversion projects-v2-roadmaps %}, **Roadmap**,{% endif %} or **Board**. + - To create a project from a template, click the built-in template that you want to use. +1. Optionally, if you selected a template, review the fields, views, workflows, and insights that will be created. +1. In the text box under "Project name", type a name for your new project. +1. Click **Create project**. +{%- else %} 1. Optionally, in the text box under "Project name", type a name for your new project. ![Screenshot showing the template selection modal. The title field is highlighted with an orange outline.](/assets/images/help/projects-v2/projects-select-template-title.png) -1. Click a template or, to start with an empty project, click **Table** or **Board**. +1. Click a {% ifversion projects-v2-org-templates %}built-in template, a template from your organization{% else %}template{% endif %} or, to start with an empty project, click **Table**{% ifversion projects-v2-roadmaps %}, **Roadmap**,{% endif %} or **Board**. 1. Click **Create**. +{%- endif %} diff --git a/data/reusables/projects/org-templates-release-stage.md b/data/reusables/projects/org-templates-release-stage.md index de91a586a0..4db9493e72 100644 --- a/data/reusables/projects/org-templates-release-stage.md +++ b/data/reusables/projects/org-templates-release-stage.md @@ -1,5 +1,7 @@ +{% ifversion projects-v2-org-templates-GA-updates %}{% else %} {% note %} **Note:** Project templates for organizations is currently in public beta and subject to change. {% endnote %} +{% endif %} diff --git a/data/reusables/projects/org-templates.md b/data/reusables/projects/org-templates.md index e277b6256f..6b12748362 100644 --- a/data/reusables/projects/org-templates.md +++ b/data/reusables/projects/org-templates.md @@ -1 +1 @@ -You can also set projects in your organization as templates that other organization members can then use as the base for the projects they create. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization)." +You can also set projects in your organization as templates{% ifversion projects-v2-org-templates-GA-updates %}, and curate a list of recommended templates to highlight, {% endif %} that other organization members can then use as the base for the projects they create. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization)." From 8f944339fccbabf3014c3e608a4f71a753e1ee95 Mon Sep 17 00:00:00 2001 From: Steve Guntrip Date: Fri, 8 Dec 2023 22:23:29 +0000 Subject: [PATCH 53/71] Project org templates GA (#37606) Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- data/reusables/projects/org-templates-release-stage.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data/reusables/projects/org-templates-release-stage.md b/data/reusables/projects/org-templates-release-stage.md index 4db9493e72..3583a9591c 100644 --- a/data/reusables/projects/org-templates-release-stage.md +++ b/data/reusables/projects/org-templates-release-stage.md @@ -1,7 +1,9 @@ -{% ifversion projects-v2-org-templates-GA-updates %}{% else %} +{% ifversion ghes = 3.10 or ghes = 3.11 %} + {% note %} **Note:** Project templates for organizations is currently in public beta and subject to change. {% endnote %} + {% endif %} From 7b3b25beb79d6d75236edf26ae0621a805b0ed3a Mon Sep 17 00:00:00 2001 From: Grace Park Date: Fri, 8 Dec 2023 14:31:03 -0800 Subject: [PATCH 54/71] Search button fix (#47514) --- src/search/components/Search.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/search/components/Search.tsx b/src/search/components/Search.tsx index f966ae0898..4f40718e2a 100644 --- a/src/search/components/Search.tsx +++ b/src/search/components/Search.tsx @@ -92,6 +92,7 @@ export function Search() { aria-label="Search" icon={SearchIcon} sx={{ borderTopLeftRadius: 'unset', borderBottomLeftRadius: 'unset' }} + type="submit" /> From 5a3d8cc989d499ea3a610f8889fd8ec58e1efab2 Mon Sep 17 00:00:00 2001 From: Tali Herzka Date: Fri, 8 Dec 2023 17:46:55 -0800 Subject: [PATCH 55/71] For early access PR #273 (#47449) From 521f4af42cd4e6721320237bae43628ce8c0ac71 Mon Sep 17 00:00:00 2001 From: Lili <92824518+queenofcorgis@users.noreply.github.com> Date: Mon, 11 Dec 2023 04:00:36 -0500 Subject: [PATCH 56/71] Update about-teams.md (#30444) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../organizations/organizing-members-into-teams/about-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/organizations/organizing-members-into-teams/about-teams.md b/content/organizations/organizing-members-into-teams/about-teams.md index dbdc750a7b..1efe1c9d15 100644 --- a/content/organizations/organizing-members-into-teams/about-teams.md +++ b/content/organizations/organizing-members-into-teams/about-teams.md @@ -16,7 +16,7 @@ topics: ## About teams -You can use teams to manage access for people in an organization, and for sending notifications. Organization owners and team maintainers can give teams admin, read, or write access to organization repositories. Organization members can send a notification to an entire team by mentioning the team's name. +You can use teams to manage access for people in an organization, and for sending notifications. Organization owners and team maintainers can give teams admin, read, or write access to organization repositories. Organization members can send a notification to an entire team by mentioning the team's name. Teams can only be made up of members of your organization, outside collaborators are unable to be on a team. {% ifversion team-mentions-setting %}Organization owners and team maintainers can disable team notifications. For more information, see "[AUTOTITLE](/organizations/organizing-members-into-teams/configuring-team-notifications)."{% endif %} From 78a322f38911b4075b852efa8bc21914b95772a4 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 07:38:08 -0500 Subject: [PATCH 57/71] Remove indent from procedural inline images (#47414) --- src/content-render/stylesheets/images.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content-render/stylesheets/images.scss b/src/content-render/stylesheets/images.scss index 59fb8261be..352b83908e 100644 --- a/src/content-render/stylesheets/images.scss +++ b/src/content-render/stylesheets/images.scss @@ -1,7 +1,7 @@ .markdown-body .procedural-image-wrapper { display: block; padding: 1rem 0; - margin: 1rem auto 0 auto; + margin: 1rem 0; border: none; max-width: calc(100% - 2rem); From 88b093a0f8a29813613b4831c350d63c240746e5 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Mon, 11 Dec 2023 04:42:50 -0800 Subject: [PATCH 58/71] remove unused reference to fr board (#47517) --- .github/workflows/check-broken-links-github-github.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-broken-links-github-github.yml b/.github/workflows/check-broken-links-github-github.yml index e0fe49d49f..848c231152 100644 --- a/.github/workflows/check-broken-links-github-github.yml +++ b/.github/workflows/check-broken-links-github-github.yml @@ -19,7 +19,6 @@ jobs: env: # need to use a token from a user with access to github/github for this step GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_WRITEORG_PROJECT }} - FIRST_RESPONDER_PROJECT: Docs content first responder REPORT_AUTHOR: docs-bot REPORT_LABEL: github github broken link report REPORT_REPOSITORY: github/docs-content From e3cddc582f06543a69129e08324e3026747662ce Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 08:29:38 -0500 Subject: [PATCH 59/71] Disable Next.js telemetry in CI testing of local dev (#47513) --- .github/workflows/local-dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/local-dev.yml b/.github/workflows/local-dev.yml index e57db89b7e..fb5f305047 100644 --- a/.github/workflows/local-dev.yml +++ b/.github/workflows/local-dev.yml @@ -28,6 +28,9 @@ jobs: # Note that we don't check out docs-early-access, Elasticsearch, # or any remote translations. Nothing fancy here! + - name: Disable Next.js telemetry + run: npx next telemetry disable + - name: Start server in the background run: npm start > /tmp/stdout.log 2> /tmp/stderr.log & From a2bceb3164077e1f40b266435fcbb450a12a2220 Mon Sep 17 00:00:00 2001 From: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:37:47 +0000 Subject: [PATCH 60/71] Adds AUTHOR_LOGIN test for docs-bot (#47499) --- .github/workflows/ready-for-doc-review.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ready-for-doc-review.yml b/.github/workflows/ready-for-doc-review.yml index 4d8d610af1..958ee59a60 100644 --- a/.github/workflows/ready-for-doc-review.yml +++ b/.github/workflows/ready-for-doc-review.yml @@ -35,6 +35,14 @@ jobs: - name: Install dependencies run: npm install @octokit/graphql + - name: Set AUTHOR_LOGIN + run: | + if [[ "${{ github.event.pull_request.assignee.login && github.event.pull_request.user.login == 'docs-bot' }}" ]]; then + echo "AUTHOR_LOGIN=${{ github.event.pull_request.assignee.login }}" >> $GITHUB_ENV + else + echo "AUTHOR_LOGIN=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV + fi + - name: Run script run: | node src/workflows/ready-for-docs-review.js @@ -43,7 +51,6 @@ jobs: PROJECT_NUMBER: 2936 ORGANIZATION: 'github' ITEM_NODE_ID: ${{ github.event.pull_request.node_id }} - AUTHOR_LOGIN: ${{ github.event.pull_request.user.login }} REPO: ${{ github.event.pull_request.base.repo.full_name }} # Since the projects API is still in beta, use the old workflow if something fails From b7ae3eb93d97bc50d5f798e9f98ba2726af44080 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Mon, 11 Dec 2023 15:55:42 +0000 Subject: [PATCH 61/71] Copilot: Update max index number (#47629) --- .../using-github-copilot-chat-in-githubcom.md | 4 ++-- data/variables/copilot.yml | 3 +++ 2 files changed, 5 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 584f526758..de8dcb324a 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 10 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. Owners of organizations {% ifversion ghec %}or enterprises {% endif %} can index up to {% data variables.copilot.max-chat-indexed-repos %} repositories 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 10 repositories in an organization. + 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. ![Screenshot showing the 'Index this repository' button highlighted with a dark orange outline.](/assets/images/help/copilot/index-this-repo.png) diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 884945a8ec..7abfa59978 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -8,3 +8,6 @@ cfi_price_per_year: '$100 USD' # Copilot billing: price per month for Copilot for Business cfb_price_per_month: '$19 USD' + +# Copilot Chat in GitHub.com: maximum number of repos that can be indexed for an org +max-chat-indexed-repos: '50' From 971700af621f350098bd14c88f610874d1c45779 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:36:07 -0500 Subject: [PATCH 62/71] Update audit log event data (#47635) --- 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 ed1a80b210..8bad4abcc9 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": "ad6124025136e49a7e7c93600bd001e7f581190b" + "sha": "913efe44fbf62baf32088f71698cc1d7efeffdef" } \ No newline at end of file From ce3a62e6b81f0a6eddb7c9a8349cee73277eb803 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 11 Dec 2023 12:05:58 -0500 Subject: [PATCH 63/71] Update CodeQL query tables (#47480) Co-authored-by: Felicity Chapman Co-authored-by: Laura Coursen --- .../built-in-codeql-query-suites.md | 15 ++- .../c-cpp-built-in-queries.md | 21 ++++ .../csharp-built-in-queries.md | 21 ++++ .../go-built-in-queries.md | 21 ++++ .../index.md | 8 ++ .../java-kotlin-built-in-queries.md | 23 ++++ .../javascript-typescript-built-in-queries.md | 21 ++++ .../python-built-in-queries.md | 21 ++++ .../ruby-built-in-queries.md | 23 ++++ .../swift-built-in-queries.md | 23 ++++ .../codeql-version-info.md | 11 ++ .../code-scanning/codeql-query-tables/cpp.md | 86 ++++++++++++++ .../codeql-query-tables/csharp.md | 64 +++++++++++ .../code-scanning/codeql-query-tables/go.md | 34 ++++++ .../code-scanning/codeql-query-tables/java.md | 105 +++++++++++++++++ .../codeql-query-tables/javascript.md | 107 ++++++++++++++++++ .../codeql-query-tables/python.md | 47 ++++++++ .../query-suite-behavior.md | 1 + .../code-scanning/codeql-query-tables/ruby.md | 47 ++++++++ .../codeql-query-tables/swift.md | 32 ++++++ 20 files changed, 729 insertions(+), 2 deletions(-) create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/c-cpp-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/csharp-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/go-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/java-kotlin-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/javascript-typescript-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/python-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/ruby-built-in-queries.md create mode 100644 content/code-security/code-scanning/managing-your-code-scanning-configuration/swift-built-in-queries.md create mode 100644 data/reusables/code-scanning/codeql-query-tables/codeql-version-info.md create mode 100644 data/reusables/code-scanning/codeql-query-tables/query-suite-behavior.md 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/built-in-codeql-query-suites.md index 6ad7a92060..69be243fd0 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/built-in-codeql-query-suites.md @@ -17,8 +17,8 @@ topics: With {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}, you can select a specific group of {% data variables.product.prodname_codeql %} queries, called a {% data variables.product.prodname_codeql %} query suite, to run against your code. The following built-in query suites are available through {% data variables.product.prodname_dotcom %}: -- the `default` query suite. -- the `security-extended` query suite. This suite is referred to as the "Extended" query suite on {% data variables.product.prodname_dotcom %}. +- `default` query suite. +- `security-extended` query suite. This suite is referred to as the "Extended" query suite on {% data variables.product.prodname_dotcom %}. Currently, both the `default` query suite and the `security-extended` query suite are available for default setup for {% data variables.product.prodname_code_scanning %}. {% ifversion bulk-code-scanning-query-suite %}Additionally, organization owners and security managers can recommend a query suite for use with default setup throughout their organization. For more information on configuring default setup for individual repositories, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)." For more information on configuring default setup at scale and recommending a query suite, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale)."{% else %}For more information on default setup, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)" and "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning-at-scale)."{% endif %} @@ -40,6 +40,17 @@ The built-in {% data variables.product.prodname_codeql %} query suites, `default - Relative to the `default` query suite, the `security-extended` suite may return a greater number of false positive {% data variables.product.prodname_code_scanning %} results. - This query suite is available for use with default setup for {% data variables.product.prodname_code_scanning %}, and is referred to as the "Extended" query suite on {% data variables.product.prodname_dotcom %}. +## Queries included in the `default` and `security-extended` query suites + +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/c-cpp-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/csharp-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/go-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/java-kotlin-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/javascript-typescript-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/python-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/ruby-built-in-queries)" +- "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/swift-built-in-queries)" + ## Further reading - "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-codeql-query-suites)" diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/c-cpp-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/c-cpp-built-in-queries.md new file mode 100644 index 0000000000..76bfe62d9a --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/c-cpp-built-in-queries.md @@ -0,0 +1,21 @@ +--- +title: C and C++ queries for CodeQL analysis +shortTitle: C and C++ CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in C or C++ when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing C and C++ code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +## Built-in queries for C and C++ analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.cpp %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/csharp-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/csharp-built-in-queries.md new file mode 100644 index 0000000000..d42527574e --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/csharp-built-in-queries.md @@ -0,0 +1,21 @@ +--- +title: C# queries for CodeQL analysis +shortTitle: C# CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in C# when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing C# code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +## Built-in queries for C# analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.csharp %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/go-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/go-built-in-queries.md new file mode 100644 index 0000000000..690db9157d --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/go-built-in-queries.md @@ -0,0 +1,21 @@ +--- +title: Go queries for CodeQL analysis +shortTitle: Go CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in Go (Golang) when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing Go code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +## Built-in queries for Go analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.go %} 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 28eaa06949..929248f29f 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 @@ -17,4 +17,12 @@ children: - /editing-your-configuration-of-default-setup - /built-in-codeql-query-suites - /viewing-code-scanning-logs + - /c-cpp-built-in-queries + - /csharp-built-in-queries + - /go-built-in-queries + - /java-kotlin-built-in-queries + - /javascript-typescript-built-in-queries + - /python-built-in-queries + - /ruby-built-in-queries + - /swift-built-in-queries --- diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/java-kotlin-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/java-kotlin-built-in-queries.md new file mode 100644 index 0000000000..9c95c36d1b --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/java-kotlin-built-in-queries.md @@ -0,0 +1,23 @@ +--- +title: Java and Kotlin queries for CodeQL analysis +shortTitle: Java and Kotlin CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in Java or Kotlin when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing Java and Kotlin code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +{% data reusables.code-scanning.beta-kotlin-support %} + +## Built-in queries for Java and Kotlin analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.java %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/javascript-typescript-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/javascript-typescript-built-in-queries.md new file mode 100644 index 0000000000..866eb04b5b --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/javascript-typescript-built-in-queries.md @@ -0,0 +1,21 @@ +--- +title: JavaScript and TypeScript queries for CodeQL analysis +shortTitle: JavaScript and TypeScript queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in JavaScript or TypeScript when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing JavaScript and TypeScript code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +## Built-in queries for JavaScript and TypeScript analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.javascript %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/python-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/python-built-in-queries.md new file mode 100644 index 0000000000..5905d440fd --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/python-built-in-queries.md @@ -0,0 +1,21 @@ +--- +title: Python queries for CodeQL analysis +shortTitle: Python CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in Python when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing Python code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +## Built-in queries for Python analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.cpp %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/ruby-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/ruby-built-in-queries.md new file mode 100644 index 0000000000..c017d136e7 --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/ruby-built-in-queries.md @@ -0,0 +1,23 @@ +--- +title: Ruby queries for CodeQL analysis +shortTitle: Ruby CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in Ruby when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing Ruby code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +{% data reusables.code-scanning.beta-ruby-support %} + +## Built-in queries for Ruby analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.ruby %} diff --git a/content/code-security/code-scanning/managing-your-code-scanning-configuration/swift-built-in-queries.md b/content/code-security/code-scanning/managing-your-code-scanning-configuration/swift-built-in-queries.md new file mode 100644 index 0000000000..ffcbd44839 --- /dev/null +++ b/content/code-security/code-scanning/managing-your-code-scanning-configuration/swift-built-in-queries.md @@ -0,0 +1,23 @@ +--- +title: Swift queries for CodeQL analysis +shortTitle: Swift CodeQL queries +intro: 'Explore the queries that {% data variables.product.prodname_codeql %} uses to analyze code written in Swift when you select the `default` or the `security-extended` query suite.' +product: '{% data reusables.gated-features.code-scanning %}' +allowTitleToDifferFromFilename: true +versions: + feature: code-scanning-without-workflow +type: reference +topics: + - Code scanning + - CodeQL +--- + +{% data variables.product.prodname_codeql %} includes many queries for analyzing Swift code. {% data reusables.code-scanning.codeql-query-tables.query-suite-behavior %} + +{% data reusables.code-scanning.beta-swift-support %} + +## Built-in queries for Swift analysis + +{% data reusables.code-scanning.codeql-query-tables.codeql-version-info %} + +{% data reusables.code-scanning.codeql-query-tables.swift %} diff --git a/data/reusables/code-scanning/codeql-query-tables/codeql-version-info.md b/data/reusables/code-scanning/codeql-query-tables/codeql-version-info.md new file mode 100644 index 0000000000..c5c0762388 --- /dev/null +++ b/data/reusables/code-scanning/codeql-query-tables/codeql-version-info.md @@ -0,0 +1,11 @@ +This table lists the queries available with the latest release of the {% data variables.product.prodname_codeql %} action and {% data variables.product.prodname_codeql_cli %}. For more information, see [{% data variables.product.prodname_codeql %} change logs](https://codeql.github.com/docs/codeql-overview/codeql-changelog/) in the {% data variables.product.prodname_codeql %} documentation site. + +{% ifversion ghes %} + +{% note %} + +**Note:** The initial release of {% data variables.product.product_name %} {{ allVersions[currentVersion].currentRelease }} included {% data variables.product.prodname_codeql %} action and {% data variables.product.prodname_codeql_cli %} {% data variables.product.codeql_cli_ghes_recommended_version %}, which may not include all of these queries. Your site administrator can update your {% data variables.product.prodname_codeql %} version to a newer release. For more information, see "[AUTOTITLE](/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance)." + +{% endnote %} + +{% endif %} diff --git a/data/reusables/code-scanning/codeql-query-tables/cpp.md b/data/reusables/code-scanning/codeql-query-tables/cpp.md index e69de29bb2..db106e82ef 100644 --- a/data/reusables/code-scanning/codeql-query-tables/cpp.md +++ b/data/reusables/code-scanning/codeql-query-tables/cpp.md @@ -0,0 +1,86 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Array offset used before range check](https://codeql.github.com/codeql-query-help/cpp/cpp-offset-use-before-range-check/) | 120, 125 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Authentication bypass by spoofing](https://codeql.github.com/codeql-query-help/cpp/cpp-user-controlled-bypass/) | 290 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Bad check for overflow of integer addition](https://codeql.github.com/codeql-query-help/cpp/cpp-bad-addition-overflow-check/) | 190, 192 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Badly bounded write](https://codeql.github.com/codeql-query-help/cpp/cpp-badly-bounded-write/) | 120, 787, 805 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Call to `memset` may be deleted](https://codeql.github.com/codeql-query-help/cpp/cpp-memset-may-be-deleted/) | 14 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Call to alloca in a loop](https://codeql.github.com/codeql-query-help/cpp/cpp-alloca-in-loop/) | 770 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Call to function with fewer arguments than declared parameters](https://codeql.github.com/codeql-query-help/cpp/cpp-too-few-arguments/) | 234, 685 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cast between HRESULT and a Boolean type](https://codeql.github.com/codeql-query-help/cpp/cpp-hresult-boolean-conversion/) | 253 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cast from char* to wchar_t*](https://codeql.github.com/codeql-query-help/cpp/cpp-incorrect-string-type-conversion/) | 704 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Certificate not checked](https://codeql.github.com/codeql-query-help/cpp/cpp-certificate-not-checked/) | 295 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Certificate result conflation](https://codeql.github.com/codeql-query-help/cpp/cpp-certificate-result-conflation/) | 295 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [CGI script vulnerable to cross-site scripting](https://codeql.github.com/codeql-query-help/cpp/cpp-cgi-xss/) | 079 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in an SQLite database](https://codeql.github.com/codeql-query-help/cpp/cpp-cleartext-storage-database/) | 313 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in buffer](https://codeql.github.com/codeql-query-help/cpp/cpp-cleartext-storage-buffer/) | 312 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in file](https://codeql.github.com/codeql-query-help/cpp/cpp-cleartext-storage-file/) | 260, 313 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext transmission of sensitive information](https://codeql.github.com/codeql-query-help/cpp/cpp-cleartext-transmission/) | 319, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Comma before misleading indentation](https://codeql.github.com/codeql-query-help/cpp/cpp-comma-before-misleading-indentation/) | 1078, 670 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Comparison of narrow type with wide type in loop condition](https://codeql.github.com/codeql-query-help/cpp/cpp-comparison-with-wider-type/) | 190, 197, 835 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Dangerous use of 'cin'](https://codeql.github.com/codeql-query-help/cpp/cpp-dangerous-cin/) | 676 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Exposure of system data to an unauthorized control sphere](https://codeql.github.com/codeql-query-help/cpp/cpp-system-data-exposure/) | 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Failure to use HTTPS URLs](https://codeql.github.com/codeql-query-help/cpp/cpp-non-https-url/) | 319, 345 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [File created without restricting permissions](https://codeql.github.com/codeql-query-help/cpp/cpp-world-writable-file-creation/) | 732 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [File opened with O_CREAT flag but without mode argument](https://codeql.github.com/codeql-query-help/cpp/cpp-open-call-with-mode-argument/) | 732 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incorrect 'not' operator usage](https://codeql.github.com/codeql-query-help/cpp/cpp-incorrect-not-operator-usage/) | 480 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Incorrect allocation-error handling](https://codeql.github.com/codeql-query-help/cpp/cpp-incorrect-allocation-error-handling/) | 570, 252, 755 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Invalid pointer dereference](https://codeql.github.com/codeql-query-help/cpp/cpp-invalid-pointer-deref/) | 119, 125, 193, 787 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Likely overrunning write](https://codeql.github.com/codeql-query-help/cpp/cpp-very-likely-overrunning-write/) | 120, 787, 805 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Mismatching new/free or malloc/delete](https://codeql.github.com/codeql-query-help/cpp/cpp-new-free-mismatch/) | 401 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing return-value check for a 'scanf'-like function](https://codeql.github.com/codeql-query-help/cpp/cpp-missing-check-scanf/) | 252, 253 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Multiplication result converted to larger type](https://codeql.github.com/codeql-query-help/cpp/cpp-integer-multiplication-cast-to-long/) | 190, 192, 197, 681 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [No space for zero terminator](https://codeql.github.com/codeql-query-help/cpp/cpp-no-space-for-terminator/) | 131, 120, 122 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Non-constant format string](https://codeql.github.com/codeql-query-help/cpp/cpp-non-constant-format/) | 134 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Not enough memory allocated for array of pointer type](https://codeql.github.com/codeql-query-help/cpp/cpp-suspicious-allocation-size/) | 131, 122 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Not enough memory allocated for pointer type](https://codeql.github.com/codeql-query-help/cpp/cpp-allocation-too-small/) | 131, 122 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [NULL application name with an unquoted path in call to CreateProcess](https://codeql.github.com/codeql-query-help/cpp/cpp-unsafe-create-process-call/) | 428 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overflow in uncontrolled allocation size](https://codeql.github.com/codeql-query-help/cpp/cpp-uncontrolled-allocation-size/) | 190, 789 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overrunning write](https://codeql.github.com/codeql-query-help/cpp/cpp-overrun-write/) | 119, 131 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Pointer overflow check](https://codeql.github.com/codeql-query-help/cpp/cpp-pointer-overflow-check/) | 758 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Possibly wrong buffer size in string copy](https://codeql.github.com/codeql-query-help/cpp/cpp-bad-strncpy-size/) | 676, 119, 251 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potential double free](https://codeql.github.com/codeql-query-help/cpp/cpp-double-free/) | 415 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Potential exposure of sensitive system data to an unauthorized control sphere](https://codeql.github.com/codeql-query-help/cpp/cpp-potential-system-data-exposure/) | 497 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potential use after free](https://codeql.github.com/codeql-query-help/cpp/cpp-use-after-free/) | 416 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially overflowing call to snprintf](https://codeql.github.com/codeql-query-help/cpp/cpp-overflowing-snprintf/) | 190, 253 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially overrunning write](https://codeql.github.com/codeql-query-help/cpp/cpp-overrunning-write/) | 120, 787, 805 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially overrunning write with float to string conversion](https://codeql.github.com/codeql-query-help/cpp/cpp-overrunning-write-with-float/) | 120, 787, 805 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially uninitialized local variable](https://codeql.github.com/codeql-query-help/cpp/cpp-uninitialized-local/) | 665, 457 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially unsafe call to strncat](https://codeql.github.com/codeql-query-help/cpp/cpp-unsafe-strncat/) | 788, 676, 119, 251 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially unsafe use of strcat](https://codeql.github.com/codeql-query-help/cpp/cpp-unsafe-strcat/) | 676, 120, 251 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Redundant null check due to previous dereference](https://codeql.github.com/codeql-query-help/cpp/cpp-redundant-null-check-simple/) | 476 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Returning stack-allocated memory](https://codeql.github.com/codeql-query-help/cpp/cpp-return-stack-allocated-memory/) | 825 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Setting a DACL to NULL in a SECURITY_DESCRIPTOR](https://codeql.github.com/codeql-query-help/cpp/cpp-unsafe-dacl-security-descriptor/) | 732 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Signed overflow check](https://codeql.github.com/codeql-query-help/cpp/cpp-signed-overflow-check/) | 128, 190 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Static array access may cause overflow](https://codeql.github.com/codeql-query-help/cpp/cpp-static-buffer-overflow/) | 119, 131 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Suspicious 'sizeof' use](https://codeql.github.com/codeql-query-help/cpp/cpp-suspicious-sizeof/) | 467 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Suspicious add with sizeof](https://codeql.github.com/codeql-query-help/cpp/cpp-suspicious-add-sizeof/) | 468 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Suspicious pointer scaling](https://codeql.github.com/codeql-query-help/cpp/cpp-suspicious-pointer-scaling/) | 468 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Suspicious pointer scaling to void](https://codeql.github.com/codeql-query-help/cpp/cpp-suspicious-pointer-scaling-void/) | 468 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Time-of-check time-of-use filesystem race condition](https://codeql.github.com/codeql-query-help/cpp/cpp-toctou-race-condition/) | 367 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Too few arguments to formatting function](https://codeql.github.com/codeql-query-help/cpp/cpp-wrong-number-format-arguments/) | 234, 685 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unbounded write](https://codeql.github.com/codeql-query-help/cpp/cpp-unbounded-write/) | 120, 787, 805 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data in arithmetic expression](https://codeql.github.com/codeql-query-help/cpp/cpp-uncontrolled-arithmetic/) | 190, 191 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data in SQL query](https://codeql.github.com/codeql-query-help/cpp/cpp-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in OS command](https://codeql.github.com/codeql-query-help/cpp/cpp-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/cpp/cpp-path-injection/) | 022, 023, 036, 073 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled format string](https://codeql.github.com/codeql-query-help/cpp/cpp-tainted-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled process operation](https://codeql.github.com/codeql-query-help/cpp/cpp-uncontrolled-process-operation/) | 114 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe use of this in constructor](https://codeql.github.com/codeql-query-help/cpp/cpp-unsafe-use-of-this/) | 670 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsigned difference expression compared to zero](https://codeql.github.com/codeql-query-help/cpp/cpp-unsigned-difference-expression-compared-zero/) | 191 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unterminated variadic call](https://codeql.github.com/codeql-query-help/cpp/cpp-unterminated-variadic-call/) | 121 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Untrusted input for a condition](https://codeql.github.com/codeql-query-help/cpp/cpp-tainted-permissions-check/) | 807 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Upcast array used in pointer arithmetic](https://codeql.github.com/codeql-query-help/cpp/cpp-upcast-array-pointer-arithmetic/) | 119, 843 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or risky cryptographic algorithm](https://codeql.github.com/codeql-query-help/cpp/cpp-weak-cryptographic-algorithm/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a cryptographic algorithm with insufficient key size](https://codeql.github.com/codeql-query-help/cpp/cpp-insufficient-key-size/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a version of OpenSSL with Heartbleed](https://codeql.github.com/codeql-query-help/cpp/cpp-openssl-heartbleed/) | 327, 788 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of dangerous function](https://codeql.github.com/codeql-query-help/cpp/cpp-dangerous-function-overflow/) | 242, 676 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of expired stack-address](https://codeql.github.com/codeql-query-help/cpp/cpp-using-expired-stack-address/) | 825 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of potentially dangerous function](https://codeql.github.com/codeql-query-help/cpp/cpp-potentially-dangerous-function/) | 676 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of string after lifetime ends](https://codeql.github.com/codeql-query-help/cpp/cpp-use-of-string-after-lifetime-ends/) | 416, 664 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Wrong type of arguments to formatting function](https://codeql.github.com/codeql-query-help/cpp/cpp-wrong-type-format-argument/) | 686 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML external entity expansion](https://codeql.github.com/codeql-query-help/cpp/cpp-external-entity-expansion/) | 611 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/csharp.md b/data/reusables/code-scanning/codeql-query-tables/csharp.md index e69de29bb2..fc4bccf3e9 100644 --- a/data/reusables/code-scanning/codeql-query-tables/csharp.md +++ b/data/reusables/code-scanning/codeql-query-tables/csharp.md @@ -0,0 +1,64 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| ['requireSSL' attribute is not set to true](https://codeql.github.com/codeql-query-help/csharp/cs-web-requiressl-not-set/) | 319, 614 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Arbitrary file access during archive extraction ("Zip Slip")](https://codeql.github.com/codeql-query-help/csharp/cs-zipslip/) | 022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [ASP.NET config file enables directory browsing](https://codeql.github.com/codeql-query-help/csharp/cs-web-directory-browse-enabled/) | 548 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Assembly path injection](https://codeql.github.com/codeql-query-help/csharp/cs-assembly-path-injection/) | 114 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear text storage of sensitive information](https://codeql.github.com/codeql-query-help/csharp/cs-cleartext-storage-of-sensitive-information/) | 312, 315, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cookie security: overly broad domain](https://codeql.github.com/codeql-query-help/csharp/cs-web-broad-cookie-domain/) | 287 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cookie security: overly broad path](https://codeql.github.com/codeql-query-help/csharp/cs-web-broad-cookie-path/) | 287 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cookie security: persistent cookie](https://codeql.github.com/codeql-query-help/csharp/cs-web-persistent-cookie/) | 539 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Creating an ASP.NET debug binary may reveal sensitive information](https://codeql.github.com/codeql-query-help/csharp/cs-web-debug-binary/) | 11, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cross-site scripting](https://codeql.github.com/codeql-query-help/csharp/cs-web-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Denial of Service from comparison of user input against expensive regex](https://codeql.github.com/codeql-query-help/csharp/cs-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialization of untrusted data](https://codeql.github.com/codeql-query-help/csharp/cs-unsafe-deserialization-untrusted-input/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialized delegate](https://codeql.github.com/codeql-query-help/csharp/cs-deserialized-delegate/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Empty password in configuration file](https://codeql.github.com/codeql-query-help/csharp/cs-empty-password-in-configuration/) | 258, 862 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Encryption using ECB](https://codeql.github.com/codeql-query-help/csharp/cs-ecb-encryption/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Exposure of private information](https://codeql.github.com/codeql-query-help/csharp/cs-exposure-of-sensitive-information/) | 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Failure to abandon session](https://codeql.github.com/codeql-query-help/csharp/cs-session-reuse/) | 384 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded connection string with credentials](https://codeql.github.com/codeql-query-help/csharp/cs-hardcoded-connection-string-credentials/) | 259, 321, 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credentials](https://codeql.github.com/codeql-query-help/csharp/cs-hardcoded-credentials/) | 259, 321, 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Header checking disabled](https://codeql.github.com/codeql-query-help/csharp/cs-web-disabled-header-checking/) | 113 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Improper control of generation of code](https://codeql.github.com/codeql-query-help/csharp/cs-code-injection/) | 094, 095, 096 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through an exception](https://codeql.github.com/codeql-query-help/csharp/cs-information-exposure-through-exception/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through transmitted data](https://codeql.github.com/codeql-query-help/csharp/cs-sensitive-data-transmission/) | 201 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure Direct Object Reference](https://codeql.github.com/codeql-query-help/csharp/cs-web-insecure-direct-object-reference/) | 639 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure randomness](https://codeql.github.com/codeql-query-help/csharp/cs-insecure-randomness/) | 338 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure SQL connection](https://codeql.github.com/codeql-query-help/csharp/cs-insecure-sql-connection/) | 327 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [LDAP query built from stored user-controlled sources](https://codeql.github.com/codeql-query-help/csharp/cs-stored-ldap-injection/) | 090 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [LDAP query built from user-controlled sources](https://codeql.github.com/codeql-query-help/csharp/cs-ldap-injection/) | 090 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Log entries created from user input](https://codeql.github.com/codeql-query-help/csharp/cs-log-forging/) | 117 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing cross-site request forgery token validation](https://codeql.github.com/codeql-query-help/csharp/cs-web-missing-token-validation/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing function level access control](https://codeql.github.com/codeql-query-help/csharp/cs-web-missing-function-level-access-control/) | 285, 284, 862 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing global error handler](https://codeql.github.com/codeql-query-help/csharp/cs-web-missing-global-error-handler/) | 12, 248 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing X-Frame-Options HTTP header](https://codeql.github.com/codeql-query-help/csharp/cs-web-missing-x-frame-options/) | 451, 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing XML validation](https://codeql.github.com/codeql-query-help/csharp/cs-xml-missing-validation/) | 112 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Password in configuration file](https://codeql.github.com/codeql-query-help/csharp/cs-password-in-configuration/) | 13, 256, 313 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/csharp/cs-regex-injection/) | 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Resource injection](https://codeql.github.com/codeql-query-help/csharp/cs-resource-injection/) | 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Serialization check bypass](https://codeql.github.com/codeql-query-help/csharp/cs-serialization-check-bypass/) | 20 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [SQL query built from stored user-controlled sources](https://codeql.github.com/codeql-query-help/csharp/cs-second-order-sql-injection/) | 089 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [SQL query built from user-controlled sources](https://codeql.github.com/codeql-query-help/csharp/cs-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Stored cross-site scripting](https://codeql.github.com/codeql-query-help/csharp/cs-web-stored-xss/) | 079, 116 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Stored XPath injection](https://codeql.github.com/codeql-query-help/csharp/cs-xml-stored-xpath-injection/) | 643 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Thread-unsafe capturing of an ICryptoTransform object](https://codeql.github.com/codeql-query-help/csharp/cs-thread-unsafe-icryptotransform-captured-in-lambda/) | 362 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Thread-unsafe use of a static ICryptoTransform field](https://codeql.github.com/codeql-query-help/csharp/cs-thread-unsafe-icryptotransform-field-in-class/) | 362 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line](https://codeql.github.com/codeql-query-help/csharp/cs-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line from stored user input](https://codeql.github.com/codeql-query-help/csharp/cs-stored-command-line-injection/) | 078, 088 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/csharp/cs-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled format string](https://codeql.github.com/codeql-query-help/csharp/cs-uncontrolled-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Untrusted XML is read insecurely](https://codeql.github.com/codeql-query-help/csharp/cs-xml-insecure-dtd-handling/) | 611, 827, 776 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unvalidated local pointer arithmetic](https://codeql.github.com/codeql-query-help/csharp/cs-unvalidated-local-pointer-arithmetic/) | 119, 120, 122, 788 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [URL redirection from remote source](https://codeql.github.com/codeql-query-help/csharp/cs-web-unvalidated-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of file upload](https://codeql.github.com/codeql-query-help/csharp/cs-web-file-upload/) | 434 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled bypass of sensitive method](https://codeql.github.com/codeql-query-help/csharp/cs-user-controlled-bypass/) | 807, 247, 350 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Weak encryption](https://codeql.github.com/codeql-query-help/csharp/cs-weak-encryption/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Weak encryption: inadequate RSA padding](https://codeql.github.com/codeql-query-help/csharp/cs-inadequate-rsa-padding/) | 327, 780 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Weak encryption: Insufficient key size](https://codeql.github.com/codeql-query-help/csharp/cs-insufficient-key-size/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML injection](https://codeql.github.com/codeql-query-help/csharp/cs-xml-injection/) | 091 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XPath injection](https://codeql.github.com/codeql-query-help/csharp/cs-xml-xpath-injection/) | 643 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/go.md b/data/reusables/code-scanning/codeql-query-tables/go.md index e69de29bb2..3dab14cc78 100644 --- a/data/reusables/code-scanning/codeql-query-tables/go.md +++ b/data/reusables/code-scanning/codeql-query-tables/go.md @@ -0,0 +1,34 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Arbitrary file access during archive extraction ("Zip Slip")](https://codeql.github.com/codeql-query-help/go/go-zipslip/) | 022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Arbitrary file write extracting an archive containing symbolic links](https://codeql.github.com/codeql-query-help/go/go-unsafe-unzip-symlink/) | 022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Bad redirect check](https://codeql.github.com/codeql-query-help/go/go-bad-redirect-check/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text logging of sensitive information](https://codeql.github.com/codeql-query-help/go/go-clear-text-logging/) | 312, 315, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Command built from user-controlled sources](https://codeql.github.com/codeql-query-help/go/go-command-injection/) | 078 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Database query built from user-controlled sources](https://codeql.github.com/codeql-query-help/go/go-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabled TLS certificate check](https://codeql.github.com/codeql-query-help/go/go-disabled-certificate-check/) | 295 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Email content injection](https://codeql.github.com/codeql-query-help/go/go-email-injection/) | 640 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credentials](https://codeql.github.com/codeql-query-help/go/go-hardcoded-credentials/) | 259, 321, 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete regular expression for hostnames](https://codeql.github.com/codeql-query-help/go/go-incomplete-hostname-regexp/) | 20 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete URL scheme check](https://codeql.github.com/codeql-query-help/go/go-incomplete-url-scheme-check/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incorrect conversion between integer types](https://codeql.github.com/codeql-query-help/go/go-incorrect-integer-conversion/) | 190, 681 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through a stack trace](https://codeql.github.com/codeql-query-help/go/go-stack-trace-exposure/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure TLS configuration](https://codeql.github.com/codeql-query-help/go/go-insecure-tls/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Log entries created from user input](https://codeql.github.com/codeql-query-help/go/go-log-injection/) | 117 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing regular expression anchor](https://codeql.github.com/codeql-query-help/go/go-regex-missing-regexp-anchor/) | 20 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Open URL redirect](https://codeql.github.com/codeql-query-help/go/go-unvalidated-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially unsafe quoting](https://codeql.github.com/codeql-query-help/go/go-unsafe-quoting/) | 078, 089, 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Reflected cross-site scripting](https://codeql.github.com/codeql-query-help/go/go-reflected-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Size computation for allocation may overflow](https://codeql.github.com/codeql-query-help/go/go-allocation-size-overflow/) | 190 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Suspicious characters in a regular expression](https://codeql.github.com/codeql-query-help/go/go-suspicious-character-in-regex/) | 20 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in network request](https://codeql.github.com/codeql-query-help/go/go-request-forgery/) | 918 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/go/go-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a weak cryptographic key](https://codeql.github.com/codeql-query-help/go/go-weak-crypto-key/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of constant `state` value in OAuth 2.0 URL](https://codeql.github.com/codeql-query-help/go/go-constant-oauth2-state/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of insecure HostKeyCallback implementation](https://codeql.github.com/codeql-query-help/go/go-insecure-hostkeycallback/) | 322 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of insufficient randomness as the key of a cryptographic algorithm](https://codeql.github.com/codeql-query-help/go/go-insecure-randomness/) | 338 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XPath injection](https://codeql.github.com/codeql-query-help/go/go-xml-xpath-injection/) | 643 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/java.md b/data/reusables/code-scanning/codeql-query-tables/java.md index e69de29bb2..dfbcaf7a29 100644 --- a/data/reusables/code-scanning/codeql-query-tables/java.md +++ b/data/reusables/code-scanning/codeql-query-tables/java.md @@ -0,0 +1,105 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [`TrustManager` that accepts all certificates](https://codeql.github.com/codeql-query-help/java/java-insecure-trustmanager/) | 295 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Access Java object methods through JavaScript exposure](https://codeql.github.com/codeql-query-help/java/java-android-webview-addjavascriptinterface/) | 079 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android `WebView` that accepts all certificates](https://codeql.github.com/codeql-query-help/java/java-improper-webview-certificate-validation/) | 295 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android APK installation](https://codeql.github.com/codeql-query-help/java/java-android-arbitrary-apk-installation/) | 094 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android debuggable attribute enabled](https://codeql.github.com/codeql-query-help/java/java-android-debuggable-attribute-enabled/) | 489 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android fragment injection](https://codeql.github.com/codeql-query-help/java/java-android-fragment-injection/) | 470 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android fragment injection in PreferenceActivity](https://codeql.github.com/codeql-query-help/java/java-android-fragment-injection-preference-activity/) | 470 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android Intent redirection](https://codeql.github.com/codeql-query-help/java/java-android-intent-redirection/) | 926, 940 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android missing certificate pinning](https://codeql.github.com/codeql-query-help/java/java-android-missing-certificate-pinning/) | 295 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android sensitive keyboard cache](https://codeql.github.com/codeql-query-help/java/java-android-sensitive-keyboard-cache/) | 524 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android WebSettings file access](https://codeql.github.com/codeql-query-help/java/java-android-websettings-file-access/) | 200 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android Webview debugging enabled](https://codeql.github.com/codeql-query-help/java/java-android-webview-debugging-enabled/) | 489 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Android WebView JavaScript settings](https://codeql.github.com/codeql-query-help/java/java-android-websettings-javascript-enabled/) | 079 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Android WebView settings allows access to content links](https://codeql.github.com/codeql-query-help/java/java-android-websettings-allow-content-access/) | 200 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Application backup allowed](https://codeql.github.com/codeql-query-help/java/java-android-backup-enabled/) | 312 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Arbitrary file access during archive extraction ("Zip Slip")](https://codeql.github.com/codeql-query-help/java/java-zipslip/) | 022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Building a command line with string concatenation](https://codeql.github.com/codeql-query-help/java/java-concatenated-command-line/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in cookie](https://codeql.github.com/codeql-query-help/java/java-cleartext-storage-in-cookie/) | 315 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in the Android filesystem](https://codeql.github.com/codeql-query-help/java/java-android-cleartext-storage-filesystem/) | 312 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information using 'Properties' class](https://codeql.github.com/codeql-query-help/java/java-cleartext-storage-in-properties/) | 313 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information using `SharedPreferences` on Android](https://codeql.github.com/codeql-query-help/java/java-android-cleartext-storage-shared-prefs/) | 312 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information using a local database on Android](https://codeql.github.com/codeql-query-help/java/java-android-cleartext-storage-database/) | 312 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Comparison of narrow type with wide type in loop condition](https://codeql.github.com/codeql-query-help/java/java-comparison-with-wider-type/) | 190, 197 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Cross-site scripting](https://codeql.github.com/codeql-query-help/java/java-xss/) | 079 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Depending upon JCenter/Bintray as an artifact repository](https://codeql.github.com/codeql-query-help/java/java-maven-dependency-upon-bintray/) | 1104 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialization of user-controlled data](https://codeql.github.com/codeql-query-help/java/java-unsafe-deserialization/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Detect JHipster Generator Vulnerability CVE-2019-16303](https://codeql.github.com/codeql-query-help/java/java-jhipster-prng/) | 338 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabled Netty HTTP header validation](https://codeql.github.com/codeql-query-help/java/java-netty-http-request-or-response-splitting/) | 93, 113 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabled Spring CSRF protection](https://codeql.github.com/codeql-query-help/java/java-spring-disabled-csrf-protection/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Executing a command with a relative path](https://codeql.github.com/codeql-query-help/java/java-relative-path-command/) | 078, 088 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Expression language injection (JEXL)](https://codeql.github.com/codeql-query-help/java/java-jexl-expression-injection/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Expression language injection (MVEL)](https://codeql.github.com/codeql-query-help/java/java-mvel-expression-injection/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Expression language injection (Spring)](https://codeql.github.com/codeql-query-help/java/java-spel-expression-injection/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Failure to use HTTPS or SFTP URL in Maven artifact upload/download](https://codeql.github.com/codeql-query-help/java/java-maven-non-https-url/) | 300, 319, 494, 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Failure to use secure cookies](https://codeql.github.com/codeql-query-help/java/java-insecure-cookie/) | 614 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Groovy Language injection](https://codeql.github.com/codeql-query-help/java/java-groovy-injection/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credential in API call](https://codeql.github.com/codeql-query-help/java/java-hardcoded-credential-api-call/) | 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [HTTP response splitting](https://codeql.github.com/codeql-query-help/java/java-http-response-splitting/) | 113 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Implicit narrowing conversion in compound assignment](https://codeql.github.com/codeql-query-help/java/java-implicit-cast-in-compound-assignment/) | 190, 192, 197, 681 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Implicitly exported Android component](https://codeql.github.com/codeql-query-help/java/java-android-implicitly-exported-component/) | 926 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Improper validation of user-provided array index](https://codeql.github.com/codeql-query-help/java/java-improper-validation-of-array-index/) | 129 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Improper validation of user-provided size used for array construction](https://codeql.github.com/codeql-query-help/java/java-improper-validation-of-array-construction/) | 129 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Improper verification of intent by broadcast receiver](https://codeql.github.com/codeql-query-help/java/java-improper-intent-verification/) | 925 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Inefficient regular expression](https://codeql.github.com/codeql-query-help/java/java-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through a stack trace](https://codeql.github.com/codeql-query-help/java/java-stack-trace-exposure/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure basic authentication](https://codeql.github.com/codeql-query-help/java/java-insecure-basic-auth/) | 522, 319 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure Bean Validation](https://codeql.github.com/codeql-query-help/java/java-insecure-bean-validation/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure JavaMail SSL Configuration](https://codeql.github.com/codeql-query-help/java/java-insecure-smtp-ssl/) | 297 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure LDAP authentication](https://codeql.github.com/codeql-query-help/java/java-insecure-ldap-auth/) | 522, 319 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insertion of sensitive information into log files](https://codeql.github.com/codeql-query-help/java/java-sensitive-log/) | 532 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Intent URI permission manipulation](https://codeql.github.com/codeql-query-help/java/java-android-intent-uri-permission-manipulation/) | 266, 926 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [JNDI lookup with user-controlled name](https://codeql.github.com/codeql-query-help/java/java-jndi-injection/) | 074 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [LDAP query built from user-controlled sources](https://codeql.github.com/codeql-query-help/java/java-ldap-injection/) | 090 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Leaking sensitive information through a ResultReceiver](https://codeql.github.com/codeql-query-help/java/java-android-sensitive-result-receiver/) | 927 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Leaking sensitive information through an implicit Intent](https://codeql.github.com/codeql-query-help/java/java-android-sensitive-communication/) | 927 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Local information disclosure in a temporary directory](https://codeql.github.com/codeql-query-help/java/java-local-temp-file-or-directory-information-disclosure/) | 200, 732 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Log Injection](https://codeql.github.com/codeql-query-help/java/java-log-injection/) | 117 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Loop with unreachable exit condition](https://codeql.github.com/codeql-query-help/java/java-unreachable-exit-in-loop/) | 835 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing JWT signature check](https://codeql.github.com/codeql-query-help/java/java-missing-jwt-signature-check/) | 347 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing read or write permission in a content provider](https://codeql.github.com/codeql-query-help/java/java-android-incomplete-provider-permissions/) | 926 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [OGNL Expression Language statement with user-controlled input](https://codeql.github.com/codeql-query-help/java/java-ognl-injection/) | 917 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Overly permissive regular expression range](https://codeql.github.com/codeql-query-help/java/java-overly-large-range/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Partial path traversal vulnerability](https://codeql.github.com/codeql-query-help/java/java-partial-path-traversal/) | 023 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Partial path traversal vulnerability from remote](https://codeql.github.com/codeql-query-help/java/java-partial-path-traversal-from-remote/) | 023 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Polynomial regular expression used on uncontrolled data](https://codeql.github.com/codeql-query-help/java/java-polynomial-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Query built by concatenation with a possibly-untrusted string](https://codeql.github.com/codeql-query-help/java/java-concatenated-sql-query/) | 089, 564 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Query built from user-controlled sources](https://codeql.github.com/codeql-query-help/java/java-sql-injection/) | 089, 564 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Race condition in socket authentication](https://codeql.github.com/codeql-query-help/java/java-socket-auth-race-condition/) | 421 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Reading from a world writable file](https://codeql.github.com/codeql-query-help/java/java-world-writable-file-read/) | 732 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/java/java-regex-injection/) | 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Resolving XML external entity in user-controlled data](https://codeql.github.com/codeql-query-help/java/java-xxe/) | 611, 776, 827 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server-side request forgery](https://codeql.github.com/codeql-query-help/java/java-ssrf/) | 918 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server-side template injection](https://codeql.github.com/codeql-query-help/java/java-server-side-template-injection/) | 1336, 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Time-of-check time-of-use race condition](https://codeql.github.com/codeql-query-help/java/java-toctou-race-condition/) | 367 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Trust boundary violation](https://codeql.github.com/codeql-query-help/java/java-trust-boundary-violation/) | 501 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line](https://codeql.github.com/codeql-query-help/java/java-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data in arithmetic expression](https://codeql.github.com/codeql-query-help/java/java-uncontrolled-arithmetic/) | 190, 191 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in content resolution](https://codeql.github.com/codeql-query-help/java/java-android-unsafe-content-uri-resolution/) | 441, 610 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/java/java-path-injection/) | 022, 023, 036, 073 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unreleased lock](https://codeql.github.com/codeql-query-help/java/java-unreleased-lock/) | 764, 833 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe certificate trust](https://codeql.github.com/codeql-query-help/java/java-unsafe-cert-trust/) | 273 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe hostname verification](https://codeql.github.com/codeql-query-help/java/java-unsafe-hostname-verification/) | 297 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe resource fetching in Android WebView](https://codeql.github.com/codeql-query-help/java/java-android-unsafe-android-webview-fetch/) | 749, 079 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [URL redirection from remote source](https://codeql.github.com/codeql-query-help/java/java-unvalidated-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or risky cryptographic algorithm](https://codeql.github.com/codeql-query-help/java/java-weak-cryptographic-algorithm/) | 327, 328 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a cryptographic algorithm with insufficient key size](https://codeql.github.com/codeql-query-help/java/java-insufficient-key-size/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a potentially broken or risky cryptographic algorithm](https://codeql.github.com/codeql-query-help/java/java-potentially-weak-cryptographic-algorithm/) | 327, 328 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a potentially dangerous function](https://codeql.github.com/codeql-query-help/java/java-potentially-dangerous-function/) | 676 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a predictable seed in a secure random number generator](https://codeql.github.com/codeql-query-help/java/java-predictable-seed/) | 335, 337 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of externally-controlled format string](https://codeql.github.com/codeql-query-help/java/java-tainted-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of implicit PendingIntents](https://codeql.github.com/codeql-query-help/java/java-android-implicit-pendingintents/) | 927 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of RSA algorithm without OAEP](https://codeql.github.com/codeql-query-help/java/java-rsa-without-oaep/) | 780 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled bypass of sensitive method](https://codeql.github.com/codeql-query-help/java/java-user-controlled-bypass/) | 807, 290 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled data in arithmetic expression](https://codeql.github.com/codeql-query-help/java/java-tainted-arithmetic/) | 190, 191 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled data in numeric cast](https://codeql.github.com/codeql-query-help/java/java-tainted-numeric-cast/) | 197, 681 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled data used in permissions check](https://codeql.github.com/codeql-query-help/java/java-tainted-permissions-check/) | 807, 290 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Using a static initialization vector for encryption](https://codeql.github.com/codeql-query-help/java/java-static-initialization-vector/) | 329, 1204 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XPath injection](https://codeql.github.com/codeql-query-help/java/java-xml-xpath-injection/) | 643 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XSLT transformation with user-controlled stylesheet](https://codeql.github.com/codeql-query-help/java/java-xslt-injection/) | 074 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/javascript.md b/data/reusables/code-scanning/codeql-query-tables/javascript.md index e69de29bb2..830b5b9d8e 100644 --- a/data/reusables/code-scanning/codeql-query-tables/javascript.md +++ b/data/reusables/code-scanning/codeql-query-tables/javascript.md @@ -0,0 +1,107 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Arbitrary file access during archive extraction ("Zip Slip")](https://codeql.github.com/codeql-query-help/javascript/js-zipslip/) | 022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Bad HTML filtering regexp](https://codeql.github.com/codeql-query-help/javascript/js-bad-tag-filter/) | 020, 080, 116, 184, 185, 186 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Case-sensitive middleware path](https://codeql.github.com/codeql-query-help/javascript/js-case-sensitive-middleware-path/) | 178 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear text storage of sensitive information](https://codeql.github.com/codeql-query-help/javascript/js-clear-text-storage-of-sensitive-data/) | 312, 315, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear text transmission of sensitive cookie](https://codeql.github.com/codeql-query-help/javascript/js-clear-text-cookie/) | 614, 311, 312, 319 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text logging of sensitive information](https://codeql.github.com/codeql-query-help/javascript/js-clear-text-logging/) | 312, 359, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Client-side cross-site scripting](https://codeql.github.com/codeql-query-help/javascript/js-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Client-side request forgery](https://codeql.github.com/codeql-query-help/javascript/js-client-side-request-forgery/) | 918 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Client-side URL redirect](https://codeql.github.com/codeql-query-help/javascript/js-client-side-unvalidated-url-redirection/) | 079, 116, 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Code injection](https://codeql.github.com/codeql-query-help/javascript/js-code-injection/) | 094, 095, 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [CORS misconfiguration for credentials transfer](https://codeql.github.com/codeql-query-help/javascript/js-cors-misconfiguration-for-credentials/) | 346, 639, 942 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Creating biased random numbers from a cryptographically secure source](https://codeql.github.com/codeql-query-help/javascript/js-biased-cryptographic-random/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cross-window communication with unrestricted target origin](https://codeql.github.com/codeql-query-help/javascript/js-cross-window-information-leak/) | 201, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Database query built from user-controlled sources](https://codeql.github.com/codeql-query-help/javascript/js-sql-injection/) | 089, 090, 943 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Dependency download using unencrypted communication channel](https://codeql.github.com/codeql-query-help/javascript/js-insecure-dependency/) | 300, 319, 494, 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialization of user-controlled data](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-deserialization/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabling certificate validation](https://codeql.github.com/codeql-query-help/javascript/js-disabling-certificate-validation/) | 295, 297 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabling Electron webSecurity](https://codeql.github.com/codeql-query-help/javascript/js-disabling-electron-websecurity/) | 79 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Disabling SCE](https://codeql.github.com/codeql-query-help/javascript/js-angular-disabling-sce/) | 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [DOM text reinterpreted as HTML](https://codeql.github.com/codeql-query-help/javascript/js-xss-through-dom/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Double compilation](https://codeql.github.com/codeql-query-help/javascript/js-angular-double-compilation/) | 1176 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Double escaping or unescaping](https://codeql.github.com/codeql-query-help/javascript/js-double-escaping/) | 116, 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Download of sensitive file through insecure connection](https://codeql.github.com/codeql-query-help/javascript/js-insecure-download/) | 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Empty password in configuration file](https://codeql.github.com/codeql-query-help/javascript/js-empty-password-in-configuration-file/) | 258, 862 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Enabling Electron allowRunningInsecureContent](https://codeql.github.com/codeql-query-help/javascript/js-enabling-electron-insecure-content/) | 494 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Exception text reinterpreted as HTML](https://codeql.github.com/codeql-query-help/javascript/js-xss-through-exception/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Exposure of private files](https://codeql.github.com/codeql-query-help/javascript/js-exposure-of-private-files/) | 200, 219, 548 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Expression injection in Actions](https://codeql.github.com/codeql-query-help/javascript/js-actions-command-injection/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Failure to abandon session](https://codeql.github.com/codeql-query-help/javascript/js-session-fixation/) | 384 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [File data in outbound network request](https://codeql.github.com/codeql-query-help/javascript/js-file-access-to-http/) | 200 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credentials](https://codeql.github.com/codeql-query-help/javascript/js-hardcoded-credentials/) | 259, 321, 798 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded data interpreted as code](https://codeql.github.com/codeql-query-help/javascript/js-hardcoded-data-interpreted-as-code/) | 506 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Host header poisoning in email generation](https://codeql.github.com/codeql-query-help/javascript/js-host-header-forgery-in-email-generation/) | 640 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Improper code sanitization](https://codeql.github.com/codeql-query-help/javascript/js-bad-code-sanitization/) | 094, 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Inclusion of functionality from an untrusted source](https://codeql.github.com/codeql-query-help/javascript/js-functionality-from-untrusted-source/) | 830 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete HTML attribute sanitization](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-html-attribute-sanitization/) | 079, 116, 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete multi-character sanitization](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-multi-character-sanitization/) | 020, 080, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete regular expression for hostnames](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-hostname-regexp/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete string escaping or encoding](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-sanitization/) | 020, 080, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete URL scheme check](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-url-scheme-check/) | 020, 184 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete URL substring sanitization](https://codeql.github.com/codeql-query-help/javascript/js-incomplete-url-substring-sanitization/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incorrect suffix check](https://codeql.github.com/codeql-query-help/javascript/js-incorrect-suffix-check/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Indirect uncontrolled command line](https://codeql.github.com/codeql-query-help/javascript/js-indirect-command-line-injection/) | 078, 088 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Inefficient regular expression](https://codeql.github.com/codeql-query-help/javascript/js-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through a stack trace](https://codeql.github.com/codeql-query-help/javascript/js-stack-trace-exposure/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure randomness](https://codeql.github.com/codeql-query-help/javascript/js-insecure-randomness/) | 338 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure temporary file](https://codeql.github.com/codeql-query-help/javascript/js-insecure-temporary-file/) | 377, 378 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure URL whitelist](https://codeql.github.com/codeql-query-help/javascript/js-angular-insecure-url-whitelist/) | 183, 625 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [JWT missing secret or public key verification](https://codeql.github.com/codeql-query-help/javascript/js-jwt-missing-verification/) | 347 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Log injection](https://codeql.github.com/codeql-query-help/javascript/js-log-injection/) | 117 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Loop bound injection](https://codeql.github.com/codeql-query-help/javascript/js-loop-bound-injection/) | 834, 730 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing CSRF middleware](https://codeql.github.com/codeql-query-help/javascript/js-missing-token-validation/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing origin verification in `postMessage` handler](https://codeql.github.com/codeql-query-help/javascript/js-missing-origin-check/) | 020, 940 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing rate limiting](https://codeql.github.com/codeql-query-help/javascript/js-missing-rate-limiting/) | 770, 307, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing regular expression anchor](https://codeql.github.com/codeql-query-help/javascript/js-regex-missing-regexp-anchor/) | 020 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Network data written to file](https://codeql.github.com/codeql-query-help/javascript/js-http-to-file-access/) | 912, 434 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overly permissive regular expression range](https://codeql.github.com/codeql-query-help/javascript/js-overly-large-range/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Password in configuration file](https://codeql.github.com/codeql-query-help/javascript/js-password-in-configuration-file/) | 256, 260, 313, 522 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Polynomial regular expression used on uncontrolled data](https://codeql.github.com/codeql-query-help/javascript/js-polynomial-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Potential file system race condition](https://codeql.github.com/codeql-query-help/javascript/js-file-system-race/) | 367 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Potentially unsafe external link](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-external-link/) | 200, 1022 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Prototype-polluting assignment](https://codeql.github.com/codeql-query-help/javascript/js-prototype-polluting-assignment/) | 078, 079, 094, 400, 471, 915 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Prototype-polluting function](https://codeql.github.com/codeql-query-help/javascript/js-prototype-pollution-utility/) | 078, 079, 094, 400, 471, 915 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Prototype-polluting merge call](https://codeql.github.com/codeql-query-help/javascript/js-prototype-pollution/) | 078, 079, 094, 400, 471, 915 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Reflected cross-site scripting](https://codeql.github.com/codeql-query-help/javascript/js-reflected-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/javascript/js-regex-injection/) | 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Remote property injection](https://codeql.github.com/codeql-query-help/javascript/js-remote-property-injection/) | 250, 400 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Replacement of a substring with itself](https://codeql.github.com/codeql-query-help/javascript/js-identity-replacement/) | 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Resource exhaustion](https://codeql.github.com/codeql-query-help/javascript/js-resource-exhaustion/) | 400, 770 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Resources exhaustion from deep object traversal](https://codeql.github.com/codeql-query-help/javascript/js-resource-exhaustion-from-deep-object-traversal/) | 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Second order command injection](https://codeql.github.com/codeql-query-help/javascript/js-second-order-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Sensitive cookie without SameSite restrictions](https://codeql.github.com/codeql-query-help/javascript/js-samesite-none-cookie/) | 1275 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Sensitive data read from GET request](https://codeql.github.com/codeql-query-help/javascript/js-sensitive-get-query/) | 598 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Sensitive server cookie exposed to the client](https://codeql.github.com/codeql-query-help/javascript/js-client-exposed-cookie/) | 1004 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server crash](https://codeql.github.com/codeql-query-help/javascript/js-server-crash/) | 248, 730 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server-side request forgery](https://codeql.github.com/codeql-query-help/javascript/js-request-forgery/) | 918 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server-side URL redirect](https://codeql.github.com/codeql-query-help/javascript/js-server-side-unvalidated-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Shell command built from environment values](https://codeql.github.com/codeql-query-help/javascript/js-shell-command-injection-from-environment/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Storage of sensitive information in build artifact](https://codeql.github.com/codeql-query-help/javascript/js-build-artifact-leak/) | 312, 315, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Stored cross-site scripting](https://codeql.github.com/codeql-query-help/javascript/js-stored-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Template Object Injection](https://codeql.github.com/codeql-query-help/javascript/js-template-object-injection/) | 073, 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Type confusion through parameter tampering](https://codeql.github.com/codeql-query-help/javascript/js-type-confusion-through-parameter-tampering/) | 843 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line](https://codeql.github.com/codeql-query-help/javascript/js-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/javascript/js-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unnecessary use of `cat` process](https://codeql.github.com/codeql-query-help/javascript/js-unnecessary-use-of-cat/) | 078 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe code constructed from library input](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-code-construction/) | 094, 079, 116 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe dynamic method access](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-dynamic-method-access/) | 094 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe expansion of self-closing HTML tag](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-html-expansion/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe HTML constructed from library input](https://codeql.github.com/codeql-query-help/javascript/js-html-constructed-from-input/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe jQuery plugin](https://codeql.github.com/codeql-query-help/javascript/js-unsafe-jquery-plugin/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe shell command constructed from library input](https://codeql.github.com/codeql-query-help/javascript/js-shell-command-constructed-from-input/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unvalidated dynamic method call](https://codeql.github.com/codeql-query-help/javascript/js-unvalidated-dynamic-method-call/) | 754 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or weak cryptographic algorithm](https://codeql.github.com/codeql-query-help/javascript/js-weak-cryptographic-algorithm/) | 327, 328 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a weak cryptographic key](https://codeql.github.com/codeql-query-help/javascript/js-insufficient-key-size/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of externally-controlled format string](https://codeql.github.com/codeql-query-help/javascript/js-tainted-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of password hash with insufficient computational effort](https://codeql.github.com/codeql-query-help/javascript/js-insufficient-password-hash/) | 916 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Useless regular-expression character escape](https://codeql.github.com/codeql-query-help/javascript/js-useless-regexp-character-escape/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [User-controlled bypass of security check](https://codeql.github.com/codeql-query-help/javascript/js-user-controlled-bypass/) | 807, 290 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [XML external entity expansion](https://codeql.github.com/codeql-query-help/javascript/js-xxe/) | 611, 827 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML internal entity expansion](https://codeql.github.com/codeql-query-help/javascript/js-xml-bomb/) | 776, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XPath injection](https://codeql.github.com/codeql-query-help/javascript/js-xpath-injection/) | 643 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/python.md b/data/reusables/code-scanning/codeql-query-tables/python.md index e69de29bb2..a0fa0ad049 100644 --- a/data/reusables/code-scanning/codeql-query-tables/python.md +++ b/data/reusables/code-scanning/codeql-query-tables/python.md @@ -0,0 +1,47 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Accepting unknown SSH host keys when using Paramiko](https://codeql.github.com/codeql-query-help/python/py-paramiko-missing-host-key-validation/) | 295 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Arbitrary file write during tarfile extraction](https://codeql.github.com/codeql-query-help/python/py-tarslip/) | 022 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Bad HTML filtering regexp](https://codeql.github.com/codeql-query-help/python/py-bad-tag-filter/) | 116, 020, 185, 186 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Binding a socket to all network interfaces](https://codeql.github.com/codeql-query-help/python/py-bind-socket-all-network-interfaces/) | 200 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text logging of sensitive information](https://codeql.github.com/codeql-query-help/python/py-clear-text-logging-sensitive-data/) | 312, 359, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text storage of sensitive information](https://codeql.github.com/codeql-query-help/python/py-clear-text-storage-sensitive-data/) | 312, 315, 359 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Code injection](https://codeql.github.com/codeql-query-help/python/py-code-injection/) | 094, 095, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [CSRF protection weakened or disabled](https://codeql.github.com/codeql-query-help/python/py-csrf-protection-disabled/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Default version of SSL/TLS may be insecure](https://codeql.github.com/codeql-query-help/python/py-insecure-default-protocol/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialization of user-controlled data](https://codeql.github.com/codeql-query-help/python/py-unsafe-deserialization/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Flask app is run in debug mode](https://codeql.github.com/codeql-query-help/python/py-flask-debug/) | 215, 489 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Full server-side request forgery](https://codeql.github.com/codeql-query-help/python/py-full-ssrf/) | 918 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credentials](https://codeql.github.com/codeql-query-help/python/py-hardcoded-credentials/) | 259, 321, 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete regular expression for hostnames](https://codeql.github.com/codeql-query-help/python/py-incomplete-hostname-regexp/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete URL substring sanitization](https://codeql.github.com/codeql-query-help/python/py-incomplete-url-substring-sanitization/) | 20 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Inefficient regular expression](https://codeql.github.com/codeql-query-help/python/py-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through an exception](https://codeql.github.com/codeql-query-help/python/py-stack-trace-exposure/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure temporary file](https://codeql.github.com/codeql-query-help/python/py-insecure-temporary-file/) | 377 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Jinja2 templating with autoescape=False](https://codeql.github.com/codeql-query-help/python/py-jinja2-autoescape-false/) | 079 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [LDAP query built from user-controlled sources](https://codeql.github.com/codeql-query-help/python/py-ldap-injection/) | 090 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Log Injection](https://codeql.github.com/codeql-query-help/python/py-log-injection/) | 117 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overly permissive file permissions](https://codeql.github.com/codeql-query-help/python/py-overly-permissive-file/) | 732 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overly permissive regular expression range](https://codeql.github.com/codeql-query-help/python/py-overly-large-range/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [PAM authorization bypass due to incorrect usage](https://codeql.github.com/codeql-query-help/python/py-pam-auth-bypass/) | 285 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Partial server-side request forgery](https://codeql.github.com/codeql-query-help/python/py-partial-ssrf/) | 918 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Polynomial regular expression used on uncontrolled data](https://codeql.github.com/codeql-query-help/python/py-polynomial-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Reflected server-side cross-site scripting](https://codeql.github.com/codeql-query-help/python/py-reflective-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/python/py-regex-injection/) | 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Request without certificate validation](https://codeql.github.com/codeql-query-help/python/py-request-without-cert-validation/) | 295 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [SQL query built from user-controlled sources](https://codeql.github.com/codeql-query-help/python/py-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line](https://codeql.github.com/codeql-query-help/python/py-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/python/py-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe shell command constructed from library input](https://codeql.github.com/codeql-query-help/python/py-shell-command-constructed-from-input/) | 078, 088, 073 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [URL redirection from remote source](https://codeql.github.com/codeql-query-help/python/py-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or weak cryptographic algorithm](https://codeql.github.com/codeql-query-help/python/py-weak-cryptographic-algorithm/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or weak cryptographic hashing algorithm on sensitive data](https://codeql.github.com/codeql-query-help/python/py-weak-sensitive-data-hashing/) | 327, 328, 916 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of insecure SSL/TLS version](https://codeql.github.com/codeql-query-help/python/py-insecure-protocol/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of weak cryptographic key](https://codeql.github.com/codeql-query-help/python/py-weak-crypto-key/) | 326 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML external entity expansion](https://codeql.github.com/codeql-query-help/python/py-xxe/) | 611, 827 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML internal entity expansion](https://codeql.github.com/codeql-query-help/python/py-xml-bomb/) | 776, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XPath query built from user-controlled sources](https://codeql.github.com/codeql-query-help/python/py-xpath-injection/) | 643 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/query-suite-behavior.md b/data/reusables/code-scanning/codeql-query-tables/query-suite-behavior.md new file mode 100644 index 0000000000..646d5c64f1 --- /dev/null +++ b/data/reusables/code-scanning/codeql-query-tables/query-suite-behavior.md @@ -0,0 +1 @@ +All queries in the `default` query suite are run by default. If you choose to use the `security-extended` query suite, additional queries are run. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/built-in-codeql-query-suites)." diff --git a/data/reusables/code-scanning/codeql-query-tables/ruby.md b/data/reusables/code-scanning/codeql-query-tables/ruby.md index e69de29bb2..fe60c116c5 100644 --- a/data/reusables/code-scanning/codeql-query-tables/ruby.md +++ b/data/reusables/code-scanning/codeql-query-tables/ruby.md @@ -0,0 +1,47 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Bad HTML filtering regexp](https://codeql.github.com/codeql-query-help/ruby/rb-bad-tag-filter/) | 116, 020, 185, 186 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Badly anchored regular expression](https://codeql.github.com/codeql-query-help/ruby/rb-regex-badly-anchored-regexp/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text logging of sensitive information](https://codeql.github.com/codeql-query-help/ruby/rb-clear-text-logging-sensitive-data/) | 312, 359, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Clear-text storage of sensitive information](https://codeql.github.com/codeql-query-help/ruby/rb-clear-text-storage-sensitive-data/) | 312, 359, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Code injection](https://codeql.github.com/codeql-query-help/ruby/rb-code-injection/) | 094, 095, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [CSRF protection weakened or disabled](https://codeql.github.com/codeql-query-help/ruby/rb-csrf-protection-disabled/) | 352 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Dependency download using unencrypted communication channel](https://codeql.github.com/codeql-query-help/ruby/rb-insecure-dependency/) | 300, 319, 494, 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Deserialization of user-controlled data](https://codeql.github.com/codeql-query-help/ruby/rb-unsafe-deserialization/) | 502 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Download of sensitive file through insecure connection](https://codeql.github.com/codeql-query-help/ruby/rb-insecure-download/) | 829 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded credentials](https://codeql.github.com/codeql-query-help/ruby/rb-hardcoded-credentials/) | 259, 321, 798 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded data interpreted as code](https://codeql.github.com/codeql-query-help/ruby/rb-hardcoded-data-interpreted-as-code/) | 506 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete multi-character sanitization](https://codeql.github.com/codeql-query-help/ruby/rb-incomplete-multi-character-sanitization/) | 020, 080, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete regular expression for hostnames](https://codeql.github.com/codeql-query-help/ruby/rb-incomplete-hostname-regexp/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete string escaping or encoding](https://codeql.github.com/codeql-query-help/ruby/rb-incomplete-sanitization/) | 020, 080, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete URL substring sanitization](https://codeql.github.com/codeql-query-help/ruby/rb-incomplete-url-substring-sanitization/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Inefficient regular expression](https://codeql.github.com/codeql-query-help/ruby/rb-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Information exposure through an exception](https://codeql.github.com/codeql-query-help/ruby/rb-stack-trace-exposure/) | 209, 497 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Log injection](https://codeql.github.com/codeql-query-help/ruby/rb-log-injection/) | 117 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing regular expression anchor](https://codeql.github.com/codeql-query-help/ruby/rb-regex-missing-regexp-anchor/) | 020 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Network data written to file](https://codeql.github.com/codeql-query-help/ruby/rb-http-to-file-access/) | 912, 434 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Overly permissive regular expression range](https://codeql.github.com/codeql-query-help/ruby/rb-overly-large-range/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Polynomial regular expression used on uncontrolled data](https://codeql.github.com/codeql-query-help/ruby/rb-polynomial-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Reflected server-side cross-site scripting](https://codeql.github.com/codeql-query-help/ruby/rb-reflected-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/ruby/rb-regexp-injection/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Request without certificate validation](https://codeql.github.com/codeql-query-help/ruby/rb-request-without-cert-validation/) | 295 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Sensitive data read from GET request](https://codeql.github.com/codeql-query-help/ruby/rb-sensitive-get-query/) | 598 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Server-side request forgery](https://codeql.github.com/codeql-query-help/ruby/rb-request-forgery/) | 918 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [SQL query built from user-controlled sources](https://codeql.github.com/codeql-query-help/ruby/rb-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Stored cross-site scripting](https://codeql.github.com/codeql-query-help/ruby/rb-stored-xss/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled command line](https://codeql.github.com/codeql-query-help/ruby/rb-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/ruby/rb-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe code constructed from library input](https://codeql.github.com/codeql-query-help/ruby/rb-unsafe-code-construction/) | 094, 079, 116 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe HTML constructed from library input](https://codeql.github.com/codeql-query-help/ruby/rb-html-constructed-from-input/) | 079, 116 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe shell command constructed from library input](https://codeql.github.com/codeql-query-help/ruby/rb-shell-command-constructed-from-input/) | 078, 088, 073 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [URL redirection from remote source](https://codeql.github.com/codeql-query-help/ruby/rb-url-redirection/) | 601 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of `Kernel.open` or `IO.read` or similar sinks with a non-constant value](https://codeql.github.com/codeql-query-help/ruby/rb-non-constant-kernel-open/) | 078, 088, 073 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of `Kernel.open`, `IO.read` or similar sinks with user-controlled input](https://codeql.github.com/codeql-query-help/ruby/rb-kernel-open/) | 078, 088, 073 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or weak cryptographic algorithm](https://codeql.github.com/codeql-query-help/ruby/rb-weak-cryptographic-algorithm/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of externally-controlled format string](https://codeql.github.com/codeql-query-help/ruby/rb-tainted-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Weak cookie configuration](https://codeql.github.com/codeql-query-help/ruby/rb-weak-cookie-configuration/) | 732, 1275 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [XML external entity expansion](https://codeql.github.com/codeql-query-help/ruby/rb-xxe/) | 611, 776, 827 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} diff --git a/data/reusables/code-scanning/codeql-query-tables/swift.md b/data/reusables/code-scanning/codeql-query-tables/swift.md index e69de29bb2..259ffa24ff 100644 --- a/data/reusables/code-scanning/codeql-query-tables/swift.md +++ b/data/reusables/code-scanning/codeql-query-tables/swift.md @@ -0,0 +1,32 @@ +{% rowheaders %} + +| Query name | Related CWEs | Default | Extended | +| --- | --- | --- | --- | +| [Bad HTML filtering regexp](https://codeql.github.com/codeql-query-help/swift/swift-bad-tag-filter/) | 116, 020, 185, 186 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext logging of sensitive information](https://codeql.github.com/codeql-query-help/swift/swift-cleartext-logging/) | 312, 359, 532 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in a local database](https://codeql.github.com/codeql-query-help/swift/swift-cleartext-storage-database/) | 312 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext storage of sensitive information in an application preference store](https://codeql.github.com/codeql-query-help/swift/swift-cleartext-storage-preferences/) | 312 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Cleartext transmission of sensitive information](https://codeql.github.com/codeql-query-help/swift/swift-cleartext-transmission/) | 319 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Constant password](https://codeql.github.com/codeql-query-help/swift/swift-constant-password/) | 259 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Database query built from user-controlled sources](https://codeql.github.com/codeql-query-help/swift/swift-sql-injection/) | 089 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Encryption using ECB](https://codeql.github.com/codeql-query-help/swift/swift-ecb-encryption/) | 327 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Hard-coded encryption key](https://codeql.github.com/codeql-query-help/swift/swift-hardcoded-key/) | 321 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Incomplete regular expression for hostnames](https://codeql.github.com/codeql-query-help/swift/swift-incomplete-hostname-regexp/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Inefficient regular expression](https://codeql.github.com/codeql-query-help/swift/swift-redos/) | 1333, 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insecure TLS configuration](https://codeql.github.com/codeql-query-help/swift/swift-insecure-tls/) | 757 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Insufficient hash iterations](https://codeql.github.com/codeql-query-help/swift/swift-insufficient-hash-iterations/) | 916 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [JavaScript Injection](https://codeql.github.com/codeql-query-help/swift/swift-unsafe-js-eval/) | 094, 095, 749 | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| [Missing regular expression anchor](https://codeql.github.com/codeql-query-help/swift/swift-missing-regexp-anchor/) | 020 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Predicate built from user-controlled sources](https://codeql.github.com/codeql-query-help/swift/swift-predicate-injection/) | 943 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Regular expression injection](https://codeql.github.com/codeql-query-help/swift/swift-regex-injection/) | 730, 400 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Resolving XML external entity in user-controlled data](https://codeql.github.com/codeql-query-help/swift/swift-xxe/) | 611, 776, 827 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Static initialization vector for encryption](https://codeql.github.com/codeql-query-help/swift/swift-static-initialization-vector/) | 329, 1204 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [String length conflation](https://codeql.github.com/codeql-query-help/swift/swift-string-length-conflation/) | 135 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [System command built from user-controlled sources](https://codeql.github.com/codeql-query-help/swift/swift-command-line-injection/) | 078, 088 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled data used in path expression](https://codeql.github.com/codeql-query-help/swift/swift-path-injection/) | 022, 023, 036, 073, 099 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Uncontrolled format string](https://codeql.github.com/codeql-query-help/swift/swift-uncontrolled-format-string/) | 134 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Unsafe WebView fetch](https://codeql.github.com/codeql-query-help/swift/swift-unsafe-webview-fetch/) | 079, 095, 749 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of a broken or weak cryptographic hashing algorithm on sensitive data](https://codeql.github.com/codeql-query-help/swift/swift-weak-sensitive-data-hashing/) | 327, 328 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| [Use of constant salts](https://codeql.github.com/codeql-query-help/swift/swift-constant-salt/) | 760 | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | + +{% endrowheaders %} From 196337454386d089413c256b80880dc5f6de62c3 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Mon, 11 Dec 2023 09:36:50 -0800 Subject: [PATCH 64/71] Update workflow to reflect name change to old FR project (#47638) --- .github/workflows/remove-from-fr-board.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/remove-from-fr-board.yaml b/.github/workflows/remove-from-fr-board.yaml index 8ecef70699..7fddc1cee2 100644 --- a/.github/workflows/remove-from-fr-board.yaml +++ b/.github/workflows/remove-from-fr-board.yaml @@ -19,13 +19,13 @@ jobs: steps: - name: Remove issue from board if: ${{ github.event.client_payload.command.resource.type == 'Issue' }} - run: gh issue edit "$ISSUE_URL" --remove-project "Docs content first responder" --remove-label "docs-content-fr" + run: gh issue edit "$ISSUE_URL" --remove-project "Docs content first responder (deprecated)" --remove-label "docs-content-fr" env: GITHUB_TOKEN: ${{secrets.DOCS_BOT_PAT_WORKFLOW_READORG}} ISSUE_URL: https://github.com/${{ github.event.client_payload.command.repository.full_name }}/issues/${{ github.event.client_payload.command.resource.number }} - name: Remove PR from board if: ${{ github.event.client_payload.command.resource.type == 'PullRequest' }} - run: gh pr edit "$PR_URL" --remove-project "Docs content first responder" --remove-label "docs-content-fr" + run: gh pr edit "$PR_URL" --remove-project "Docs content first responder (deprecated)" --remove-label "docs-content-fr" env: GITHUB_TOKEN: ${{secrets.DOCS_BOT_PAT_WORKFLOW_READORG}} PR_URL: https://github.com/${{ github.event.client_payload.command.repository.full_name }}/pull/${{ github.event.client_payload.command.resource.number }} From b7d07f98402d4c58215cbfd93935d24b9b514fb2 Mon Sep 17 00:00:00 2001 From: Mark Maxwell <138938022+mark-mxwl@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:12:52 -0800 Subject: [PATCH 65/71] Update generating-a-json-web-token-jwt-for-a-github-app.md (#30450) --- .../generating-a-json-web-token-jwt-for-a-github-app.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 667bea7a76..038a8d2bde 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 @@ -88,7 +88,7 @@ puts jwt ```python copy #!/usr/bin/env python3 -import jwt +from jwt import JWT, jwk_from_pem import time import sys @@ -107,7 +107,7 @@ else: # Open PEM with open(pem, 'rb') as pem_file: - signing_key = jwt.jwk_from_pem(pem_file.read()) + signing_key = jwk_from_pem(pem_file.read()) payload = { # Issued at time @@ -119,7 +119,7 @@ payload = { } # Create JWT -jwt_instance = jwt.JWT() +jwt_instance = JWT() encoded_jwt = jwt_instance.encode(payload, signing_key, alg='RS256') print(f"JWT: {encoded_jwt}") From 3b568a56d1a88331a1ec80de875c1a76d19e1dc0 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Mon, 11 Dec 2023 10:13:49 -0800 Subject: [PATCH 66/71] Single page routing page event, delay a frame (#47510) --- src/events/components/events.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events/components/events.ts b/src/events/components/events.ts index a9e0d68064..78c872b14b 100644 --- a/src/events/components/events.ts +++ b/src/events/components/events.ts @@ -317,7 +317,7 @@ async function waitForPageReady() { const route = new Promise((resolve) => { const handler = () => { Router.events.off('routeChangeComplete', handler) - resolve(true) + setTimeout(() => resolve(true)) } Router.events.on('routeChangeComplete', handler) }) @@ -331,7 +331,7 @@ async function waitForPageReady() { ) if (metaMutated) { observer.disconnect() - resolve(true) + setTimeout(() => resolve(true)) } }) observer.observe(document.getElementsByTagName('head')[0], { From 2882d2a5d11c859261c9cd67a63802b4f2eae8bb Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 13:26:20 -0500 Subject: [PATCH 67/71] Latest node:20-alpine (#47627) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f8a21fc81a..b3bebe63f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # -------------------------------------------------------------------------------- # To update the sha, run `docker pull node:$VERSION-alpine` # look for something like: `Digest: sha256:0123456789abcdef` -FROM node:20-alpine@sha256:b1789b7be6aa16afd642eaaaccdeeeb33bd8f08e69b3d27d931aa9665b731f01 as base +FROM node:20-alpine@sha256:32427bc0620132b2d9e79e405a1b27944d992501a20417a7f407427cc4c2b672 as base # This directory is owned by the node user ARG APP_HOME=/home/node/app From 0daade082efa9ce7c074faaec06834eee91b7da2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 13:32:01 -0500 Subject: [PATCH 68/71] Handle weird 'tool' query strings (#47626) --- .../middleware/handle-invalid-query-strings.js | 12 +++++++++++- src/shielding/tests/invalid-querystrings.js | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/shielding/middleware/handle-invalid-query-strings.js b/src/shielding/middleware/handle-invalid-query-strings.js index 64a96680cf..7048dfab63 100644 --- a/src/shielding/middleware/handle-invalid-query-strings.js +++ b/src/shielding/middleware/handle-invalid-query-strings.js @@ -76,7 +76,17 @@ export default function handleInvalidQuerystrings(req, res, next) { const badKeylessQuery = rootHomePage && keys.length === 1 && keys[0].length === 8 && !query[keys[0]] - if (keys.length >= MAX_UNFAMILIAR_KEYS_REDIRECT || badKeylessQuery) { + // It's still a mystery why these requests happen but we've seen large + // number of requests that have a very long URL-encoded query string + // that starts with 'tool' but doesn't have any value. + // For example + // ?tool%25252525253Dvisualstudio%252525253D%2525252526tool%25252525... + // ...3Dvscode%2525253D%25252526tool%2525253Dvscode%25253D%252526tool... + // ...%25253Dvimneovim%253D%2526tool%253Djetbrains%3D%26tool%3Djetbrains=& + // Let's shield against those by removing them. + const badToolsQuery = keys.some((key) => key.startsWith('tool%') && !query[key]) + + if (keys.length >= MAX_UNFAMILIAR_KEYS_REDIRECT || badKeylessQuery || badToolsQuery) { defaultCacheControl(res) const sp = new URLSearchParams(query) keys.forEach((key) => sp.delete(key)) diff --git a/src/shielding/tests/invalid-querystrings.js b/src/shielding/tests/invalid-querystrings.js index e21f2e58ae..cdf9b95667 100644 --- a/src/shielding/tests/invalid-querystrings.js +++ b/src/shielding/tests/invalid-querystrings.js @@ -63,6 +63,14 @@ describe('invalid query strings', () => { expect(res.statusCode).toBe(302) expect(res.headers.location).toBe('/en') }) + + test('bad tool query string with Chinese URL-encoded characters', async () => { + const url = + '/?tool%25252525253Dvisualstudio%252525253D%2525252526tool%252525253Dvscode%2525253D%25252526tool%2525253Dvscode%25253D%252526tool%25253Dvimneovim%253D%2526tool%253Djetbrains%3D%26tool%3Djetbrains=&tool=azure_data_studio' + const res = await get(url) + expect(res.statusCode).toBe(302) + expect(res.headers.location).toBe('/?tool=azure_data_studio') + }) }) function randomCharacters(length) { From 0d77590b885ec6b72e952a37d9d363ca44fb1188 Mon Sep 17 00:00:00 2001 From: Grace Park Date: Mon, 11 Dec 2023 10:32:22 -0800 Subject: [PATCH 69/71] Remove all `OR` additional permission sets (#47063) Co-authored-by: Rachael Sewell --- src/github-apps/scripts/sync.js | 49 +++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 9 deletions(-) mode change 100755 => 100644 src/github-apps/scripts/sync.js diff --git a/src/github-apps/scripts/sync.js b/src/github-apps/scripts/sync.js old mode 100755 new mode 100644 index d735fc7870..544fb18a42 --- a/src/github-apps/scripts/sync.js +++ b/src/github-apps/scripts/sync.js @@ -62,9 +62,11 @@ export async function syncGitHubAppsData(openApiSource, sourceSchemas, progAcces } // permissions - for (const [permissionName, readOrWrite] of Object.entries( - progAccessData[operation.operationId].permissions, - )) { + const allPermissions = { + ...progAccessData[operation.operationId].permissions.and, + ...progAccessData[operation.operationId].permissions.or, + } + for (const [permissionName, readOrWrite] of Object.entries(allPermissions)) { const tempTitle = permissionName.replace(/_/g, ' ') const permissionNameExists = progActorResources[permissionName] if (!permissionNameExists) { @@ -76,9 +78,8 @@ export async function syncGitHubAppsData(openApiSource, sourceSchemas, progAcces const resourceGroup = progActorResources[permissionName]?.resource_group || '' const displayTitle = getDisplayTitle(title, resourceGroup) const relatedPermissionNames = Object.keys( - progAccessData[operation.operationId].permissions, + progAccessData[operation.operationId].permissions.and, ).filter((permission) => permission !== permissionName) - // github app permissions const serverToServerPermissions = githubAppsData['server-to-server-permissions'] if (!serverToServerPermissions[permissionName]) { @@ -182,11 +183,41 @@ async function getProgAccessData(progAccessSource) { const progAccessData = {} for (const operation of progAccessDataRaw) { - const permissions = {} + const permissions = { or: {}, and: {} } if (operation.permission_sets) { - operation.permission_sets.forEach((permissionSet) => { - Object.assign(permissions, permissionSet) - }) + // Currently there is only a length of up to 2 permission_sets + // OR permission_sets are dashed lists in yaml + // e.g. + // permission_sets: + // - admin: write + // - contents: read + // This becomes: [{admin: write}, {contents: read}] with yaml.load + if (operation.permission_sets.length === 2) { + // There's currently only one scenario where you have an OR permission_set where one of the OR permissions is an AND permission_set + // In this scenario, we want the AND permission_set + if ( + Object.keys(operation.permission_sets[0]).length > 1 || + Object.keys(operation.permission_sets[1]).length > 1 + ) { + const andPermissionSet = + Object.keys(operation.permission_sets[0]).length > 1 + ? operation.permission_sets[0] + : operation.permission_sets[1] + Object.assign(permissions.and, andPermissionSet) + } else { + operation.permission_sets.forEach((permissionSet) => { + Object.assign(permissions.or, permissionSet) + }) + } + // AND permission_sets are under the same dash in yaml + // e.g. + // permission_sets: + // - admin: write + // contents: read + // This becomes: [{admin: write, contents: read}] with yaml.load + } else if (operation.permission_sets.length === 1) { + Object.assign(permissions.and, operation.permission_sets[0]) + } } const userToServerRest = operation.user_to_server.enabled From 65ab895d0ea297de9e7ba7afc3f07dc565b7a8bd Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 13:55:16 -0500 Subject: [PATCH 70/71] Delete orphan translation files from translation repos (#47494) Co-authored-by: Robert Sese <734194+rsese@users.noreply.github.com> --- .../delete-orphan-translation-files.yml | 116 ++++++++++++++++++ package.json | 1 + .../delete-orphan-translation-files.ts | 84 +++++++++++++ 3 files changed, 201 insertions(+) create mode 100644 .github/workflows/delete-orphan-translation-files.yml create mode 100644 src/workflows/delete-orphan-translation-files.ts diff --git a/.github/workflows/delete-orphan-translation-files.yml b/.github/workflows/delete-orphan-translation-files.yml new file mode 100644 index 0000000000..2ce1de12cf --- /dev/null +++ b/.github/workflows/delete-orphan-translation-files.yml @@ -0,0 +1,116 @@ +name: Delete orphan translation files + +# **What it does**: +# Compares content & data files left in each translation that aren't +# in docs-internal. Then creates a PR to delete these files. +# **Why we have it**: +# When Juno dumps to each translation repo it can not account for the +# fact that files in docs-internal get moved or deleted. So the +# sum total of files constantly grows. +# This leads to excess files in each translation repo that are not +# ever used but has to be put into every production build. +# **Who does it impact**: Docs engineering + +on: + workflow_dispatch: + schedule: + - cron: '20 16 * * 1' # Run every Monday at 16:20 UTC / 8:20 PST + +permissions: + contents: write + +jobs: + delete-orphan-translation-files: + if: github.repository == 'github/docs-internal' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - language: zh + language_dir: translations/zh-cn + language_repo: github/docs-internal.zh-cn + + - language: es + language_dir: translations/es-es + language_repo: github/docs-internal.es-es + + - language: pt + language_dir: translations/pt-br + language_repo: github/docs-internal.pt-br + + - language: ru + language_dir: translations/ru-ru + language_repo: github/docs-internal.ru-ru + + - language: ja + language_dir: translations/ja-jp + language_repo: github/docs-internal.ja-jp + + - language: fr + language_dir: translations/fr-fr + language_repo: github/docs-internal.fr-fr + + - language: de + language_dir: translations/de-de + language_repo: github/docs-internal.de-de + + - language: ko + language_dir: translations/ko-kr + language_repo: github/docs-internal.ko-kr + + steps: + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + + - name: Checkout the language-specific repo + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + repository: ${{ matrix.language_repo }} + token: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} + path: ${{ matrix.language_dir }} + + - uses: ./.github/actions/node-npm-setup + + - name: Delete orphan files + run: | + npm run delete-orphan-translation-files -- ${{ matrix.language_dir }} + + - name: Debug deleted files + working-directory: ${{ matrix.language_dir }} + run: git status + + - name: Git config + working-directory: ${{ matrix.language_dir }} + run: | + git config --global user.name "docs-bot" + git config --global user.email "77750099+docs-bot@users.noreply.github.com" + + - name: Git commit and push, create and merge PR + working-directory: ${{ matrix.language_dir }} + env: + # Needed for gh + GH_TOKEN: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} + run: | + git status + current_timestamp=$(date '+%Y-%m-%d-%H%M%S') + branch_name="delete-orphan-files-$current_timestamp" + git checkout -b "$branch_name" + current_daystamp=$(date '+%Y-%m-%d') + git commit -a -m "Delete orphan files ($current_daystamp)" + git push origin "$branch_name" + + # Create PR + echo "Creating pull request..." + gh pr create \ + --title "Delete orphan files ($current_daystamp)" \ + --body '👋 humans. This PR was generated from docs-internal/.github/workflows/delete-orphan-translation-files.yml. + ' \ + --repo "${{ matrix.language_repo }}" + echo "Merge created PR..." + gh pr merge --merge --auto --delete-branch "$branch_name" + + - uses: ./.github/actions/slack-alert + if: ${{ failure() && github.event_name != 'workflow_dispatch' }} + with: + slack_channel_id: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} + slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} diff --git a/package.json b/package.json index a3f06cec11..df86c7f317 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "copy-fixture-data": "node src/tests/scripts/copy-fixture-data.js", "create-translation-health-report": "node src/languages/scripts/create-translation-health-report.js", "debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES=en nodemon --inspect src/frame/server.js", + "delete-orphan-translation-files": "tsx src/workflows/delete-orphan-translation-files.ts", "dev": "cross-env npm start", "find-orphaned-assets": "node src/assets/scripts/find-orphaned-assets.js", "fixture-dev": "cross-env ROOT=src/fixtures/fixtures npm start", diff --git a/src/workflows/delete-orphan-translation-files.ts b/src/workflows/delete-orphan-translation-files.ts new file mode 100644 index 0000000000..7b52075c33 --- /dev/null +++ b/src/workflows/delete-orphan-translation-files.ts @@ -0,0 +1,84 @@ +#!/usr/bin/env node + +/** + * This script will delete files from a translation repo of files that + * only exist there and not "here". Here being the docs repo. + * It will only look at *.md files in `content/` and + * only look at *.md and *.yml files in `data/`. + * + * If executed with `--dry-run` it will only print what it would delete. + * + * To avoid deleting too many files at once, which can make PRs too big, + * there's a `--max ` options which is defaulted to 100. + * + * To run this locally, check out a translation repo and then run it like this: + * + * git clone git@github.com:github/docs-internal.ja-jp.git /tmp/docs-internal.ja-jp + * npm run delete-orphan-translation-files -- /tmp/docs-internal.ja-jp + * + * Note that it doesn't execute `git rm ...` for you. Just regular + * file deletion. It's up to you now to commit and push. + */ + +import fs from 'fs' +import path from 'path' + +import { program } from 'commander' +import walkFiles from 'src/workflows/walk-files.js' +import { ROOT } from 'src/frame/lib/constants.js' + +program + .description('Delete orphan translation files') + .option('--dry-run', 'Just print what it would delete') + .option('--max ', 'Max. number of files to delete', '100') + .argument('', 'path to repo root') + .parse(process.argv) + +const opts = program.opts() + +type Options = { + dryRun: boolean + max: number +} +main(program.args[0], { + dryRun: Boolean(opts.dryRun), + max: parseInt(opts.max, 10), +}) + +function main(root: string, options: Options) { + let deleted = 0 + let countInSync = 0 + let countOrphan = 0 + for (const filePath of getContentAndDataFiles(root)) { + const relPath = path.relative(root, filePath) + if (!fs.existsSync(path.join(ROOT, relPath))) { + countOrphan++ + if (deleted < options.max) { + if (options.dryRun) { + console.log('DELETE', filePath) + } else { + fs.rmSync(filePath) + console.log('DELETED', filePath) + } + deleted++ + + if (deleted >= options.max) { + console.log(`Max. number (${options.max}) of files deleted`) + } + } + } else { + countInSync++ + } + } + console.log(`In conclusion, deleted ${deleted.toLocaleString()} files.`) + console.log( + `There are ${countInSync.toLocaleString()} files in sync and ${countOrphan.toLocaleString()} orphan files in ${root}`, + ) +} + +function getContentAndDataFiles(root: string) { + return [ + ...walkFiles(path.join(root, 'content'), ['.md']), + ...walkFiles(path.join(root, 'data'), ['.md', '.yml']), + ] +} From 032316c3493f2252296f380753625dfbef15f44e Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 11 Dec 2023 14:28:09 -0500 Subject: [PATCH 71/71] Remove never-tested code-scanning rest fixture page (#47644) --- .../fixtures/content/rest/code-scanning.md | 22 ------------------- src/fixtures/fixtures/content/rest/index.md | 1 - 2 files changed, 23 deletions(-) delete mode 100644 src/fixtures/fixtures/content/rest/code-scanning.md diff --git a/src/fixtures/fixtures/content/rest/code-scanning.md b/src/fixtures/fixtures/content/rest/code-scanning.md deleted file mode 100644 index 67cdf4892d..0000000000 --- a/src/fixtures/fixtures/content/rest/code-scanning.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Code Scanning -intro: >- - Use the REST API to retrieve and update {% data - variables.product.prodname_code_scanning %} alerts from a repository. -versions: - fpt: '*' - ghae: '*' - ghec: '*' - ghes: '*' -autogenerated: rest ---- - - -## About code scanning - -👋, if you're reading this, this is fixture content based on picking -a single endpoint from the real REST API reference docs. -This page, in particular, is different from "[AUTOTITLE](/rest/actions)" -in that the sidebar shows all sub-headings directly. - - diff --git a/src/fixtures/fixtures/content/rest/index.md b/src/fixtures/fixtures/content/rest/index.md index a6fb452564..678acad855 100644 --- a/src/fixtures/fixtures/content/rest/index.md +++ b/src/fixtures/fixtures/content/rest/index.md @@ -20,7 +20,6 @@ versions: children: - /overview - /actions - - /code-scanning ---