From d0b0714881f0ba6d484b2b7ced0c3d13f75e4d81 Mon Sep 17 00:00:00 2001 From: Harald Kirschner Date: Tue, 13 Oct 2026 02:59:48 +0000 Subject: [PATCH 01/14] docs(copilot): document governed OpenTelemetry capture controls (#63401) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Vanessa --- .../concepts/enterprise/opentelemetry.md | 15 ++++- .../manage-agents/monitor-agentic-activity.md | 24 +++++++- .../enterprise-managed-settings.md | 57 +++++++++++++++++-- 3 files changed, 88 insertions(+), 8 deletions(-) diff --git a/content/copilot/concepts/enterprise/opentelemetry.md b/content/copilot/concepts/enterprise/opentelemetry.md index c6e625519d0b..b385ad8066a4 100644 --- a/content/copilot/concepts/enterprise/opentelemetry.md +++ b/content/copilot/concepts/enterprise/opentelemetry.md @@ -23,7 +23,18 @@ When you enable OTel monitoring, you can send data from users' {% data variables * **Metrics** are numeric measurements that help you identify patterns over time. For example, token usage metrics track the number of input and output tokens used in model calls. * **Events** record individual actions at a specific point in time. For example, an edit feedback event records whether a user accepted or rejected an agent edit. -By default, the data does not include prompts, responses, or tool arguments. You can choose to capture this content, but it may contain sensitive information, such as code, file contents, and user prompts. +By default, the data does not include directly identifying attributes, prompts, responses, tool arguments, tool results, or raw policy details. Enterprise administrators can independently enable the following capture classes through managed settings: + +* **Identity** adds the authenticated {% data variables.product.prodname_copilot_short %} account name, local operating-system account, and machine name. This lets you attribute activity without collecting conversation or tool content. +* **Prompts** include user, system, and developer prompt content and associated model input. +* **Responses** include assistant response and supported reasoning content. +* **Tool arguments** include raw arguments, commands, tool schemas, and identifiers for tools, MCP servers, plugins, and hooks. +* **Tool output** includes tool results and execution error details. +* **Policy detail** includes unbounded policy information such as raw sandbox filesystem paths. Bounded policy posture and outcomes remain available when this class is disabled. + +Fine-grained capture controls are supported in {% data variables.copilot.copilot_cli_short %}, the {% data variables.copilot.github_copilot_app %}, and {% data variables.product.prodname_vscode_shortname %} sessions using Agent Host. {% data variables.product.prodname_vscode_shortname %}'s local agent harness supports identity capture and the legacy all-or-nothing content capture setting, but does not independently apply the five content capture classes. + +Captured content may contain sensitive information, including source code, file contents, user prompts, commands, tool results, and workspace or user-profile paths. Enable only the classes required for your use case. ## Enabling OpenTelemetry @@ -35,7 +46,7 @@ To collect OTel data from users' {% data variables.product.prodname_copilot_shor ### Configuring users' clients -Enterprises can enforce OTel configuration across supported clients with managed settings. These settings are enforced across users' clients and cannot be overridden. The `telemetry` property includes keys for enabling and configuring OpenTelemetry. +Enterprises can enforce OTel configuration across supported clients with managed settings. Explicit managed values take precedence over local settings, SDK configuration, and environment variables. The `telemetry` property includes keys for enabling and routing OpenTelemetry and independently controlling identity and sensitive content capture. For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started) and [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md index 5278e978d60b..8d68955b186e 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md @@ -43,4 +43,26 @@ OpenTelemetry (OTel) is an open source observability framework. It provides a st When you enable OTel monitoring, you can send data from users' {% data variables.product.prodname_copilot_short %} clients to an OTel-compatible backend. This lets you analyze agent sessions and understand agent usage across your enterprise. -For more information, see [AUTOTITLE](/copilot/concepts/enterprise/opentelemetry). +To attribute agent activity to a user without collecting prompts, responses, or tool content, enable the `identity` capture class in enterprise managed settings: + +```json +{ + "telemetry": { + "enabled": true, + "endpoint": "https://otel-collector.example.com", + "protocol": "http/protobuf", + "capture": { + "identity": true + } + } +} +``` + +This configuration adds the authenticated {% data variables.product.prodname_copilot_short %} account name, local operating-system account, and machine name to OTel data. Every capture class defaults to `false`. You can independently enable additional classes when an audit or investigation requires prompt, response, tool, or raw policy content. + +In {% data variables.product.prodname_vscode_shortname %}, identity capture works for both local and Agent Host sessions. The five independent content capture classes require Agent Host; the local agent harness uses the legacy all-or-nothing `captureContent` setting. + +> [!WARNING] +> Additional capture classes can include source code, file contents, prompts, commands, tool results, MCP identifiers, and workspace or user-profile paths. Enable only the classes required for your use case, and send the data to an approved collector. + +For the complete schema and the data controlled by each field, see [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings#telemetry). For more information about the exported data, see [AUTOTITLE](/copilot/concepts/enterprise/opentelemetry). diff --git a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md index 6fd3fb498a2c..66e85a9a570c 100644 --- a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md +++ b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md @@ -30,7 +30,7 @@ For instructions on creating the file, see [AUTOTITLE](/copilot/how-tos/administ | `enabledPlugins` | Enables or disables specific plugins by key | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | `extraKnownMarketplaces` | Adds plugin marketplaces that users can access | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | `strictKnownMarketplaces` | Restricts plugin installation to explicitly listed marketplaces | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| `telemetry` | Configures OpenTelemetry export, routing {% data variables.product.prodname_copilot_short %} usage data to a collector of your choice | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | +| `telemetry` | Configures OpenTelemetry export, routing {% data variables.product.prodname_copilot_short %} usage data to a collector of your choice | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | | `remoteControl` | Restricts whether sessions hosted on this device can be remotely controlled, based on the controlling client's SSO authorization status for the listed organizations. Doesn't affect the user's ability to remotely control sessions hosted on other devices | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | | `allowedMcpServers` | Defines an allowlist of MCP servers permitted to run. Any server not matched is blocked. Omit to allow all servers, subject to any deny rules | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | | `deniedMcpServers` | Defines MCP servers that are unconditionally blocked, even if they also match an entry in `allowedMcpServers` | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | @@ -38,6 +38,8 @@ For instructions on creating the file, see [AUTOTITLE](/copilot/how-tos/administ {% endrowheaders %} +Support for `telemetry` varies by sub-property and harness. See [Capture controls](#capture-controls) for the clients that support fine-grained capture. + ## Example configuration The following example shows these keys in one managed settings file. @@ -90,6 +92,14 @@ The following example shows these keys in one managed settings file. "enabled": true, "endpoint": "https://otel-collector.example.com", "protocol": "http/protobuf", + "capture": { + "identity": true, + "prompts": false, + "responses": false, + "toolArguments": false, + "toolOutput": false, + "policyDetail": false + }, "captureContent": false, "lockCaptureContent": true, "serviceName": "copilot", @@ -275,18 +285,55 @@ When you set `disableBypassPermissionsMode` to `"disable"`, users cannot turn on Configures OpenTelemetry export, routing {% data variables.product.prodname_copilot_short %} usage data to a collector of your choice. -This property is supported for {% data variables.copilot.copilot_cli_short %} and {% data variables.product.prodname_vscode_shortname %}. +See the [supported keys table](#supported-keys) for client support. When you set the `telemetry` property, {% data variables.product.prodname_copilot_short %} telemetry is sent to the endpoint you specify. The following sub-properties are supported: * `enabled`: Set to `true` to turn on telemetry export, or `false` to turn it off. * `endpoint`: The URL of your OTLP collector (for example, `https://otel-collector.example.com`). * `protocol`: The transport protocol for telemetry export. Accepted values are `"http/json"` and `"http/protobuf"`. -* `captureContent`: Set to `true` to include prompt and response content in the telemetry payload, or `false` to exclude it. -* `lockCaptureContent`: Set to `true` to prevent users from changing the `captureContent` setting. +* `capture`: An object with independent, fine-grained controls for identity and sensitive content. Every sub-property defaults to `false`. For details, see [Capture controls](#capture-controls). +* `captureContent`: Legacy shorthand that enables or disables the `prompts`, `responses`, `toolArguments`, `toolOutput`, and `policyDetail` capture classes together. It does not affect `identity`. An explicitly configured `capture` sub-property takes precedence over `captureContent` for that class. +* `lockCaptureContent`: Set to `true` to prevent local settings from enabling a legacy content class unless you explicitly configure that class or `captureContent` in the managed `telemetry` object. This property does not govern identity. * `serviceName`: A label for the telemetry service name (for example, `"copilot"`). * `resourceAttributes`: An object of OpenTelemetry resource attributes to attach to all exported telemetry (for example, `{"deployment.environment": "production"}`). -* `headers`: An object of HTTP headers to include with each telemetry request (for example, an `Authorization` header for your collector). +* `headers`: An object of literal HTTP headers to include with each telemetry request (for example, an `Authorization` header for your collector). You must configure `endpoint` in the same `telemetry` object. Header values are not included in logs or status output. Use HTTPS when headers contain credentials because HTTP sends values in plaintext. + +Managed `telemetry` values take precedence over local settings, SDK configuration, and environment variables. If more than one managed source defines `telemetry`, the highest-precedence source supplies the complete managed `telemetry` object. Objects from lower-precedence managed sources are not merged into it. + +### Capture controls + +Use `capture.identity` when you need to attribute agent activity without collecting prompts, responses, or tool content. Use the other capture classes to collect only the additional content required for your audit or investigation. + +Fine-grained capture controls are supported in {% data variables.copilot.copilot_cli_short %}, the {% data variables.copilot.github_copilot_app %}, and {% data variables.product.prodname_vscode_shortname %} sessions using Agent Host. {% data variables.product.prodname_vscode_shortname %}'s local agent harness supports `capture.identity` and the legacy `captureContent` setting, but does not independently apply `prompts`, `responses`, `toolArguments`, `toolOutput`, or `policyDetail`. + +{% rowheaders %} + +| Key | Captured data | +| --- | --- | +| `identity` | The authenticated {% data variables.product.prodname_copilot_short %} account name as `user.name`, the local operating-system account as `process.user.name`, and the local machine name as `host.name`. The account name is currently the {% data variables.product.prodname_dotcom %} login. This setting does not affect the pseudonymous `enduser.pseudo.id` attribute. | +| `prompts` | User, system, and developer prompt text and associated model input, including supported attachments, compaction summaries, skill content, and workspace context. | +| `responses` | Assistant response text and supported reasoning content from the top-level agent and subagents. | +| `toolArguments` | Raw tool arguments, commands, denied resources, process names, tool descriptions and schemas, and raw identifiers for MCP servers, plugins, hooks, servers, and tools. | +| `toolOutput` | Tool result content and execution error details from tools, hooks, MCP servers, and subagents. | +| `policyDetail` | Unbounded policy details such as raw sandbox filesystem path arrays. Bounded policy posture, counts, outcomes, and classifications remain available when this setting is `false`. | + +{% endrowheaders %} + +For example, the following configuration attributes traces to a user and machine without capturing prompts, responses, tool content, or raw policy details: + +```json +{ + "telemetry": { + "capture": { + "identity": true + } + } +} +``` + +> [!WARNING] +> Captured content can include source code, file contents, prompts, commands, tool results, MCP identifiers, and paths to workspaces, user profiles, or files that may contain secrets. Enable only the capture classes required for your use case, and send the data to an approved collector. ## remoteControl From b891620fa47defde6f814b188cbb4acbc0eb99c1 Mon Sep 17 00:00:00 2001 From: chaitra pula <168718308+Chaitrapula@users.noreply.github.com> Date: Tue, 13 Oct 2026 06:10:23 +0000 Subject: [PATCH 02/14] Document zero merge queue build concurrency (#63758) Copilot-Session: 2fa39d24-7a77-46b6-a446-165fbc199261 --- .../managing-rulesets/available-rules-for-rulesets.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md index 2ca77854694b..6a86588211b6 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md @@ -57,6 +57,7 @@ You can configure various settings for your merge queue rule. * **Build concurrency:** Limit the number of queued pull requests requesting checks and workflow runs at the same time. * This setting controls when merge queue dispatches the `merge_group.checks_requested` webhook event, which triggers {% data variables.product.prodname_actions %} workflows that are configured to run on `merge_group`. For more information, see [AUTOTITLE](/webhooks/webhook-events-and-payloads#merge_group). * For example, if there are 5 pull requests added to the queue and the build concurrency setting is 3, merge queue will dispatch the `checks_requested` event for the first 3 pull requests. When it receives a result for one of those pull requests, merge queue will dispatch the event for the 4th pull request, and so on. + * If you set build concurrency to `0`, the merge queue does not dispatch new `merge_group.checks_requested` webhook events. Pull requests waiting for a merge queue build do not progress until you increase the setting to at least `1`. * **Minimum/maximum group size:** The number of pull requests that will be merged together in a group. * **Wait time to meet minimum group size (minutes):** The time the merge queue will wait after the first pull request is added to the queue for the minimum group size to be met. After this time has elapsed, the minimum group size will be ignored and a smaller group will be merged. * **Require all queue entries to pass required checks:** From 7e28fdc9ae730d7a1d3b8bf46fc7fd6b477cd000 Mon Sep 17 00:00:00 2001 From: subatoi <32935794+subatoi@users.noreply.github.com> Date: Tue, 13 Oct 2026 08:42:35 +0000 Subject: [PATCH 03/14] Refine instructions if OS issue opened accidentally (#63822) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/confirm-internal-staff-work-in-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/confirm-internal-staff-work-in-docs.yml b/.github/workflows/confirm-internal-staff-work-in-docs.yml index a7120ffeab1f..e224b5e8f897 100644 --- a/.github/workflows/confirm-internal-staff-work-in-docs.yml +++ b/.github/workflows/confirm-internal-staff-work-in-docs.yml @@ -59,7 +59,7 @@ jobs: owner: 'github', repo: process.env.TEAM_CONTENT_REPO, title: `@${context.payload.sender.login} confirm that \#${issueNo} should be in the public github/docs repo`, - body: `@${context.payload.sender.login} opened https://github.com/github/docs/issues/${issueNo} publicly in the github/docs repo, instead of the private github/${process.env.TEAM_CONTENT_REPO} repo.\n\n@${context.payload.sender.login}, please confirm that this belongs in the public repo and that no sensitive information was disclosed by commenting below and closing the issue.\n\nIf this was not intentional and sensitive information was shared, please delete https://github.com/github/docs/issues/${issueNo} and notify us in the \#docs-open-source channel.\n\nThanks!`, + body: `@${context.payload.sender.login} opened https://github.com/github/docs/issues/${issueNo} publicly in the github/docs repo, instead of the private github/${process.env.TEAM_CONTENT_REPO} repo.\n\n@${context.payload.sender.login}, if this specifically belongs in the public repo, and no sensitive information is disclosed, please ignore this message. Otherwise, please ${context.payload.pull_request ? 'close the pull request and recreate it internally in https://github.com/github/docs-content.' : 'close the issue and reopen it internally in https://github.com/github/docs-content, or transfer it there.'}\n\nIf sensitive information was shared, please close https://github.com/github/docs/issues/${issueNo} and notify us in the \#docs-open-source channel, so we can delete it. Thanks!`, labels: ['OS confirmation', 'skip FR board'], }); From 2828daef652744196849525e9badfeb6b3ea158f Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 13 Oct 2026 08:48:55 +0000 Subject: [PATCH 04/14] Update OpenAPI Description (#63801) Co-authored-by: hubwriter --- src/github-apps/lib/config.json | 2 +- src/rest/data/fpt-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/fpt-2022-11-28/repos.json | 14 +++++++------- src/rest/data/fpt-2026-03-10/orgs.json | 12 ++++++------ src/rest/data/fpt-2026-03-10/repos.json | 14 +++++++------- .../data/ghec-2022-11-28/enterprise-admin.json | 18 +++++++++--------- src/rest/data/ghec-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghec-2022-11-28/repos.json | 14 +++++++------- .../data/ghec-2026-03-10/enterprise-admin.json | 18 +++++++++--------- src/rest/data/ghec-2026-03-10/orgs.json | 12 ++++++------ src/rest/data/ghec-2026-03-10/repos.json | 14 +++++++------- src/rest/data/ghes-3.18-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghes-3.18-2022-11-28/repos.json | 14 +++++++------- src/rest/data/ghes-3.19-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghes-3.19-2022-11-28/repos.json | 14 +++++++------- src/rest/data/ghes-3.20-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghes-3.20-2022-11-28/repos.json | 14 +++++++------- src/rest/data/ghes-3.21-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghes-3.21-2022-11-28/repos.json | 14 +++++++------- src/rest/data/ghes-3.21-2026-03-10/orgs.json | 12 ++++++------ src/rest/data/ghes-3.21-2026-03-10/repos.json | 14 +++++++------- src/rest/data/ghes-3.22-2022-11-28/orgs.json | 12 ++++++------ src/rest/data/ghes-3.22-2022-11-28/repos.json | 14 +++++++------- src/rest/data/ghes-3.22-2026-03-10/orgs.json | 12 ++++++------ src/rest/data/ghes-3.22-2026-03-10/repos.json | 14 +++++++------- src/rest/lib/config.json | 2 +- .../fpt/repository_ruleset.child-params.json | 12 ++++++------ .../ghec/repository_ruleset.child-params.json | 12 ++++++------ .../repository_ruleset.child-params.json | 12 ++++++------ .../repository_ruleset.child-params.json | 12 ++++++------ .../repository_ruleset.child-params.json | 12 ++++++------ .../repository_ruleset.child-params.json | 12 ++++++------ .../repository_ruleset.child-params.json | 12 ++++++------ src/webhooks/lib/config.json | 2 +- 34 files changed, 206 insertions(+), 206 deletions(-) diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 64b5b4e5b54a..b4aebffea583 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "7dee0622aeecf9df3c5060ca28c7a57ee5007804" + "sha": "58b1e0c00b39b9e46c24dc4a0ba6a2669c90e9c1" } \ No newline at end of file diff --git a/src/rest/data/fpt-2022-11-28/orgs.json b/src/rest/data/fpt-2022-11-28/orgs.json index 5367444a9476..057ef2609534 100644 --- a/src/rest/data/fpt-2022-11-28/orgs.json +++ b/src/rest/data/fpt-2022-11-28/orgs.json @@ -23636,7 +23636,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -24937,7 +24937,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -26357,7 +26357,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -27940,7 +27940,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -29246,7 +29246,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -30667,7 +30667,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/fpt-2022-11-28/repos.json b/src/rest/data/fpt-2022-11-28/repos.json index cea9cf04d9cb..1e1b13da2a32 100644 --- a/src/rest/data/fpt-2022-11-28/repos.json +++ b/src/rest/data/fpt-2022-11-28/repos.json @@ -37353,7 +37353,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39090,7 +39090,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -40270,7 +40270,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -41803,7 +41803,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43396,7 +43396,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -44581,7 +44581,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -46115,7 +46115,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/fpt-2026-03-10/orgs.json b/src/rest/data/fpt-2026-03-10/orgs.json index 2e266e578801..03d1ee6bcf66 100644 --- a/src/rest/data/fpt-2026-03-10/orgs.json +++ b/src/rest/data/fpt-2026-03-10/orgs.json @@ -23583,7 +23583,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -24884,7 +24884,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -26304,7 +26304,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -27887,7 +27887,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -29193,7 +29193,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -30614,7 +30614,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/fpt-2026-03-10/repos.json b/src/rest/data/fpt-2026-03-10/repos.json index 4b56184b6de4..a9b0104f69d2 100644 --- a/src/rest/data/fpt-2026-03-10/repos.json +++ b/src/rest/data/fpt-2026-03-10/repos.json @@ -36980,7 +36980,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38717,7 +38717,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39897,7 +39897,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -41430,7 +41430,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43023,7 +43023,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -44208,7 +44208,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -45742,7 +45742,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2022-11-28/enterprise-admin.json b/src/rest/data/ghec-2022-11-28/enterprise-admin.json index 8613cb01bb84..77a53983acd0 100644 --- a/src/rest/data/ghec-2022-11-28/enterprise-admin.json +++ b/src/rest/data/ghec-2022-11-28/enterprise-admin.json @@ -1289,7 +1289,7 @@ "oneOfObject": true } ], - "descriptionHTML": "

Creates an audit log streaming configuration for any of the supported streaming endpoints: Azure Blob Storage, Azure Event Hubs, Amazon S3, Splunk, Google Cloud Storage, Datadog.

\n

Microsoft Agent365 and Microsoft Purview streams require Microsoft Entra authorization and cannot be created with this endpoint. Configure those destinations from the enterprise audit log streaming settings.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", + "descriptionHTML": "

Creates an audit log streaming configuration for any of the supported streaming endpoints: Azure Blob Storage, Azure Event Hubs, Amazon S3, Splunk, Google Cloud Storage, Datadog.

\n

Microsoft Agent 365 and Microsoft Purview streams require Microsoft Entra authorization and cannot be created with this endpoint. Configure those destinations from the enterprise audit log streaming settings.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", "codeExamples": [ { "request": { @@ -1540,7 +1540,7 @@ "HTTPS Event Collector", "Google Cloud Storage", "Datadog", - "Microsoft Agent365" + "Microsoft Agent 365" ] }, { @@ -1826,14 +1826,14 @@ { "type": "object", "name": "MicrosoftAgent365Config", - "description": "

Empty configuration used when pausing or resuming a Microsoft Agent365 stream.

", + "description": "

Empty configuration used when pausing or resuming a Microsoft Agent 365 stream.

", "childParamsGroups": [] } ], "oneOfObject": true } ], - "descriptionHTML": "

Updates an existing audit log stream configuration for an enterprise.

\n

Microsoft Agent365 streams are configured through Microsoft Entra authorization. For those streams, this endpoint can only pause or resume the stream. Authorization-managed fields cannot be updated; delete and recreate the stream to change its Entra tenant or authorization.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", + "descriptionHTML": "

Updates an existing audit log stream configuration for an enterprise.

\n

Microsoft Agent 365 streams are configured through Microsoft Entra authorization. For those streams, this endpoint can only pause or resume the stream. Authorization-managed fields cannot be updated; delete and recreate the stream to change its Entra tenant or authorization.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", "codeExamples": [ { "request": { @@ -14255,7 +14255,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -15642,7 +15642,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -17203,7 +17203,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -18898,7 +18898,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -20286,7 +20286,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2022-11-28/orgs.json b/src/rest/data/ghec-2022-11-28/orgs.json index b5ac9d1933ae..e721d5fcd846 100644 --- a/src/rest/data/ghec-2022-11-28/orgs.json +++ b/src/rest/data/ghec-2022-11-28/orgs.json @@ -28905,7 +28905,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -30208,7 +30208,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -31630,7 +31630,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -33215,7 +33215,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -34523,7 +34523,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -35946,7 +35946,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2022-11-28/repos.json b/src/rest/data/ghec-2022-11-28/repos.json index 274d1aa9000a..881536c5ae6e 100644 --- a/src/rest/data/ghec-2022-11-28/repos.json +++ b/src/rest/data/ghec-2022-11-28/repos.json @@ -38393,7 +38393,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -40132,7 +40132,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -41314,7 +41314,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -42849,7 +42849,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -44444,7 +44444,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -45631,7 +45631,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -47167,7 +47167,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2026-03-10/enterprise-admin.json b/src/rest/data/ghec-2026-03-10/enterprise-admin.json index 8613cb01bb84..77a53983acd0 100644 --- a/src/rest/data/ghec-2026-03-10/enterprise-admin.json +++ b/src/rest/data/ghec-2026-03-10/enterprise-admin.json @@ -1289,7 +1289,7 @@ "oneOfObject": true } ], - "descriptionHTML": "

Creates an audit log streaming configuration for any of the supported streaming endpoints: Azure Blob Storage, Azure Event Hubs, Amazon S3, Splunk, Google Cloud Storage, Datadog.

\n

Microsoft Agent365 and Microsoft Purview streams require Microsoft Entra authorization and cannot be created with this endpoint. Configure those destinations from the enterprise audit log streaming settings.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", + "descriptionHTML": "

Creates an audit log streaming configuration for any of the supported streaming endpoints: Azure Blob Storage, Azure Event Hubs, Amazon S3, Splunk, Google Cloud Storage, Datadog.

\n

Microsoft Agent 365 and Microsoft Purview streams require Microsoft Entra authorization and cannot be created with this endpoint. Configure those destinations from the enterprise audit log streaming settings.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", "codeExamples": [ { "request": { @@ -1540,7 +1540,7 @@ "HTTPS Event Collector", "Google Cloud Storage", "Datadog", - "Microsoft Agent365" + "Microsoft Agent 365" ] }, { @@ -1826,14 +1826,14 @@ { "type": "object", "name": "MicrosoftAgent365Config", - "description": "

Empty configuration used when pausing or resuming a Microsoft Agent365 stream.

", + "description": "

Empty configuration used when pausing or resuming a Microsoft Agent 365 stream.

", "childParamsGroups": [] } ], "oneOfObject": true } ], - "descriptionHTML": "

Updates an existing audit log stream configuration for an enterprise.

\n

Microsoft Agent365 streams are configured through Microsoft Entra authorization. For those streams, this endpoint can only pause or resume the stream. Authorization-managed fields cannot be updated; delete and recreate the stream to change its Entra tenant or authorization.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", + "descriptionHTML": "

Updates an existing audit log stream configuration for an enterprise.

\n

Microsoft Agent 365 streams are configured through Microsoft Entra authorization. For those streams, this endpoint can only pause or resume the stream. Authorization-managed fields cannot be updated; delete and recreate the stream to change its Entra tenant or authorization.

\n

When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

", "codeExamples": [ { "request": { @@ -14255,7 +14255,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -15642,7 +15642,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -17203,7 +17203,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -18898,7 +18898,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -20286,7 +20286,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2026-03-10/orgs.json b/src/rest/data/ghec-2026-03-10/orgs.json index 7a960d1bfb4b..b7b1ead62362 100644 --- a/src/rest/data/ghec-2026-03-10/orgs.json +++ b/src/rest/data/ghec-2026-03-10/orgs.json @@ -28633,7 +28633,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -29936,7 +29936,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -31358,7 +31358,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -32943,7 +32943,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -34251,7 +34251,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -35674,7 +35674,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghec-2026-03-10/repos.json b/src/rest/data/ghec-2026-03-10/repos.json index 235cd1fc9004..ff49bd3b0795 100644 --- a/src/rest/data/ghec-2026-03-10/repos.json +++ b/src/rest/data/ghec-2026-03-10/repos.json @@ -38020,7 +38020,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39759,7 +39759,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -40941,7 +40941,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -42476,7 +42476,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -44071,7 +44071,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -45258,7 +45258,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -46794,7 +46794,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.18-2022-11-28/orgs.json b/src/rest/data/ghes-3.18-2022-11-28/orgs.json index afd7e096b7a3..fdb89a0ccd6f 100644 --- a/src/rest/data/ghes-3.18-2022-11-28/orgs.json +++ b/src/rest/data/ghes-3.18-2022-11-28/orgs.json @@ -17072,7 +17072,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -18355,7 +18355,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -19711,7 +19711,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -21201,7 +21201,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22489,7 +22489,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -23837,7 +23837,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.18-2022-11-28/repos.json b/src/rest/data/ghes-3.18-2022-11-28/repos.json index a58b3f6265c3..fd36b76ba016 100644 --- a/src/rest/data/ghes-3.18-2022-11-28/repos.json +++ b/src/rest/data/ghes-3.18-2022-11-28/repos.json @@ -36199,7 +36199,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -37821,7 +37821,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38916,7 +38916,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -40360,7 +40360,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -41860,7 +41860,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42960,7 +42960,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -44405,7 +44405,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.19-2022-11-28/orgs.json b/src/rest/data/ghes-3.19-2022-11-28/orgs.json index 1737af49459e..18c97ba33637 100644 --- a/src/rest/data/ghes-3.19-2022-11-28/orgs.json +++ b/src/rest/data/ghes-3.19-2022-11-28/orgs.json @@ -17088,7 +17088,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -18371,7 +18371,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -19727,7 +19727,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -21217,7 +21217,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22505,7 +22505,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -23853,7 +23853,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.19-2022-11-28/repos.json b/src/rest/data/ghes-3.19-2022-11-28/repos.json index 3fec95b6f66b..9669de8e99b1 100644 --- a/src/rest/data/ghes-3.19-2022-11-28/repos.json +++ b/src/rest/data/ghes-3.19-2022-11-28/repos.json @@ -36199,7 +36199,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -37821,7 +37821,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38916,7 +38916,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -40360,7 +40360,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -41860,7 +41860,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42960,7 +42960,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -44405,7 +44405,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.20-2022-11-28/orgs.json b/src/rest/data/ghes-3.20-2022-11-28/orgs.json index d701b8f74ba7..7f0dd7f7d798 100644 --- a/src/rest/data/ghes-3.20-2022-11-28/orgs.json +++ b/src/rest/data/ghes-3.20-2022-11-28/orgs.json @@ -18289,7 +18289,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -19573,7 +19573,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -20931,7 +20931,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22423,7 +22423,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -23712,7 +23712,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -25062,7 +25062,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.20-2022-11-28/repos.json b/src/rest/data/ghes-3.20-2022-11-28/repos.json index 9d4d94a81c09..ba5f0c65813c 100644 --- a/src/rest/data/ghes-3.20-2022-11-28/repos.json +++ b/src/rest/data/ghes-3.20-2022-11-28/repos.json @@ -36424,7 +36424,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38048,7 +38048,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39144,7 +39144,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -40590,7 +40590,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42092,7 +42092,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43193,7 +43193,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -44640,7 +44640,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.21-2022-11-28/orgs.json b/src/rest/data/ghes-3.21-2022-11-28/orgs.json index fa48bf07f09b..e7370aece85d 100644 --- a/src/rest/data/ghes-3.21-2022-11-28/orgs.json +++ b/src/rest/data/ghes-3.21-2022-11-28/orgs.json @@ -18705,7 +18705,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -19990,7 +19990,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -21349,7 +21349,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22846,7 +22846,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -24136,7 +24136,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -25487,7 +25487,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.21-2022-11-28/repos.json b/src/rest/data/ghes-3.21-2022-11-28/repos.json index 03d7c7fb27da..b7b7450712fc 100644 --- a/src/rest/data/ghes-3.21-2022-11-28/repos.json +++ b/src/rest/data/ghes-3.21-2022-11-28/repos.json @@ -37084,7 +37084,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38709,7 +38709,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39806,7 +39806,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -41253,7 +41253,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42760,7 +42760,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43862,7 +43862,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -45310,7 +45310,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.21-2026-03-10/orgs.json b/src/rest/data/ghes-3.21-2026-03-10/orgs.json index 345bdd4fa16b..416a62e4ea7c 100644 --- a/src/rest/data/ghes-3.21-2026-03-10/orgs.json +++ b/src/rest/data/ghes-3.21-2026-03-10/orgs.json @@ -18474,7 +18474,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -19759,7 +19759,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -21118,7 +21118,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22615,7 +22615,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -23905,7 +23905,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -25256,7 +25256,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.21-2026-03-10/repos.json b/src/rest/data/ghes-3.21-2026-03-10/repos.json index 926a06903496..b04366d3b56a 100644 --- a/src/rest/data/ghes-3.21-2026-03-10/repos.json +++ b/src/rest/data/ghes-3.21-2026-03-10/repos.json @@ -36730,7 +36730,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38355,7 +38355,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39452,7 +39452,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -40899,7 +40899,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42406,7 +42406,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43508,7 +43508,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -44956,7 +44956,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.22-2022-11-28/orgs.json b/src/rest/data/ghes-3.22-2022-11-28/orgs.json index cca1a286638e..6563d1ed36cd 100644 --- a/src/rest/data/ghes-3.22-2022-11-28/orgs.json +++ b/src/rest/data/ghes-3.22-2022-11-28/orgs.json @@ -18748,7 +18748,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -20034,7 +20034,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -21394,7 +21394,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22892,7 +22892,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -24183,7 +24183,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -25535,7 +25535,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.22-2022-11-28/repos.json b/src/rest/data/ghes-3.22-2022-11-28/repos.json index 8f28a9669431..3588f7320fa3 100644 --- a/src/rest/data/ghes-3.22-2022-11-28/repos.json +++ b/src/rest/data/ghes-3.22-2022-11-28/repos.json @@ -37217,7 +37217,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38843,7 +38843,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39941,7 +39941,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -41389,7 +41389,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42897,7 +42897,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -44000,7 +44000,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -45449,7 +45449,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.22-2026-03-10/orgs.json b/src/rest/data/ghes-3.22-2026-03-10/orgs.json index 8ea54ccdce43..4135824c9149 100644 --- a/src/rest/data/ghes-3.22-2026-03-10/orgs.json +++ b/src/rest/data/ghes-3.22-2026-03-10/orgs.json @@ -18517,7 +18517,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -19803,7 +19803,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -21163,7 +21163,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -22661,7 +22661,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -23952,7 +23952,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -25304,7 +25304,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/data/ghes-3.22-2026-03-10/repos.json b/src/rest/data/ghes-3.22-2026-03-10/repos.json index fa9dc5926050..7656d06bdf58 100644 --- a/src/rest/data/ghes-3.22-2026-03-10/repos.json +++ b/src/rest/data/ghes-3.22-2026-03-10/repos.json @@ -36863,7 +36863,7 @@ "allOf": [ { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -38489,7 +38489,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -39587,7 +39587,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -41035,7 +41035,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -42543,7 +42543,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" @@ -43646,7 +43646,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -45095,7 +45095,7 @@ }, { "title": "copilot_code_review", - "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.", + "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.", "type": "object", "required": [ "type" diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 2e657a395f3d..d8ffdb7720bf 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -48,5 +48,5 @@ ] } }, - "sha": "7dee0622aeecf9df3c5060ca28c7a57ee5007804" + "sha": "58b1e0c00b39b9e46c24dc4a0ba6a2669c90e9c1" } \ No newline at end of file diff --git a/src/webhooks/data/fpt/repository_ruleset.child-params.json b/src/webhooks/data/fpt/repository_ruleset.child-params.json index 1d9c594e2fac..3682eec61f65 100644 --- a/src/webhooks/data/fpt/repository_ruleset.child-params.json +++ b/src/webhooks/data/fpt/repository_ruleset.child-params.json @@ -994,7 +994,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2166,7 +2166,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3338,7 +3338,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4539,7 +4539,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5558,7 +5558,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6582,7 +6582,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghec/repository_ruleset.child-params.json b/src/webhooks/data/ghec/repository_ruleset.child-params.json index c289d8ac5718..c2bba9ce0991 100644 --- a/src/webhooks/data/ghec/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghec/repository_ruleset.child-params.json @@ -996,7 +996,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2170,7 +2170,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3344,7 +3344,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4545,7 +4545,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5564,7 +5564,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6588,7 +6588,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.18/repository_ruleset.child-params.json b/src/webhooks/data/ghes-3.18/repository_ruleset.child-params.json index 63c1d0fd8085..e2e4929ef577 100644 --- a/src/webhooks/data/ghes-3.18/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghes-3.18/repository_ruleset.child-params.json @@ -922,7 +922,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2006,7 +2006,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3090,7 +3090,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4207,7 +4207,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5142,7 +5142,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6082,7 +6082,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.19/repository_ruleset.child-params.json b/src/webhooks/data/ghes-3.19/repository_ruleset.child-params.json index 63d375449daa..bf90dd80d2ea 100644 --- a/src/webhooks/data/ghes-3.19/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghes-3.19/repository_ruleset.child-params.json @@ -922,7 +922,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2006,7 +2006,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3090,7 +3090,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4207,7 +4207,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5142,7 +5142,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6082,7 +6082,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.20/repository_ruleset.child-params.json b/src/webhooks/data/ghes-3.20/repository_ruleset.child-params.json index 54a14e24d8bb..0f073c65ea1b 100644 --- a/src/webhooks/data/ghes-3.20/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghes-3.20/repository_ruleset.child-params.json @@ -924,7 +924,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2010,7 +2010,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3096,7 +3096,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4213,7 +4213,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5148,7 +5148,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6088,7 +6088,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.21/repository_ruleset.child-params.json b/src/webhooks/data/ghes-3.21/repository_ruleset.child-params.json index 4a09249b014a..2a51e2b72526 100644 --- a/src/webhooks/data/ghes-3.21/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghes-3.21/repository_ruleset.child-params.json @@ -925,7 +925,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2012,7 +2012,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3099,7 +3099,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4216,7 +4216,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5151,7 +5151,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6091,7 +6091,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/data/ghes-3.22/repository_ruleset.child-params.json b/src/webhooks/data/ghes-3.22/repository_ruleset.child-params.json index fef50b86dbfb..9ff4c53f79a9 100644 --- a/src/webhooks/data/ghes-3.22/repository_ruleset.child-params.json +++ b/src/webhooks/data/ghes-3.22/repository_ruleset.child-params.json @@ -926,7 +926,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -2014,7 +2014,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -3102,7 +3102,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -4219,7 +4219,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -5154,7 +5154,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", @@ -6094,7 +6094,7 @@ { "type": "object", "name": "copilot_code_review", - "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.

