From bfb41002930de85fb27ddfcb06c2031d07d0d16e Mon Sep 17 00:00:00 2001 From: Haripriya Chintalapati Date: Fri, 29 May 2026 20:45:00 -0400 Subject: [PATCH 01/12] Document Dependabot supported versioning tags for Bundler, Cargo and pip (PEP 440) (#61469) Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../dependabot-updates-supported-versioning-tags.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md b/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md index 3e16bb5dd6ca..0a98642a0505 100644 --- a/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md +++ b/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md @@ -13,10 +13,17 @@ The `dependabot.yml` file doesn't control the versioning tags that you can use, | sbt | `sbt` | `alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot` | `akka-actor@2.7.0-RC1`, `play-json@3.0.0-M1` | | {% endif %} | | yarn | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@1.2.0-alpha`, `axios@latest`, `moment@nightly` | -| Bundler | `bundler` | `alpha`, `beta`, `rc`, `pre` | `rails@1.0.0.alpha`, `rack@1.0.0.beta1`, `rspec@1.0.0.rc2` | +| Bundler | `bundler` | Any prerelease identifier (commonly `alpha`, `beta`, `rc`, `pre`) | `rails@1.0.0.alpha`, `rack@1.0.0.beta1`, `rspec@1.0.0.rc2` | +| Cargo | `cargo` | Any SemVer prerelease identifier (commonly `alpha`, `beta`, `rc`, `dev`) | `serde@1.0.0-alpha`, `tokio@0.2.0-preview.3`, `clap@4.0.0-rc.1`, `rand@1.0.0-dev` | +| pip | `pip` | `a`, `b`, `rc`, `dev`, `post` | `requests@1.0.0a1`, `numpy@2.0.0b3`, `django@4.0rc1`, `black@1.0.0.dev5`, `pandas@2.0.5.post1` | +| pipenv | `pip` | `a`, `b`, `rc`, `dev`, `post` | `requests@1.0.0a1`, `numpy@2.0.0b3`, `django@4.0rc1`, `black@1.0.0.dev5`, `pandas@2.0.5.post1` | +| pip-compile | `pip` | `a`, `b`, `rc`, `dev`, `post` | `requests@1.0.0a1`, `numpy@2.0.0b3`, `django@4.0rc1`, `black@1.0.0.dev5`, `pandas@2.0.5.post1` | +| poetry | `pip` | `a`, `b`, `rc`, `dev`, `post` | `requests@1.0.0a1`, `numpy@2.0.0b3`, `django@4.0rc1`, `black@1.0.0.dev5`, `pandas@2.0.5.post1` | #### Ecosystem-specific versioning details The following details describe how {% data variables.product.prodname_dependabot %} interprets versioning for specific ecosystems. * **Bundler:** Bundler does not use a fixed set of prerelease tags. Any version segment containing a letter is treated as a prerelease (for example, `.alpha`, `.beta1`, `.rc2`). Hyphens in version strings are normalized to `.pre.` internally (for example, `1.0.0-beta` becomes `1.0.0.pre.beta`). +* **Cargo:** Follows SemVer 2.0.0 prerelease conventions. Anything after `-` is a prerelease identifier (dot-separated, `[0-9A-Za-z-]`). Build metadata (`+...`) is allowed but ignored for version precedence. +* **pip/pipenv/pip-compile/poetry (PEP 440):** The table lists canonical prerelease and postrelease suffixes per PEP 440. Aliases are also recognized and normalized to their canonical forms (`alpha`→`a`, `beta`→`b`, `c`/`pre`/`preview`→`rc`, `rev`/`r`→`post`). Epoch versions (`N!...`) and local versions (`+local`) are supported; local version segments are used only to break ties when the public version is identical. From 32263fffdf855ca61b9b31041fa3d61b52c169fd Mon Sep 17 00:00:00 2001 From: Cory Calahan Date: Mon, 1 Jun 2026 01:42:00 -0700 Subject: [PATCH 02/12] created rotating-the-signing-key-for-upgrade-packages.md (#61445) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- .../troubleshooting-upgrades/index.md | 1 + ...n-issues-with-upgrades-to-your-instance.md | 2 + ...ng-the-signing-key-for-upgrade-packages.md | 99 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 content/admin/upgrading-your-instance/troubleshooting-upgrades/rotating-the-signing-key-for-upgrade-packages.md diff --git a/content/admin/upgrading-your-instance/troubleshooting-upgrades/index.md b/content/admin/upgrading-your-instance/troubleshooting-upgrades/index.md index e57bca5d0957..35f742bedf37 100644 --- a/content/admin/upgrading-your-instance/troubleshooting-upgrades/index.md +++ b/content/admin/upgrading-your-instance/troubleshooting-upgrades/index.md @@ -6,5 +6,6 @@ versions: children: - /restoring-from-a-failed-upgrade - /known-issues-with-upgrades-to-your-instance + - /rotating-the-signing-key-for-upgrade-packages shortTitle: Troubleshoot an upgrade --- diff --git a/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md b/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md index 71fa1e4e4b4c..2b00dc0e07e8 100644 --- a/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md +++ b/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md @@ -17,6 +17,8 @@ category: {% data variables.product.company_short %} is aware of the following issues that could impact upgrades to new releases of {% data variables.product.prodname_ghe_server %}. For more information, see "Known issues" in the [{% data variables.product.prodname_ghe_server %} release notes](/admin/release-notes). +If you see the error `The file provided is not a valid GitHub Enterprise Server package` when attempting an upgrade, you may need to rotate the GPG signing key on your instance. For more information, see [AUTOTITLE](/admin/upgrading-your-instance/troubleshooting-upgrades/rotating-the-signing-key-for-upgrade-packages). + {% data variables.product.company_short %} strongly recommends regular backups of your instance's configuration and data. Before you proceed with any upgrade, back up your instance, then validate the backup in a staging environment. For more information, see [AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance) and [AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance). ## Lifting the pause on upgrades to version 3.15 and above diff --git a/content/admin/upgrading-your-instance/troubleshooting-upgrades/rotating-the-signing-key-for-upgrade-packages.md b/content/admin/upgrading-your-instance/troubleshooting-upgrades/rotating-the-signing-key-for-upgrade-packages.md new file mode 100644 index 000000000000..7a92b7d137e8 --- /dev/null +++ b/content/admin/upgrading-your-instance/troubleshooting-upgrades/rotating-the-signing-key-for-upgrade-packages.md @@ -0,0 +1,99 @@ +--- +title: Rotating the signing key for upgrade packages +intro: 'Learn how to rotate the GPG public key on {% data variables.product.prodname_ghe_server %} when {% data variables.product.company_short %} updates the key used to sign upgrade packages.' +versions: + ghes: '*' +shortTitle: Rotate upgrade signing key +contentType: how-tos +category: + - Back up and upgrade your instance +--- + +## About upgrade package signing keys + +{% data variables.product.prodname_ghe_server %} upgrade packages are signed with a GPG key so that administrators can verify the packages come from {% data variables.product.company_short %}. When you install an upgrade, the appliance checks the package signature against the GPG public key stored in its keyring. + +Occasionally, {% data variables.product.company_short %} may rotate this signing key. When that happens, you must update the GPG public key on your instance before you can install any upgrade packages signed with the new key. Your instance will continue to function normally without the key rotation, but upgrades will fail signature verification until the key is updated. + +If the signing key has not been rotated, attempting to install an upgrade package will fail with the following error: + +```text +Error: The file provided is not a valid GitHub Enterprise Server package. +``` + +## Considerations for unsupported versions + +{% data variables.product.company_short %} strongly recommends upgrading to a supported version as soon as possible. + +Versions of {% data variables.product.prodname_ghe_server %} prior to 3.16 are not being re-signed with the new GPG key. If you are on version 3.13 or earlier you will not be able to rotate the GPG public key until you are on at least version 3.14. If you rotate your GPG public key before upgrading to at least 3.14 you will not be able to install upgrades, as the prior GPG public key will be removed from your {% data variables.product.prodname_ghe_server %} instance. + +For help determining the correct upgrade path, use the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade). + +## Prerequisites + +* SSH access to your {% data variables.product.prodname_ghe_server %} instance. For more information, see [AUTOTITLE](/admin/administering-your-instance/accessing-the-administrative-shell-ssh). +* Your instance must be able to reach `enterprise.github.com` over HTTPS to download the rotation script. If your instance is behind a restrictive firewall or in an air-gapped environment, download the script from an external machine and transfer it to the appliance manually. + +## Rotating the signing key on a single-node instance + +1. Connect to your {% data variables.product.prodname_ghe_server %} instance via SSH. +1. Download the rotation script provided by {% data variables.product.company_short %}. + + ```shell + curl -fsSL https://enterprise.github.com/security/2026-05-24/rotate-gpg.sh -o rotate-gpg.sh + ``` + +1. Run the rotation script. The script must be run twice: once as the `admin` user and once with `sudo`, because the key is stored in both the admin and root accounts. + + ```shell + chmod ug+x ./rotate-gpg.sh + ./rotate-gpg.sh + sudo ./rotate-gpg.sh + ``` + +1. Verify the rotation completed successfully. Each run of the script prints a confirmation message that includes the new key fingerprint. + +## Rotating the signing key on HA or cluster topologies + +For instances configured with high availability or clustering, the key must be rotated on every node. + +1. Connect to any node in your HA or cluster installation via SSH. +1. Download the rotation script provided by {% data variables.product.company_short %}. + + ```shell + curl -fsSL https://enterprise.github.com/security/2026-05-24/rotate-gpg.sh -o rotate-gpg.sh + ``` + +1. Run the following commands. The `ghe-cluster-each` command copies the script to all nodes and runs it on all nodes. + + ```shell + ghe-cluster-each -- chmod ug+x ./rotate-gpg.sh + ghe-cluster-each -- ./rotate-gpg.sh + ghe-cluster-each -- sudo ./rotate-gpg.sh + ``` + +1. Verify the rotation completed successfully on each node. + +## Verifying the current signing key + +To check which GPG signing key is currently installed on your instance, connect via SSH and run: + +```shell +gpg --list-keys --keyid-format long +``` + +The output displays the fingerprint of the key in the keyring. Compare the fingerprint with the expected value published by {% data variables.product.company_short %} to confirm the rotation was applied correctly. + +## What to expect after rotating the key + +After you rotate the signing key: + +* Your instance continues to function normally. No user downtime is required. +* Previously downloaded upgrade packages that were signed with the prior key will fail verification. Download the latest available patch release to get a package signed with the new key. +* Only download {% data variables.product.prodname_ghe_server %} updates from the official releases page. For more information, see [{% data variables.product.prodname_ghe_server %} releases](https://enterprise.github.com/releases). + +## Reverting a key rotation + +The rotation script removes the previous key from the GPG keyring before importing the new key. There is no built-in way to undo the rotation. + +If you need assistance reverting a key rotation or recovering from a failed upgrade, [contact {% data variables.contact.github_support %}](/support/contacting-github-support). From fa1e18d69afaee87f493377f28c2b5aa74acaf59 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 1 Jun 2026 06:42:51 -0700 Subject: [PATCH 03/12] fix: correct translation Liquid corruptions for search scraping [SCRAPE-6604] (#61386) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: heiskr <1221423+heiskr@users.noreply.github.com> --- .../lib/correct-translation-content.ts | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/languages/lib/correct-translation-content.ts b/src/languages/lib/correct-translation-content.ts index adeaadf3d893..9fe44393fc2c 100644 --- a/src/languages/lib/correct-translation-content.ts +++ b/src/languages/lib/correct-translation-content.ts @@ -490,6 +490,26 @@ export function correctTranslatedContentStrings( '{% data variables.product.prodname_dotcom %} ホステッド ランナー{% ifversion default-setup-self-hosted-runners-GHEC %}なしのエンタープライズに対して {% data variables.product.prodname_code_scanning %} を有効化、構成、および無効化できます。 {% data variables.product.prodname_code_scanning_caps %} を使用すると、コードの脆弱性やエラーをスキャンできます。', '{% data variables.product.prodname_dotcom %} ホステッド ランナー{% ifversion default-setup-self-hosted-runners-GHEC %}なしのエンタープライズに対して{% endif %} {% data variables.product.prodname_code_scanning %} を有効化、構成、および無効化できます。 {% data variables.product.prodname_code_scanning_caps %} を使用すると、コードの脆弱性やエラーをスキャンできます。', ) + + // [SCRAPE-6604] Per-file fixes for ja pages whose intro/title Liquid was + // structurally scrambled. Scoped by unique broken substring so they are + // no-ops everywhere except the affected file. + + // code-security/.../enabling-github-advanced-security-for-your-enterprise.md + // (title): `{% ifversion ghas-products %}` opens but never closes. + // Append `{% endif %}`. (versions: ghes: '*') + content = content.replaceAll( + '{% ifversion ghas-products %}製品をあなたの企業のために有効にする\n', + '{% ifversion ghas-products %}製品をあなたの企業のために有効にする{% endif %}\n', + ) + + // admin/managing-iam/.../configuring-scim-provisioning-with-okta.md + // (intro): spurious `{% endif %}` after `上で` — one too many endifs for + // the single `{% ifversion ghec %}` opener. Drop the stray closer. + content = content.replaceAll( + '{% endif %} 上で{% endif %}エンタープライズとの通信を実行できるように Okta を構成する方法を学習します。', + '{% endif %} 上でエンタープライズとの通信を実行できるように Okta を構成する方法を学習します。', + ) } if (context.code === 'pt') { @@ -671,6 +691,15 @@ export function correctTranslatedContentStrings( // inside `{% data variables.product. prodname_ghe_cloud %}`. The generic // pt regex above already restored it, but here we only need to confirm — // no extra per-file replacement required. + + // [SCRAPE-6604] Per-file fix: + // organizations/.../requiring-two-factor-authentication-in-your-organization.md + // (intro): `{% ifversion fpt or ghec %}...{% else %}` never closes. + // Append `{% endif %}` at the end of the intro value. + content = content.replaceAll( + 'tornando mais difícil para os atores mal-intencionados acessarem os repositórios e as configurações de uma organização.', + 'tornando mais difícil para os atores mal-intencionados acessarem os repositórios e as configurações de uma organização.{% endif %}', + ) } if (context.code === 'zh') { @@ -800,6 +829,12 @@ export function correctTranslatedContentStrings( // Pattern: `{% 捕获IDENTIFIER %}` (no space) or `{% 捕获 IDENTIFIER %}` (with space) // → `{% capture IDENTIFIER %}` content = content.replace(/\{%(-?)\s*捕获\s*(\w+)\s*(-?)%\}/g, '{%$1 capture $2 $3%}') + + // [SCRAPE-6604] Per-file fix: + // organizations/.../permissions-of-custom-organization-roles.md (intro): + // `{% ifversion org-custom-role-with-repo-permissions %}...{% else %}` never + // closes. Append `{% endif %}` at the end of the intro value. + content = content.replaceAll("{% else %} 的访问权限。'", "{% else %} 的访问权限{% endif %}。'") } if (context.code === 'ru') { @@ -1433,6 +1468,15 @@ export function correctTranslatedContentStrings( '자체 호스팅된 실행기에서 실행 중인 {% data variables.product.prodname_dependabot %}에 대한 액세스를 구성할 수도 있습니다.{% data variables.product.prodname_dependabot %}', '자체 호스팅된 실행기에서 실행 중인 {% data variables.product.prodname_dependabot %}에 대한 액세스를 구성할 수도 있습니다.{% endif %}', ) + + // [SCRAPE-6604] Per-file fix: + // organizations/.../permissions-of-custom-organization-roles.md (intro): + // `{% ifversion org-custom-role-with-repo-permissions %}...{% else %}` never + // closes. Append `{% endif %}` at the end of the intro value. + content = content.replaceAll( + "{% else %}에 대한 액세스를 제어할 수 있습니다.'", + "{% else %}에 대한 액세스를 제어할 수 있습니다.{% endif %}'", + ) } if (context.code === 'de') { From 32417b33a7b8e75bc6d149800baf8c29a5f94f6e Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 1 Jun 2026 08:09:14 -0700 Subject: [PATCH 04/12] docs: update copilot-cli content from source docs (#61477) Co-authored-by: github-actions[bot] Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../cli-command-reference.md | 17 ++++++++++++++++- src/content-pipelines/state/copilot-cli.sha | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index bf8e32c71df4..3022a26de20c 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -301,6 +301,8 @@ For a complete list of commands and options, run `copilot help`. > [!NOTE] > The `--remote`, `--no-remote`, and `--connect` options require the remote sessions feature to be available on your account. +You can use `--remote` with `--resume ` to resume a remote task locally. This works even when the task was originally created outside a Git repository. + ## Tool availability values The `--available-tools` and `--excluded-tools` options support these values: @@ -541,13 +543,26 @@ The CLI includes built-in MCP servers that are available without additional setu | Server | Description | |--------|-------------| -| `github-mcp-server` | {% data variables.product.github %} API integration: issues, pull requests, commits, code search, and {% data variables.product.prodname_actions %}. | +| `github-mcp-server` | {% data variables.product.github %} API integration: issues, pull requests, labels, commits, code search, and {% data variables.product.prodname_actions %}. | | `playwright` | Browser automation: navigate, click, type, screenshot, and form handling. | | `fetch` | HTTP requests via the `fetch` tool. | | `time` | Time utilities: `get_current_time` and `convert_time`. | Use `--disable-builtin-mcps` to disable all built-in servers, or `--disable-mcp-server SERVER-NAME` to disable a specific one. +#### {% data variables.product.github %} MCP server tools + +The `github-mcp-server` provides the following tools. + +| Tools | Description | +|-------|-------------| +| `get_file_contents`, `search_code` | Browse repository files. | +| `list_issues`, `issue_read`, `search_issues` | Issue tracking. | +| `get_pull_request`, `list_pull_requests`, `get_pull_request_files` | Pull requests. | +| `list_commits`, `get_commit` | Commit history. | +| `list_workflow_runs`, `get_workflow_run_logs` | {% data variables.product.prodname_actions %}. | +| `get_label`, `list_label`, `label_write` | Label management. | + ### MCP server naming Server names can contain any printable characters, including spaces, Unicode characters, and punctuation. Control characters (U+0000–U+001F, U+007F) and the closing brace (`}`) are not allowed. Server names are used as prefixes for tool names—for example, a server named `my-server` produces tool names like `my-server-fetch`, and a server named `My Server` produces `My Server-fetch`. diff --git a/src/content-pipelines/state/copilot-cli.sha b/src/content-pipelines/state/copilot-cli.sha index 7768624e01b7..5acd853aef03 100644 --- a/src/content-pipelines/state/copilot-cli.sha +++ b/src/content-pipelines/state/copilot-cli.sha @@ -1 +1 @@ -e7ee4ef1f3d09323d60d202f335cc24f94d71fa9 +6f4199ecdb5aec16a6caafade77d0aab7352d176 From 3396c527acf406cb5050cdbd3d65c14340e7a56d Mon Sep 17 00:00:00 2001 From: Collin McNeese Date: Mon, 1 Jun 2026 10:30:13 -0500 Subject: [PATCH 05/12] Adds UBB ide/client versions to redirected pages (#61508) --- .../usage-based-billing-for-individuals.md | 26 ++++++++++++++++++- ...lling-for-organizations-and-enterprises.md | 24 +++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/content/copilot/concepts/billing/usage-based-billing-for-individuals.md b/content/copilot/concepts/billing/usage-based-billing-for-individuals.md index 6e5accd04cd3..3e5b9c14fb05 100644 --- a/content/copilot/concepts/billing/usage-based-billing-for-individuals.md +++ b/content/copilot/concepts/billing/usage-based-billing-for-individuals.md @@ -18,7 +18,7 @@ redirect_from: - /copilot/how-tos/manage-and-track-spending/prepare-for-your-move-to-usage-based-billing --- -{% data variables.product.prodname_copilot_short %} usage is measured in {% data variables.product.prodname_ai_credits_short %}. All {% data variables.product.prodname_copilot_short %} plans include a monthly allowance of {% data variables.product.prodname_ai_credits_short %}. If you use up all of the credits included in your plan, you can purchase more and keep working. +{% data variables.product.prodname_copilot_short %} usage is measured in {% data variables.product.prodname_ai_credits_short %}. All {% data variables.product.prodname_copilot_short %} plans include a monthly allowance of {% data variables.product.prodname_ai_credits_short %}. If you use up all of the credits included in your plan, you can purchase more and keep working. ## What are {% data variables.product.prodname_ai_credits %}? @@ -105,6 +105,30 @@ Your billing date will depend on whether or not you are already being billed by * **If you are not already being billed by {% data variables.product.prodname_dotcom %}**, in most cases your billing cycle will start on the day you sign up for {% data variables.product.prodname_copilot_short %}. For example, if you sign up on 3 September, with monthly billing, your initial billing cycle will run from 3 September until and including 2 October, and then on the same days of subsequent months. * **If you already have a billing cycle**, billing for {% data variables.product.prodname_copilot_short %} will be included in your next bill. You will be charged on a pro rata basis for that initial period. + + +## Update your IDE, client, and extension + +For the best experience with usage-based billing, update your IDE, client, and {% data variables.product.prodname_copilot_short %} extension to at least the versions listed below. + +> [!NOTE] +> Older versions will continue to work, but may display incorrect model pricing, inaccurate usage information, or outdated billing terminology. Usage alert notifications may also not appear as expected. + +| IDE, client, or extension | Minimum version | +| --- | --- | +| {% data variables.product.prodname_vscode_shortname %} | 1.120 | +| {% data variables.product.prodname_vs %} 2022 (17.x) | 17.14.33 | +| {% data variables.product.prodname_vs %} 2025 (18.x) | 18.6.0 | +| SQL Server Management Studio | 22.6 | +| JetBrains IDEs (plugin) | 1.9.1 | +| Eclipse (plugin) | 0.18.0 | +| Xcode (extension) | 0.50.0 | +| {% data variables.copilot.copilot_cli_short %} | 1.0.48 | + +We recommend keeping your IDE, client, and {% data variables.product.prodname_copilot_short %} extensions on the latest available stable version. For information on configuring automatic updates, see [AUTOTITLE](/copilot/how-tos/configure-personal-settings/configure-in-ide). To update {% data variables.copilot.copilot_cli_short %}, see [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli). + + + ## Further reading * [AUTOTITLE](/copilot/about-github-copilot/subscription-plans-for-github-copilot) diff --git a/content/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises.md b/content/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises.md index 4c028f282621..bdd283caffc0 100644 --- a/content/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises.md +++ b/content/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises.md @@ -77,6 +77,30 @@ Budget controls let you govern how individual users draw from the shared pool an For a full explanation of how these controls work together and when usage gets blocked, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing). + + +## Update your IDE, client, and extension + +For the best experience with usage-based billing, update your IDE, client, and {% data variables.product.prodname_copilot_short %} extension to at least the versions listed below. + +> [!NOTE] +> Older versions will continue to work, but may display incorrect model pricing, inaccurate usage information, or outdated billing terminology. Usage alert notifications may also not appear as expected. + +| IDE, client, or extension | Minimum version | +| --- | --- | +| {% data variables.product.prodname_vscode_shortname %} | 1.120 | +| {% data variables.product.prodname_vs %} 2022 (17.x) | 17.14.33 | +| {% data variables.product.prodname_vs %} 2025 (18.x) | 18.6.0 | +| SQL Server Management Studio | 22.6 | +| JetBrains IDEs (plugin) | 1.9.1 | +| Eclipse (plugin) | 0.18.0 | +| Xcode (extension) | 0.50.0 | +| {% data variables.copilot.copilot_cli_short %} | 1.0.48 | + +We recommend keeping your IDE, client, and {% data variables.product.prodname_copilot_short %} extensions on the latest available stable version. For information on configuring automatic updates, see [AUTOTITLE](/copilot/how-tos/configure-personal-settings/configure-in-ide). To update {% data variables.copilot.copilot_cli_short %}, see [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli). + + + ## Next steps * To set up budget controls for your enterprise, see [AUTOTITLE](/copilot/tutorials/budgets/getting-started-with-budget-controls). From 7790dfbcadc165cd0e92378e9c8cfbd0c4b19fff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 08:55:15 -0700 Subject: [PATCH 06/12] Bump immutable from 5.1.1 to 5.1.5 in the npm_and_yarn group across 1 directory (#61442) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09394ece5ae5..2b199c932975 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11497,9 +11497,9 @@ "license": "ISC" }, "node_modules/immutable": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", - "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", "devOptional": true, "license": "MIT" }, From 28eda3648bdedc9afef351c9ab746512e0b2152b Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:16:19 -0700 Subject: [PATCH 07/12] Update OpenAPI Description (#61511) Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> --- .../fine-grained-pat-permissions.json | 9 ++ .../data/fpt-2022-11-28/fine-grained-pat.json | 6 + .../server-to-server-permissions.json | 11 ++ .../fpt-2022-11-28/server-to-server-rest.json | 6 + .../fpt-2022-11-28/user-to-server-rest.json | 6 + .../fine-grained-pat-permissions.json | 9 ++ .../data/fpt-2026-03-10/fine-grained-pat.json | 6 + .../server-to-server-permissions.json | 11 ++ .../fpt-2026-03-10/server-to-server-rest.json | 6 + .../fpt-2026-03-10/user-to-server-rest.json | 6 + .../fine-grained-pat-permissions.json | 9 ++ .../ghec-2022-11-28/fine-grained-pat.json | 6 + .../server-to-server-permissions.json | 11 ++ .../server-to-server-rest.json | 6 + .../ghec-2022-11-28/user-to-server-rest.json | 6 + .../fine-grained-pat-permissions.json | 9 ++ .../ghec-2026-03-10/fine-grained-pat.json | 6 + .../server-to-server-permissions.json | 11 ++ .../server-to-server-rest.json | 6 + .../ghec-2026-03-10/user-to-server-rest.json | 6 + src/github-apps/lib/config.json | 2 +- src/rest/data/fpt-2022-11-28/actions.json | 57 +++++++++ src/rest/data/fpt-2022-11-28/apps.json | 2 +- src/rest/data/fpt-2022-11-28/orgs.json | 15 +++ src/rest/data/fpt-2022-11-28/repos.json | 109 ++++++++++++++++++ src/rest/data/fpt-2026-03-10/actions.json | 57 +++++++++ src/rest/data/fpt-2026-03-10/apps.json | 2 +- src/rest/data/fpt-2026-03-10/orgs.json | 15 +++ src/rest/data/fpt-2026-03-10/repos.json | 109 ++++++++++++++++++ src/rest/data/ghec-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghec-2022-11-28/billing.json | 12 +- src/rest/data/ghec-2022-11-28/orgs.json | 15 +++ src/rest/data/ghec-2022-11-28/repos.json | 109 ++++++++++++++++++ src/rest/data/ghec-2026-03-10/actions.json | 90 +++++++++++++++ src/rest/data/ghec-2026-03-10/billing.json | 12 +- src/rest/data/ghec-2026-03-10/orgs.json | 15 +++ src/rest/data/ghec-2026-03-10/repos.json | 109 ++++++++++++++++++ .../data/ghes-3.16-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.16-2022-11-28/apps.json | 2 +- .../data/ghes-3.17-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.17-2022-11-28/apps.json | 2 +- .../data/ghes-3.18-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.18-2022-11-28/apps.json | 2 +- .../data/ghes-3.19-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.19-2022-11-28/apps.json | 2 +- .../data/ghes-3.20-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.20-2022-11-28/apps.json | 2 +- .../data/ghes-3.21-2022-11-28/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.21-2022-11-28/apps.json | 2 +- .../data/ghes-3.21-2026-03-10/actions.json | 90 +++++++++++++++ src/rest/data/ghes-3.21-2026-03-10/apps.json | 2 +- src/rest/lib/config.json | 2 +- src/webhooks/lib/config.json | 2 +- 53 files changed, 1600 insertions(+), 20 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 e7836cdf248e..b5483ce73d7c 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 @@ -7434,6 +7434,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "additional-permissions": false, + "access": "read" + }, { "category": "repos", "slug": "list-repository-languages", 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 4e97eec5d44e..b2e68657769b 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 @@ -4818,6 +4818,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json index 0c8502df8dab..2d9d330bc213 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json @@ -9545,6 +9545,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json index 2a1fade68810..31535e0d7d7d 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json @@ -5126,6 +5126,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json index 273dd6c88dd2..6495b4728fc3 100644 --- a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json @@ -5588,6 +5588,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/fpt-2026-03-10/fine-grained-pat-permissions.json b/src/github-apps/data/fpt-2026-03-10/fine-grained-pat-permissions.json index e7836cdf248e..b5483ce73d7c 100644 --- a/src/github-apps/data/fpt-2026-03-10/fine-grained-pat-permissions.json +++ b/src/github-apps/data/fpt-2026-03-10/fine-grained-pat-permissions.json @@ -7434,6 +7434,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "additional-permissions": false, + "access": "read" + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/fpt-2026-03-10/fine-grained-pat.json b/src/github-apps/data/fpt-2026-03-10/fine-grained-pat.json index 4e97eec5d44e..b2e68657769b 100644 --- a/src/github-apps/data/fpt-2026-03-10/fine-grained-pat.json +++ b/src/github-apps/data/fpt-2026-03-10/fine-grained-pat.json @@ -4818,6 +4818,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/fpt-2026-03-10/server-to-server-permissions.json b/src/github-apps/data/fpt-2026-03-10/server-to-server-permissions.json index 0c8502df8dab..2d9d330bc213 100644 --- a/src/github-apps/data/fpt-2026-03-10/server-to-server-permissions.json +++ b/src/github-apps/data/fpt-2026-03-10/server-to-server-permissions.json @@ -9545,6 +9545,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/fpt-2026-03-10/server-to-server-rest.json b/src/github-apps/data/fpt-2026-03-10/server-to-server-rest.json index 2a1fade68810..31535e0d7d7d 100644 --- a/src/github-apps/data/fpt-2026-03-10/server-to-server-rest.json +++ b/src/github-apps/data/fpt-2026-03-10/server-to-server-rest.json @@ -5126,6 +5126,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/fpt-2026-03-10/user-to-server-rest.json b/src/github-apps/data/fpt-2026-03-10/user-to-server-rest.json index 273dd6c88dd2..6495b4728fc3 100644 --- a/src/github-apps/data/fpt-2026-03-10/user-to-server-rest.json +++ b/src/github-apps/data/fpt-2026-03-10/user-to-server-rest.json @@ -5588,6 +5588,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", 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 016cd88e9e4c..a66ffc16983a 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 @@ -8088,6 +8088,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "additional-permissions": false, + "access": "read" + }, { "category": "repos", "slug": "list-repository-languages", 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 95815d29d8c3..1a21ea8f7965 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 @@ -4992,6 +4992,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json index a1c9cf9036e5..a90377c7dec6 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json @@ -11010,6 +11010,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json index 3c4c87b209c0..81b996b31d02 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json @@ -5692,6 +5692,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json index 1c3573756b77..a0f007589d66 100644 --- a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json @@ -6136,6 +6136,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/ghec-2026-03-10/fine-grained-pat-permissions.json b/src/github-apps/data/ghec-2026-03-10/fine-grained-pat-permissions.json index 016cd88e9e4c..a66ffc16983a 100644 --- a/src/github-apps/data/ghec-2026-03-10/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghec-2026-03-10/fine-grained-pat-permissions.json @@ -8088,6 +8088,15 @@ "additional-permissions": false, "access": "read" }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "additional-permissions": false, + "access": "read" + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/ghec-2026-03-10/fine-grained-pat.json b/src/github-apps/data/ghec-2026-03-10/fine-grained-pat.json index 95815d29d8c3..1a21ea8f7965 100644 --- a/src/github-apps/data/ghec-2026-03-10/fine-grained-pat.json +++ b/src/github-apps/data/ghec-2026-03-10/fine-grained-pat.json @@ -4992,6 +4992,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/ghec-2026-03-10/server-to-server-permissions.json b/src/github-apps/data/ghec-2026-03-10/server-to-server-permissions.json index a1c9cf9036e5..a90377c7dec6 100644 --- a/src/github-apps/data/ghec-2026-03-10/server-to-server-permissions.json +++ b/src/github-apps/data/ghec-2026-03-10/server-to-server-permissions.json @@ -11010,6 +11010,17 @@ "server-to-server": true, "additional-permissions": false }, + { + "category": "repos", + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, { "category": "repos", "slug": "list-repository-languages", diff --git a/src/github-apps/data/ghec-2026-03-10/server-to-server-rest.json b/src/github-apps/data/ghec-2026-03-10/server-to-server-rest.json index 3c4c87b209c0..81b996b31d02 100644 --- a/src/github-apps/data/ghec-2026-03-10/server-to-server-rest.json +++ b/src/github-apps/data/ghec-2026-03-10/server-to-server-rest.json @@ -5692,6 +5692,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/data/ghec-2026-03-10/user-to-server-rest.json b/src/github-apps/data/ghec-2026-03-10/user-to-server-rest.json index 1c3573756b77..a0f007589d66 100644 --- a/src/github-apps/data/ghec-2026-03-10/user-to-server-rest.json +++ b/src/github-apps/data/ghec-2026-03-10/user-to-server-rest.json @@ -6136,6 +6136,12 @@ "verb": "post", "requestPath": "/repos/{owner}/{repo}/forks" }, + { + "slug": "get-the-hash-algorithm-for-a-repository", + "subcategory": "repos", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm" + }, { "slug": "list-repository-webhooks", "subcategory": "webhooks", diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 27838bec0ffc..bda14266eaef 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "ad5a9d52bd14ba99c9844087287d5cb240b8f0ac" + "sha": "9be34b1f355a4330ec7c04381dd081e4865ac820" } \ No newline at end of file diff --git a/src/rest/data/fpt-2022-11-28/actions.json b/src/rest/data/fpt-2022-11-28/actions.json index 6c6d34a4ebfd..e0fc1f0f61d1 100644 --- a/src/rest/data/fpt-2022-11-28/actions.json +++ b/src/rest/data/fpt-2022-11-28/actions.json @@ -16729,6 +16729,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -16754,6 +16755,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -16850,6 +16852,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17179,6 +17188,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17204,6 +17214,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17300,6 +17311,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17624,6 +17642,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -19276,6 +19301,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19358,6 +19384,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20251,6 +20284,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20276,6 +20310,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20372,6 +20407,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20716,6 +20758,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22398,6 +22447,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22480,6 +22530,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/fpt-2022-11-28/apps.json b/src/rest/data/fpt-2022-11-28/apps.json index 5e544897e096..35cd48ee8fb9 100644 --- a/src/rest/data/fpt-2022-11-28/apps.json +++ b/src/rest/data/fpt-2022-11-28/apps.json @@ -3749,7 +3749,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/fpt-2022-11-28/orgs.json b/src/rest/data/fpt-2022-11-28/orgs.json index e892858a1c23..c7f973051a45 100644 --- a/src/rest/data/fpt-2022-11-28/orgs.json +++ b/src/rest/data/fpt-2022-11-28/orgs.json @@ -20431,6 +20431,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/fpt-2022-11-28/repos.json b/src/rest/data/fpt-2022-11-28/repos.json index 0367644ff916..a185e53b14d2 100644 --- a/src/rest/data/fpt-2022-11-28/repos.json +++ b/src/rest/data/fpt-2022-11-28/repos.json @@ -13249,6 +13249,100 @@ ] } }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "title": "Get the hash algorithm for a repository", + "category": "repos", + "subcategory": "repos", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository without the .git extension. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "descriptionHTML": "

Returns the hash algorithm used to store repository objects.

", + "codeExamples": [ + { + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "hash_algorithm": "sha1" + }, + "schema": { + "title": "Repository hash algorithm", + "description": "Repository hash algorithm", + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string", + "description": "The Git hash algorithm used by this repository.", + "enum": [ + "sha1", + "sha256" + ] + } + }, + "required": [ + "hash_algorithm" + ] + } + } + } + ], + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + } + ], + "previews": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Metadata\" repository permissions": "read" + } + ], + "allowsPublicRead": true + } + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -35291,6 +35385,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/fpt-2026-03-10/actions.json b/src/rest/data/fpt-2026-03-10/actions.json index 07334a5c9888..c3a2b0599108 100644 --- a/src/rest/data/fpt-2026-03-10/actions.json +++ b/src/rest/data/fpt-2026-03-10/actions.json @@ -16691,6 +16691,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -16716,6 +16717,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -16812,6 +16814,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17141,6 +17150,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17166,6 +17176,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17262,6 +17273,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17586,6 +17604,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -19206,6 +19231,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19288,6 +19314,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20181,6 +20214,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20206,6 +20240,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20302,6 +20337,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20646,6 +20688,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22296,6 +22345,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22378,6 +22428,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/fpt-2026-03-10/apps.json b/src/rest/data/fpt-2026-03-10/apps.json index 4f050d4f1240..e9a9ae37b041 100644 --- a/src/rest/data/fpt-2026-03-10/apps.json +++ b/src/rest/data/fpt-2026-03-10/apps.json @@ -3749,7 +3749,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/fpt-2026-03-10/orgs.json b/src/rest/data/fpt-2026-03-10/orgs.json index 8da40e38edd3..b94927565135 100644 --- a/src/rest/data/fpt-2026-03-10/orgs.json +++ b/src/rest/data/fpt-2026-03-10/orgs.json @@ -20378,6 +20378,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/fpt-2026-03-10/repos.json b/src/rest/data/fpt-2026-03-10/repos.json index fa6726765b6d..82a898493a02 100644 --- a/src/rest/data/fpt-2026-03-10/repos.json +++ b/src/rest/data/fpt-2026-03-10/repos.json @@ -13085,6 +13085,100 @@ ] } }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "title": "Get the hash algorithm for a repository", + "category": "repos", + "subcategory": "repos", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository without the .git extension. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "descriptionHTML": "