", + "description": "

Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and AI credits.

", "childParamsGroups": [ { "type": "string", diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index 9e8e3764e3ed..de7f711043cc 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "7dee0622aeecf9df3c5060ca28c7a57ee5007804" + "sha": "58b1e0c00b39b9e46c24dc4a0ba6a2669c90e9c1" } \ No newline at end of file From 9bc3914265fa9ea8f34b56e69d5e79f7c3d0b415 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 13 Oct 2026 09:26:48 +0000 Subject: [PATCH 05/14] docs: update copilot-cli content from source docs (#63799) Co-authored-by: github-actions[bot] Co-authored-by: hubwriter Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: b708cf4d-53d5-4215-82ac-1781264a3278 --- .../using-local-sandboxing.md | 2 +- .../cli-command-reference.md | 6 ++-- .../cli-config-dir-reference.md | 1 + content/copilot/reference/hooks-reference.md | 30 ++++++++++++++++++- src/content-pipelines/state/copilot-cli.sha | 2 +- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/content/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing.md b/content/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing.md index 6a5eb9e7bea4..0be104c92627 100644 --- a/content/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing.md +++ b/content/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing.md @@ -139,7 +139,7 @@ If a command cannot access a file, use a tool, or connect to a host, check the s This previews the policy without running `npm install`. Review the listed paths and network settings. Check **Notes** for settings that could not be applied. -1. If the policy blocks access you intend to allow, use `/sandbox config` to update the required path or host rules. Grant only the access the command needs. For missing paths and symbolic links, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing#troubleshooting-filesystem-access). Adding a directory with `/add-dir` does not grant sandbox access. +1. If the policy blocks access you intend to allow, use `/sandbox config` to update the required path or host rules. Grant only the access the command needs. For missing paths and symbolic links, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing#troubleshooting-filesystem-access). To grant read and write access to a directory for the current session only, without changing your saved sandbox settings, use `/add-dir PATH`. Access granted this way is still subject to any sandbox policy managed by your organization. 1. If the setting is managed by your organization, contact your administrator. If the error names a missing operating-system feature or Linux dependency, address that requirement, then restart {% data variables.copilot.copilot_cli_short %} before trying again. 1. Ask {% data variables.product.prodname_copilot_short %} to run the command again. If a one-command bypass is offered, approve it only if you are comfortable with the broader access described. Disabling sandboxing for the whole session gives subsequent commands broader access, not just the blocked command. 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 f7a9edb74215..4e65cefa1a69 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -537,7 +537,7 @@ These are the slash commands you can use from within an interactive CLI session. | Command | Purpose | |-----------------------------------------------------|---------| -| `/add-dir PATH` | Allow file access to a directory and load its `.github/skills` and `.github/agents` as trusted configurations. | +| `/add-dir PATH` | Allow file access to a directory and load its `.github/skills` and `.github/agents` as trusted configurations. When sandboxing is enabled, also grants the sandbox access to the directory for the current session. | | `/after [DELAY PROMPT]`, `/after` | Schedule a non-recurring prompt, skill, or schedulable slash command for the current session (for example, `/after 30m remind me the time` or `/after 1h /chronicle standup`). With no arguments the schedule manager is displayed. {% data reusables.copilot.experimental %} | | `/agent` | Browse and select from available agents (if any). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents). | | `/app` | Open the current session in the {% data variables.copilot.github_copilot_app %} (requires version 1.1.3 or later), or show the download URL if the app is not installed. | @@ -577,7 +577,7 @@ These are the slash commands you can use from within an interactive CLI session. | `/logout` | Log out of {% data variables.product.prodname_copilot_short %}. | | `/lsp [show\|test\|reload\|logs\|help] [SERVER-NAME]` | Manage the language server configuration. The `logs` subcommand opens the live LSP services log panel. | | `/mcp [config\|list\|show\|add\|edit\|delete\|disable\|enable\|auth\|reload\|search] [SERVER-NAME]` | Manage the MCP server configuration. With no subcommand, or with `config`, the plugins dashboard opens pinned to the MCP server list; the add, edit, and authenticate forms open inside that dashboard too, so closing a form returns you to the server list. Use `show` or `show SERVER-NAME` to display all configured servers or open one server's details directly, including its available tools, and to enable or disable it. For a plugin-provided server, `show SERVER-NAME` also displays the source attribution (for example, `Source: Plugin my-plugin (1.2.0)`). `list` (alias `ls`) prints a plain-text list of configured servers with connection status and live state. Bare `/mcp`, `config`, `show`, and `list` (alias `ls`) are read-only or open the dashboard, so they can run while the agent is busy processing a turn. The mutating subcommands (`add`, `edit`, `delete`, `disable`, `enable`, `auth`, `reload`, and `search`) are blocked until the turn finishes. `edit ` rejects a workspace-sourced server (one defined in a repository's `.mcp.json`) instead of opening the user-tier wizard, since saving would silently create a same-name user entry that the workspace one still shadows. The error names the file to edit directly. `delete ` reports the same file when asked to remove a workspace-sourced server. Sandboxed local servers show a `connected (sandboxed)` status. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers#managing-mcp-servers). | -| `/model [--session\|--global\|--repo\|--local] [MODEL\|auto TIER]`, `/models` | Select the AI model you want to use, or choose **Auto**. By default (or with `--session`, alias `-s`), changes the model, reasoning effort, or context window for the current session only, without touching saved settings. `--repo`/`--local` pins the default model in repository settings instead; `--global` (or `/config model`) sets the default for future sessions. Press Tab on a model with a long-context variant to toggle its Context column between the default and long-context window. The picker groups models into sections—press Shift+Tab to cycle grouping between recommended (Recent, Recommended, New, and other models), vendor, and category. A model with vendor-specific data retention terms shows a data retention warning banner with a link to the vendor's policy. Usable mid-turn: a change requested while the agent is running is queued as a cancellable (Ctrl+C) command and applied once the current turn finishes, instead of switching the live model mid-request. Use `/model auto TIER` (`efficiency`, `balance`, or `intelligence`) to select a specific Auto routing tier directly, including from the "switch" action on an Auto tier recommendation hint. When Auto picks a model, the timeline shows the reason for that choice whenever the API provides one. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection). | +| `/model [--session\|--global\|--repo\|--local] [MODEL\|auto TIER]`, `/models` | Select the AI model you want to use, or choose **Auto**. Model IDs are case-insensitive, and the canonical ID is saved. By default (or with `--session`, alias `-s`), changes the model, reasoning effort, or context window for the current session only, without touching saved settings. `--repo`/`--local` pins the default model in repository settings instead; `--global` (or `/config model`) sets the default for future sessions. Press Tab on a model with a long-context variant to toggle its Context column between the default and long-context window. The picker groups models into sections—press Shift+Tab to cycle grouping between recommended (Recent, Recommended, New, and other models), vendor, and category. A model with vendor-specific data retention terms shows a data retention warning banner with a link to the vendor's policy. Usable mid-turn: a change requested while the agent is running is queued as a cancellable (Ctrl+C) command and applied once the current turn finishes, instead of switching the live model mid-request. Use `/model auto TIER` (`efficiency`, `balance`, or `intelligence`) to select a specific Auto routing tier directly, including from the "switch" action on an Auto tier recommendation hint. When Auto picks a model, the timeline shows the reason for that choice whenever the API provides one. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection). | | `/permissions [default\|assisted\|allow-all\|show]` | Switch between permission modes (`default`, `assisted`, `allow-all`), or show the current mode (`show`). This is the canonical command for permission mode changes; `/allow-all` and `/yolo` remain supported as aliases. | | `/permissions reset` | Reset all in-memory tool and path approvals for the current session (re-prompt on next use). | | `/plan [PROMPT]` | Create an implementation plan before coding. | @@ -601,7 +601,7 @@ These are the slash commands you can use from within an interactive CLI session. | `/resume [SESSION-ID]`, `/continue [SESSION-ID]` | Switch to a different session by choosing from a list (optionally specify a session ID). | | `/review [PROMPT]` | Run the code review agent to analyze changes. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/agentic-code-review). | | `/rubber-duck [PROMPT]` | Consult the rubber duck agent for a second opinion on plans, code, and tests. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/rubber-duck). | -| `/sandbox [config\|status\|policy [COMMAND]\|enable\|disable]` | Manage sandbox restrictions on filesystem and network access. `config` (or bare `/sandbox`) opens the settings dialog. `status` shows whether sandboxing is enabled for the current session. When sandboxing is enabled, `policy` shows path grants and restrictions grouped by source and access type, network settings, developer-tool access, and sandbox capabilities. Optionally add a command, such as `/sandbox policy npm install`, to inspect its developer-tool access without running it. `enable` and `disable` normally update your saved setting. If your organization requires sandboxing, `disable` is refused unless bypass is allowed. In that case, disabling applies only to the current session. | +| `/sandbox [config\|status\|policy [COMMAND]\|enable\|disable]` | Manage sandbox restrictions on filesystem and network access. `config` (or bare `/sandbox`) opens the settings dialog, which suggests possible environment secrets and lets you add masking hosts before saving. `status` shows whether sandboxing is enabled for the current session. When sandboxing is enabled, `policy` shows path grants and restrictions grouped by source and access type, network settings, developer-tool access, and sandbox capabilities. Optionally add a command, such as `/sandbox policy npm install`, to inspect its developer-tool access without running it. `enable` and `disable` normally update your saved setting. If your organization requires sandboxing, `disable` is refused unless bypass is allowed. In that case, disabling applies only to the current session. | | `/sandbox ca [create\|trust\|rotate\|remove]` | Manage the sandbox's proxy certificate authority. `create` writes it without trusting it. `trust` adds it to OS trust. `rotate` replaces it while preserving its trust state. `remove` drops OS trust. See [Using `copilot sandbox ca`](#using-copilot-sandbox-ca) to run the same operations outside a session, for example on managed devices. | | `/search [QUERY]`, `/find [QUERY]` | Search the conversation timeline. | | `/security-review [PROMPT]` | Run a focused security review of active local code changes and return prioritized vulnerability findings with remediation suggestions. This command is not a full repository security audit. | diff --git a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md index 6290e7e120dd..3decacba7eb7 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md @@ -480,6 +480,7 @@ These settings apply across all your sessions and repositories. You can use the | `ide.openDiffOnEdit` | `boolean` | `true` | Open file edit diffs in the connected IDE for approval. When `false`, file edit approvals are shown only in the terminal. | | `ignoredSkillsLocations` | `string[]` | `[]` | Skill directories (and their descendants) excluded from discovery, regardless of which location would otherwise surface them. Supports `~`-relative paths. See [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#skill-locations). | | `includeCoAuthoredBy` | `boolean` | `true` | Add a `Co-authored-by` trailer to git commits made by the agent. | +| `inlineImages` | `boolean` | `true` | Render images inline using the Kitty graphics protocol. Requires a supported terminal (Ghostty, kitty, or WezTerm). When disabled, image attachments show a text placeholder. | | `keepAlive` | `"on"` \| `"off"` \| `"busy"` | `"off"` | Keep-alive mode applied at CLI startup. `"on"` always prevents the system from sleeping, `"busy"` prevents sleeping only while the agent is running, and `"off"` disables keep-alive. Also configurable with the `/keep-alive` slash command. | | `logLevel` | `"none"` \| `"error"` \| `"warning"` \| `"info"` \| `"debug"` \| `"all"` \| `"default"` | `"default"` | Logging verbosity. | | `mergeStrategy` | `"rebase"` \| `"merge"` | — | Conflict resolution strategy for `/pr fix conflicts`. When set to `"rebase"`, conflicts are resolved by rebasing onto the base branch. When set to `"merge"`, the base branch is merged into the feature branch. If not configured, a picker dialog is shown. | diff --git a/content/copilot/reference/hooks-reference.md b/content/copilot/reference/hooks-reference.md index a1fd680d3e49..6854810b0bc2 100644 --- a/content/copilot/reference/hooks-reference.md +++ b/content/copilot/reference/hooks-reference.md @@ -61,6 +61,34 @@ Policy hook files use the same hook configuration format as user and project hoo Policy hooks are intended for use by enterprise IT administrators and require elevated privileges to install. End users cannot modify them. Policy hooks always run on the host, even when the session sandbox is enabled—see [Sandboxed sessions](#sandboxed-sessions). +### Agent-scoped hooks + +> [!NOTE] +> **{% data variables.copilot.copilot_cli_short %} only.** + +Declare a `hooks` event map in a custom agent's frontmatter to run command or HTTP hooks only while that agent is selected. These hooks run in addition to session, user, repository, plugin, and policy hooks. + +```yaml +--- +name: formatter +description: Formats changed files +hooks: + PostToolUse: + - type: command + command: ./scripts/format-changed-files.sh + windows: ./scripts/format-changed-files.ps1 +--- +Format the files you change. +``` + +| Behavior | Details | +|----------|---------| +| Event names | Runtime names such as `postToolUse` and aliases such as `PostToolUse` are accepted. | +| Commands | `command` is the fallback. `windows`, `linux`, and `osx` override it per platform. Paths resolve from the repository root. | +| Subagent `Stop` | A subagent's scoped `Stop` (`agentStop`) hooks run at `SubagentStop`. After eight consecutive scoped blocks, further blocks are ignored. | +| Trust | Repository and inherited-agent hooks require workspace admission. Hook-disable settings, enterprise restrictions, and timeouts still apply. | +| Unsupported | Remote or organization-hosted agent definitions do not run scoped hooks. | + ## Cloud agent execution environment This section applies to **{% data variables.copilot.copilot_cloud_agent %} only**. It describes constraints that affect how you write hook scripts and configure hook entries for cloud agent jobs. @@ -699,7 +727,7 @@ The `preToolUse` hook can control tool execution by writing a JSON object to std | Field | Values | Description | |-------|--------|-------------| -| `permissionDecision` | `"allow"`, `"deny"`, `"ask"` | Whether the tool executes. Empty output uses default behavior. Under cloud agent, `"ask"` is treated as `"deny"` because no user is available to answer. | +| `permissionDecision` | `"allow"`, `"deny"`, `"ask"` | Whether the tool executes. Empty output uses default behavior. Under cloud agent, `"ask"` is treated as `"deny"` because no user is available to answer. In {% data variables.copilot.copilot_cli_short %} autopilot mode, no prompt is shown and `"ask"` is denied, so the agent sees that the CLI was unable to ask the user for confirmation. | | `permissionDecisionReason` | string | Reason shown to the agent. Required when decision is `"deny"`. | | `modifiedArgs` | object | Substitute tool arguments to use instead of the originals. | diff --git a/src/content-pipelines/state/copilot-cli.sha b/src/content-pipelines/state/copilot-cli.sha index 354171853eb0..1ddbe9908f71 100644 --- a/src/content-pipelines/state/copilot-cli.sha +++ b/src/content-pipelines/state/copilot-cli.sha @@ -1 +1 @@ -d7d56dfd452da6277ff654c83953b2725a1eeb57 +89ba52e27a1d1d9f468b45fdb1cea92174104417 From 9faeebfe02dff26acd3fb64640c98dea33c0fe8d Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 13 Oct 2026 09:27:04 +0000 Subject: [PATCH 06/14] Delete orphaned files (2026-10-12-16-34) (#63797) Co-authored-by: hubwriter --- .../copilot/about-code-referencing.md | 6 ------ .../code-completion-switch-model-affects.md | 19 ------------------- .../copilot/code-referencing-in-chat.md | 1 - .../copilot/code-referencing-note.md | 5 ----- .../copilot/plans/ghec-trial-note.md | 1 - 5 files changed, 32 deletions(-) delete mode 100644 data/reusables/copilot/about-code-referencing.md delete mode 100644 data/reusables/copilot/code-completion-switch-model-affects.md delete mode 100644 data/reusables/copilot/code-referencing-in-chat.md delete mode 100644 data/reusables/copilot/code-referencing-note.md delete mode 100644 data/reusables/copilot/plans/ghec-trial-note.md diff --git a/data/reusables/copilot/about-code-referencing.md b/data/reusables/copilot/about-code-referencing.md deleted file mode 100644 index cdbf532ede57..000000000000 --- a/data/reusables/copilot/about-code-referencing.md +++ /dev/null @@ -1,6 +0,0 @@ -{% data variables.product.prodname_copilot_short %} code referencing identifies and attributes code suggestions by linking them to their original public sources, helping you understand where the code originates. - -If you, or your organization, have allowed suggestions that match public code, {% data variables.product.prodname_copilot %} can provide you with details of the code that a suggestion matches. This happens: - -* When you accept a {% data variables.product.prodname_copilot_short %} inline suggestion in the editor. -* When a response in {% data variables.copilot.copilot_chat_short %} includes matching code. diff --git a/data/reusables/copilot/code-completion-switch-model-affects.md b/data/reusables/copilot/code-completion-switch-model-affects.md deleted file mode 100644 index 24522ed797a6..000000000000 --- a/data/reusables/copilot/code-completion-switch-model-affects.md +++ /dev/null @@ -1,19 +0,0 @@ -> [!NOTE] The list of available models will change over time. When only one model is available for inline suggestions, the model picker will only show that model. Preview models and additional models will be added to the picker as they become available. - -For details of how to switch the model for {% data variables.product.prodname_copilot_short %} inline suggestions, see [AUTOTITLE](/copilot/how-tos/copilot-in-your-ide/copilot-for-common-tasks/change-the-completion-model). - -## Effects of switching the AI model - -Changing the model that's used for {% data variables.product.prodname_copilot_short %} inline suggestions does not affect the model that's used by {% data variables.product.prodname_copilot_short %} next edit suggestions or {% data variables.copilot.copilot_chat_short %}. See [AUTOTITLE](/copilot/how-tos/copilot-in-your-ide/chat-with-copilot/change-the-chat-model). - -There are no changes to the data collection and usage policy if you change the AI model. - -If you are on a {% data variables.copilot.copilot_free_short %} plan, all completions count against your completions quota regardless of the model used. See [AUTOTITLE](/copilot/get-started/plans#comparing-copilot-plans). - -The setting to enable or disable suggestions that match public code is applied irrespective of which model you choose. See [AUTOTITLE](/copilot/how-tos/copilot-in-your-ide/copilot-for-common-tasks/find-matching-code). - -## Enabling the model switcher - -If you have a {% data variables.copilot.copilot_free_short %} or {% data variables.copilot.copilot_pro_short %} plan, the model switcher for {% data variables.product.prodname_copilot_short %} inline suggestions is automatically enabled. - -{% data reusables.copilot.editor-preview-settings %} diff --git a/data/reusables/copilot/code-referencing-in-chat.md b/data/reusables/copilot/code-referencing-in-chat.md deleted file mode 100644 index 5644bd0ebedb..000000000000 --- a/data/reusables/copilot/code-referencing-in-chat.md +++ /dev/null @@ -1 +0,0 @@ -When {% data variables.copilot.copilot_chat_short %} provides a response that includes code that matches code in a public {% data variables.product.github %} repository, this is indicated at the end of the response with a link to display details of the matched code in the editor. diff --git a/data/reusables/copilot/code-referencing-note.md b/data/reusables/copilot/code-referencing-note.md deleted file mode 100644 index 9c00179426dc..000000000000 --- a/data/reusables/copilot/code-referencing-note.md +++ /dev/null @@ -1,5 +0,0 @@ -When you accept a {% data variables.product.prodname_copilot_short %} inline suggestion that matches code in a public {% data variables.product.prodname_dotcom %} repository, information about the matching code is logged. The log entry includes the URLs of files containing matching code, and the name of the license that applies to that code, if any was found. This allows you to review these references and decide how to proceed. For example, you can decide what attribution to use, or whether you want to remove this code from your project. - -> [!NOTE] -> * Code referencing for inline suggestions only occurs for matches of accepted {% data variables.product.prodname_copilot_short %} suggestions. Code you have written, and {% data variables.product.prodname_copilot_short %} suggestions you have altered, are not checked for matches to public code. -> * Typically, matches to public code occur in less than one percent of {% data variables.product.prodname_copilot_short %} suggestions, so you should not expect to see code references for many suggestions. diff --git a/data/reusables/copilot/plans/ghec-trial-note.md b/data/reusables/copilot/plans/ghec-trial-note.md deleted file mode 100644 index 2ef838b6765a..000000000000 --- a/data/reusables/copilot/plans/ghec-trial-note.md +++ /dev/null @@ -1 +0,0 @@ -If you are currently in a trial of {% data variables.product.prodname_ghe_cloud %}, you must convert to a paid enterprise before you can purchase {% data variables.product.prodname_copilot %}. From 118eb2cb9c89780432f3611acecbf684426905be Mon Sep 17 00:00:00 2001 From: Camilla Moraes Date: Tue, 13 Oct 2026 11:06:40 +0000 Subject: [PATCH 07/14] Document counting draft pull requests toward user limits (#63793) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ca3499fb-54f8-4a10-a207-d5c77312cdf0 --- .../limiting-interactions-in-your-organization.md | 9 +++++++-- .../limiting-interactions-in-your-repository.md | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization.md b/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization.md index 2457b507c549..07704de5cbdb 100644 --- a/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization.md +++ b/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization.md @@ -46,13 +46,18 @@ Across all public repositories owned by your organization, you can set a maximum This setting helps maintainers manage contribution volume by preventing users from opening an excessive number of pull requests, which can overwhelm review queues and trigger unnecessary CI runs. The limit only applies to users without write access—users with write access or higher are not affected. -Draft pull requests do not count toward a user's limit. Only open, non-draft pull requests are counted when determining whether a user has reached the maximum. +You can choose whether draft pull requests count toward a user's limit. If you enable **Count draft pull requests toward the limit**, both draft and non-draft open pull requests count toward the maximum. Otherwise, only open, non-draft pull requests count. The organization-level limit takes precedence, but if a repository owned by your organization has its own pull request limit configured after the organization-level limit, the repository-level limit overrides the organization-level limit. See [AUTOTITLE](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository#limiting-concurrent-open-pull-requests-for-users-without-write-access). ### Configuring the pull request limit -To configure the pull request limit, navigate to the **Interaction limits** settings page following the same steps described in [Limiting interactions in your organization](#limiting-interactions-in-your-organization), then under **Pull request limits**, select the maximum number of concurrent open pull requests allowed for users without write access. You can also use the REST API to configure the pull request limit. See [AUTOTITLE](/rest/interactions/orgs#update-pull-request-creation-cap-for-an-org). +To configure the pull request limit, navigate to the **Interaction limits** settings page following the same steps described in [Limiting interactions in your organization](#limiting-interactions-in-your-organization), then: + +1. Under **Pull request limits**, select the maximum number of concurrent open pull requests allowed for users without write access. +1. Optionally, select **Count draft pull requests toward the limit** to include draft pull requests in the maximum. + +You can also use the REST API to configure the pull request limit. See [AUTOTITLE](/rest/interactions/orgs#update-pull-request-creation-cap-for-an-org). {% endif %} diff --git a/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md b/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md index 3fabc4a83c04..ece4b9287d4d 100644 --- a/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md +++ b/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md @@ -39,7 +39,7 @@ In a public repository, you can set a maximum number of pull requests that a use This setting helps maintainers manage contribution volume by preventing users from opening an excessive number of pull requests, which can overwhelm review queues and trigger unnecessary CI runs. The limit only applies to users without write access — users with write access or higher are not affected. -Draft pull requests do not count toward a user's limit. Only open, non-draft pull requests are counted when determining whether a user has reached the maximum. +You can choose whether draft pull requests count toward a user's limit. If you enable **Count draft pull requests toward the limit**, both draft and non-draft open pull requests count toward the maximum. Otherwise, only open, non-draft pull requests count. ### Adding trusted contributors to the bypass list @@ -52,6 +52,7 @@ You can manage the bypass list through either the UI or the API. The bypass list To configure the pull request limit, navigate to the **Interaction limits** settings page following the same steps described in [AUTOTITLE](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository), then: 1. Under **Pull request limits**, select the maximum number of concurrent open pull requests allowed for users without write access. +1. Optionally, select **Count draft pull requests toward the limit** to include draft pull requests in the maximum. 1. Optionally, under **Bypass list**, search for and select the users you want to allow to bypass the pull request limit. {% endif %} From 732cc214686bbaf75e55d416752f6afe5d424dad Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 13 Oct 2026 11:59:42 +0000 Subject: [PATCH 08/14] Delete orphaned features (2026-10-12-16-35) (#63798) Co-authored-by: hubwriter --- data/features/issue-types.yml | 5 ----- data/features/issues-advanced-search.yml | 5 ----- data/features/issues-dashboard.yml | 7 ------- data/features/issues-saved-views.yml | 6 ------ data/features/org-app-manager-teams.yml | 5 ----- data/features/org-private-registry.yml | 7 ------- data/features/projects-single-limit.yml | 5 ----- data/features/repo-rules-merge-type.yml | 7 ------- data/features/secret-risk-assessment.yml | 6 ------ .../features/secret-scanning-alert-dismiss-custom-role.yml | 6 ------ 10 files changed, 59 deletions(-) delete mode 100644 data/features/issue-types.yml delete mode 100644 data/features/issues-advanced-search.yml delete mode 100644 data/features/issues-dashboard.yml delete mode 100644 data/features/issues-saved-views.yml delete mode 100644 data/features/org-app-manager-teams.yml delete mode 100644 data/features/org-private-registry.yml delete mode 100644 data/features/projects-single-limit.yml delete mode 100644 data/features/repo-rules-merge-type.yml delete mode 100644 data/features/secret-risk-assessment.yml delete mode 100644 data/features/secret-scanning-alert-dismiss-custom-role.yml diff --git a/data/features/issue-types.yml b/data/features/issue-types.yml deleted file mode 100644 index 4ab0d81619f8..000000000000 --- a/data/features/issue-types.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Issue 13435 -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/issues-advanced-search.yml b/data/features/issues-advanced-search.yml deleted file mode 100644 index fe3b59f64288..000000000000 --- a/data/features/issues-advanced-search.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Issue 14644 -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/issues-dashboard.yml b/data/features/issues-dashboard.yml deleted file mode 100644 index cfbe7e0ec5a5..000000000000 --- a/data/features/issues-dashboard.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Reference: #17664 -# Global issues dashboard - -versions: - fpt: '*' - ghec: '*' - ghes: '>3.17' diff --git a/data/features/issues-saved-views.yml b/data/features/issues-saved-views.yml deleted file mode 100644 index 2e5eaf4234fd..000000000000 --- a/data/features/issues-saved-views.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Issue 17880 -# You can create saved views on your issues dashboard. -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/org-app-manager-teams.yml b/data/features/org-app-manager-teams.yml deleted file mode 100644 index dd340260f524..000000000000 --- a/data/features/org-app-manager-teams.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Issue https://github.com/github/releases/issues/6052 -versions: - ghec: '*' - fpt: '*' - ghes: '>=3.18' diff --git a/data/features/org-private-registry.yml b/data/features/org-private-registry.yml deleted file mode 100644 index 579d1d90ef11..000000000000 --- a/data/features/org-private-registry.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Reference: #16102 -# Organization-level definition of private registries. This feature is not yet available for GitHub Enterprise Server. -# Limited to use with CodeQL code scanning default setup. -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/projects-single-limit.yml b/data/features/projects-single-limit.yml deleted file mode 100644 index 4f8229b04894..000000000000 --- a/data/features/projects-single-limit.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Use a single limit of 50k for the total number of active and archived items in a project -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/repo-rules-merge-type.yml b/data/features/repo-rules-merge-type.yml deleted file mode 100644 index 8a96053173bb..000000000000 --- a/data/features/repo-rules-merge-type.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Reference: #53268 -# Public preview for merge method rules - -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' diff --git a/data/features/secret-risk-assessment.yml b/data/features/secret-risk-assessment.yml deleted file mode 100644 index 885aec6155c6..000000000000 --- a/data/features/secret-risk-assessment.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Reference: #17014 -# Secret scanning on-demand insights, free for *everyone* (including private repositories) [GA] -versions: - fpt: '*' - ghec: '*' - ghes: '>= 3.18' diff --git a/data/features/secret-scanning-alert-dismiss-custom-role.yml b/data/features/secret-scanning-alert-dismiss-custom-role.yml deleted file mode 100644 index 3127fdd7ff79..000000000000 --- a/data/features/secret-scanning-alert-dismiss-custom-role.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Reference: #16320 -# Delegated alert closures for secret scanning [GA] -versions: - fpt: '*' - ghec: '*' - ghes: '>=3.18' From 558fcbe9328fe28b5cd6fec4d530d9f11aae6fa7 Mon Sep 17 00:00:00 2001 From: AlonaHlobina <54394529+AlonaHlobina@users.noreply.github.com> Date: Tue, 13 Oct 2026 12:01:03 +0000 Subject: [PATCH 09/14] document AI Scan security overview metrics (#63732) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> Copilot-Session: c8e3307b-d7d9-420e-962b-19abfeb17eae --- .../ai-powered-security-detections.md | 7 ++++ .../code-scanning/code-scanning-alerts.md | 2 +- ...s.md => code-scanning-on-pull-requests.md} | 34 ++++++++++++++++--- .../concepts/code-scanning/index.md | 2 +- .../security-at-scale/security-overview.md | 2 +- .../assess-alerts.md | 2 +- .../analyze-organization-data/export-data.md | 6 ++-- ...viewing-metrics-for-pull-request-alerts.md | 27 +++++++++------ .../viewing-security-insights.md | 4 +++ .../overview-dashboard-metrics.md | 17 +++++++++- ...phase-5-rollout-and-scale-code-scanning.md | 2 +- 11 files changed, 82 insertions(+), 23 deletions(-) rename content/code-security/concepts/code-scanning/{pull-request-alert-metrics.md => code-scanning-on-pull-requests.md} (58%) diff --git a/content/code-security/concepts/code-scanning/ai-powered-security-detections.md b/content/code-security/concepts/code-scanning/ai-powered-security-detections.md index c9944202a78f..c8830f71f669 100644 --- a/content/code-security/concepts/code-scanning/ai-powered-security-detections.md +++ b/content/code-security/concepts/code-scanning/ai-powered-security-detections.md @@ -79,4 +79,11 @@ You do not need to select a model to enable AI Scan. Organization owners and security managers can review the effective enablement status of AI Scan for pull requests in the "Coverage" view of security overview. See [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/assessing-adoption-code-security). +People with access to security overview can also monitor AI Scan findings across an organization or enterprise: + +* The **Prevention** tab on the overview dashboard shows trends in AI Scan findings, how many findings were resolved, and how often developers accepted a {% data variables.copilot.copilot_autofix_short %} suggestion. +* The **AI Scan** tab in the "Code scanning on pull requests" report shows findings over time, the availability of {% data variables.copilot.copilot_autofix_short %} suggestions, and the outcomes of findings with and without suggestions. + +For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/code-scanning-on-pull-requests). + You can use the REST API to manage the organization or repository `ai-scan` setting. See [AUTOTITLE](/rest/code-scanning/code-scanning#get-the-ai-scan-setting-for-an-organization). diff --git a/content/code-security/concepts/code-scanning/code-scanning-alerts.md b/content/code-security/concepts/code-scanning/code-scanning-alerts.md index d843f541a656..b2098655139d 100644 --- a/content/code-security/concepts/code-scanning/code-scanning-alerts.md +++ b/content/code-security/concepts/code-scanning/code-scanning-alerts.md @@ -37,7 +37,7 @@ With a {% data variables.copilot.copilot_enterprise %} license, you can also ask {% endif %} -For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/pull-request-alert-metrics). +For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/code-scanning-on-pull-requests). {% data reusables.code-scanning.audit-code-scanning-events %} diff --git a/content/code-security/concepts/code-scanning/pull-request-alert-metrics.md b/content/code-security/concepts/code-scanning/code-scanning-on-pull-requests.md similarity index 58% rename from content/code-security/concepts/code-scanning/pull-request-alert-metrics.md rename to content/code-security/concepts/code-scanning/code-scanning-on-pull-requests.md index 51ff4a5b4ffb..e94bd688f15d 100644 --- a/content/code-security/concepts/code-scanning/pull-request-alert-metrics.md +++ b/content/code-security/concepts/code-scanning/code-scanning-on-pull-requests.md @@ -1,7 +1,7 @@ --- -title: CodeQL pull request alert metrics -shortTitle: Pull request alert metrics -intro: Understand {% data variables.product.prodname_codeql %}'s performance in pull requests across your organizations. +title: Code scanning on pull requests +shortTitle: Code scanning on pull requests +intro: Understand how {% data variables.product.prodname_codeql %}{% ifversion ai-powered-security-detections %} and AI Scan{% endif %} find and help prevent vulnerabilities in pull requests across your organizations. permissions: '{% data reusables.permissions.security-overview %}' product: '{% data reusables.gated-features.security-overview-fpt-cs-only %}' contentType: concepts @@ -11,14 +11,22 @@ versions: ghes: '*' category: - Secure at scale +redirect_from: + - /code-security/concepts/code-scanning/pull-request-alert-metrics --- ## Overview -The metrics overview for {% data variables.product.prodname_codeql %} pull request alerts on security overview helps you understand how well {% data variables.product.prodname_codeql %} is preventing vulnerabilities in pull requests in your organization or across organizations in your enterprise. You can view the entire dataset or filter for specific criteria, making it easy to identify repositories where you may need to take action to find and reduce security risks. +The "Code scanning on pull requests" report in security overview helps you understand how well {% data variables.product.prodname_code_scanning %} is preventing vulnerabilities in pull requests in your organization or across organizations in your enterprise. You can view the entire dataset or filter for specific criteria, making it easy to identify repositories where you may need to take action to find and reduce security risks. + +{% ifversion ai-powered-security-detections %} +The report has separate **{% data variables.product.prodname_codeql %}** and **AI Scan** tabs. +{% endif %} ## Available metrics +### {% data variables.product.prodname_codeql %} metrics + The overview shows you a summary of how many vulnerabilities prevented by {% data variables.product.prodname_codeql %} have been caught in pull requests. The metrics are only tracked for pull requests that have been merged into the default branches of repositories in your organizations. You can also find more granular metrics, such as how many alerts were fixed{% ifversion code-scanning-autofix %} with and without {% data variables.copilot.copilot_autofix_short %} suggestions{% endif %}, how many were unresolved and merged, and how many were dismissed as false positive or risk accepted. @@ -43,6 +51,22 @@ You can also view: > [!NOTE] Metrics for {% data variables.copilot.copilot_autofix_short %} are omitted because {% data variables.copilot.copilot_autofix_short %} is available only on {% data variables.product.github %} cloud platforms. {% endif %} +{% ifversion ai-powered-security-detections %} + +### AI Scan metrics + +The **AI Scan** tab shows: + +* **Total findings:** The number of AI Scan findings. +* **Findings with Autofix suggestions:** The number and percentage of findings that had a {% data variables.copilot.copilot_autofix_short %} suggestion. +* **AI Scan findings in pull requests:** A chart that groups findings over time by **Autofix suggested** and **Autofix not suggested**. +* **Outcomes of findings with an Autofix suggestion:** The share of findings where a fix was applied or the finding was dismissed. +* **Outcomes of findings without an Autofix suggestion:** The share of findings where a fix was applied or the finding was dismissed. + +The date range and filters that you select apply to all AI Scan metrics displayed in the report. + +{% endif %} + ## Visibility You can see {% data variables.product.prodname_code_scanning %} metrics for a repository if you have: @@ -53,4 +77,4 @@ You can see {% data variables.product.prodname_code_scanning %} metrics for a re ## Next steps -To find your pull request alert metrics, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts). +To view the "Code scanning on pull requests" report, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts). diff --git a/content/code-security/concepts/code-scanning/index.md b/content/code-security/concepts/code-scanning/index.md index d1ec8d040763..739142af169e 100644 --- a/content/code-security/concepts/code-scanning/index.md +++ b/content/code-security/concepts/code-scanning/index.md @@ -23,7 +23,7 @@ children: - /multi-repository-variant-analysis - /codeql - /tool-status-page - - /pull-request-alert-metrics + - /code-scanning-on-pull-requests - /repository-properties --- diff --git a/content/code-security/concepts/security-at-scale/security-overview.md b/content/code-security/concepts/security-at-scale/security-overview.md index 9a5cb3dcf18f..653ce8588994 100644 --- a/content/code-security/concepts/security-at-scale/security-overview.md +++ b/content/code-security/concepts/security-at-scale/security-overview.md @@ -76,7 +76,7 @@ Security overview has multiple views that provide different ways to explore enab * **Assessments:** regardless of the enablement status of {% data variables.product.prodname_AS %} features, organizations on {% data variables.product.prodname_team %} and {% data variables.product.prodname_enterprise %} can run a free report to scan the code in the organization for leaked secrets, see [AUTOTITLE](/code-security/concepts/secret-security/secret-security-with-github).{% ifversion security-campaigns %} * **Campaigns:** coordinate and measure targeted remediation efforts, grouping related security tasks across repositories, assigning owners, and tracking progress toward defined risk‑reduction goals.{% endif %} * **Enablement:** see how quickly different teams are adopting security features. -* **{% data variables.product.prodname_codeql %} pull requests:** assess the impact of running {% data variables.product.prodname_codeql %} on pull requests and how development teams are resolving {% data variables.product.prodname_code_scanning %} alerts, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts).{% ifversion dependabot-metrics %} +* **{% ifversion ai-powered-security-detections %}Code scanning on pull requests{% else %}{% data variables.product.prodname_codeql %} pull requests{% endif %}:** assess the impact of running {% data variables.product.prodname_codeql %}{% ifversion ai-powered-security-detections %} and AI Scan{% endif %} on pull requests, and how development teams resolve {% ifversion ai-powered-security-detections %}alerts and findings{% else %}{% data variables.product.prodname_code_scanning %} alerts{% endif %}, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts).{% ifversion dependabot-metrics %} * **{% data variables.product.prodname_dependabot %}**: prioritize and track critical vulnerabilities by identifying, remediating, and measuring security improvements across repositories.{% endif %} * **{% data variables.product.prodname_secret_scanning_caps %}:** find out which types of secret are blocked by push protection and which teams are bypassing push protection, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-secret-scanning-push-protection) and [AUTOTITLE](/code-security/how-tos/secure-your-secrets/manage-bypass-requests/review-bypass-requests). diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assess-alerts.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assess-alerts.md index ff809c60ec99..09c4bd3eabf8 100644 --- a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assess-alerts.md +++ b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assess-alerts.md @@ -58,7 +58,7 @@ With a {% data variables.copilot.copilot_enterprise %} license, you can ask {% d ## Viewing metrics for {% data variables.product.prodname_codeql %} pull request alerts for an organization -For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories where you have write access across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/pull-request-alert-metrics). +For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories where you have write access across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/code-scanning-on-pull-requests). ## Filtering {% data variables.product.prodname_code_scanning %} alerts diff --git a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data.md b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data.md index 51fb54f543b9..7e8d23a29ca7 100644 --- a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data.md +++ b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data.md @@ -1,7 +1,7 @@ --- title: Exporting data from security overview shortTitle: Export data -intro: From security overview, you can export CSV files of the data used for your organization or enterprise's overview, risk, coverage, and {% data variables.product.prodname_codeql %} pull request insights pages. +intro: From security overview, you can export CSV files of the data used for your organization or enterprise's overview, risk, coverage, and code scanning pull request insights pages. permissions: '{% data reusables.permissions.security-overview %}' product: '{% data reusables.gated-features.security-overview-fpt-both %}' versions: @@ -21,6 +21,8 @@ The CSV file you download will contain data corresponding to the filters you hav {% ifversion ai-powered-security-detections %} CSV files exported from the "Coverage" view include a `Code Scanning AI Scan for pull requests` column. The value for each repository is `enabled` or `not-enabled`. + +In the "Code scanning on pull requests" report, CSV export is available on the **{% data variables.product.prodname_codeql %}** tab. CSV export is not yet available on the **AI Scan** tab. {% endif %} > [!NOTE] @@ -31,7 +33,7 @@ CSV files exported from the "Coverage" view include a `Code Scanning AI Scan for {% data reusables.profile.access_org %} 1. In the "Organizations" section, select the organization for which you would like to download security overview data. {% data reusables.organizations.security-overview %} -1. In the sidebar, click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} Overview**, **{% octicon "meter" aria-hidden="true" aria-label="meter" %} Coverage**, **{% octicon "shield" aria-hidden="true" aria-label="shield" %} Risk**, or **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% data variables.product.prodname_codeql %} pull requests**. +1. In the sidebar, click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} Overview**, **{% octicon "meter" aria-hidden="true" aria-label="meter" %} Coverage**, **{% octicon "shield" aria-hidden="true" aria-label="shield" %} Risk**, or **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% ifversion ai-powered-security-detections %}Code scanning on pull requests{% else %}{% data variables.product.prodname_codeql %} pull requests{% endif %}**. 1. Next to the search bar, click **{% octicon "download" aria-hidden="true" aria-label="download" %} Export CSV**. It may take a moment for {% data variables.product.github %} to generate the CSV file of your data. Once the CSV file generates, the file will automatically start downloading, and a banner will appear confirming your report is ready. If you are downloading the CSV from the overview page, you will also receive an email when your report is ready, containing a link to download the CSV. diff --git a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts.md b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts.md index 293fba5b7d0f..d3d13ffce2cc 100644 --- a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts.md +++ b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts.md @@ -1,8 +1,8 @@ --- -title: Viewing metrics for pull request alerts -shortTitle: View PR alert metrics +title: Viewing code scanning metrics for pull requests +shortTitle: View pull request metrics allowTitleToDifferFromFilename: true -intro: Monitor {% data variables.product.prodname_codeql %}'s performance in pull requests across your organizations to identify repositories where you may need to take action. +intro: Monitor how {% data variables.product.prodname_codeql %}{% ifversion ai-powered-security-detections %} and AI Scan{% endif %} perform in pull requests across your organizations to identify repositories where you may need to take action. permissions: '{% data reusables.permissions.security-overview %}' product: '{% data reusables.gated-features.security-overview-fpt-cs-only %}' contentType: how-tos @@ -16,26 +16,33 @@ category: - Secure at scale --- -## Viewing {% data variables.product.prodname_codeql %} pull request metrics for an organization +## Viewing code scanning pull request metrics for an organization {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.security-overview %} -1. In the sidebar, under "Insights", click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% data variables.product.prodname_codeql %} pull requests**. -1. Optionally, use the date picker to set the time range. The date picker will show data based on the pull request alerts' creation dates. +1. In the sidebar, under "Insights", click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% ifversion ai-powered-security-detections %}Code scanning on pull requests{% else %}{% data variables.product.prodname_codeql %} pull requests{% endif %}**. +{% ifversion ai-powered-security-detections %} +1. Select the **{% data variables.product.prodname_codeql %}** or **AI Scan** tab. +{% endif %} +1. Optionally, use the date picker to set the time range. The date picker filters data based on when the pull request alerts or findings were created. 1. Optionally, apply filters in the search box at the top of the page. 1. Alternatively, you can open the advanced filter dialog: * At the top of the page, next to the search box, click **{% octicon "filter" aria-hidden="true" aria-label="filter" %} Filter**. * Click **{% octicon "plus" aria-hidden="true" aria-label="plus" %} Add a filter**, then select a filter from the dropdown menu. * To search for repositories matching the selected filter, fill out the available fields for that filter, then click **Apply**. You can repeat this process to add as many filters as you would like to your search. * Optionally, to remove a filter from your search, click **{% octicon "filter" aria-hidden="true" aria-label="filter" %} Filter**. In the row of the filter you want to remove, click {% octicon "x" aria-label="Delete FILTER-NUMBER: FILTER-PROPERTIES" %}, then click **Apply**.{% ifversion security-overview-export-data %} -1. You can use the **{% octicon "download" aria-hidden="true" aria-label="download" %} Export CSV** button to download a CSV file of the data currently displayed on the page for security research and in-depth data analysis. For more information, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data). {% endif %} +1. {% ifversion ai-powered-security-detections %}On the **{% data variables.product.prodname_codeql %}** tab, you can use the **{% octicon "download" aria-hidden="true" aria-label="download" %} Export CSV** button to download a CSV file of the displayed data. CSV export is not yet available for the **AI Scan** tab. {% else %}You can use the **{% octicon "download" aria-hidden="true" aria-label="download" %} Export CSV** button to download a CSV file of the data currently displayed on the page.{% endif %} For more information, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data). {% endif %} -## Viewing {% data variables.product.prodname_codeql %} pull request metrics for your enterprise +## Viewing code scanning pull request metrics for your enterprise -You can also view metrics for {% data variables.product.prodname_codeql %} pull request alerts across organizations in your enterprise. +You can also view code scanning metrics for pull requests across organizations in your enterprise. {% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.code-scanning.click-code-security-enterprise %} -1. In the sidebar, under "Insights", click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% data variables.product.prodname_codeql %} pull requests**. +1. In the sidebar, under "Insights", click **{% octicon "graph" aria-hidden="true" aria-label="graph" %} {% ifversion ai-powered-security-detections %}Code scanning on pull requests{% else %}{% data variables.product.prodname_codeql %} pull requests{% endif %}**. +{% ifversion ai-powered-security-detections %} +1. Select the **{% data variables.product.prodname_codeql %}** or **AI Scan** tab. +{% endif %} +1. Optionally, use the date picker or filters to limit the displayed data. {% data reusables.security-overview.enterprise-filters-tip %} diff --git a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-security-insights.md b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-security-insights.md index 41f2a60ac4b3..b01d2f016add 100644 --- a/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-security-insights.md +++ b/content/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-security-insights.md @@ -19,6 +19,10 @@ category: The overview page in security overview provides a consolidated dashboard of your organization{% ifversion security-overview-dashboard-enterprise %} or enterprise{% endif %}'s security landscape. You can filter the dashboard by time period, tool, and other criteria to focus on specific areas of interest. For more information about the overview dashboard, available metrics, and access permissions, see [AUTOTITLE](/code-security/concepts/security-at-scale/security-overview). +{% ifversion ai-powered-security-detections %} +The **Prevention** tab includes AI Scan metrics for your organization or enterprise. You can track AI Scan findings, resolution rates, and accepted {% data variables.copilot.copilot_autofix_short %} suggestions. For more detailed findings, use the "Code scanning on pull requests" report. See [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts). +{% endif %} + {% ifversion security-overview-export-data %} You can download a CSV file of the overview dashboard data for your organization or enterprise. For more information, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/export-data). {% endif %} diff --git a/content/code-security/reference/security-at-scale/overview-dashboard-metrics.md b/content/code-security/reference/security-at-scale/overview-dashboard-metrics.md index 86492aaefa25..5b672a7a949d 100644 --- a/content/code-security/reference/security-at-scale/overview-dashboard-metrics.md +++ b/content/code-security/reference/security-at-scale/overview-dashboard-metrics.md @@ -48,7 +48,7 @@ The dashboard is divided into three tabs, each focused around a different securi * **Prevention:** Shows metrics about how vulnerabilities have been prevented and fixed in pull requests. > [!NOTE] -> Unlike the **Detection** and **Remediation** tabs which report alerts on the default branch, the **Prevention** tab gives you insights for {% data variables.product.prodname_codeql %} alerts found in merged pull requests. +> Unlike the **Detection** and **Remediation** tabs which report alerts on the default branch, the **Prevention** tab gives you insights for {% data variables.product.prodname_codeql %} alerts found in merged pull requests{% ifversion ai-powered-security-detections %} and AI Scan findings from pull requests{% endif %}. ## Detection metrics @@ -162,3 +162,18 @@ Shows the ratio of accepted {% data variables.copilot.copilot_autofix_short %} s {% endif %} +{% ifversion ai-powered-security-detections %} + +### AI Scan findings + +Shows trends for **Total findings**, **Fix applied**, and **Dismissed** over the time period you have chosen. A finding is resolved when a fix is applied or the finding is dismissed. + +### AI Scan findings resolved + +Shows the number of resolved AI Scan findings out of the total number of findings, and the percentage resolved. A finding is resolved when a fix is applied or the finding is dismissed. + +### AI Scan findings with accepted autofix + +Shows the number of AI Scan findings with an accepted {% data variables.copilot.copilot_autofix_short %} suggestion out of all findings that had a suggested autofix, and the acceptance percentage. + +{% endif %} diff --git a/content/code-security/tutorials/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning.md b/content/code-security/tutorials/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning.md index 0e1a213ba392..6e3a003144a9 100644 --- a/content/code-security/tutorials/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning.md +++ b/content/code-security/tutorials/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning.md @@ -33,7 +33,7 @@ To successfully manage and use {% data variables.product.prodname_code_scanning You'll also need SMEs if you need to use advanced setup for {% data variables.product.prodname_code_scanning %}. These SMEs will need knowledge of {% data variables.product.prodname_code_scanning %} alerts, as well as topics like {% data variables.product.prodname_actions %} and customizing {% data variables.product.prodname_code_scanning %} workflows for particular frameworks. For custom configurations of advanced setup, consider running meetings on complicated topics to scale the knowledge of several SMEs at once. -For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/pull-request-alert-metrics). +For {% data variables.product.prodname_code_scanning %} alerts from {% data variables.product.prodname_codeql %} analysis, you can use security overview to see how {% data variables.product.prodname_codeql %} is performing in pull requests in repositories across your organization, and to identify repositories where you may need to take action. For more information, see [AUTOTITLE](/code-security/concepts/code-scanning/code-scanning-on-pull-requests). {% ifversion copilot-chat-ghas-alerts %} From 65549da7a75cab8a31ca5a28783ffa4d1c689b86 Mon Sep 17 00:00:00 2001 From: Dan O'Brien Date: Tue, 13 Oct 2026 12:32:11 +0000 Subject: [PATCH 10/14] Ensure customers know to set backup-disk role when reusing existing disk in cluster/ha topologies (#63823) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../configuring-the-backup-service.md | 14 ++++++++++++++ data/features/backup-service-cluster-ha.yml | 3 +++ 2 files changed, 17 insertions(+) create mode 100644 data/features/backup-service-cluster-ha.yml diff --git a/content/admin/backing-up-and-restoring-your-instance/configuring-the-backup-service.md b/content/admin/backing-up-and-restoring-your-instance/configuring-the-backup-service.md index 1f119dcc41b1..bec3265c52d3 100644 --- a/content/admin/backing-up-and-restoring-your-instance/configuring-the-backup-service.md +++ b/content/admin/backing-up-and-restoring-your-instance/configuring-the-backup-service.md @@ -121,6 +121,20 @@ If the device was already initialized using `ghe-storage-init-backup`, you can r This will mount the device at `/data/backup` and ensures it's mounted automatically in the future. +{% ifversion backup-service-cluster-ha %} +{% # Pre-GA, backup-service was only supported on standalone topologies making this step irrelevant %} + +1. If using a cluster or high availability (HA) configuration, set the `backup-server` role for the node on which the disk is mounted and apply the configuration. + + Replace `HOSTNAME` with the hostname of the node on which the disk is mounted, as listed in `cluster.conf`. + + ```shell + ghe-config cluster.HOSTNAME.backup-server true + ghe-config-apply + ``` + +{% endif %} + ### Configuring backup settings After the backup target is mounted, the Backup Service page will become available in the {% data variables.enterprise.management_console %} in the "Backup" section. {% ifversion ghes > 3.19 %} If your instance is part of a clustered environment, the Backup Service page will be available after `ghe-config-apply`. {% endif %} diff --git a/data/features/backup-service-cluster-ha.yml b/data/features/backup-service-cluster-ha.yml new file mode 100644 index 000000000000..540bddd75205 --- /dev/null +++ b/data/features/backup-service-cluster-ha.yml @@ -0,0 +1,3 @@ +# Backup service support for cluster and high availability configurations +versions: + ghes: '>=3.20' From d69b05bebd4d38994ad40199ca3ceef5cf4fd943 Mon Sep 17 00:00:00 2001 From: Joshua Walker <3141202+joshuawalker@users.noreply.github.com> Date: Tue, 13 Oct 2026 13:26:46 +0000 Subject: [PATCH 11/14] Replace QR code image in 2FA article (#63819) --- ...8-and-higher-2fa-wizard-app-click-code.png | Bin 23826 -> 48626 bytes .../two_fa/enable-totp-app-method.md | 2 +- src/assets/lib/image-density.txt | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/assets/images/help/2fa/ghes-3.8-and-higher-2fa-wizard-app-click-code.png b/assets/images/help/2fa/ghes-3.8-and-higher-2fa-wizard-app-click-code.png index 2ba324108c6298bff111d09c2003928afd543391..d7dc02cdd051fd642ae7699c766cec105ee1e7c2 100644 GIT binary patch literal 48626 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