Returns the hash algorithm used to store repository objects.

", + "codeExamples": [ + { + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "hash_algorithm": "sha1" + }, + "schema": { + "title": "Repository hash algorithm", + "description": "Repository hash algorithm", + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string", + "description": "The Git hash algorithm used by this repository.", + "enum": [ + "sha1", + "sha256" + ] + } + }, + "required": [ + "hash_algorithm" + ] + } + } + } + ], + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + } + ], + "previews": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Metadata\" repository permissions": "read" + } + ], + "allowsPublicRead": true + } + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -34918,6 +35012,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/ghec-2022-11-28/actions.json b/src/rest/data/ghec-2022-11-28/actions.json index ac784236a27b..911aaf0960b8 100644 --- a/src/rest/data/ghec-2022-11-28/actions.json +++ b/src/rest/data/ghec-2022-11-28/actions.json @@ -19551,6 +19551,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19576,6 +19577,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19668,6 +19670,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22398,6 +22407,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22423,6 +22433,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22519,6 +22530,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22848,6 +22866,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22873,6 +22892,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22965,6 +22985,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23281,6 +23308,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -24921,6 +24955,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -25003,6 +25038,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -25862,6 +25904,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -25887,6 +25930,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -25983,6 +26027,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -26307,6 +26358,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -27959,6 +28017,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -28041,6 +28100,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -28934,6 +29000,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -28959,6 +29026,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -29055,6 +29123,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -29399,6 +29474,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -31081,6 +31163,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -31163,6 +31246,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghec-2022-11-28/billing.json b/src/rest/data/ghec-2022-11-28/billing.json index 0d15c9c07f5c..d36e0cf44ced 100644 --- a/src/rest/data/ghec-2022-11-28/billing.json +++ b/src/rest/data/ghec-2022-11-28/billing.json @@ -3050,7 +3050,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { @@ -3171,7 +3172,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, { @@ -3238,7 +3240,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { @@ -3399,7 +3402,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { diff --git a/src/rest/data/ghec-2022-11-28/orgs.json b/src/rest/data/ghec-2022-11-28/orgs.json index 1110c39fb5f8..47c1336563dc 100644 --- a/src/rest/data/ghec-2022-11-28/orgs.json +++ b/src/rest/data/ghec-2022-11-28/orgs.json @@ -25144,6 +25144,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/ghec-2022-11-28/repos.json b/src/rest/data/ghec-2022-11-28/repos.json index b4e8cd7fe0b9..e28e8b8da579 100644 --- a/src/rest/data/ghec-2022-11-28/repos.json +++ b/src/rest/data/ghec-2022-11-28/repos.json @@ -13315,6 +13315,100 @@ ] } }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "title": "Get the hash algorithm for a repository", + "category": "repos", + "subcategory": "repos", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository without the .git extension. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "descriptionHTML": "

Returns the hash algorithm used to store repository objects.

", + "codeExamples": [ + { + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "hash_algorithm": "sha1" + }, + "schema": { + "title": "Repository hash algorithm", + "description": "Repository hash algorithm", + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string", + "description": "The Git hash algorithm used by this repository.", + "enum": [ + "sha1", + "sha256" + ] + } + }, + "required": [ + "hash_algorithm" + ] + } + } + } + ], + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + } + ], + "previews": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Metadata\" repository permissions": "read" + } + ], + "allowsPublicRead": true + } + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -36331,6 +36425,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/ghec-2026-03-10/actions.json b/src/rest/data/ghec-2026-03-10/actions.json index 073c39aa6d5f..1fdde16e5dc6 100644 --- a/src/rest/data/ghec-2026-03-10/actions.json +++ b/src/rest/data/ghec-2026-03-10/actions.json @@ -19516,6 +19516,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19541,6 +19542,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -19633,6 +19635,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22360,6 +22369,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22385,6 +22395,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22481,6 +22492,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -22810,6 +22828,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22835,6 +22854,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -22927,6 +22947,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23243,6 +23270,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -24851,6 +24885,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -24933,6 +24968,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -25792,6 +25834,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -25817,6 +25860,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -25913,6 +25957,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -26237,6 +26288,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -27857,6 +27915,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -27939,6 +27998,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -28832,6 +28898,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -28857,6 +28924,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -28953,6 +29021,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -29297,6 +29372,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -30947,6 +31029,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -31029,6 +31112,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghec-2026-03-10/billing.json b/src/rest/data/ghec-2026-03-10/billing.json index 0d15c9c07f5c..d36e0cf44ced 100644 --- a/src/rest/data/ghec-2026-03-10/billing.json +++ b/src/rest/data/ghec-2026-03-10/billing.json @@ -3050,7 +3050,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { @@ -3171,7 +3172,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, { @@ -3238,7 +3240,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { @@ -3399,7 +3402,8 @@ "enum": [ "detailed", "summarized", - "premium_request" + "premium_request", + "ai_credit" ] }, "start_date": { diff --git a/src/rest/data/ghec-2026-03-10/orgs.json b/src/rest/data/ghec-2026-03-10/orgs.json index 1cf6cbdd4a39..959a58898f24 100644 --- a/src/rest/data/ghec-2026-03-10/orgs.json +++ b/src/rest/data/ghec-2026-03-10/orgs.json @@ -24872,6 +24872,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/ghec-2026-03-10/repos.json b/src/rest/data/ghec-2026-03-10/repos.json index 117637786b6a..6fd0d0476c91 100644 --- a/src/rest/data/ghec-2026-03-10/repos.json +++ b/src/rest/data/ghec-2026-03-10/repos.json @@ -13151,6 +13151,100 @@ ] } }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/hash-algorithm", + "title": "Get the hash algorithm for a repository", + "category": "repos", + "subcategory": "repos", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository without the .git extension. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "descriptionHTML": "

Returns the hash algorithm used to store repository objects.

", + "codeExamples": [ + { + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "hash_algorithm": "sha1" + }, + "schema": { + "title": "Repository hash algorithm", + "description": "Repository hash algorithm", + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string", + "description": "The Git hash algorithm used by this repository.", + "enum": [ + "sha1", + "sha256" + ] + } + }, + "required": [ + "hash_algorithm" + ] + } + } + } + ], + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + } + ], + "previews": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Metadata\" repository permissions": "read" + } + ], + "allowsPublicRead": true + } + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -35958,6 +36052,21 @@ ] } }, + { + "name": "evaluate_status", + "description": "

The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.

\n
    \n
  • all - all rule suites will be returned.
  • \n
  • active - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.
  • \n
  • evaluate - only rule suites resulting from rulesets in evaluate mode will be returned.
  • \n
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all", + "enum": [ + "all", + "active", + "evaluate" + ] + } + }, { "name": "per_page", "description": "

The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

", diff --git a/src/rest/data/ghes-3.16-2022-11-28/actions.json b/src/rest/data/ghes-3.16-2022-11-28/actions.json index bfa6f66b22dc..dea352a355b4 100644 --- a/src/rest/data/ghes-3.16-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.16-2022-11-28/actions.json @@ -9363,6 +9363,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9388,6 +9389,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9480,6 +9482,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -11751,6 +11760,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11776,6 +11786,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11872,6 +11883,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12201,6 +12219,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12226,6 +12245,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12318,6 +12338,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12644,6 +12671,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14284,6 +14318,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14366,6 +14401,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15225,6 +15267,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15250,6 +15293,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15346,6 +15390,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15680,6 +15731,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17332,6 +17390,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17414,6 +17473,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18307,6 +18373,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18332,6 +18399,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18428,6 +18496,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18782,6 +18857,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20464,6 +20546,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20546,6 +20629,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.16-2022-11-28/apps.json b/src/rest/data/ghes-3.16-2022-11-28/apps.json index 0c2ec7952bd0..79120da9fdd9 100644 --- a/src/rest/data/ghes-3.16-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.16-2022-11-28/apps.json @@ -3746,7 +3746,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.17-2022-11-28/actions.json b/src/rest/data/ghes-3.17-2022-11-28/actions.json index 6536d26fba3e..180a0cf4581c 100644 --- a/src/rest/data/ghes-3.17-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.17-2022-11-28/actions.json @@ -9375,6 +9375,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9400,6 +9401,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9492,6 +9494,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -11775,6 +11784,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11800,6 +11810,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11896,6 +11907,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12225,6 +12243,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12250,6 +12269,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12342,6 +12362,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12668,6 +12695,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14308,6 +14342,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14390,6 +14425,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15249,6 +15291,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15274,6 +15317,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15370,6 +15414,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15704,6 +15755,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17356,6 +17414,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17438,6 +17497,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18331,6 +18397,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18356,6 +18423,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18452,6 +18520,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18806,6 +18881,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20488,6 +20570,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20570,6 +20653,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.17-2022-11-28/apps.json b/src/rest/data/ghes-3.17-2022-11-28/apps.json index d5d1a29da077..3fe60fb08630 100644 --- a/src/rest/data/ghes-3.17-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.17-2022-11-28/apps.json @@ -3746,7 +3746,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.18-2022-11-28/actions.json b/src/rest/data/ghes-3.18-2022-11-28/actions.json index 7621a922cded..47614abec84c 100644 --- a/src/rest/data/ghes-3.18-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.18-2022-11-28/actions.json @@ -9380,6 +9380,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9405,6 +9406,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -9497,6 +9499,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -11785,6 +11794,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11810,6 +11820,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -11906,6 +11917,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12235,6 +12253,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12260,6 +12279,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12352,6 +12372,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -12678,6 +12705,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14318,6 +14352,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14400,6 +14435,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15259,6 +15301,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15284,6 +15327,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15380,6 +15424,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15714,6 +15765,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17366,6 +17424,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17448,6 +17507,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18341,6 +18407,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18366,6 +18433,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18462,6 +18530,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18816,6 +18891,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20498,6 +20580,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20580,6 +20663,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.18-2022-11-28/apps.json b/src/rest/data/ghes-3.18-2022-11-28/apps.json index 3a0789f17816..121251473bdd 100644 --- a/src/rest/data/ghes-3.18-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.18-2022-11-28/apps.json @@ -3746,7 +3746,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.19-2022-11-28/actions.json b/src/rest/data/ghes-3.19-2022-11-28/actions.json index 3d72e45b799e..5d5194cd22ed 100644 --- a/src/rest/data/ghes-3.19-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.19-2022-11-28/actions.json @@ -12383,6 +12383,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12408,6 +12409,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12500,6 +12502,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14788,6 +14797,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14813,6 +14823,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14909,6 +14920,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15238,6 +15256,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15263,6 +15282,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15355,6 +15375,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15681,6 +15708,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17321,6 +17355,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17403,6 +17438,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18262,6 +18304,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18287,6 +18330,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18383,6 +18427,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18717,6 +18768,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20369,6 +20427,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20451,6 +20510,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21344,6 +21410,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21369,6 +21436,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21465,6 +21533,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21819,6 +21894,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23501,6 +23583,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -23583,6 +23666,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.19-2022-11-28/apps.json b/src/rest/data/ghes-3.19-2022-11-28/apps.json index d87054462cef..a006273e282d 100644 --- a/src/rest/data/ghes-3.19-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.19-2022-11-28/apps.json @@ -3796,7 +3796,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.20-2022-11-28/actions.json b/src/rest/data/ghes-3.20-2022-11-28/actions.json index c60481ac0508..7f784555398c 100644 --- a/src/rest/data/ghes-3.20-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.20-2022-11-28/actions.json @@ -12383,6 +12383,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12408,6 +12409,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12500,6 +12502,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14788,6 +14797,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14813,6 +14823,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14909,6 +14920,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15238,6 +15256,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15263,6 +15282,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15355,6 +15375,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15681,6 +15708,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17321,6 +17355,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17403,6 +17438,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18262,6 +18304,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18287,6 +18330,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18383,6 +18427,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18717,6 +18768,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20369,6 +20427,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20451,6 +20510,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21344,6 +21410,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21369,6 +21436,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21465,6 +21533,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21819,6 +21894,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23501,6 +23583,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -23583,6 +23666,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.20-2022-11-28/apps.json b/src/rest/data/ghes-3.20-2022-11-28/apps.json index 86ed468fcdbb..a5e7a7016a84 100644 --- a/src/rest/data/ghes-3.20-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.20-2022-11-28/apps.json @@ -3849,7 +3849,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.21-2022-11-28/actions.json b/src/rest/data/ghes-3.21-2022-11-28/actions.json index 40c8c6983b2e..2fe8a332eee7 100644 --- a/src/rest/data/ghes-3.21-2022-11-28/actions.json +++ b/src/rest/data/ghes-3.21-2022-11-28/actions.json @@ -12437,6 +12437,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12462,6 +12463,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12554,6 +12556,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14896,6 +14905,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14921,6 +14931,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15017,6 +15028,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15346,6 +15364,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15371,6 +15390,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15463,6 +15483,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15789,6 +15816,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17429,6 +17463,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17511,6 +17546,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18370,6 +18412,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18395,6 +18438,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18491,6 +18535,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18825,6 +18876,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20477,6 +20535,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20559,6 +20618,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21452,6 +21518,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21477,6 +21544,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21573,6 +21641,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21927,6 +22002,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23609,6 +23691,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -23691,6 +23774,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.21-2022-11-28/apps.json b/src/rest/data/ghes-3.21-2022-11-28/apps.json index ff7446bdf4e0..bb880f41ee61 100644 --- a/src/rest/data/ghes-3.21-2022-11-28/apps.json +++ b/src/rest/data/ghes-3.21-2022-11-28/apps.json @@ -3849,7 +3849,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/data/ghes-3.21-2026-03-10/actions.json b/src/rest/data/ghes-3.21-2026-03-10/actions.json index 6d53536e3487..26c2f4a33734 100644 --- a/src/rest/data/ghes-3.21-2026-03-10/actions.json +++ b/src/rest/data/ghes-3.21-2026-03-10/actions.json @@ -12402,6 +12402,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12427,6 +12428,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -12519,6 +12521,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -14858,6 +14867,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14883,6 +14893,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -14979,6 +14990,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15308,6 +15326,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15333,6 +15352,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -15425,6 +15445,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -15751,6 +15778,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -17359,6 +17393,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -17441,6 +17476,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18300,6 +18342,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18325,6 +18368,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -18421,6 +18465,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -18755,6 +18806,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -20375,6 +20433,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -20457,6 +20516,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21350,6 +21416,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21375,6 +21442,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -21471,6 +21539,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -21825,6 +21900,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ @@ -23475,6 +23557,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -23557,6 +23640,13 @@ }, "ephemeral": { "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/src/rest/data/ghes-3.21-2026-03-10/apps.json b/src/rest/data/ghes-3.21-2026-03-10/apps.json index 8564f2cc9e22..be39e84eb2dc 100644 --- a/src/rest/data/ghes-3.21-2026-03-10/apps.json +++ b/src/rest/data/ghes-3.21-2026-03-10/apps.json @@ -3849,7 +3849,7 @@ ] } ], - "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", + "descriptionHTML": "

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.