h`C6nUXzA^1xu-Ux{uRck&Yaok5mc)%7oS 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 Date: Tue, 13 Oct 2026 13:43:12 +0000 Subject: [PATCH 12/14] Restore billing cycle change guidance (#62027) 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: Laurie Copilot-Session: 1e71d5c3-5270-4b5b-a38c-e0ecd999ecae --- content/billing/concepts/billing-cycles.md | 5 ++- .../change-billing-cycle.md | 34 +++++++++++++++++++ .../how-tos/manage-plan-and-licenses/index.md | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 content/billing/how-tos/manage-plan-and-licenses/change-billing-cycle.md diff --git a/content/billing/concepts/billing-cycles.md b/content/billing/concepts/billing-cycles.md index 94dda885adb1..8059b7f541f6 100644 --- a/content/billing/concepts/billing-cycles.md +++ b/content/billing/concepts/billing-cycles.md @@ -7,7 +7,6 @@ versions: redirect_from: - /billing/using-the-enhanced-billing-platform-for-enterprises/about-the-billing-cycle - /billing/using-the-billing-platform/viewing-your-subscriptions-and-billing-date - - /billing/using-the-billing-platform/changing-the-duration-of-your-billing-cycle - /billing/using-the-new-billing-platform/viewing-your-subscriptions-and-billing-date - /billing/using-the-new-billing-platform/about-the-billing-cycle - /billing/managing-your-billing/about-the-billing-cycle @@ -58,6 +57,10 @@ Changes you make mid-cycle, such as adding or removing users, seats, or resource * **Within the same billing account**: No double-billing. Moving users or resources between organizations under the same account is handled automatically. * **Between different billing accounts**: Each account is billed according to its own cycle. You may see charges in both accounts if the move overlaps billing periods. +## Changing your billing cycle + +In some cases, you can change your billing cycle from monthly to annual, or vice versa. For information about when you can change your billing cycle and how to make the change, see [AUTOTITLE](/billing/how-tos/manage-plan-and-licenses/change-billing-cycle). + ## Where to find usage details for specific products Find product-specific guidance on how usage is calculated and billed. diff --git a/content/billing/how-tos/manage-plan-and-licenses/change-billing-cycle.md b/content/billing/how-tos/manage-plan-and-licenses/change-billing-cycle.md new file mode 100644 index 000000000000..e4a3edfcfb05 --- /dev/null +++ b/content/billing/how-tos/manage-plan-and-licenses/change-billing-cycle.md @@ -0,0 +1,34 @@ +--- +title: Changing your billing cycle +shortTitle: Change billing cycle +intro: 'In some cases, you can change your billing cycle from monthly to annual, or vice versa.' +redirect_from: + - /github/setting-up-and-managing-billing-and-payments-on-github/changing-the-duration-of-your-billing-cycle + - /articles/monthly-and-yearly-billing + - /articles/switching-between-monthly-and-yearly-billing-for-your-personal-account + - /articles/switching-between-monthly-and-yearly-billing-for-your-organization + - /articles/changing-the-duration-of-your-billing-cycle + - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle + - /billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle + - /billing/using-the-billing-platform/changing-the-duration-of-your-billing-cycle +versions: + fpt: '*' + ghec: '*' +contentType: how-tos +category: + - Manage your plan and licenses +--- + +## Who can change their billing cycle + +You can change your billing cycle if you have a volume-based plan that supports both monthly and annual billing. The change takes effect at the start of your next billing cycle. + +For more information about volume-based plans, see [AUTOTITLE](/billing/concepts/billing-cycles#billing-cycles-for-volume-based-products). + +## Changing your billing cycle + +{% data reusables.user-settings.access_settings %} +{% data reusables.user-settings.billing-plans-two-platforms %} + +1. Find the plan you want to update, then select the **Edit** dropdown on the right. +1. Select the option to change your billing cycle, then follow the prompts. diff --git a/content/billing/how-tos/manage-plan-and-licenses/index.md b/content/billing/how-tos/manage-plan-and-licenses/index.md index 36ab22f2e574..746fe592064c 100644 --- a/content/billing/how-tos/manage-plan-and-licenses/index.md +++ b/content/billing/how-tos/manage-plan-and-licenses/index.md @@ -22,6 +22,7 @@ versions: children: - /upgrade-plan - /downgrade-plan + - /change-billing-cycle - /manage-pending-changes - /view-enterprise-usage - /manage-user-licenses From d77cdeff9957fdb9a169d759f352115d6f5f4e01 Mon Sep 17 00:00:00 2001 From: Cedric Wille <24487628+cwille97@users.noreply.github.com> Date: Tue, 13 Oct 2026 14:09:56 +0000 Subject: [PATCH 13/14] Update model-hosting.md for Gemini Durable Caching (#63733) --- content/copilot/reference/ai-models/model-hosting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/reference/ai-models/model-hosting.md b/content/copilot/reference/ai-models/model-hosting.md index e7774d31634a..f5e748dd2209 100644 --- a/content/copilot/reference/ai-models/model-hosting.md +++ b/content/copilot/reference/ai-models/model-hosting.md @@ -88,7 +88,7 @@ Used for: {% data variables.product.prodname_copilot %} uses {% data variables.copilot.copilot_gemini %} models hosted on Google Cloud Platform (GCP). When using {% data variables.copilot.copilot_gemini %} models, prompts and metadata are sent to GCP, which makes the [following data commitment](https://cloud.google.com/vertex-ai/generative-ai/docs/data-governance): _{% data variables.copilot.copilot_gemini %} doesn't use your prompts, or its responses, as data to train its models._ -To provide better service quality and reduce latency, {% data variables.product.github %} uses [prompt caching](https://cloud.google.com/vertex-ai/generative-ai/docs/data-governance#customer_data_retention_and_achieving_zero_data_retention). +To provide better service quality and reduce latency, {% data variables.product.github %} uses Google's Durable Caching. Cached data is encrypted and held for up to 24 hours. Cached data is never used to train or fine-tune models. When using {% data variables.copilot.copilot_gemini %} models, input prompts and output completions continue to run through {% data variables.product.prodname_copilot %}'s content filters for public code matching, when applied, along with those for harmful or offensive content. From 0e036d7399aeed8854ea8a4e36589d52eaaa21ab Mon Sep 17 00:00:00 2001 From: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com> Date: Tue, 13 Oct 2026 14:11:46 +0000 Subject: [PATCH 14/14] Add GPT-6 Luna, GPT-6 Sol, and GPT-6.1 Sol to EU data residency model list (#63806) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../admin/data-residency/github-copilot-with-data-residency.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/admin/data-residency/github-copilot-with-data-residency.md b/content/admin/data-residency/github-copilot-with-data-residency.md index f782cc487dbe..6a004294bdfa 100644 --- a/content/admin/data-residency/github-copilot-with-data-residency.md +++ b/content/admin/data-residency/github-copilot-with-data-residency.md @@ -65,6 +65,9 @@ The models available for {% data variables.product.prodname_copilot_short %} var * {% data variables.copilot.copilot_gpt_56_sol %} * {% data variables.copilot.copilot_gpt_56_terra %} * {% data variables.copilot.copilot_gpt_6_astra %} +* {% data variables.copilot.copilot_gpt_6_luna %} +* {% data variables.copilot.copilot_gpt_6_sol %} +* {% data variables.copilot.copilot_gpt_61_sol %} * {% data variables.copilot.copilot_claude_haiku_45 %} * {% data variables.copilot.copilot_claude_haiku_55 %} * {% data variables.copilot.copilot_claude_opus_48 %}