\n

Note

\n

\nStarting April 27, 2026, GitHub began a staged rollout of a stateless format (ghs_APPID_JWT) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see the GitHub blog.

\n
\n

Optionally, you can use the repositories or repository_ids body parameters to specify individual repositories that the installation access token can access. If you don't use repositories or repository_ids to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.

\n

Optionally, use the permissions body parameter to specify the permissions that the installation access token should have. If permissions is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.

\n

You must use a JWT to access this endpoint.

", "codeExamples": [ { "request": { diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 82d83b44a0a2..833c3b5896e8 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -50,5 +50,5 @@ ] } }, - "sha": "ad5a9d52bd14ba99c9844087287d5cb240b8f0ac" + "sha": "9be34b1f355a4330ec7c04381dd081e4865ac820" } \ No newline at end of file diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index f65019e1a7b9..6caf8a451892 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "ad5a9d52bd14ba99c9844087287d5cb240b8f0ac" + "sha": "9be34b1f355a4330ec7c04381dd081e4865ac820" } \ No newline at end of file From 0c6004d2fd3da0ae39e1733d570b869896e3ef26 Mon Sep 17 00:00:00 2001 From: GitHub Security Bot <88103841+github-security-bot@users.noreply.github.com> Date: Mon, 1 Jun 2026 12:24:20 -0400 Subject: [PATCH 08/12] Pin GitHub Actions to commit SHAs (#61501) --- .github/workflows/create-changelog-pr.yml | 2 +- .github/workflows/first-responder-v2-prs-collect.yml | 2 +- .github/workflows/moda-allowed-ips.yml | 2 +- .github/workflows/reviewers-content-systems.yml | 2 +- .github/workflows/reviewers-dependabot.yml | 2 +- .github/workflows/reviewers-docs-engineering.yml | 2 +- .github/workflows/reviewers-legal.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/create-changelog-pr.yml b/.github/workflows/create-changelog-pr.yml index e211f2ed0f91..2167ff74e9fb 100644 --- a/.github/workflows/create-changelog-pr.yml +++ b/.github/workflows/create-changelog-pr.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: 'Ensure ${{ env.CHANGELOG_FILE }} exists' run: | diff --git a/.github/workflows/first-responder-v2-prs-collect.yml b/.github/workflows/first-responder-v2-prs-collect.yml index 5428ca37c66a..de07121825db 100644 --- a/.github/workflows/first-responder-v2-prs-collect.yml +++ b/.github/workflows/first-responder-v2-prs-collect.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 # Add to the FR project # and set type to "Maintenance" diff --git a/.github/workflows/moda-allowed-ips.yml b/.github/workflows/moda-allowed-ips.yml index f3b26ce0b99f..20d0623fc06e 100644 --- a/.github/workflows/moda-allowed-ips.yml +++ b/.github/workflows/moda-allowed-ips.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Update list of allowed IPs run: | diff --git a/.github/workflows/reviewers-content-systems.yml b/.github/workflows/reviewers-content-systems.yml index 705474c28cd1..7e9d4ba4a800 100644 --- a/.github/workflows/reviewers-content-systems.yml +++ b/.github/workflows/reviewers-content-systems.yml @@ -36,7 +36,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Add content systems as a reviewer uses: ./.github/actions/retry-command diff --git a/.github/workflows/reviewers-dependabot.yml b/.github/workflows/reviewers-dependabot.yml index 12a97b8e13c3..d5c1d03a7882 100644 --- a/.github/workflows/reviewers-dependabot.yml +++ b/.github/workflows/reviewers-dependabot.yml @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Add dependabot as a reviewer uses: ./.github/actions/retry-command diff --git a/.github/workflows/reviewers-docs-engineering.yml b/.github/workflows/reviewers-docs-engineering.yml index 86e2a7479332..7316292ff29d 100644 --- a/.github/workflows/reviewers-docs-engineering.yml +++ b/.github/workflows/reviewers-docs-engineering.yml @@ -49,7 +49,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 # Detect PRs that only changed package-lock.json (no engineering source files). # These are usually cross-platform `npm install` churn from contributors diff --git a/.github/workflows/reviewers-legal.yml b/.github/workflows/reviewers-legal.yml index c88c1bafee67..a16c1e4e5c9c 100644 --- a/.github/workflows/reviewers-legal.yml +++ b/.github/workflows/reviewers-legal.yml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: # Fetch 2 commits so tj-actions/changed-files can diff without extra API calls fetch-depth: 2 From a7dfc84f1bf09082e9b21799387d75efcd30433c Mon Sep 17 00:00:00 2001 From: Evan Bonsignori Date: Mon, 1 Jun 2026 09:30:30 -0700 Subject: [PATCH 09/12] Compress pinned REST cache in memory (~30-50 MB savings) (#61306) --- src/rest/lib/index.ts | 33 ++++++++++++++++++++++------ src/rest/tests/lib-index.ts | 43 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/src/rest/lib/index.ts b/src/rest/lib/index.ts index 89a652df4bd3..bf56ddb37467 100644 --- a/src/rest/lib/index.ts +++ b/src/rest/lib/index.ts @@ -2,7 +2,7 @@ import fs, { promises as fsPromises } from 'fs' import path from 'path' import QuickLRU from 'quick-lru' -import { brotliDecompress } from 'zlib' +import { brotliDecompress, deflateSync, inflateSync } from 'zlib' import { promisify } from 'util' import { getAutomatedPageMiniTocItems, type MiniTocItem } from '@/frame/lib/get-mini-toc-items' import { allVersions, getOpenApiVersion } from '@/versions/lib/all-versions' @@ -60,7 +60,7 @@ const restOperationData = new Map< // they account for >90% of traffic and each version needs ~100 slots alone. // All other versions (ghes) go into a bounded LRU cache. const PINNED_OPEN_API_VERSIONS = new Set(['fpt', 'ghec']) -export const pinnedCache = new Map() // @internal +export const pinnedCache = new Map() // @internal — stores deflate-compressed JSON const LRU_MAX_SIZE = Math.max(1, parseInt(process.env.REST_SCHEMA_LRU_SIZE ?? '', 10) || 96) export const lruCache = new QuickLRU({ maxSize: LRU_MAX_SIZE }) // @internal @@ -106,9 +106,28 @@ export default async function getRest( const openapiSchemaName = apiVersion ? `${openApiVersion}-${apiVersion}` : `${openApiVersion}` const lruKey = `${openApiVersion}:${apiDate}:${category}` - const cache = PINNED_OPEN_API_VERSIONS.has(openApiVersion) ? pinnedCache : lruCache + const isPinned = PINNED_OPEN_API_VERSIONS.has(openApiVersion) - if (!cache.has(lruKey)) { + // Pinned cache: store deflate-compressed JSON Buffers to save ~100–500 MB heap. + // LRU cache: store parsed objects (bounded size, low traffic). + if (isPinned) { + if (pinnedCache.has(lruKey)) { + return JSON.parse(inflateSync(pinnedCache.get(lruKey)!).toString()) as RestOperationCategory + } + const basePath = path.join(REST_DATA_DIR, openapiSchemaName, `${category}.json`) + if (!inflight.has(lruKey)) { + inflight.set( + lruKey, + loadCategoryFile(basePath).finally(() => inflight.delete(lruKey)), + ) + } + const data = await inflight.get(lruKey)! + pinnedCache.set(lruKey, deflateSync(Buffer.from(JSON.stringify(data)))) + return data + } else { + if (lruCache.has(lruKey)) { + return lruCache.get(lruKey)! + } const basePath = path.join(REST_DATA_DIR, openapiSchemaName, `${category}.json`) if (!inflight.has(lruKey)) { inflight.set( @@ -116,10 +135,10 @@ export default async function getRest( loadCategoryFile(basePath).finally(() => inflight.delete(lruKey)), ) } - cache.set(lruKey, await inflight.get(lruKey)!) + const data = await inflight.get(lruKey)! + lruCache.set(lruKey, data) + return data } - - return cache.get(lruKey)! } // Read asynchronously to avoid blocking the event loop on a cache miss. diff --git a/src/rest/tests/lib-index.ts b/src/rest/tests/lib-index.ts index c11d07c64209..dae6bfbc3e7f 100644 --- a/src/rest/tests/lib-index.ts +++ b/src/rest/tests/lib-index.ts @@ -176,6 +176,49 @@ describe('two-tier cache routing', () => { }) }) +// --------------------------------------------------------------------------- +// 1b. Pinned cache compression +// --------------------------------------------------------------------------- + +describe('pinned cache compression', () => { + test('pinnedCache stores a Buffer (compressed), not a parsed object', async () => { + vi.mocked(fsMock.promises.readFile) + .mockRejectedValueOnce(enoent()) + .mockResolvedValueOnce(FAKE_JSON as unknown as Buffer) + + await getRest('free-pro-team@latest', undefined, 'actions') + + const stored = [...pinnedCache.values()][0] + expect(Buffer.isBuffer(stored)).toBe(true) + }) + + test('getRest returns correct parsed data from compressed pinnedCache on cache hit', async () => { + vi.mocked(fsMock.promises.readFile) + .mockRejectedValueOnce(enoent()) + .mockResolvedValueOnce(FAKE_JSON as unknown as Buffer) + + // First call populates the cache + const first = await getRest('free-pro-team@latest', undefined, 'actions') + // Second call reads from compressed cache + const second = await getRest('free-pro-team@latest', undefined, 'actions') + + expect(first).toEqual(FAKE_DATA) + expect(second).toEqual(FAKE_DATA) + }) + + test('lruCache stores parsed objects, not Buffers', async () => { + vi.mocked(fsMock.promises.readFile) + .mockRejectedValueOnce(enoent()) + .mockResolvedValueOnce(FAKE_JSON as unknown as Buffer) + + await getRest('enterprise-server@3.10', undefined, 'actions') + + const stored = lruCache.get([...(lruCache as unknown as Map).keys()][0]) + expect(Buffer.isBuffer(stored)).toBe(false) + expect(stored).toEqual(FAKE_DATA) + }) +}) + // --------------------------------------------------------------------------- // 2. In-flight deduplication // --------------------------------------------------------------------------- From 923e1a7e57194f0eb6353a89dcfcd9fdc2973d7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:41:12 -0700 Subject: [PATCH 10/12] Bump vitest from 4.0.18 to 4.1.0 in the npm_and_yarn group across 1 directory (#61513) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 353 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 180 insertions(+), 175 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b199c932975..349e2990e9ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,7 +184,7 @@ "start-server-and-test": "^3.0.0", "unist-util-remove": "^4.0.0", "unist-util-visit-parents": "6.0.1", - "vitest": "^4.0.18", + "vitest": "^4.1.0", "website-scraper": "^5.3.1" }, "engines": { @@ -5547,9 +5547,9 @@ "license": "BSD-3-Clause" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.0.tgz", + "integrity": "sha512-dnxczajOqt0gesZlN5pGQ1s1imQVrsmCw5G2Ci4oM+0WvNz3pyRnlWrT7McoZIb8VlFwCawdmbWRmxRn7HI+VQ==", "cpu": [ "arm" ], @@ -5561,9 +5561,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.0.tgz", + "integrity": "sha512-Bp3JpGP00Vu3f238ivRrjf7z3xSzVPXqCmaJYA9t2c+c8vKYvOzmXF7LkkeUalTEGd6cZcSWe+PFIP3Vy48fRg==", "cpu": [ "arm64" ], @@ -5575,9 +5575,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.0.tgz", + "integrity": "sha512-zaYIpr670mUmmZ1tVzUFplbQbG7h3Gugx3L5FoqhsC2m/YnLlR1a7zVLmXNPy+iY1tFPEbNG+HHBXZGyId0G5w==", "cpu": [ "arm64" ], @@ -5589,9 +5589,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.0.tgz", + "integrity": "sha512-+P49fvkv2dSoeevUW+lgZ/I2JHSsJCK1Lyjj7Cu6E4UHG4tS9XIefzIjo5qhgELjAclnen1rLzK2PMKJdo+Dyg==", "cpu": [ "x64" ], @@ -5603,9 +5603,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.0.tgz", + "integrity": "sha512-l3FAAOyKJXH2ea6KNFN+MMgC/rnE94YGLXs2ehYqDcCoHt1DpvgWX75BhUJxN38XojP7Ul+4H8PRn7EdyqSDrw==", "cpu": [ "arm64" ], @@ -5617,9 +5617,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.0.tgz", + "integrity": "sha512-VokPN3TSctKj65cyCNPaUh4vMFA8awxOot/0sp+4J7ZlNRKQEhXhawqPwajoi8H5ZFt61i0ugZJuTKXBjGJ17Q==", "cpu": [ "x64" ], @@ -5631,9 +5631,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.0.tgz", + "integrity": "sha512-DxH0P3wxm+Yzs/p3zrk9dw1rURu8p0Nv5+MRK/L7OtnLNg5rLZraSBFZ8iUXOd9f2BlhJyEpIZUH/emjq4UJ4g==", "cpu": [ "arm" ], @@ -5645,9 +5645,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.0.tgz", + "integrity": "sha512-T6ZvMNe84kAz6TBWHC7hGAoEtzP1LWYw/AqayGWEF6uISt3Abk/st06LqRD9THd7Xz3NxzurUpzAuEAUbZf+nw==", "cpu": [ "arm" ], @@ -5659,9 +5659,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.0.tgz", + "integrity": "sha512-q/4hzvQkDs8b4jIBab1pnLiiM0ayTZsN2amBFPDzuyZxjEd4wDwx0UJFYM3cOZzSf5Kw8fnWSprJzIBMkcR44Q==", "cpu": [ "arm64" ], @@ -5673,9 +5673,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.0.tgz", + "integrity": "sha512-vvYWX3akdEAY6km+9wAqFDnk6pQsbJKVnj7xawcvs/+fdlYBGp+U+Qq/lLfpIxYIZvZLHMAKD9HLdacSx/r3dw==", "cpu": [ "arm64" ], @@ -5687,9 +5687,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.0.tgz", + "integrity": "sha512-DePa5cqOxDP/Zp0VOXpeWaGew5iIv5DXp9NYbzkX5PFQyWVX9184WCTh3hvr/7lhXo8ZVlbFLkz8+o/q1dU6gA==", "cpu": [ "loong64" ], @@ -5701,9 +5701,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.0.tgz", + "integrity": "sha512-LV8aWMB8UChglMCEzs7RkN0GsH29RJaLLqwm9fCIjlqwxQTiWAqNcc7wjBkH31hV0PU/yVxGYvrYsgfea2qw6g==", "cpu": [ "loong64" ], @@ -5715,9 +5715,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.0.tgz", + "integrity": "sha512-QoNSnwQtaeNu5grdBbsL0tt1uyl5EnS8DA8Mr3nluMXbhdQNyhN+G4tBax7VCdxLKj8YJ0/4OO9Ho84jMnJtKA==", "cpu": [ "ppc64" ], @@ -5729,9 +5729,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.0.tgz", + "integrity": "sha512-/zZp5MKapIIApE8trN8qLGNSiRN9TUoaUZ1cmVu4XnVdd5LQLOXTtyi+vtfUbNnT3iyjzpPqYeKXmvJ+gJGYWw==", "cpu": [ "ppc64" ], @@ -5743,9 +5743,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.0.tgz", + "integrity": "sha512-RbrzcD3aJ1k3UbtMRRBNwojdVVyXjuVAFTfn/xPa6EEl6GE9Sm/akPgFTb9aAC9pMKGJ6CtWxaGrqWcabH+ySg==", "cpu": [ "riscv64" ], @@ -5757,9 +5757,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.0.tgz", + "integrity": "sha512-ZF+onDsBso8PJf1XaG9lB+O9RnBpKGnY6OrzC4CSHrtC1jb6jWLTKK4bRqdoCXHd22gyr2hiYmEAm8Wns/BOCw==", "cpu": [ "riscv64" ], @@ -5771,9 +5771,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.0.tgz", + "integrity": "sha512-Atk0aSIk5Zx2Wuh9dgRQgLP0Koc8hOeYpbWryMXyk8G8/HmPkwPPkMqIIDhrXHHYqfUzSJA/I7IWSBv8xSmRBA==", "cpu": [ "s390x" ], @@ -5785,9 +5785,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.0.tgz", + "integrity": "sha512-0uMOcf3eZ5K+K4cYHkdxShFMPlPXCOdfDFEFn9dNYAEEd2cVvmOfH7zFgRVoDgmtQ1m9k5q7qfrHzyMAubKYUA==", "cpu": [ "x64" ], @@ -5799,9 +5799,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.0.tgz", + "integrity": "sha512-mvFtE4A/t/7hRJ7X8Ozmu8FsIkAUat2nzl12pgU337BRmq87AQUJztwHz2Zv5/tjo9/C95E66CK03SI/ToEDJw==", "cpu": [ "x64" ], @@ -5813,9 +5813,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.0.tgz", + "integrity": "sha512-z9b9+aTxvt8n2rNltMPvyaUfB8NJ+CVyOrGK/MdIKHx7B+lXmZpm/XbRsU7Rpf3fRqJ2uS6mBJiJveCtq8LHDg==", "cpu": [ "x64" ], @@ -5827,9 +5827,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.0.tgz", + "integrity": "sha512-jXaXFqKMehsOc+g8R6oo33RRC6w07G9jDBxAE5eAKX7mOcCbZloYIPNhfG9Wl+P9O9IWHFO4OJgPi1Ml2qkt7w==", "cpu": [ "arm64" ], @@ -5841,9 +5841,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.0.tgz", + "integrity": "sha512-OXNWVFocS2IA4+QplhTZZ2a+8hPZR7T8KuozsNmJKK8y7cp83StHvGksfHzPG3wczWTczyWHVQuqeiTUbjiyBg==", "cpu": [ "arm64" ], @@ -5855,9 +5855,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.0.tgz", + "integrity": "sha512-AlAbNtBO637LxSldqV43z0FfXoGfl2TW1DgAg/bs7aQswFbDewz2SJm3BUhiGfbOVtW571xbc9p+REdxhyN/Eg==", "cpu": [ "ia32" ], @@ -5869,9 +5869,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.0.tgz", + "integrity": "sha512-QRSrQXyJ1M4tjNXdR0/G/IgV6lzfQQJYBjlWIEYkY2Xs86DRl/iEpQ4blMDjJxSl7n19eDKKXMg0AmuBVYy8pQ==", "cpu": [ "x64" ], @@ -5883,9 +5883,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.0.tgz", + "integrity": "sha512-tkuFxhvKO/HlGd0VsINF6vHSYH8AF8W0TcNxKDK6JZmrehngFj78pToc8iemtnvwilDjs2G/qSzYFhe9U8q+fw==", "cpu": [ "x64" ], @@ -6176,9 +6176,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -7022,17 +7022,17 @@ ] }, "node_modules/@vitest/expect": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.18.tgz", - "integrity": "sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.0.tgz", + "integrity": "sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==", "dev": true, "license": "MIT", "dependencies": { - "@standard-schema/spec": "^1.0.0", + "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.18", - "@vitest/utils": "4.0.18", - "chai": "^6.2.1", + "@vitest/spy": "4.1.0", + "@vitest/utils": "4.1.0", + "chai": "^6.2.2", "tinyrainbow": "^3.0.3" }, "funding": { @@ -7040,13 +7040,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.18.tgz", - "integrity": "sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.0.tgz", + "integrity": "sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.0.18", + "@vitest/spy": "4.1.0", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -7055,7 +7055,7 @@ }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -7067,9 +7067,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.18.tgz", - "integrity": "sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.0.tgz", + "integrity": "sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==", "dev": true, "license": "MIT", "dependencies": { @@ -7080,13 +7080,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.18.tgz", - "integrity": "sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.0.tgz", + "integrity": "sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.0.18", + "@vitest/utils": "4.1.0", "pathe": "^2.0.3" }, "funding": { @@ -7094,13 +7094,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.18.tgz", - "integrity": "sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.0.tgz", + "integrity": "sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.18", + "@vitest/pretty-format": "4.1.0", + "@vitest/utils": "4.1.0", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -7109,9 +7110,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.18.tgz", - "integrity": "sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.0.tgz", + "integrity": "sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==", "dev": true, "license": "MIT", "funding": { @@ -7119,13 +7120,14 @@ } }, "node_modules/@vitest/utils": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.18.tgz", - "integrity": "sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.0.tgz", + "integrity": "sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.18", + "@vitest/pretty-format": "4.1.0", + "convert-source-map": "^2.0.0", "tinyrainbow": "^3.0.3" }, "funding": { @@ -8446,8 +8448,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.2", @@ -9140,9 +9141,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true, "license": "MIT" }, @@ -10162,9 +10163,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -16043,13 +16044,13 @@ } }, "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.0.tgz", + "integrity": "sha512-T9mWdbWfQtp0B5lv/HX+wrhYsmXRlcWnXXmJbXqKJhlRaoS6KMhq0gpyzW4UJfclcxrEdLnTgjT2NjruLONu0g==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@types/estree": "1.0.9" }, "bin": { "rollup": "dist/bin/rollup" @@ -16059,31 +16060,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@rollup/rollup-android-arm-eabi": "4.61.0", + "@rollup/rollup-android-arm64": "4.61.0", + "@rollup/rollup-darwin-arm64": "4.61.0", + "@rollup/rollup-darwin-x64": "4.61.0", + "@rollup/rollup-freebsd-arm64": "4.61.0", + "@rollup/rollup-freebsd-x64": "4.61.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.61.0", + "@rollup/rollup-linux-arm-musleabihf": "4.61.0", + "@rollup/rollup-linux-arm64-gnu": "4.61.0", + "@rollup/rollup-linux-arm64-musl": "4.61.0", + "@rollup/rollup-linux-loong64-gnu": "4.61.0", + "@rollup/rollup-linux-loong64-musl": "4.61.0", + "@rollup/rollup-linux-ppc64-gnu": "4.61.0", + "@rollup/rollup-linux-ppc64-musl": "4.61.0", + "@rollup/rollup-linux-riscv64-gnu": "4.61.0", + "@rollup/rollup-linux-riscv64-musl": "4.61.0", + "@rollup/rollup-linux-s390x-gnu": "4.61.0", + "@rollup/rollup-linux-x64-gnu": "4.61.0", + "@rollup/rollup-linux-x64-musl": "4.61.0", + "@rollup/rollup-openbsd-x64": "4.61.0", + "@rollup/rollup-openharmony-arm64": "4.61.0", + "@rollup/rollup-win32-arm64-msvc": "4.61.0", + "@rollup/rollup-win32-ia32-msvc": "4.61.0", + "@rollup/rollup-win32-x64-gnu": "4.61.0", + "@rollup/rollup-win32-x64-msvc": "4.61.0", "fsevents": "~2.3.2" } }, @@ -16783,9 +16784,9 @@ } }, "node_modules/std-env": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true, "license": "MIT" }, @@ -17336,9 +17337,9 @@ } }, "node_modules/tinyrainbow": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", - "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, "license": "MIT", "engines": { @@ -18206,9 +18207,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", - "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz", + "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==", "dev": true, "license": "MIT", "dependencies": { @@ -18327,31 +18328,31 @@ } }, "node_modules/vitest": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.18.tgz", - "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.0.tgz", + "integrity": "sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.0.18", - "@vitest/mocker": "4.0.18", - "@vitest/pretty-format": "4.0.18", - "@vitest/runner": "4.0.18", - "@vitest/snapshot": "4.0.18", - "@vitest/spy": "4.0.18", - "@vitest/utils": "4.0.18", - "es-module-lexer": "^1.7.0", - "expect-type": "^1.2.2", + "@vitest/expect": "4.1.0", + "@vitest/mocker": "4.1.0", + "@vitest/pretty-format": "4.1.0", + "@vitest/runner": "4.1.0", + "@vitest/snapshot": "4.1.0", + "@vitest/spy": "4.1.0", + "@vitest/utils": "4.1.0", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", - "std-env": "^3.10.0", + "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.0.3", - "vite": "^6.0.0 || ^7.0.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0", "why-is-node-running": "^2.3.0" }, "bin": { @@ -18367,12 +18368,13 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.18", - "@vitest/browser-preview": "4.0.18", - "@vitest/browser-webdriverio": "4.0.18", - "@vitest/ui": "4.0.18", + "@vitest/browser-playwright": "4.1.0", + "@vitest/browser-preview": "4.1.0", + "@vitest/browser-webdriverio": "4.1.0", + "@vitest/ui": "4.1.0", "happy-dom": "*", - "jsdom": "*" + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0" }, "peerDependenciesMeta": { "@edge-runtime/vm": { @@ -18401,6 +18403,9 @@ }, "jsdom": { "optional": true + }, + "vite": { + "optional": false } } }, diff --git a/package.json b/package.json index d6f2145e8840..e63f91a68d26 100644 --- a/package.json +++ b/package.json @@ -342,7 +342,7 @@ "start-server-and-test": "^3.0.0", "unist-util-remove": "^4.0.0", "unist-util-visit-parents": "6.0.1", - "vitest": "^4.0.18", + "vitest": "^4.1.0", "website-scraper": "^5.3.1" }, "overrides": { From 829e11a7fd217504a5eeb6cb76bcca3ed4328fa5 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:48:16 -0700 Subject: [PATCH 11/12] intern languageCode and pageVersion strings in Permalink (#60753) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Evan Bonsignori --- src/frame/lib/permalink.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/frame/lib/permalink.ts b/src/frame/lib/permalink.ts index 5c0c9fde0952..c6970471d923 100644 --- a/src/frame/lib/permalink.ts +++ b/src/frame/lib/permalink.ts @@ -27,6 +27,19 @@ page.permalinks is an array of objects that looks like this: ... and so on for each of the content file's supported versions. ] */ +// String interning pool: deduplicates low-cardinality, highly-repeated values (languageCode, pageVersion) +// across ~975K Permalink instances (~9 languages × ~9 versions × ~65K pages). Because these fields have +// few distinct values (~81 total), the pool stays bounded — do not use intern() for high-cardinality +// fields like relativePath or title, where the pool would grow unbounded and leak memory. +const stringPool = new Map() + +function intern(s: string): string { + const pooled = stringPool.get(s) + if (pooled !== undefined) return pooled + stringPool.set(s, s) + return s +} + class Permalink { languageCode: string pageVersion: string @@ -36,8 +49,8 @@ class Permalink { href: string constructor(languageCode: string, pageVersion: string, relativePath: string, title: string) { - this.languageCode = languageCode - this.pageVersion = pageVersion + this.languageCode = intern(languageCode) + this.pageVersion = intern(pageVersion) this.relativePath = relativePath this.title = title From 2a13d4ae5353e822bc8f1d06e73b8c7863f6eba0 Mon Sep 17 00:00:00 2001 From: Daryl Date: Mon, 1 Jun 2026 12:48:59 -0400 Subject: [PATCH 12/12] Add note about bypass permissions allowing branch renames (#61390) --- ...ng-repository-management-policies-in-your-enterprise.md | 2 +- ...admins-to-rename-branches-with-organization-rulesets.md | 7 ++----- .../renaming-a-branch.md | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md index 0ac32834c728..2917dd3ceb1b 100644 --- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md +++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md @@ -194,7 +194,7 @@ Across all organizations owned by your enterprise, you can allow members with ad ## Enforcing a policy for renaming protected branches -By default, repository administrators can rename branches that are targeted by enterprise-level rules, provided the new branch name is still targeted by those rules. You can restrict this ability to enterprise owners only. +By default, repository administrators can rename branches that are targeted by enterprise-level rules, provided the new branch name is still targeted by those same rules, or the administrator has permission to bypass the rule in question. You can restrict this ability to enterprise owners only. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} diff --git a/content/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets.md b/content/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets.md index cc1be467d749..eaa96712c653 100644 --- a/content/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets.md +++ b/content/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets.md @@ -9,15 +9,12 @@ category: - Configure organization features --- -Organization owners control whether repository administrators can rename branches that are targeted by one or more branch rulesets. For existing organizations, this setting is off by default. For newly created organizations, this setting is on by default. +Organization owners control whether repository administrators can rename branches that are targeted by one or more branch rulesets. For existing organizations, this setting is disabled by default. For newly created organizations, this setting is enabled by default. -When this setting is enabled, repository administrators can rename these branches, provided the new branch name is still targeted by all the same organization rulesets as the current branch name. This ensures that rulesets cannot be circumvented through branch renaming. +When this setting is enabled, repository administrators can rename these branches, provided the new branch name is still targeted by all the same organization rulesets as the current branch name, or the repository administrator has permission to bypass any which are no longer targeted. This ensures that rulesets cannot be circumvented through branch renaming. Organization administrators can rename branches targeted by organization rulesets without restriction. -> [!NOTE] -> Even with this setting enabled, changing the default branch of a repository still requires an organization administrator when organization rulesets are in play. - {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.member-privileges %} diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md index a6039f2e0f40..888d5374b13f 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md @@ -34,7 +34,7 @@ Some branches can only be renamed by a repository administrator: the repository' When organization-level or enterprise-level rulesets target branches in a repository, renaming those branches typically requires an organization or enterprise administrator. -However, organization and enterprise owners can allow repository administrators to rename branches covered by these rulesets, provided the new branch name is still subject to all the same rules as the current name. Changing the default branch still requires an organization or enterprise administrator when rulesets are in play. +However, organization and enterprise owners can allow repository administrators to rename branches covered by these rulesets, provided the new branch name is still subject to all the same rules as the current name, or the repository administrator has permission to bypass those rules. Changing the default branch works similarly. For more information, see [AUTOTITLE](/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets) and [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-renaming-protected-branches).