diff --git a/content/admin/backing-up-and-restoring-your-instance/configuring-elasticsearch-snapshots.md b/content/admin/backing-up-and-restoring-your-instance/configuring-elasticsearch-snapshots.md index 08a0c6369d4e..55eecf6deab1 100644 --- a/content/admin/backing-up-and-restoring-your-instance/configuring-elasticsearch-snapshots.md +++ b/content/admin/backing-up-and-restoring-your-instance/configuring-elasticsearch-snapshots.md @@ -33,7 +33,7 @@ This feature is opt-in. If you don't configure a snapshot repository, {% data va Configure the following settings using `ghe-config` over SSH. For more information, see [AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh). -You'll apply the configuration to register the snapshot repository with Elasticsearch. The repository is named `search_index_snapshots-VERSION`, where `VERSION` is the current {% data variables.product.prodname_ghe_server %} release version. +You'll apply the configuration to register the snapshot repository with Elasticsearch. The repository is named `search_index_snapshots-vVERSION`, where `VERSION` is the current {% data variables.product.prodname_ghe_server %} release version. ### Azure Blob storage @@ -106,7 +106,7 @@ You'll apply the configuration to register the snapshot repository with Elastics After configuration apply completes, confirm the snapshot repository was registered. ```shell -curl -k "http://127.0.0.1:9200/_snapshot/search_index_snapshots-$(ghe-version -v)/_status" +curl -k "http://127.0.0.1:9200/_snapshot/search_index_snapshots-v$(ghe-version -v)/_status" ``` If a required secret is missing, configuration apply fails while registering the repository. Update the secrets and rerun `ghe-config-apply` to retry. @@ -137,9 +137,9 @@ You can manage Elasticsearch snapshots directly using the following commands. Ru | Command | Description | | --- | --- | -| `ghe-es-create-snapshot` | Creates a new snapshot in the configured repository. | -| `ghe-es-list-snapshots` | Lists snapshot repositories, or snapshots within a repository. | -| `ghe-es-restore-snapshot` | Restores search indices from a snapshot. | +| `/usr/local/share/enterprise/ghe-es-create-snapshot` | Creates a new snapshot in the configured repository. | +| `/usr/local/share/enterprise/ghe-es-list-snapshots` | Lists snapshot repositories, or snapshots within a repository. | +| `/usr/local/share/enterprise/ghe-es-restore-snapshot` | Restores search indices from a snapshot. | > [!TIP] > For routine backups and restores, use {% data variables.product.prodname_enterprise_backup_utilities %} or {% data variables.product.prodname_enterprise_backup_service %} instead of these commands directly. The backup tooling coordinates Elasticsearch snapshots with the rest of your instance's data to ensure a consistent backup or restore. Use the manual commands only when you need to manage search index snapshots independently of a full instance backup or restore. @@ -151,13 +151,13 @@ You can restore a snapshot created by an earlier {% data variables.product.prodn 1. List available snapshots for the earlier version. ```shell - ghe-es-list-snapshots -v 3.14.0 + /usr/local/share/enterprise/ghe-es-list-snapshots -v 3.14.0 ``` 1. Restore the snapshot you want. ```shell - ghe-es-restore-snapshot -v 3.14.0 -s SNAPSHOT-NAME + /usr/local/share/enterprise/ghe-es-restore-snapshot -v 3.14.0 -s SNAPSHOT-NAME ``` Elasticsearch automatically upgrades the restored indices to the current version's format. diff --git a/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md b/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md index 0b11857bc231..7acbdc93237f 100644 --- a/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md +++ b/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md @@ -23,7 +23,6 @@ The following features are currently unavailable on {% data variables.enterprise | Feature | Details | More information | | :- | :- | :- | | Dependency insights | Organization-level and enterprise-level dependency insights are unavailable and display no data. | [AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-dependencies-in-your-organization) | -| License and package metadata in the dependency graph | License and package details are not currently populated in the dependency graph. This can result in empty license fields in software bill of materials (SBOM) exports and missing license information from the {% data variables.dependency-review.action_name %}. | [AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom)
[AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action) | | macOS runners for {% data variables.product.prodname_actions %} | Currently unavailable. | [AUTOTITLE](/actions/concepts/runners/github-hosted-runners) | | Maven and Gradle support for {% data variables.product.prodname_registry %} | Currently unavailable. | [AUTOTITLE](/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry) | | {% data variables.product.prodname_marketplace %} | {% data variables.product.prodname_marketplace %}, as a means of searching for, purchasing, and directly installing apps and actions, is unavailable. Ecosystem apps and actions can still be discovered and installed from their source, but they may require modification to work on {% data variables.enterprise.data_residency_site %}. | [{% data variables.product.prodname_actions %} workflows from {% data variables.product.prodname_marketplace %}](#github-actions-workflows-from-github-marketplace) | diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md index 32e89c809be1..8c5a01aa3b59 100644 --- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md +++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md @@ -109,21 +109,6 @@ Across all of your enterprise's organizations, you can allow or disallow people {% endif %} -{% ifversion secret-scanning-actions-logs %} - -## Enforcing a policy for secret scanning in {% data variables.product.prodname_actions %} workflow logs - -As an enterprise owner, you can choose whether {% data variables.product.github %} scans {% data variables.product.prodname_actions %} workflow logs for secrets. This policy is disabled by default. - -When you enable the policy, {% data variables.product.github %} scans the logs of new workflow runs in all repositories in your enterprise where {% data variables.product.prodname_secret_scanning %} is enabled. - -{% data reusables.enterprise-accounts.access-enterprise %} -{% data reusables.enterprise-accounts.policies-tab %} -{% data reusables.enterprise-accounts.code-security-and-analysis-policies %} -1. Under "Secret scanning for Actions workflow logs", select the **All repositories** dropdown menu, then click **Enabled** or **Disabled**. - -{% endif %} - {% ifversion code-scanning-autofix %} ## Enforcing a policy to manage the use of {% data variables.copilot.copilot_autofix_short %} in your enterprise's repositories diff --git a/content/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles.md b/content/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles.md index afc42e780ba2..e74997cc7d63 100644 --- a/content/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles.md +++ b/content/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/abilities-of-roles.md @@ -30,6 +30,7 @@ category: | Enterprise owner | Can manage all enterprise settings, members, and policies. | | {% ifversion ghec %} | | Billing manager | Can manage enterprise billing settings. | +| Enterprise open-source license manager | Can edit license compliance policy. Receives notifications for license alert closure requests. | | {% endif %} | | {% ifversion enterprise-app-manager %} | | App manager | Can manage {% data variables.product.prodname_github_app %} registrations that are owned by the enterprise. | diff --git a/content/apps/using-github-apps/about-using-github-apps.md b/content/apps/using-github-apps/about-using-github-apps.md index 69dcb4cbe111..7e2545d08685 100644 --- a/content/apps/using-github-apps/about-using-github-apps.md +++ b/content/apps/using-github-apps/about-using-github-apps.md @@ -43,7 +43,7 @@ Before you install or authorize a {% data variables.product.prodname_github_app {% data reusables.copilot.agent-apps-intro %} Powered by {% data variables.copilot.copilot_cloud_agent %}, you can trigger these agents from issues, pull requests, and the Agents UI. -When you install an {% data variables.copilot.agent_app %}, you will be asked if you want to enable agent features. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). +When you install an {% data variables.copilot.agent_app %}, you will be asked if you want to enable agent features. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). If the app is installed in an organization owned by an enterprise, an administrator must also enable the "{% data variables.copilot.agent_apps %}" {% data variables.product.prodname_copilot_short %} policy before the agent features become available. diff --git a/content/billing/concepts/budgets-and-alerts.md b/content/billing/concepts/budgets-and-alerts.md index 26c858bc09ed..174c9545f4e7 100644 --- a/content/billing/concepts/budgets-and-alerts.md +++ b/content/billing/concepts/budgets-and-alerts.md @@ -19,6 +19,18 @@ For most license-based products such as {% data variables.product.prodname_copil For metered products such as {% data variables.product.prodname_actions %}, {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, or cloud sandboxes, you can set budgets to prevent usage once the budget threshold is reached. +{% ifversion fpt or ghec %} + +The bundled {% data variables.product.prodname_ai_credits_short %} budget controls metered spending across all AI-credit SKUs. You can also create a SKU-level budget for **Code Security AI Credits** to control spending on AI Scan and agentic autofix. + +When no Code Security AI Credits quota remains because of a hard budget, AI Scan cannot produce findings and agentic autofix cannot start a session. Usage resumes when the limiting budget is increased or a new billing cycle begins. + +Hard budgets for Code Security AI Credits limit AI feature usage, not enablement. Reaching a budget limit does not prevent administrators from enabling AI Scan or agentic autofix. + +By contrast, a hard budget for active-committer licenses prevents enabling {% data variables.product.prodname_code_security %} or {% data variables.product.prodname_secret_protection %} on additional repositories. It does not disable these products in repositories where they are already enabled. + +{% endif %} + ## Types and scopes Each budget has a type and a scope that define which paid use contributes to spending against the budget. diff --git a/content/billing/concepts/product-billing/github-advanced-security.md b/content/billing/concepts/product-billing/github-advanced-security.md index 78ed3b868f9e..b734d731a697 100644 --- a/content/billing/concepts/product-billing/github-advanced-security.md +++ b/content/billing/concepts/product-billing/github-advanced-security.md @@ -1,6 +1,6 @@ --- title: '{% data variables.product.prodname_GHAS %} license billing' -intro: 'Learn how usage of {% data variables.product.prodname_AS %} features is measured and how to pay for additional licenses.' +intro: 'Understand how {% data variables.product.prodname_AS %} licenses{% ifversion fpt or ghec %} and AI-credit usage{% endif %} are billed.' product: '{% data reusables.gated-features.ghas-billing %}' redirect_from: # Article on migrating to two separate SKUs @@ -60,6 +60,28 @@ For full details of available features, see [AUTOTITLE](/get-started/learning-ab You need to **pay** to use {% data variables.product.prodname_AS %} features in **private repositories** on {% data variables.product.prodname_dotcom_the_website %}, and in all repositories hosted by {% data variables.enterprise.data_residency_site %} and {% data variables.product.prodname_ghe_server %}. +{% ifversion fpt or ghec %} + +## How AI feature usage is billed + +Some {% data variables.product.prodname_AS %} features consume {% data variables.product.prodname_ai_credits_short %} in addition to the active-committer licenses described in this article. AI Scan and agentic autofix consume the **Code Security AI Credits** SKU. + +These features consume Code Security AI Credits even when the repository is public and does not require active-committer licenses. + +If the account being billed has included {% data variables.product.prodname_ai_credits_short %} from a {% data variables.product.prodname_copilot %} entitlement, eligible usage draws from that allowance first. After the included allowance is exhausted, further usage is metered. If the account doesn't have included {% data variables.product.prodname_ai_credits_short %}, all usage is metered. + +For an organization-owned repository, usage is attributed to the account that pays for the organization's usage. This is the standalone organization account or its enterprise account. The included {% data variables.product.prodname_ai_credits_short %} and budgets for that account apply, including for public repositories. + +Repositories in the personal namespace of a {% data variables.enterprise.prodname_managed_user %} are not treated as ordinary personal-account repositories for Code Security AI Credits. AI Scan and agentic autofix are not currently available for these repositories and do not consume Code Security AI Credits there. Purchasing {% data variables.product.prodname_code_security %}, having included {% data variables.product.prodname_ai_credits_short %}, or configuring a Code Security AI Credits budget does not make these features available. + +This limitation does not affect classic {% data variables.copilot.copilot_autofix_short %}, which is distinct from agentic autofix and does not consume {% data variables.product.prodname_ai_credits_short %}. + +Before security administrators enable AI Scan or agentic autofix broadly, billing administrators should review the account's included {% data variables.product.prodname_ai_credits_short %} and set budgets for metered usage. After the included allowance is exhausted, a hard budget can prevent further metered usage. For more information, see [AUTOTITLE](/billing/concepts/budgets-and-alerts). + +For information about features that consume Code Security AI Credits, see [AUTOTITLE](/code-security/concepts/code-scanning/ai-powered-security-detections) and [AUTOTITLE](/code-security/concepts/code-scanning/autofix-for-code-scanning). + +{% endif %} + ## Using more than your planned licenses Your account may have a limit on the number of licenses you can use. For example, volume billing specifies a set number of licenses. diff --git a/content/billing/how-tos/products/view-productlicense-use.md b/content/billing/how-tos/products/view-productlicense-use.md index 6f49e7d98bc3..794ebd328ebd 100644 --- a/content/billing/how-tos/products/view-productlicense-use.md +++ b/content/billing/how-tos/products/view-productlicense-use.md @@ -94,14 +94,20 @@ The metered usage chart and usage break down table both show your current choice > [!NOTE] > Enterprise owners and billing managers can filter AI usage data by user. Organization owners cannot view user-level data directly—to see per-user consumption, download a usage report instead. See [Downloading usage reports](#downloading-usage-reports). -If you use {% data variables.product.prodname_copilot_short %}, an additional **AI usage** view is listed under **Usage**. You can use this view to dig deeper into how your enterprise is consuming {% data variables.product.prodname_ai_credits_short %} and where additional spend is occurring. For example: +If your account uses {% data variables.product.prodname_ai_credits_short %}, an additional **AI usage** view is listed under **Usage**. You can use this view to understand included and metered usage across products, including {% data variables.product.prodname_copilot_short %} and {% data variables.product.prodname_AS %}. + +To review combined AI Scan and agentic autofix usage, open the **AI usage** view, under "Group by," select **Products**, then review **{% data variables.product.prodname_AS %}**. These features share the Code Security AI Credits SKU, so their usage is reported together within the product total, not as separate totals for each feature. + +You can use the view to answer questions such as: * What's our total {% data variables.product.prodname_ai_credits_short %} consumption across all users? * Which users are the heaviest consumers, and are they within their budget? * Which models are driving the most spend? * How widespread is adoption in the organizations where we rolled out {% data variables.product.prodname_copilot_short %}? -To understand how {% data variables.product.prodname_ai_credits_short %} are pooled across your enterprise and what the usage data represents, see [AUTOTITLE](/copilot/concepts/billing-and-usage/organizations-and-enterprises/billing). +For information about {% data variables.product.prodname_copilot_short %} allowances and how {% data variables.product.prodname_ai_credits_short %} are pooled across your enterprise, see [AUTOTITLE](/copilot/concepts/billing-and-usage/organizations-and-enterprises/billing). + +For information about {% data variables.product.prodname_AS %} AI-credit billing, see [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed). {% endif %} diff --git a/content/billing/how-tos/set-up-budgets.md b/content/billing/how-tos/set-up-budgets.md index b578d106d318..67852e1a5f36 100644 --- a/content/billing/how-tos/set-up-budgets.md +++ b/content/billing/how-tos/set-up-budgets.md @@ -41,10 +41,27 @@ We recommend that you avoid creating overlapping budgets for the use of a produc For {% data variables.product.prodname_copilot_short %} under usage-based billing, user-level budgets add another layer to consider. A user-level budget can block a user even when the enterprise or cost center budget still has capacity. It is the first check in the evaluation sequence. When planning your budget configuration, account for how user-level budgets, cost center budgets, and the enterprise spending limit interact. See [AUTOTITLE](/copilot/concepts/billing-and-usage/organizations-and-enterprises/budgets#how-billing-flows-through-budgets). +{% ifversion fpt or ghec %} + +For {% data variables.product.prodname_AS %} AI features, choose the budget that matches the spending you want to control: + +* Use a **Bundled {% data variables.product.prodname_ai_credits_short %} budget** to set one spending limit across all features that use {% data variables.product.prodname_ai_credits_short %}. If **Stop usage when budget limit is reached** is enabled, usage by another product can exhaust this budget and stop AI Scan and agentic autofix. +* Use a **Code Security AI Credits** SKU-level budget to set an independent spending limit for AI Scan and agentic autofix. + +Usually, choose one of these budgets as your primary control. If both hard budgets apply, exhausting either budget blocks further Code Security AI Credits usage. + +When no Code Security AI Credits quota remains because of a hard budget, AI Scan fails and agentic autofix cannot start a session. Usage resumes when the limiting budget is increased or a new billing cycle begins. + +For more information about AI Scan, see [AUTOTITLE](/code-security/concepts/code-scanning/ai-powered-security-detections). + +{% endif %} + ## Managing budgets for your personal account You can set budgets and receive alerts when your usage of a product reaches 75%, 90%, or 100% of a defined budget. Budgets can be set for a specific repository or for your whole account. +The personal-account guidance for Code Security AI Credits does not apply to repositories in the personal namespace of a {% data variables.enterprise.prodname_managed_user %}. For details about feature availability for these repositories, see [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed). + {% data reusables.user-settings.access_billing_settings_url %} 1. Click **Budgets and alerts**. @@ -53,7 +70,8 @@ You can set budgets and receive alerts when your usage of a product reaches 75%, * To limit spending at a Product-level, in "Product-level budget" choose a product from the dropdown, for example: {% data variables.product.prodname_codespaces %}. * To limit spending at a SKU-level, in "SKU-level budget" choose a Product and then a SKU, for example: {% data variables.product.prodname_codespaces %} and {% data variables.product.prodname_codespaces %} storage. - * To limit spending on {% data variables.product.prodname_ai_credits_short %} across all features, enable "Bundled {% data variables.product.prodname_ai_credits_short %} budget" or to limit spending for a specific feature, set a SKU-level budget for the feature (such as {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, {% data variables.product.prodname_spark_short %} {% data variables.product.prodname_ai_credits_short %}, or {% data variables.copilot.copilot_cloud_agent %}). + * To limit spending across all AI-credit SKUs, select **Bundled {% data variables.product.prodname_ai_credits_short %} budget**. + * To limit spending for one SKU, select **SKU-level budget**. Examples include {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, {% data variables.product.prodname_spark_short %} {% data variables.product.prodname_ai_credits_short %}, {% data variables.copilot.copilot_cloud_agent %}, and Code Security AI Credits. 1. Under "Budget scope", set the scope of spending for this budget. 1. Under "Budget", set a budget amount. @@ -108,7 +126,9 @@ As the owner of an enterprise or organization account, or as a billing manager, * **Product-level budget**: Limits spending on a single product (for example, {% data variables.product.prodname_codespaces %}). * **SKU-level budget**: Limits spending on a specific SKU within a product (for example, {% data variables.product.prodname_GH_secret_protection %} within {% data variables.product.prodname_GHAS %}). - * **Bundled {% data variables.product.prodname_ai_credits_short %} budget**: Limits spending across all SKUs that consume {% data variables.product.prodname_ai_credits_short %}, including {% data variables.product.prodname_copilot_short %}, {% data variables.copilot.copilot_cloud_agent %}, and {% data variables.product.prodname_spark_short %}. Available where overage spend is enabled. + * **Bundled {% data variables.product.prodname_ai_credits_short %} budget**: Limits spending across all SKUs that consume {% data variables.product.prodname_ai_credits_short %}, including {% data variables.product.prodname_copilot_short %}, {% data variables.copilot.copilot_cloud_agent %}, {% data variables.product.prodname_spark_short %}, and {% data variables.product.prodname_AS %} AI features. Available where overage spend is enabled. + + To limit spending on AI Scan and agentic autofix, select **SKU-level budget**. In the product dropdown, select **{% data variables.product.prodname_AS %}**, then in the SKU dropdown, select **Code Security AI Credits**. 1. Under "Budget scope", set the scope of spending for this budget. @@ -130,7 +150,7 @@ As the owner of an enterprise or organization account, or as a billing manager, 1. Under "Budget", set a budget amount or license count. - To stop any usage and further spending once the budget limit is reached, select **Stop usage when budget limit is reached** or **Limit usage when budget limit is reached**, if available. **This option is available for metered products and for {% data variables.product.prodname_AS %} SKU-level budgets**. For {% data variables.product.prodname_AS %}, this option prevents new enablement on additional repositories. It doesn't disable {% data variables.product.prodname_AS %} on repositories where it is already active. See [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#hard-budgets-for-github-advanced-security-skus). + To stop any usage and further spending once the budget limit is reached, select **Stop usage when budget limit is reached** or **Limit usage when budget limit is reached**, if available. **This option is available for metered products and for {% data variables.product.prodname_AS %} SKU-level budgets**. For active-committer license budgets for {% data variables.product.prodname_code_security %} and {% data variables.product.prodname_secret_protection %}, this option prevents new enablement on additional repositories. It doesn't disable these products on repositories where they are already active. See [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#hard-budgets-for-github-advanced-security-skus). >[!IMPORTANT] If you do not select one of these options, you will be notified by email if you exceed your budget, but usage **will not** be stopped. diff --git a/content/code-security/concepts/code-quality/code-quality.md b/content/code-security/concepts/code-quality/code-quality.md index 91261023bc9b..ffa1587c2d97 100644 --- a/content/code-security/concepts/code-quality/code-quality.md +++ b/content/code-security/concepts/code-quality/code-quality.md @@ -24,7 +24,7 @@ category: * **On the default branch**, rules-based scans identify existing quality debt across your codebase, with autofixes you can apply directly or assign to {% data variables.copilot.copilot_cloud_agent %} to resolve on your behalf. AI-powered analysis also runs on recently changed files, flagging issues that fall outside existing rule sets, including languages not yet covered by {% data variables.product.prodname_codeql %} queries. > [!NOTE] -> On pull requests, {% data variables.product.prodname_code_quality_short %} posts rules-based {% data variables.product.prodname_codeql %} findings only. If you also want AI-powered reviews of your pull requests, you can enable {% data variables.copilot.copilot_code-review %} separately. See [AUTOTITLE](/copilot/concepts/agents/code-review). +> On pull requests, {% data variables.product.prodname_code_quality_short %} posts rules-based {% data variables.product.prodname_codeql %} findings only. If you also want AI-powered reviews of your pull requests, you can enable {% data variables.copilot.copilot_code-review %} separately. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review). ## Use cases 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 c8830f71f669..41b871940685 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 @@ -10,34 +10,62 @@ category: - Find and fix code vulnerabilities --- -> [!NOTE] -> AI Scan is currently in {% data variables.release-phases.public_preview %} and subject to change. +AI Scan for pull requests produces additional security findings with an AI-based scanning engine that runs on pull requests and complements {% data variables.product.prodname_codeql %}. Unlike {% data variables.product.prodname_codeql %} alerts, AI Scan findings are only available on pull requests and do not appear as backlog alerts in the repository's security view. -AI Scan produces additional security findings with an AI-based scanning engine that runs on pull requests and complements {% data variables.product.prodname_codeql %}. Unlike {% data variables.product.prodname_codeql %} alerts, AI Scan findings are only available on pull requests and do not appear as backlog alerts in the repository's security view. +AI Scan expands {% data variables.product.prodname_code_scanning %} coverage without requiring a separate scanning tool or build configuration. -While {% data variables.product.prodname_codeql %} provides high-precision static analysis for a specific set of supported languages and queries, many repositories use languages and frameworks that {% data variables.product.prodname_codeql %} does not cover. AI Scan expands {% data variables.product.prodname_code_scanning %} coverage into these areas, helping you find vulnerabilities without adding new tools or configuration. +## Availability -During the {% data variables.release-phases.public_preview %}, AI Scan requires a {% data variables.product.prodname_GHAS %} license and a {% data variables.product.prodname_copilot %} license. +Availability depends on who owns the repository and its visibility. -Usage consumes {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing-and-usage/organizations-and-enterprises/billing). +| Repository owner | Visibility | Availability and requirement | +| --- | --- | --- | +| Organization | Public | Available without an active-committer license | +| Organization | Private or internal | Available with {% data variables.product.prodname_GH_code_security %} or {% data variables.product.prodname_GHAS %} | +| Personal account | Public | Available | +| Personal account | Private | Not available | + +AI Scan for pull requests is not available for repositories in a {% data variables.enterprise.prodname_managed_user %}'s personal namespace, even if {% data variables.product.prodname_code_scanning %} is enabled for the repository. + +You do not need a {% data variables.product.prodname_copilot %} license to use AI Scan. + +## Billing + +AI Scan usage is separate from active-committer licensing and is reported under the **Code Security AI Credits** SKU. Usage begins only when a qualifying pull request is scanned. + +For organization-owned repositories, usage is billed to the account responsible for the organization's billing. + +For public repositories owned by a personal account, usage is billed to that personal account unless the repository owner has a {% data variables.product.prodname_copilot %} license provided by an organization or enterprise. In that case, usage is billed to the organization or enterprise that provides the license. + +If the billing account receives included {% data variables.product.prodname_ai_credits_short %} through a {% data variables.product.prodname_copilot %} entitlement, AI Scan uses those credits first. After the included credits are exhausted, or if the account has no included credits, usage is metered and governed by the applicable budgets. If a hard budget leaves no Code Security AI Credits available, AI Scan cannot produce findings. Scanning resumes when an administrator increases the limiting budget or a new billing cycle begins. + +For details about the billing model, see [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed). ## How AI Scan works -AI Scan runs automatically when {% data variables.product.prodname_code_scanning %} is enabled for a repository, the repository's effective AI Scan setting is enabled, and an eligible pull request contains qualifying changes in a supported language or framework that {% data variables.product.prodname_codeql %} does not cover. These conditions also determine when AI Scan usage begins. The scan is triggered on pull request creation and after each new commit, the same as {% data variables.product.prodname_codeql %}. +AI Scan runs automatically when all the following conditions are met: -AI Scan does not require {% data variables.product.prodname_codeql %} default setup and does not depend on the state of {% data variables.product.prodname_codeql %} analysis. If {% data variables.product.prodname_codeql %} analysis fails or is in a waiting state, AI Scan will still run. +* {% data variables.product.prodname_code_scanning_caps %} is enabled for the repository. +* The repository's AI Scan on pull requests setting is enabled. +* A pull request that is not from a fork or created by {% data variables.product.prodname_dependabot %} contains changes in a supported language or framework that {% data variables.product.prodname_codeql %} does not cover. -AI Scan findings are advisory and do not block pull request merges. They provide signals about where code security can be improved without interrupting your workflow. +Scans run when a pull request is created and after each new commit, as they do for {% data variables.product.prodname_codeql %}. -The AI scanning engine works directly with the code in the pull request and does not require a build system. It uses tools such as code search to gather additional context from the repository when deciding whether to flag an issue. It uses its own specialized prompts and does not use custom instruction files such as `/.github/copilot-instructions.md` or `/CLAUDE.md`. +AI Scan does not require {% data variables.product.prodname_codeql %} default setup and does not depend on the state of {% data variables.product.prodname_codeql %} analysis. If {% data variables.product.prodname_codeql %} analysis fails or is in a waiting state, AI Scan will still run. Results are posted to the pull request as they are found. If the {% data variables.product.prodname_codeql %} scan takes longer to complete, you may see AI Scan findings before {% data variables.product.prodname_codeql %} results appear, or vice versa. +Findings are advisory. They do not fail the **{% data variables.product.prodname_code_scanning_caps %}** check and cannot block pull request merges through ruleset requirements. They provide signals about where code security can be improved without interrupting your workflow. + +The scanning engine analyzes pull request code without requiring a build system and may use code search to gather more context from the repository before flagging an issue. It uses specialized prompts, not custom instruction files such as `/.github/copilot-instructions.md` or `/CLAUDE.md`. + ## How AI Scan findings appear on pull requests AI Scan findings appear alongside {% data variables.product.prodname_codeql %} alerts on the **Conversation** and **Files changed** tabs of a pull request. Each finding is labeled with an "AI" indicator so you can distinguish it from {% data variables.product.prodname_codeql %} alerts. -Each finding includes a description of the security issue and an explanation of the risk. Most findings also include a suggested remediation, but not every finding has one. Where a suggested remediation is available, {% data variables.copilot.copilot_autofix_short %} is included and provides a recommended code change to fix the issue, the same way it does for {% data variables.product.prodname_codeql %} alerts. Findings also include a thumbs up/down feedback mechanism that helps improve detection quality over time. +Each finding describes the security issue and explains the risk. Most findings also include a suggested remediation. When available, {% data variables.copilot.copilot_autofix_short %} recommends a code change, as it does for {% data variables.product.prodname_codeql %} alerts. + +You can use the thumbs up or thumbs down control to provide feedback and help improve detection quality. ## Limitations @@ -49,13 +77,13 @@ Each finding includes a description of the security issue and an explanation of ## Supported languages -AI Scan is designed to cover languages and frameworks that are not currently supported by {% data variables.product.prodname_codeql %}. This includes, but is not limited to, languages such as PHP, Shell/Bash, Terraform configuration (HCL), and Dockerfiles, as well as framework coverage gaps such as JSP for Java and Blazor for C#. +AI Scan supports selected languages and frameworks that {% data variables.product.prodname_codeql %} does not currently cover. Examples include PHP, Shell/Bash, Terraform configuration (HCL), Dockerfiles, JSP for Java, and Blazor for C#. -For a full list of languages supported by {% data variables.product.prodname_codeql %}, see [AUTOTITLE](/code-security/concepts/code-scanning/codeql/codeql-code-scanning). +To check whether {% data variables.product.prodname_codeql %} supports a language, see [AUTOTITLE](/code-security/concepts/code-scanning/codeql/codeql-code-scanning). ## Detection categories -AI Scan currently covers the following categories. These categories describe how findings are classified. The scanning engine may evolve over time as models improve. +AI Scan currently classifies findings into the following categories. Coverage may change as the feature evolves. * **String injection** — Unsafe string-built SQL, HTML, shell, JSON, or YAML with missing or incorrect escaping or sanitization. * **Weak cryptography** — Weak algorithms, small keys, insecure randomness, missing encryption, or weak password hashing. @@ -69,13 +97,16 @@ AI Scan currently covers the following categories. These categories describe how ## Enabling AI Scan -AI Scan is not allowed at the enterprise level by default and disabled at the organization and repository levels. Enterprise owners must allow AI Scan before organization administrators can enable it. Enabling AI Scan for an organization applies it to eligible repositories where {% data variables.product.prodname_code_scanning %} is enabled. Repository administrators can opt out for individual repositories. For an eligible public repository owned by a personal account, a repository administrator must enable AI Scan directly for the repository. +Before enabling AI Scan on pull requests for an organization, confirm repository eligibility, review the billing account's included {% data variables.product.prodname_ai_credits_short %}, and configure budgets for metered usage. + +Enabling the organization setting enables AI Scan immediately for all eligible repositories where {% data variables.product.prodname_code_scanning %} is enabled. Repository administrators can then opt out, but qualifying pull requests can consume Code Security AI Credits before they do. You do not need to select a model to enable AI Scan. -* **Enterprise**: The **AI Scan** policy under "Code Security" controls whether organizations can enable the feature. See [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-to-manage-ai-scan-in-your-enterprises-repositories). -* **Organization**: The **AI Scan** setting under "Code scanning" enables AI Scan for eligible repositories in the organization where {% data variables.product.prodname_code_scanning %} is enabled. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#enabling-ai-scan). -* **Repository**: For an organization-owned repository, the **AI Scan for pull requests** toggle under "Code scanning" lets repository administrators opt out when AI Scan is enabled for the organization. For an eligible public repository owned by a personal account, the toggle enables or disables AI Scan directly. +* **Enterprise**: Enterprise owners can allow or prevent organizations from enabling AI Scan. The policy is set to "Not allowed" by default. Allowing AI Scan does not enable it automatically. See [AUTOTITLE](/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-to-manage-ai-scan-in-your-enterprises-repositories). +* **Organization**: Organization owners and security managers can enable AI Scan for pull requests for eligible repositories. Repositories inherit the organization setting. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#enabling-ai-scan). +* **Organization-owned repository**: People with admin access to the repository can opt out when the organization has enabled AI Scan. They cannot opt in when the organization setting is disabled. +* **Public repository owned by a personal account**: People with admin access to the repository enable or disable AI Scan directly by using the **AI Scan for pull requests** toggle under "{% data variables.product.prodname_code_scanning_caps %}". 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). diff --git a/content/code-security/concepts/code-scanning/autofix-for-code-scanning.md b/content/code-security/concepts/code-scanning/autofix-for-code-scanning.md index 86f9546675f2..e868ef000999 100644 --- a/content/code-security/concepts/code-scanning/autofix-for-code-scanning.md +++ b/content/code-security/concepts/code-scanning/autofix-for-code-scanning.md @@ -2,7 +2,7 @@ title: About autofix for code scanning shortTitle: Autofix allowTitleToDifferFromFilename: true -intro: 'Autofix automatically generates fixes for {% data variables.product.prodname_code_scanning %} alerts, helping you remediate existing vulnerabilities.' +intro: 'Autofix generates potential fixes for {% data variables.product.prodname_code_scanning %} alerts, helping you remediate existing vulnerabilities.' product: '{% data reusables.rai.code-scanning.gated-feature-autofix %}' versions: feature: code-scanning-autofix @@ -13,34 +13,50 @@ redirect_from: - /code-security/concepts/code-scanning/copilot-autofix-for-code-scanning --- -Autofix provides you with targeted recommendations to help you fix {% data variables.product.prodname_code_scanning %} alerts so you can avoid introducing new security vulnerabilities. The potential fixes are generated automatically by large language models (LLMs) using data from the codebase and from {% data variables.product.prodname_code_scanning %} analysis. +{% data variables.product.prodname_dotcom %} provides two separate autofix experiences for {% data variables.product.prodname_code_scanning %} alerts: {% data variables.copilot.agentic_autofix %} and {% data variables.copilot.copilot_autofix_short %}. Both use large language models (LLMs), data from the codebase, and {% data variables.product.prodname_code_scanning %} analysis to generate potential code changes and explanations. However, they have different workflows, results, access requirements, and usage. -## How autofix works +## What are the two types of autofix? -Autofix translates the description and location of a {% data variables.product.prodname_code_scanning %} alert into code changes that may fix it. It interfaces with the large language model {% data variables.copilot.copilot_gpt_53_codex %} from OpenAI, which has sufficient generative capabilities to produce both suggested fixes in code and explanatory text for those fixes. +{% data variables.copilot.agentic_autofix_caps %} and {% data variables.copilot.copilot_autofix_short %} solve different problems: -There are two ways to get a fix for an alert: agentic autofix and {% data variables.copilot.copilot_autofix_short %}. If {% data variables.copilot.copilot_cloud_agent %} is available in a repository, assigning an alert uses agentic autofix instead of {% data variables.copilot.copilot_autofix_short %}. +* Use {% data variables.copilot.agentic_autofix %} when you want {% data variables.product.prodname_copilot_short %} to investigate and fix one or more alerts for you, end to end. +* Use {% data variables.copilot.copilot_autofix_short %} when you want a single suggested code change for one alert that you review and apply yourself. -## Agentic autofix +With {% data variables.copilot.agentic_autofix %}, you assign one or more alerts to {% data variables.product.prodname_copilot_short %}. It explores the codebase, generates a fix, and validates the changes. Then it opens a draft pull request containing the proposed fix. -> [!NOTE] -> This feature is currently in public preview and is subject to change. {% data reusables.copilot.preview-features-policy %} +With {% data variables.copilot.copilot_autofix_short %}, {% data variables.product.prodname_dotcom %} generates a single suggested code change for one supported alert. You can use this suggestion to create a pull request yourself. -Assign a {% data variables.product.prodname_code_scanning %} alert to {% data variables.product.prodname_copilot_short %} to have it resolve the alert for you. Assigning an alert starts an agent session: {% data variables.copilot.copilot_cloud_agent %} calls tools to explore your codebase beyond the affected file, generates a fix, validates it (for example, by re-running {% data variables.product.prodname_codeql %}), and iterates until it opens a pull request with the changes. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#fixing-alerts-with-copilot). +## Where is autofix available? + +Access to the two features works differently. For {% data variables.copilot.agentic_autofix %} on an organization-owned repository, an organization owner or security manager must enable it. If the organization belongs to an enterprise, an enterprise owner or security manager must also allow it. Organization enablement turns it on for eligible repositories by default, but a repository administrator can opt out, or re-enable it when higher-level settings permit. + +For an eligible public repository owned by a personal account, a repository administrator can enable {% data variables.copilot.agentic_autofix %} directly. You don't need a {% data variables.product.prodname_copilot_short %} license to use {% data variables.copilot.agentic_autofix %}, but it isn't available for repositories owned by {% data variables.product.prodname_emus %}. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning) for details. + +{% data variables.copilot.copilot_autofix_short %}, by contrast, is enabled by default for any repository that uses {% data variables.product.prodname_codeql %}, unless an administrator disables it. It's available to all public repositories on {% data variables.product.prodname_dotcom_the_website %}. It's also available to internal or private repositories owned by organizations and enterprises that have a license for {% data variables.product.prodname_GH_code_security %}. Unlike {% data variables.copilot.agentic_autofix %}, {% data variables.copilot.copilot_autofix_short %} is available for repositories owned by {% data variables.product.prodname_emus %}. + +## Choosing an autofix type + +Usage costs also factor into which feature to use. Each {% data variables.copilot.agentic_autofix %} agent session consumes {% data variables.product.prodname_ai_credits_short %} and {% data variables.product.prodname_actions %} minutes, while {% data variables.copilot.copilot_autofix_short %} suggested fixes don't consume {% data variables.product.prodname_ai_credits_short %}. + +If {% data variables.copilot.agentic_autofix %} isn't enabled for a repository, you can still use {% data variables.copilot.copilot_autofix_short %} to generate suggested fixes for supported alerts. + +## Using {% data variables.copilot.agentic_autofix %} + +Use {% data variables.copilot.agentic_autofix %} when you want {% data variables.product.prodname_copilot_short %} to investigate one or more alerts and prepare a draft pull request. You can assign {% data variables.copilot.agentic_autofix %} alerts from the repository backlog or a security campaign. Each assignment starts an agent session. The session explores the codebase beyond the affected file, then generates and validates a fix. It opens a pull request with the changes. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#fixing-alerts-with-copilot). Keep the following in mind: -* Agentic autofix requires {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_autofix_short %} to be available in the repository. If {% data variables.copilot.copilot_cloud_agent %} isn't available, assigning an alert falls back to {% data variables.copilot.copilot_autofix_short %} instead. -* Each agentic autofix session is billed as a {% data variables.copilot.copilot_cloud_agent %} session and consumes {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing-and-usage). -* {% data variables.product.prodname_copilot_short %} follows any custom instructions configured for the repository or organization when it generates a fix. -* Agentic autofix works on a best-effort basis. {% data variables.product.prodname_copilot_short %} validates fixes by re-running {% data variables.product.prodname_codeql %} using the code-scanning query suite, so it can't confirm that a fix resolves alerts generated by custom queries or the security-extended query suite. Fix quality for alerts from third-party tools is also not guaranteed. +* For details on enabling {% data variables.copilot.agentic_autofix %} at the organization, enterprise, or repository level, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning). +* {% data variables.copilot.agentic_autofix_caps %} consumes Code Security AI Credits and {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed). +* {% data variables.product.prodname_copilot_short %} uses the custom instructions that apply when it generates a fix. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions). +* {% data variables.copilot.agentic_autofix_caps %} works on a best-effort basis. {% data variables.product.prodname_copilot_short %} validates fixes by re-running {% data variables.product.prodname_codeql %} with the {% data variables.product.prodname_code_scanning %} query suite. It can't confirm fixes for alerts from custom {% data variables.product.prodname_codeql %} queries, the `security-extended` {% data variables.product.prodname_codeql %} query suite, or {% data variables.product.prodname_code_scanning %} alerts from third-party tools. -## Getting a suggested fix with {% data variables.copilot.copilot_autofix_short %} +Always review and test the generated changes before you merge the pull request. -{% data variables.copilot.copilot_autofix_short %} generates a single suggested fix for an alert, which you review and apply yourself. +## Using {% data variables.copilot.copilot_autofix_short %} -You do not need a subscription to {% data variables.product.prodname_copilot %} to use {% data variables.copilot.copilot_autofix %}, and it does not consume {% data variables.product.prodname_ai_credits_short %}. {% data variables.copilot.copilot_autofix_short %} is available to all public repositories on {% data variables.product.prodname_dotcom_the_website %}, as well as internal or private repositories owned by organizations and enterprises that have a license for {% data variables.product.prodname_GH_code_security %}. +{% data variables.copilot.copilot_autofix_short %} works the same way whether a repository uses default or advanced setup for {% data variables.product.prodname_code_scanning %}. There is no separate step to enable it: enabling {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %} is sufficient. See [AUTOTITLE](/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning). -{% data variables.copilot.copilot_autofix_short %} is allowed by default and enabled for every repository that uses {% data variables.product.prodname_codeql %}, regardless of whether it uses default or advanced setup for {% data variables.product.prodname_code_scanning %}. There is no separate step to enable {% data variables.copilot.copilot_autofix_short %}: enabling {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %} is sufficient. See [AUTOTITLE](/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning). +{% data variables.copilot.copilot_autofix_short %} is also an integral part of {% data variables.product.prodname_code_quality %}, and continues to run on code quality results even when it's disabled for {% data variables.product.prodname_code_scanning %} results. -Administrators at the enterprise, organization, and repository levels can choose to disable {% data variables.copilot.copilot_autofix_short %}. If {% data variables.copilot.copilot_autofix_short %} has been disabled at your level, you can re-enable it by following the same steps used to disable it and selecting the option to allow {% data variables.copilot.copilot_autofix_short %}. To learn how to manage {% data variables.copilot.copilot_autofix_short %} at each level, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning). +Administrators at the enterprise, organization, and repository levels can disable {% data variables.copilot.copilot_autofix_short %}. Settings cascade downward: if an enterprise owner disallows the feature, no organization or repository in that enterprise can enable it, and if an organization owner disables it, no repository in that organization can re-enable it. To restore the feature at a given level, an administrator at that level, or a level above, must reverse the setting. To learn how to manage {% data variables.copilot.copilot_autofix_short %} at each level, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning). diff --git a/content/code-security/concepts/secret-security/secret-scanning-for-partners.md b/content/code-security/concepts/secret-security/secret-scanning-for-partners.md index 9872b943df6d..c3489cc9656d 100644 --- a/content/code-security/concepts/secret-security/secret-scanning-for-partners.md +++ b/content/code-security/concepts/secret-security/secret-scanning-for-partners.md @@ -16,7 +16,7 @@ category: ## About {% data variables.secret-scanning.partner_alerts %} -{% data variables.product.github %} scans public repositories and public npm packages for secrets issued by specific service providers who joined our partnership program, and alerts the relevant service provider whenever a secret is detected in a supported location. The service provider validates the string and then decides whether they should revoke the secret, issue a new secret, or contact you directly. Their action will depend on the associated risks to you or them. {% data reusables.secret-scanning.partner-program-link %} +{% data variables.product.github %} scans public repositories and public npm packages for secrets issued by specific service providers who joined our partnership program, and alerts the relevant service provider whenever a secret is detected in a commit. The service provider validates the string and then decides whether they should revoke the secret, issue a new secret, or contact you directly. Their action will depend on the associated risks to you or them. {% data reusables.secret-scanning.partner-program-link %} > [!NOTE]You cannot change the configuration of {% data variables.product.prodname_secret_scanning %} for partner patterns on public repositories. diff --git a/content/code-security/concepts/secret-security/secret-scanning.md b/content/code-security/concepts/secret-security/secret-scanning.md index 48cf1281c3db..f76e1faf7f63 100644 --- a/content/code-security/concepts/secret-security/secret-scanning.md +++ b/content/code-security/concepts/secret-security/secret-scanning.md @@ -35,25 +35,6 @@ When credentials like API keys and passwords are committed to repositories as ha {% data reusables.secret-scanning.what-is-scanned %} -{% ifversion secret-scanning-actions-logs %} - -### Secrets detected in {% data variables.product.prodname_actions %} workflow logs - -> [!NOTE] -> Detection of secrets in {% data variables.product.prodname_actions %} workflow logs is in {% data variables.release-phases.public_preview %} and is subject to change. - -{% data variables.product.prodname_actions %} workflow log scanning is disabled by default. Enterprise owners can enable it for all repositories in their enterprise. For more information, see [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-for-secret-scanning-in-github-actions-workflow-logs). - -Once enabled, {% data variables.product.github %} scans the logs of each new workflow run after the run completes, for repositories where {% data variables.product.prodname_secret_scanning %} is enabled. Logs from past workflow runs aren't scanned. - -For {% data variables.product.prodname_actions %} workflow logs, {% data variables.product.prodname_secret_scanning %} only detects provider patterns. It doesn't detect generic patterns, custom patterns, {% data variables.secret-scanning.ai-detected-secrets %}, or values that {% data variables.product.prodname_actions %} masks in the log. - -Alerts for secrets in {% data variables.product.prodname_actions %} workflow logs don't generate notifications during the {% data variables.release-phases.public_preview %}. To review these alerts, check the repository's {% data variables.product.prodname_secret_scanning %} alerts. - -A single alert may reference multiple locations if the same secret appeared across several workflow runs or jobs. For each location, the alert links to the workflow file where the secret originated and the log line where the secret was printed. The alert does not include an inline preview of the log content. - -{% endif %} - ### {% data variables.product.prodname_secret_scanning_caps %} alerts and remediation When {% data variables.product.prodname_secret_scanning %} detects a credential leak, {% data variables.product.github %} generates an alert on your repository's **{% data variables.product.prodname_security_and_quality_tab %}** tab with details about the exposed credential. diff --git a/content/code-security/concepts/security-at-scale/about-security-campaigns.md b/content/code-security/concepts/security-at-scale/about-security-campaigns.md index 82b83fb9d960..1b5295812303 100644 --- a/content/code-security/concepts/security-at-scale/about-security-campaigns.md +++ b/content/code-security/concepts/security-at-scale/about-security-campaigns.md @@ -36,7 +36,7 @@ A security campaign has many benefits over other ways of encouraging developers * Each campaign has a named point of contact for questions, reviews, and collaboration. {% ifversion security-campaigns-autofix %} * For {% data variables.product.prodname_code_scanning %} alerts, {% data variables.copilot.copilot_autofix %} is automatically triggered to suggest a resolution. {% endif %} {%- ifversion code-secret-alert-assignees %} -* For both {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %}, you can assign alerts in a campaign to users with write access{% ifversion copilot %} or to {% data variables.copilot.copilot_cloud_agent %} to automatically generate pull requests with fixes{% endif %}. +* You can assign both {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %} alerts in a campaign to users with write access.{% ifversion copilot %} If {% data variables.copilot.agentic_autofix %} is enabled, you can also assign {% data variables.product.prodname_code_scanning %} alerts to {% data variables.product.prodname_copilot_short %} to automatically generate a pull request with fixes.{% endif %} {%- endif %} You can use one of the templates to select a group of closely related alerts for a campaign. This allows developers to build on the knowledge gained by resolving one alert and use it to fix several more, providing them with an incentive to fix multiple alerts. @@ -69,7 +69,7 @@ The creation workflow is the same for all campaigns, but you will notice a few d {% ifversion code-secret-alert-assignees %} -## About assigning alerts{% ifversion security-campaigns-assign-to-cca %} to users and {% data variables.copilot.copilot_cloud_agent %}{% endif %} +## About assigning alerts {% ifversion code-secret-alert-assignees-ga %}{% elsif ghes = 3.20 %} @@ -95,7 +95,7 @@ For {% data variables.product.prodname_code_scanning %}, you can also perform so {% ifversion security-campaigns-assign-to-cca %} -If an autofix has been generated for alerts in a security campaign, you can select those alerts and assign them to {% data variables.copilot.copilot_cloud_agent %}. {% data variables.product.prodname_copilot_short %} will create a pull request and add you as a requested reviewer. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot-cloud-agent). +If {% data variables.copilot.agentic_autofix %} is enabled for a repository, you can select up to 25 code scanning alerts in a security campaign and assign them to {% data variables.product.prodname_copilot_short %}. One assignment starts one agent session and creates one pull request for the selected alerts. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot). {% endif %} diff --git a/content/code-security/concepts/supply-chain-security/open-source-license-compliance.md b/content/code-security/concepts/supply-chain-security/open-source-license-compliance.md index 97c747dbe6f1..45f27ac2b8b4 100644 --- a/content/code-security/concepts/supply-chain-security/open-source-license-compliance.md +++ b/content/code-security/concepts/supply-chain-security/open-source-license-compliance.md @@ -10,13 +10,15 @@ category: - Secure your dependencies --- -{% data reusables.code-security.open-source-license-compliance-public-preview-note %} - ## Overview Open source license compliance helps you **track dependency licenses** and **enforce policy** for the open source software in your supply chain. You can use license compliance to reduce legal and operational risk, catching nonconforming dependencies **before** changes are merged. -## How license policy works +## Who can use license compliance + +License compliance is available for GitHub Enterprise Cloud customers, including data resident GHEC. To enforce license compliance policy on a repository, the repository must have a {% data variables.product.prodname_GH_code_security %} license. + +## How license compliance policy works You can define an enterprise policy that controls which licenses your dependencies are allowed to use. diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning.md deleted file mode 100644 index ca913a0ff16e..000000000000 --- a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Disabling autofix for code scanning security alerts -shortTitle: Disable autofix -allowTitleToDifferFromFilename: true -intro: 'You can disable {% data variables.copilot.copilot_autofix_short %}, which also blocks agentic autofix, for an enterprise, organization, or repository.' -product: '{% data reusables.rai.code-scanning.gated-feature-autofix %}' -versions: - feature: code-scanning-autofix -contentType: how-tos -redirect_from: - - /code-security/code-scanning/managing-code-scanning-alerts/disabling-autofix-for-code-scanning -category: - - Find and fix code vulnerabilities ---- - -## Disabling agentic autofix - -Disabling agentic autofix can be done in two ways: - -1. By disabling {% data variables.copilot.copilot_autofix_short %} since agentic autofix relies on the same underlying setting. For instructions, see the sections below. -1. By opting repositories out of {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access#opting-repositories-out-of-copilot-cloud-agent). - -For more information about agentic autofix, see [AUTOTITLE](/code-security/concepts/code-scanning/autofix-for-code-scanning#agentic-autofix). - -## Disabling {% data variables.copilot.copilot_autofix_short %} - -You can disable {% data variables.copilot.copilot_autofix_short %} at the enterprise, organization, or repository level. - -Disabling {% data variables.copilot.copilot_autofix_short %} at any level will close all open {% data variables.copilot.copilot_autofix_short %} suggestions that were added as comments on {% data variables.product.prodname_code_scanning %} alerts in pull requests. If {% data variables.copilot.copilot_autofix_short %} is later re-enabled, suggestions will only be generated for pull requests opened after that point, or after re-running {% data variables.product.prodname_code_scanning %} security analysis on existing pull requests. - -> [!NOTE] -> {% data variables.copilot.copilot_autofix_short %} is an integral part of {% data variables.product.prodname_code_quality %} and will continue to run on code quality results even when it is disabled for code security results. - -For more information about {% data variables.copilot.copilot_autofix_short %}, see [AUTOTITLE](/code-security/concepts/code-scanning/autofix-for-code-scanning). - -### Blocking use of {% data variables.copilot.copilot_autofix_short %} for an enterprise - -Enterprise administrators can disallow {% data variables.copilot.copilot_autofix_short %} for security results in their enterprise. If you disallow {% data variables.copilot.copilot_autofix_short %} for an enterprise, {% data variables.copilot.copilot_autofix_short %} cannot be enabled for any organizations or repositories within the enterprise. - -Allowing {% data variables.copilot.copilot_autofix_short %} for an enterprise does not enforce enablement of {% data variables.copilot.copilot_autofix_short %}, but means that organization and repository administrators will have the option to enable or disable {% data variables.copilot.copilot_autofix_short %} for security results. - -Disallowing {% data variables.copilot.copilot_autofix_short %} at the enterprise level will remove all open {% data variables.copilot.copilot_autofix_short %} suggestions that were added as comments on {% data variables.product.prodname_code_scanning %} alerts in pull requests across all repositories of all organizations within the enterprise. - -{% data reusables.enterprise-accounts.access-enterprise %} -{% data reusables.enterprise-accounts.policies-tab %} -{% data reusables.enterprise-accounts.code-security-and-analysis-policies %} -1. Under "{% data variables.copilot.copilot_autofix_short %}", use the dropdown menu to choose "Not allowed." - -### Disabling {% data variables.copilot.copilot_autofix_short %} for an organization - -If {% data variables.copilot.copilot_autofix_short %} is allowed at the enterprise level, organization administrators have the option to disable {% data variables.copilot.copilot_autofix_short %} for an organization. If you disable {% data variables.copilot.copilot_autofix_short %} for an organization, {% data variables.copilot.copilot_autofix_short %} cannot be enabled for any repositories within the organization. - -Disabling {% data variables.copilot.copilot_autofix_short %} at the organization level will remove all open {% data variables.copilot.copilot_autofix_short %} suggestions that were added as comments on {% data variables.product.prodname_code_scanning %} alerts in pull requests across all repositories in the organization. - -{% data reusables.profile.access_org %} -{% data reusables.profile.org_settings %} -{% data reusables.security-configurations.display-global-settings %} -1. Under the "{% data variables.product.prodname_code_scanning_caps %}" section, deselect **{% data variables.copilot.copilot_autofix_short %}**. - -For more information about configuring global {% data variables.product.prodname_code_scanning %} settings, see [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#configuring-global-code-scanning-settings). - -### Disabling {% data variables.copilot.copilot_autofix_short %} for a repository - -If {% data variables.copilot.copilot_autofix_short %} is allowed at the enterprise level and enabled at the organization level, repository administrators have the option to disable {% data variables.copilot.copilot_autofix_short %} for a repository. Disabling {% data variables.copilot.copilot_autofix_short %} at the repository level will remove all open {% data variables.copilot.copilot_autofix_short %} suggestions that were added as comments on {% data variables.product.prodname_code_scanning %} alerts in pull requests across the repository. - -{% data reusables.repositories.navigate-to-repo %} -{% data reusables.repositories.sidebar-settings %} -{% data reusables.repositories.navigate-to-code-security-and-analysis %} -1. In the "{% data variables.product.UI_code_security_scanning %}" section, deselect **{% data variables.copilot.copilot_autofix_short %}**. diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning.md new file mode 100644 index 000000000000..de9fe8aa3f93 --- /dev/null +++ b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning.md @@ -0,0 +1,57 @@ +--- +title: Disabling Copilot Autofix for code scanning +shortTitle: Disable Copilot Autofix +intro: 'You can disable {% data variables.copilot.copilot_autofix_short %} for an enterprise, organization, or repository.' +product: '{% data reusables.rai.code-scanning.gated-feature-autofix %}' +versions: + feature: code-scanning-autofix +contentType: how-tos +redirect_from: + - /code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning + - /code-security/code-scanning/managing-code-scanning-alerts/disabling-autofix-for-code-scanning +category: + - Find and fix code vulnerabilities +--- + + +This article covers disabling {% data variables.copilot.copilot_autofix_short %}. {% data variables.copilot.agentic_autofix_caps %} has separate access controls. To disable {% data variables.copilot.agentic_autofix %}, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning#disabling-agentic-autofix). + +For enterprise-owned organizations, controls for {% data variables.copilot.copilot_autofix_short %} follow this hierarchy: + +* Enterprise owners control whether the feature is **allowed** in the enterprise. When allowed, it **can** be enabled at lower levels (but is not automatically enabled). +* When it's enabled by the enterprise, organization owners can still disable it for their organization. This prevents any repository in the organization from enabling it. +* If both the enterprise and organization have the feature enabled, repository administrators can disable it for the individual repository. + +For standalone organizations, the organization and repository controls apply without an enterprise policy. + +Disabling {% data variables.copilot.copilot_autofix_short %} at any level closes all open suggestions that it added as comments on {% data variables.product.prodname_code_scanning %} alerts in affected pull requests. If you later re-enable it, suggestions are generated only for new pull requests. To generate suggestions for existing pull requests, re-run {% data variables.product.prodname_code_scanning %} security analysis. + +> [!NOTE] +> {% data variables.copilot.copilot_autofix_short %} is an integral part of {% data variables.product.prodname_code_quality %} and will continue to run on code quality results even when it is disabled for code security results. + +## Blocking use of {% data variables.copilot.copilot_autofix_short %} for an enterprise + +Enterprise owners can disallow {% data variables.copilot.copilot_autofix_short %} for security results across all organizations and repositories in their enterprise. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +{% data reusables.enterprise-accounts.code-security-and-analysis-policies %} +1. Under "{% data variables.copilot.copilot_autofix_short %}", use the dropdown and select **All organizations: Not allowed**. + +## Disabling {% data variables.copilot.copilot_autofix_short %} for an organization + +Organization owners can disable {% data variables.copilot.copilot_autofix_short %} for all repositories in their organization. For enterprise-owned organizations, this setting is only available if the enterprise allows {% data variables.copilot.copilot_autofix_short %}. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.security-configurations.display-global-settings %} +1. Under the "{% data variables.product.prodname_code_scanning_caps %}" section, set **{% data variables.copilot.copilot_autofix_short %}** to **Off**. + +## Disabling {% data variables.copilot.copilot_autofix_short %} for a repository + +Repository administrators can disable {% data variables.copilot.copilot_autofix_short %} if their organization enables it. For enterprise-owned organizations, this setting is only available if the enterprise also allows {% data variables.copilot.copilot_autofix_short %}. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.navigate-to-code-security-and-analysis %} +1. In the "{% data variables.product.UI_code_security_scanning %}" section, set **{% data variables.copilot.copilot_autofix_short %}** to **Off**. diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/index.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/index.md index 77a5656c40a3..7f5a1b055b11 100644 --- a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/index.md +++ b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/index.md @@ -14,7 +14,7 @@ children: - triage-alerts-in-pull-requests - track-alerts-in-issues - resolve-alerts + - managing-access-to-agentic-autofix-for-code-scanning - enable-delegated-alert-dismissal - - disabling-autofix-for-code-scanning + - disabling-copilot-autofix-for-code-scanning --- - diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning.md new file mode 100644 index 000000000000..a5f981fe5710 --- /dev/null +++ b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning.md @@ -0,0 +1,91 @@ +--- +title: Managing access to agentic autofix for code scanning +shortTitle: Manage {% data variables.copilot.agentic_autofix %} +intro: Control the rollout of {% data variables.copilot.agentic_autofix %} across your enterprise, organizations, and repositories. +product: '{% data reusables.rai.code-scanning.gated-feature-agentic-autofix %}' +versions: + fpt: '*' + ghec: '*' +contentType: how-tos +category: + - Find and fix code vulnerabilities +--- + +## About access and rollout + +Access controls for {% data variables.copilot.agentic_autofix %} cascade from the enterprise to the organization and repository: + +* For an enterprise-owned organization, an enterprise owner or security manager must allow organizations to configure {% data variables.copilot.agentic_autofix %}. Allowing the feature doesn't enable it for organizations or repositories. +* An organization owner or security manager can enable {% data variables.copilot.agentic_autofix %} for the organization. The organization setting enables it for eligible repositories by default. +* Repository administrators can opt individual repositories out or re-enable them, subject to the enterprise and organization settings. +* For an eligible public repository owned by a personal account, a repository administrator can enable or disable {% data variables.copilot.agentic_autofix %} directly. + +{% data variables.copilot.agentic_autofix_caps %} is not available for user-owned repositories in an enterprise that uses {% data variables.product.prodname_emus %}. + +If your organization used {% data variables.copilot.agentic_autofix %} during the public preview, you must enable it again. + +Before you enable the feature, review how the use of {% data variables.product.prodname_ai_credits_short %} and {% data variables.product.prodname_actions %} minutes affects your costs. + +For a standalone organization, skip the enterprise procedure. For an eligible public repository owned by a personal account, skip the enterprise and organization procedures. + +## Allowing {% data variables.copilot.agentic_autofix %} for an enterprise + +Enterprise owners and security managers can allow organizations in an enterprise to configure {% data variables.copilot.agentic_autofix %}. This policy doesn't enable the feature for any organization or repository. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +{% data reusables.enterprise-accounts.code-security-and-analysis-policies %} +1. For the **{% data variables.copilot.agentic_autofix_caps %}** policy, select **All organizations: Allowed**. + +## Enabling {% data variables.copilot.agentic_autofix %} for an organization + +Organization owners and security managers can enable {% data variables.copilot.agentic_autofix %} for all eligible repositories in their organization. For an enterprise-owned organization, the enterprise policy must also allow it. + +Before you enable the organization setting, coordinate with repository administrators about any repositories that should opt out. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.security-configurations.display-global-settings %} +1. Under "{% data variables.product.prodname_code_scanning_caps %}," to enable the feature, set **{% data variables.copilot.agentic_autofix_caps %}** to **On**. + +## Managing {% data variables.copilot.agentic_autofix %} for a repository + +For an organization-owned repository, {% data variables.copilot.agentic_autofix %} is enabled by default when the organization enables it. Repository administrators can disable or re-enable it for an individual repository. For an eligible public repository owned by a personal account, a repository administrator can enable or disable it directly. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.navigate-to-code-security-and-analysis %} +1. In the "{% data variables.product.UI_code_security_scanning %}" section, enable or disable **{% data variables.copilot.agentic_autofix_caps %}** by setting the toggle to **On** or **Off**. + +After you enable {% data variables.copilot.agentic_autofix %}, users with write access to the repository can assign code scanning alerts to {% data variables.product.prodname_copilot_short %}. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#fixing-alerts-with-copilot). + +## Disabling {% data variables.copilot.agentic_autofix %} + +You can disable {% data variables.copilot.agentic_autofix %} at the enterprise, organization, or repository level. If you disable it at the enterprise or organization level, repository administrators cannot re-enable it. + +### Disallowing {% data variables.copilot.agentic_autofix %} for an enterprise + +Enterprise owners and security managers can prevent all organizations and repositories in their enterprise from using {% data variables.copilot.agentic_autofix %}. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +{% data reusables.enterprise-accounts.code-security-and-analysis-policies %} +1. For the **{% data variables.copilot.agentic_autofix_caps %}** policy, select **All organizations: Not allowed**. + +### Disabling {% data variables.copilot.agentic_autofix %} for an organization + +Organization owners and security managers can disable {% data variables.copilot.agentic_autofix %} for all repositories in their organization. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.security-configurations.display-global-settings %} +1. Under "{% data variables.product.prodname_code_scanning_caps %}," set **{% data variables.copilot.agentic_autofix_caps %}** to **Off**. + +### Disabling {% data variables.copilot.agentic_autofix %} for a repository + +Repository administrators can opt an individual repository out of {% data variables.copilot.agentic_autofix %}. For an eligible public repository owned by a personal account, this disables the feature directly. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.navigate-to-code-security-and-analysis %} +1. In the "{% data variables.product.UI_code_security_scanning %}" section, set **{% data variables.copilot.agentic_autofix_caps %}** to **Off**. diff --git a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts.md b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts.md index cc8175ce5395..eeded73e62cd 100644 --- a/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts.md +++ b/content/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts.md @@ -35,12 +35,18 @@ With a {% data variables.copilot.copilot_enterprise %} license, you can ask {% d ## Fixing alerts with {% data variables.product.prodname_copilot_short %} -> [!NOTE] -> This feature is in {% data variables.release-phases.public_preview %} and subject to change. {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_autofix_short %} must be available in the repository. {% data reusables.copilot.preview-features-policy %} +You can assign a {% data variables.product.prodname_code_scanning %} alert to {% data variables.product.prodname_copilot_short %} to have it fix the alert for you. Assigning the alert starts an agent session that explores your codebase, generates and validates a fix, and opens a pull request. + +{% data variables.copilot.agentic_autofix_caps %} is only available for backlog alerts on the default branch of a repository. + +### Prerequisites -You can assign a {% data variables.product.prodname_code_scanning %} alert to {% data variables.product.prodname_copilot_short %} to have it fix the alert for you. Assigning the alert starts an agent session: {% data variables.copilot.copilot_cloud_agent %} explores your codebase, generates a fix, validates it, and opens a pull request. +Before you assign an alert, {% data variables.copilot.agentic_autofix %} must be enabled for the repository. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning). -Each agentic autofix session is billed as a {% data variables.copilot.copilot_cloud_agent %} session and consumes {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing-and-usage). +* You don't need a {% data variables.product.prodname_copilot %} license to use this feature. +* {% data variables.copilot.agentic_autofix_caps %} consumes Code Security AI Credits and {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed). + +### Assigning a single alert To assign an individual alert to {% data variables.product.prodname_copilot_short %}: @@ -48,16 +54,27 @@ To assign an individual alert to {% data variables.product.prodname_copilot_shor {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-code-scanning-alerts %} 1. Click the name of an alert. -1. At the top of the page, click **{% octicon "agent" aria-label="Open agents panel" %} Assign to {% data variables.product.prodname_copilot_short %}**. +1. Towards the top of the page, under "Assignees", click **{% octicon "agent" aria-label="Open agents panel" %} Assign to {% data variables.product.prodname_copilot_short %}**. + +### Assigning multiple alerts at once -You can also assign alerts to {% data variables.product.prodname_copilot_short %} in bulk: +To assign multiple alerts at once: -* From the {% data variables.product.prodname_code_scanning %} alerts backlog or from a security campaign, select between 1 and 25 alerts and assign them to {% data variables.product.prodname_copilot_short %}, which works to resolve the selected alerts in a single pull request. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign). -* Using the REST API, by setting the alert's assignee to `copilot-swe-agent[bot]`. See [AUTOTITLE](/rest/code-scanning/code-scanning#update-a-code-scanning-alert). +1. From the {% data variables.product.prodname_code_scanning %} alerts backlog or a security campaign, select up to 25 alerts. +1. Above the list of alerts, click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} Assign to {% data variables.product.prodname_copilot_short %}**. -Typically within a few minutes, {% data variables.product.prodname_copilot_short %} opens a draft pull request authored by {% data variables.product.prodname_copilot_short %}, with a summary of the fix and the validation steps taken. Review the agent session log for details, and comment on the pull request, mentioning {% data variables.product.prodname_copilot_short %}, to ask it to iterate. +One assignment creates one agent session and one pull request for the selected alerts. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign). -{% data variables.copilot.copilot_cloud_agent %} validates fixes on a best-effort basis. If it can't validate a fix, or thinks the alert might be a false positive, it says so in the pull request. +### What happens after you assign an alert + +* {% data variables.product.prodname_copilot_short %} typically opens a draft pull request within a few minutes. +* The pull request, authored by {% data variables.product.prodname_copilot_short %}, summarizes the fix and validation steps. +* Review the agent session log for details, and interact with {% data variables.product.prodname_copilot_short %} there. +* You can also ask {% data variables.product.prodname_copilot_short %} to iterate by mentioning it in a pull request comment. + +{% data variables.product.prodname_copilot_short %} validates fixes on a best-effort basis. If it can't validate a fix, or thinks the alert might be a false positive, it says so in the pull request. + +You can also assign an alert with the REST API. Set the alert's assignee to `copilot-swe-agent[bot]`. See [AUTOTITLE](/rest/code-scanning/code-scanning#update-a-code-scanning-alert). {% endif %} @@ -65,7 +82,9 @@ Typically within a few minutes, {% data variables.product.prodname_copilot_short ## Generating a suggested fix -{% ifversion copilot %}If {% data variables.copilot.copilot_cloud_agent %} isn't available in your repository, you can still use {% data variables.copilot.copilot_autofix %} to generate a one-step suggested fix for the alert.{% else %}{% data variables.copilot.copilot_autofix %} can generate fixes for alerts identified by {% data variables.product.prodname_code_scanning %} analysis. Most {% data variables.product.prodname_codeql %} alert types are supported.{% endif %} +{% ifversion copilot %}If {% data variables.copilot.agentic_autofix %} isn't enabled for your repository, you can still use {% data variables.copilot.copilot_autofix %} to generate a one-step suggested fix where supported.{% else %}{% data variables.copilot.copilot_autofix %} can generate fixes for alerts identified by {% data variables.product.prodname_code_scanning %} analysis. Most {% data variables.product.prodname_codeql %} alert types are supported.{% endif %} + +{% data variables.copilot.copilot_autofix %} is also only available for backlog alerts on the default branch of a repository. {% data reusables.rai.code-scanning.copilot-autofix-note %} diff --git a/content/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts.md b/content/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts.md index c7a82aa82beb..bd97d1dd7400 100644 --- a/content/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts.md +++ b/content/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts.md @@ -24,25 +24,6 @@ Once a secret has been committed to a repository, you should consider the secret 1. Review and update any services that use the old token. For {% data variables.product.github %} {% data variables.product.pat_generic %}s, delete the compromised token and create a new token. See [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). 1. Depending on the secret provider, check your security logs for any unauthorized activity. -{% ifversion secret-scanning-actions-logs %} - -### Fixing alerts for secrets in {% data variables.product.prodname_actions %} workflow logs - -> [!NOTE] -> Detection of secrets in {% data variables.product.prodname_actions %} workflow logs is in {% data variables.release-phases.public_preview %} and is subject to change. - -When a secret is detected in a {% data variables.product.prodname_actions %} workflow log, follow these steps in order. - -1. Review the alert and linked job log to identify the credential and the source of the exposure. The secret may have been printed by the workflow, an action, or another dependency. -1. Check whether the credential is still valid. {% ifversion fpt or ghec %}See [Checking a secret's validity](/code-security/tutorials/remediate-leaked-secrets/evaluating-alerts#checking-a-secrets-validity). {% endif %}If the credential is active or you cannot confirm its status, rotate or revoke it immediately using the secret provider's dashboard. -1. Fix the source of the exposure. For example, update the workflow or dependency, remove hardcoded secrets, or store credentials as encrypted secrets. See [AUTOTITLE](/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions). -1. If necessary, add `::add-mask::` to redact the value from future log output. - -> [!WARNING] -> Do not rerun the workflow until you have fixed the exposure source. Rerunning the workflow without addressing the root cause may re-expose the secret. - -{% endif %} - {% ifversion secret-scanning-report-secret-github-pat %} ### Reporting a leaked secret in a private repository diff --git a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/creating-managing-security-campaigns.md b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/creating-managing-security-campaigns.md index 4cc1aa73eb9a..f113a9604998 100644 --- a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/creating-managing-security-campaigns.md +++ b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/creating-managing-security-campaigns.md @@ -76,7 +76,7 @@ Additional default filters for {% data variables.product.prodname_code_scanning * `autofilter:true` includes only alerts that appear to be in application code. {% ifversion security-campaigns-autofix %} > [!NOTE] -> When agentic autofix is enabled for your organization or enterprise, the `autofix` filter is unavailable, and adding `autofix:supported` does not change the results. For alerts in repositories where {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_autofix_short %} are available, you can use **Assign to {% data variables.product.prodname_copilot_short %}** for any {% data variables.product.prodname_code_scanning %} alert in a campaign. +> When {% data variables.copilot.agentic_autofix %} is enabled for your organization, the `autofix` filter is unavailable. Adding `autofix:supported` does not change the results. For alerts in repositories where {% data variables.copilot.agentic_autofix %} is enabled, you can use **Assign to {% data variables.product.prodname_copilot_short %}** for any {% data variables.product.prodname_code_scanning %} alert in a campaign. {% endif %} @@ -125,7 +125,7 @@ The new campaign is shown in the sidebar of the **{% data variables.product.prod {% ifversion code-secret-alert-assignees %} > [!TIP] -> You can assign a campaign alert to anyone with **write** access to the repository, see [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts-to-users-and-copilot-cloud-agent). +> You can assign a campaign alert to anyone with **write** access to the repository. See [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts). {% endif %} {% else %} diff --git a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign.md b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign.md index 163af82474d4..83a0c7228f34 100644 --- a/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign.md +++ b/content/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign.md @@ -30,9 +30,9 @@ This view shows the alerts in the current repository for a campaign called "SQL If you want to see the code that triggered the security alert and the suggested fix, click on the alert name to show the alert view. -{% ifversion copilot %}If {% data variables.copilot.copilot_cloud_agent %} is available in the repository, the fastest way to resolve alerts is to assign them to {% data variables.product.prodname_copilot_short %}, which explores the codebase, generates a fix, validates it, and opens a pull request for you. See [Assigning alerts to {% data variables.copilot.copilot_cloud_agent %}](#assigning-alerts-to-copilot-cloud-agent) below. The following steps describe how to fix alerts yourself instead.{% endif %} +{% ifversion copilot %}If {% data variables.copilot.agentic_autofix %} is enabled, the fastest way to resolve alerts is to assign them to {% data variables.product.prodname_copilot_short %}. {% data variables.copilot.agentic_autofix_caps %} explores the codebase, generates and validates a fix, and opens a pull request. See [Assigning alerts to {% data variables.product.prodname_copilot_short %}](#assigning-alerts-to-copilot) below. The following steps describe how to fix alerts yourself instead.{% endif %} -1. When you are ready to work on one or more security alerts, check that no one else is working on those alerts already. In the campaign view, git icons are displayed on alerts where a fix may already be in progress. Click an icon to display the linked work: +1. When you are ready to work on one or more security alerts, check whether they are already assigned to {% data variables.product.prodname_copilot_short %} or whether someone else is working on them. Open any linked work to check whether a fix is already in progress: * {% octicon "git-pull-request-draft" aria-hidden="Draft pull request" aria-label="git-pull-request-draft" %} an open draft pull request may fix this alert. * {% octicon "git-pull-request" aria-label="Pull request" %} an open pull request may fix this alert. * {% octicon "git-branch" aria-label="Branch" %} a branch may contain changes to fix this alert. @@ -48,16 +48,20 @@ If you want to see the code that triggered the security alert and the suggested {% ifversion copilot %} -## Assigning alerts to {% data variables.copilot.copilot_cloud_agent %} +## Assigning alerts to {% data variables.product.prodname_copilot_short %} ->[!NOTE] This option is currently in public preview and is subject to change. {% data variables.copilot.copilot_cloud_agent %} must be available in the repository. +Before you assign alerts, {% data variables.copilot.agentic_autofix %} must be enabled for the repository. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/managing-access-to-agentic-autofix-for-code-scanning). -Instead of fixing alerts yourself, you can select one or more alerts (up to 25) in the campaign view and assign them to {% data variables.product.prodname_copilot_short %}, which resolves the selected alerts in a single pull request and adds you as a requested reviewer. This is the same assignment flow used to fix an individual alert. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#fixing-alerts-with-copilot). +{% data variables.copilot.agentic_autofix_caps %} consumes {% data variables.product.prodname_ai_credits_short %} and {% data variables.product.prodname_actions %} minutes. -1. In the campaign view for the repository, select the alerts that you want to assign. +You can assign between 1 and 25 alerts from the campaign view. One assignment creates one agent session and one pull request for the selected alerts. It also adds you as a requested reviewer. + +1. In the repository's campaign view, select the alerts that you want to assign. 1. Above the list of alerts, click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} Assign to {% data variables.product.prodname_copilot_short %}**. -Typically within a few minutes, {% data variables.product.prodname_copilot_short %} opens a pull request addressing the assigned alerts, with a summary of the fixes and the changes made. Once created, the pull request is shown next to the alert. +Typically within a few minutes, {% data variables.product.prodname_copilot_short %} opens a pull request that addresses the assigned alerts. The pull request summarizes the fixes and changes, and appears next to each assigned alert. + +For more information about reviewing the session and pull request, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#fixing-alerts-with-copilot). {% endif %} diff --git a/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom.md b/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom.md index a11df2308f74..d63eb587c4fb 100644 --- a/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom.md +++ b/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom.md @@ -19,13 +19,6 @@ You can export the current state of the dependency graph for your repository as SBOMs include an inventory of a project's dependencies and associated information such as {% ifversion ghes %}versions and package identifiers{% else %}versions, package identifiers, licenses, transitive paths, and copyright information{% endif %}. SBOMs do not include dependents (other projects that rely on your project). -{% ifversion ghec %} - -> [!NOTE] -> {% data reusables.data-residency.dependency-graph-data-availability %} - -{% endif %} - ## Exporting a software bill of materials for your repository from the UI {% data reusables.repositories.navigate-to-repo %} @@ -35,7 +28,14 @@ SBOMs include an inventory of a project's dependencies and associated informatio ## Exporting a software bill of materials for your repository using the REST API +{% ifversion ghes %} If you want to use the REST API to export an SBOM for your repository, see [AUTOTITLE](/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository). +{% else %} +To export an SBOM for your repository using the REST API: + +1. Request generation of the SBOM. See [AUTOTITLE](/rest/dependency-graph/sboms#request-generation-of-a-software-bill-of-materials-sbom-for-a-repository). +1. Poll the returned `sbom_url` while the response is `202`. When the response is `302`, follow the redirect to download the completed SBOM. See [AUTOTITLE](/rest/dependency-graph/sboms#fetch-a-software-bill-of-materials-sbom-for-a-repository). +{% endif %} ## Generating a software bill of materials from {% data variables.product.prodname_actions %} diff --git a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action.md b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action.md index 16a5805d21db..bfdd6af9fa5f 100644 --- a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action.md +++ b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action.md @@ -18,6 +18,12 @@ category: The "{% data variables.dependency-review.action_name %}" refers to the specific action that can report on differences in a pull request within the {% data variables.product.prodname_actions %} context. It can also add enforcement mechanisms to the {% data variables.product.prodname_actions %} workflow. For more information, see [AUTOTITLE](/code-security/concepts/supply-chain-security/dependency-review#about-the-dependency-review-action). +{% ifversion open-source-license-compliance %} + +For organizations using {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_GH_code_security %} enabled, enterprise-wide management of license policy is available. This feature uses a similar pull-request based approach to {% data variables.dependency-review.action_name %} but adds auditability, centralized policy management, and ruleset-based enforcement of license policy. For more information, see [AUTOTITLE](/code-security/concepts/supply-chain-security/open-source-license-compliance). + +{% endif %} + {% ifversion ghec %} > [!NOTE] diff --git a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-license-policies.md b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-license-policies.md index 31ac071a5ffb..586929943e71 100644 --- a/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-license-policies.md +++ b/content/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-license-policies.md @@ -12,15 +12,13 @@ redirect_from: - /early-access/code-security/supply-chain-security/enforcing-license-policy-across-an-enterprise --- -{% data reusables.code-security.open-source-license-compliance-public-preview-note %} - ## Prerequisites Before you configure license policies, ensure that: -* Your organization has {% data variables.product.prodname_GH_code_security %} -* You have access to manage enterprise policy and rulesets -* Dependency graph is enabled for repositories you want to evaluate +* You are using GitHub Enterprise Cloud (including data-resident GHEC), and your organization has {% data variables.product.prodname_GH_code_security %} enabled on the repositories you want to use license compliance. +* You have access to manage enterprise policy and rulesets. +* Dependency graph is enabled for repositories you want to evaluate. ## About license compliance @@ -34,7 +32,9 @@ Violations are typically resolved by: * Approving an exception for a package * Updating policy to allow a license where appropriate -## Create a license policy +## Configuring license compliance + +### Create a license policy {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} @@ -51,20 +51,20 @@ Alternately, if you have an existing license policy from another tool, you can i The licenses you add form your baseline policy. You can later add package-level exceptions when handling alerts. -## Configure access for Enterprise Open Source License Managers +### Configure access for Enterprise Open-Source License Managers {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} 1. In the left sidebar, click **{% octicon "globe" aria-hidden="true" aria-label="globe" %} Enterprise roles**. 1. Click **Role assignments**. 1. Click **Assign role**. -1. Select the **Enterprise Open Source License Manager** role. +1. Select the **Enterprise Open-Source License Manager** role. 1. Choose a user or team to assign the role to. 1. Click **Assign role**. Assigning this role also subscribes reviewers to request notifications so they can respond to dismissal requests quickly. -## Optionally use custom properties to control rollout per repository +### Optionally use custom properties to control rollout per repository If you want a gradual rollout, use a repository custom property to control whether each repository is in inactive, evaluate, or active enforcement mode. @@ -77,7 +77,7 @@ If you want a gradual rollout, use a repository custom property to control wheth 1. Decide who can change the property value. 1. Assign property values to repositories based on their rollout stage. -## Enforce policy in pull requests with rulesets +### Enforce policy in pull requests with rulesets We suggest making two rulesets, one for **Evaluate** mode and one for **Active** mode. If you created custom properties to control the rollout, you can target those properties here. @@ -104,9 +104,11 @@ For more information about rulesets, see [AUTOTITLE](/repositories/configuring-b 1. Confirm that pull request annotations show license compliance results. 1. If a dependency violates policy, review the generated alert and request dismissal if an exception is needed. -When violations are unresolved, the pull request remains blocked. +If the ruleset is in **Active** mode, the pull request remains blocked until all license policy violations are resolved. + +## Managing license compliance requests and policy -## Review and handle exception requests +### Review and handle exception requests 1. As an Enterprise Open Source License Manager, open the list of pending license alert requests in your enterprise security views. 1. Review each request and decide whether to deny or approve it. @@ -116,7 +118,7 @@ When violations are unresolved, the pull request remains blocked. After a request is approved, the alert is closed and the pull request is unblocked, as long as no other required checks are failing. -## Review effective policy for a repository +### Review effective policy for a repository {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} @@ -124,6 +126,18 @@ After a request is approved, the alert is closed and the pull request is unblock 1. Review the combined policy and exception set in effect for that repository. 1. Update enterprise-level or repository-level policy as needed. +Package and license entries that are set at the enterprise level will not be editable in the repository policy. Items marked with a {% octicon "trash" aria-label="The trash can icon" %} indicate repository-level entries which can be deleted. + +### Audit events + +Changes to the license policy emit events to the audit log. These events are useful to review the history of changes or to feed external systems for compliance purposes. The log events are categorized as **Policy Management**, with a prefix of `license_compliance_policy`. They will have an action type `create` or `modify`. For details about the contents of the audit log events, see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization). + +### License compliance API + +There are several REST API endpoints for managing license compliance policy. You can use the API to programatically back up and restore your enterprise policy and to query whether a list of packages would create any policy violations if they were included in a repository's dependencies. In addition, operations on license compliance closure requests can generate webhook events when a request is created, receives a response, or is cancelled. + +For details about the enterprise policy management API, see [AUTOTITLE](/rest/dependency-graph/). For more about the package check API, see [AUTOTITLE](/rest/repos#package-checks). For more about webhooks, see [AUTOTITLE](/webhooks/webhook-events-and-payloads). + ## Further reading * [AUTOTITLE](/code-security/concepts/supply-chain-security/open-source-license-compliance) diff --git a/content/code-security/reference/permissions/repository-security-advisory.md b/content/code-security/reference/permissions/repository-security-advisory.md index abb713d91833..2938eab571e5 100644 --- a/content/code-security/reference/permissions/repository-security-advisory.md +++ b/content/code-security/reference/permissions/repository-security-advisory.md @@ -40,6 +40,8 @@ Add and remove credits for a security advisory (see [AUTOTITLE](/code-security/h Close the draft security advisory | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | Publish the security advisory (see [AUTOTITLE](/code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/publish-repository-advisory)) | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | +Collaborators with write permissions can't create a temporary private fork, with one exception: the reporter of a privately reported vulnerability can create one while they remain a collaborator on the security advisory. See [AUTOTITLE](/code-security/how-tos/report-and-fix-vulnerabilities/report-privately). + Repository security advisory collaborators without write access to the repository cannot create or view confidential comments. This restriction includes the reporter of a privately reported vulnerability unless they also have write access. See [AUTOTITLE](/code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/manage-vulnerability-reports#discussing-a-report-with-people-who-have-write-access). ### Permission differences for global security advisories diff --git a/content/code-security/responsible-use/security-and-quality-ai-features.md b/content/code-security/responsible-use/security-and-quality-ai-features.md index 7f57ffa8efbd..fd5970a2f597 100644 --- a/content/code-security/responsible-use/security-and-quality-ai-features.md +++ b/content/code-security/responsible-use/security-and-quality-ai-features.md @@ -280,7 +280,7 @@ GitHub Code Quality's LLM-powered analysis shares the evaluation framework of Co * **Human-in-the-loop review**: Copilot Autofix presents all suggestions as proposed code changes that require explicit developer review and acceptance before being applied. Developers must evaluate each suggestion and verify it maintains the codebase's intended behavior. * **Content filtering**: A filtering system on the LLM detects and prevents potentially harmful suggestions from being displayed to users. The system is stress-tested through red teaming to identify potential vulnerabilities. * **Internal quality testing**: Suggestions that fail internal testing are not displayed to users. Fix generation is only shown when the system has sufficient confidence in the suggestion's quality. -* **Opt-in/opt-out controls**: Copilot Autofix is allowed by default and enabled for every repository using CodeQL, but administrators can disable Copilot Autofix at the enterprise, organization, and repository levels. For more information, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning). +* **Opt-in/opt-out controls**: {% data variables.copilot.copilot_autofix_short %} is allowed by default and enabled for every repository using {% data variables.product.prodname_codeql %}, but administrators can disable {% data variables.copilot.copilot_autofix_short %} at the enterprise, organization, and repository levels. For more information, see [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning). * **No training on customer data**: Data handled by Copilot Autofix is not employed for LLM training purposes. The use of this feature is governed by the existing terms and conditions associated with GitHub Advanced Security. {% endif %} * **False positive feedback loop**: When users close a generic secret detection alert and mark the reason as "False positive," GitHub uses the false positive volume to improve the model. GitHub does not have access to the secret literals themselves. @@ -330,7 +330,7 @@ For additional guidance on the responsible use of GitHub Security AI features, w * [AUTOTITLE](/code-security/concepts/code-scanning/code-scanning-alerts) * [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/triage-alerts-in-pull-requests#working-with-copilot-autofix-suggestions-for-alerts-on-a-pull-request) * [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolve-alerts#generating-a-suggested-fix) -* [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-autofix-for-code-scanning) +* [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/disabling-copilot-autofix-for-code-scanning) {% endif %} * [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#advanced-security) * [AUTOTITLE](/code-security/concepts/secret-security/secret-scanning) diff --git a/content/code-security/tutorials/manage-security-alerts/best-practices-for-participating-in-a-security-campaign.md b/content/code-security/tutorials/manage-security-alerts/best-practices-for-participating-in-a-security-campaign.md index 5fe0c4034a04..e973b2f02dad 100644 --- a/content/code-security/tutorials/manage-security-alerts/best-practices-for-participating-in-a-security-campaign.md +++ b/content/code-security/tutorials/manage-security-alerts/best-practices-for-participating-in-a-security-campaign.md @@ -27,7 +27,7 @@ In addition to reducing risk in your organization’s codebase, alerts in a secu * You have a campaign manager on the security team to collaborate with and a specific contact link for discussing campaign activities. * You know that you are fixing a security alert that is important to the company. * Potentially, you may have access to targeted training materials.{% ifversion copilot %} -* If {% data variables.copilot.copilot_cloud_agent %} is available, you can assign alerts to {% data variables.product.prodname_copilot_short %} and it resolves them for you in a pull request. Otherwise, a {% data variables.copilot.copilot_autofix %} suggestion is already available as a starting point. +* If {% data variables.copilot.agentic_autofix %} is enabled, you can assign alerts to {% data variables.product.prodname_copilot_short %}, which can resolve them in a pull request. Otherwise, you can use a {% data variables.copilot.copilot_autofix %} suggestion as a starting point where supported. * If you have access to {% data variables.copilot.copilot_chat %}, you can ask questions about the alert and the suggested fix.{% endif %} * You are improving and demonstrating your knowledge of secure coding. @@ -96,9 +96,9 @@ You can leverage {% data variables.product.prodname_copilot_short %} to help res ### Autofix for {% data variables.product.prodname_code_scanning %} alerts -If {% data variables.copilot.copilot_cloud_agent %} is enabled in the repository, you can select one or more alerts in the campaign view and assign them to {% data variables.product.prodname_copilot_short %}. {% data variables.copilot.copilot_cloud_agent %} explores the codebase, generates fixes, validates the changes, and opens a single pull request for the selected alerts. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot-cloud-agent). +If {% data variables.copilot.agentic_autofix %} is enabled, you can assign up to 25 alerts from the campaign view to {% data variables.product.prodname_copilot_short %}. One assignment starts one agent session and opens one pull request for the selected alerts. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot). -If {% data variables.copilot.copilot_cloud_agent %} isn't enabled in the repository, {% data variables.copilot.copilot_autofix_short %} is automatically triggered for alerts included in a campaign, so a fix is generated for you where possible. Commit the suggested fix to resolve the alert, then verify that CI is still passing. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign).{% endif %} +If {% data variables.copilot.agentic_autofix %} isn't enabled, use a {% data variables.copilot.copilot_autofix_short %} suggestion where available, or fix the alert manually. After you commit the fix, verify that continuous integration checks still pass. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/fixing-alerts-in-security-campaign).{% endif %} ### {% data variables.copilot.copilot_chat_short %} diff --git a/content/copilot/concepts/agent-capabilities/about-agents/about-github-copilot-agents.md b/content/copilot/concepts/agent-capabilities/about-agents/about-github-copilot-agents.md new file mode 100644 index 000000000000..29044b68c150 --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/about-agents/about-github-copilot-agents.md @@ -0,0 +1,76 @@ +--- +title: About GitHub Copilot agents +shortTitle: GitHub Copilot agents +intro: '{% data variables.product.prodname_copilot_short %} agents use context and tools to plan and complete tasks. You can choose where and how you work with them.' +versions: + feature: copilot +contentType: concepts +category: + - Learn about Copilot +--- + +## What is an agent? + +An agent is an AI system that can complete a goal on your behalf. Unlike an assistant that only returns a response, an agent can plan a task, use tools to take action, inspect the results, and adjust its approach. + +For example, when you ask an agent to fix a bug, it can search a repository, identify the relevant files, edit the code, run tests, and revise its changes in response to test failures. The tools and environments available to an agent depend on where you use it. + +Agents can work with different levels of autonomy: + +* In a collaborative session, you can guide the agent, approve actions, and provide feedback as it works. +* In an asynchronous session, you can delegate a task, work on something else, and review the result later. +* In an automated workflow, an event or schedule can start an agent without you initiating each individual task. + +In every case, you remain responsible for defining the goal and constraints, granting appropriate access, and reviewing the agent's work. + +## Agents, chat, and automation + +Chat, agents, and automation are related concepts, but each describes a different part of an AI-assisted workflow. + +| Concept | Primary purpose | Key distinction | +| --- | --- | --- | +| Chat | Explore ideas, ask questions, and provide direction through a conversation | Chat is a back-and-forth exchange of questions and responses. Some chat experiences can also use tools or invoke an agent. | +| Agent | Complete a goal by reasoning, using tools, and adapting to results | An agent can decide which steps to take instead of only producing a response. | +| Automation | Start repeatable work from an event, schedule, or other trigger | An automation can run fixed steps or invoke an agent. Not every automation is agentic. | + +For example, you might use chat to explore why a test is failing, then ask an agent to update the code and run the test suite. If the same type of failure needs regular attention, you could create an automation that starts an agent whenever the failure occurs. + +## Where you can work with agents + +You can work with agents in several {% data variables.product.prodname_copilot_short %} experiences. Choose an experience based on where you want the work to run, how closely you want to guide it, and how you want to review the result. + +### {% data variables.copilot.github_copilot_app %} + +The {% data variables.copilot.github_copilot_app %} is a desktop application for directing agent-driven development. You can run multiple agent sessions in parallel, use local or cloud environments, and manage work from an initial task through pull request review. See [AUTOTITLE](/copilot/concepts/agents/github-copilot-app). + +### {% data variables.copilot.copilot_cli_short %} + +{% data variables.copilot.copilot_cli %} lets you work with an agent from your terminal. The agent can answer questions, modify files, run commands, and complete multi-step tasks in local or sandboxed environments. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-copilot-cli). + +### {% data variables.product.prodname_copilot_short %} in IDEs + +Agent mode in supported IDEs provides a collaborative experience in your local development environment. The agent can identify files to change, propose edits, run commands, and respond to your feedback while you work. See [AUTOTITLE](/copilot/how-tos/chat-with-copilot/chat-in-ide). + +### {% data variables.product.github %} + +On {% data variables.product.github %}, you can delegate asynchronous work to {% data variables.copilot.copilot_cloud_agent %} from entry points such as the Agents view, issues, pull requests, and {% data variables.copilot.copilot_chat_short %}. The agent works in a cloud environment and can research a repository, create a plan, make changes on a branch, and open a pull request for review. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent). + +You can also delegate tasks to supported third-party coding agents. These agents work alongside {% data variables.copilot.copilot_cloud_agent %} and return their changes through the same pull request workflow. See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents). + +### {% data variables.copilot.agent_apps_caps %} + +{% data variables.copilot.agent_apps_caps %} are partner-built agents that you can use through {% data variables.product.github %}. They can specialize in particular domains and connect to a partner's systems and tools. An {% data variables.copilot.agent_app %} is installed as a {% data variables.product.prodname_github_app %}. See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). + +### Automated workflows + +You can configure agents to perform recurring or event-driven work. For example, an agent can triage new issues, investigate continuous integration failures, or prepare a scheduled report. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations). + +### {% data variables.product.prodname_copilot_short %} integrations + +You can integrate {% data variables.copilot.copilot_cloud_agent %} with various tools and platforms to enhance its functionality and streamline your development workflow. With integrations, you can work with and trigger {% data variables.copilot.copilot_cloud_agent %} from within your existing tools, such as Microsoft Teams, Slack, Linear, Azure Boards, and Jira, providing the cloud agent with the context it needs to assist you. See [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations). + +## Choosing an agent experience + +Start with the level of control and delegation that fits your task. Use the {% data variables.copilot.github_copilot_app %}, {% data variables.copilot.copilot_cli_short %} or a collaborative IDE session when you want to guide work closely. Use a cloud agent when you want to delegate a well-scoped task and review the result later. Use an automated workflow when the same kind of work should run repeatedly from a defined trigger. + +For help matching {% data variables.product.github %}'s AI tools to your task, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/ai-tools). diff --git a/content/copilot/concepts/agents/about-third-party-coding-agents.md b/content/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents.md similarity index 69% rename from content/copilot/concepts/agents/about-third-party-coding-agents.md rename to content/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents.md index c24226a904b7..c96fe587ac2f 100644 --- a/content/copilot/concepts/agents/about-third-party-coding-agents.md +++ b/content/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents.md @@ -1,5 +1,5 @@ --- -title: About third-party coding agents +title: Third-party coding agents allowTitleToDifferFromFilename: true shortTitle: Third-party coding agents intro: 'You can use third-party coding agents alongside {% data variables.copilot.copilot_cloud_agent %} to work asynchronously on your development tasks on {% data variables.product.github %}.' @@ -9,6 +9,9 @@ versions: contentType: concepts redirect_from: - /copilot/concepts/agents/about-third-party-agents + - /copilot/concepts/agents/about-third-party-coding-agents + - /copilot/concepts/agents/anthropic-claude + - /copilot/concepts/agents/openai-codex --- > [!NOTE] Third-party coding agents are currently in {% data variables.release-phases.public_preview %}. @@ -40,28 +43,46 @@ These policies do not apply to **local** agents in {% data variables.product.pro ## Supported coding agents -The following third-party agents are supported on {% data variables.product.github %}: +When starting a task with a third-party agent, you can select the AI model used by the agent. You may find that different models perform better, or provide more useful responses, depending on the type of task. For help deciding which model to use, see [AUTOTITLE](/copilot/reference/ai-models/model-comparison). + +The following third-party agents are supported on {% data variables.product.github %}. -* [{% data variables.product.prodname_anthropic_claude %}](/copilot/concepts/agents/anthropic-claude) -* [{% data variables.product.prodname_openai_codex %}](/copilot/concepts/agents/openai-codex) +### {% data variables.product.prodname_anthropic_claude %} -## AI models for third-party agents +> [!NOTE] +> The {% data variables.product.prodname_anthropic_claude %} coding agent is currently in {% data variables.release-phases.public_preview %}. -When starting a task with a third-party agent, you can select the AI model used by the agent. You may find that different models perform better, or provide more useful responses, depending on the type of task. For help deciding which model to use, see [AUTOTITLE](/copilot/reference/ai-models/model-comparison). +The {% data variables.product.prodname_anthropic_claude %} coding agent uses the Claude Agent SDK and can be powered by your existing {% data variables.product.prodname_copilot_short %} subscription. For information about {% data variables.product.prodname_anthropic_claude %}, see the [{% data variables.product.prodname_anthropic_claude %} documentation](https://platform.claude.com/docs/en/agent-sdk/overview). -You can also select **Auto**, which chooses between the supported models below. Choosing **Auto** with third-party agents does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection). +#### {% data variables.product.prodname_anthropic_claude %} supported models -The following models are available for each agent: +* Auto +{% data reusables.copilot.anthropic-claude-agent-models %} + +If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_anthropic_claude %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. ### {% data variables.product.prodname_openai_codex %} +> [!NOTE] +> {% data variables.product.prodname_openai_codex %} integration is currently in {% data variables.release-phases.public_preview %}. + +The {% data variables.product.prodname_openai_codex %} coding agent and the {% data variables.product.prodname_vscode_shortname %} {% data variables.product.prodname_openai_codex %} integration use the Codex SDK and can be powered by your existing {% data variables.product.prodname_copilot_short %} subscription. For more information about how {% data variables.product.prodname_openai_codex %} works, see the [{% data variables.product.prodname_openai_codex %} documentation](https://developers.openai.com/codex). + +#### {% data variables.product.prodname_openai_codex %} supported models + * Auto {% data reusables.copilot.openai-codex-agent-models %} -### {% data variables.product.prodname_anthropic_claude %} +If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_openai_codex %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. -* Auto -{% data reusables.copilot.anthropic-claude-agent-models %} +#### {% data variables.product.prodname_vscode_shortname %} extension + +> [!NOTE] +> The "Sign in with {% data variables.product.prodname_copilot_short %}" option in the {% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode_shortname %} extension is only available to {% data variables.copilot.copilot_pro_plus %} and {% data variables.copilot.copilot_max_short %} subscribers. + +Use "Sign in with {% data variables.product.prodname_copilot_short %}" when launching the extension. You can see this integration in the [Agent Sessions view](https://code.visualstudio.com/docs/copilot/chat/chat-sessions#_agent-sessions-view) in {% data variables.product.prodname_vscode_shortname %} Insiders along with progress on their running tasks. All usage is subject to {% data variables.product.github %} rate limits and billing. + +A subset of available models may only be available in the {% data variables.product.prodname_openai_codex %} extension. Model availability and visibility is not governed by {% data variables.product.prodname_copilot_short %} model configuration policies. ## Security validation diff --git a/content/copilot/concepts/agents/agent-apps.md b/content/copilot/concepts/agent-capabilities/about-agents/agent-apps.md similarity index 98% rename from content/copilot/concepts/agents/agent-apps.md rename to content/copilot/concepts/agent-capabilities/about-agents/agent-apps.md index 44e3733cd614..f1dba2fb4d4d 100644 --- a/content/copilot/concepts/agents/agent-apps.md +++ b/content/copilot/concepts/agent-capabilities/about-agents/agent-apps.md @@ -1,11 +1,13 @@ --- -title: About agent apps +title: Agent apps shortTitle: Agent apps allowTitleToDifferFromFilename: true intro: '{% data variables.copilot.agent_apps_caps %} let you use partner-built agents directly in your workflows on {% data variables.product.github %}, powered by your {% data variables.product.prodname_copilot_short %} subscription.' product: '{% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/agent-apps contentType: concepts --- diff --git a/content/copilot/concepts/agent-capabilities/about-agents/index.md b/content/copilot/concepts/agent-capabilities/about-agents/index.md new file mode 100644 index 000000000000..cedfc0b533fa --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/about-agents/index.md @@ -0,0 +1,11 @@ +--- +title: About agents +intro: Learn about the agents you can use with {% data variables.product.prodname_copilot %}. +versions: + feature: copilot +children: + - /about-github-copilot-agents + - /about-third-party-coding-agents + - /agent-apps +contentType: concepts +--- diff --git a/content/copilot/concepts/agents/cloud-agent/about-automation-rationale-and-approvals.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automation-rationale-and-approvals.md similarity index 98% rename from content/copilot/concepts/agents/cloud-agent/about-automation-rationale-and-approvals.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automation-rationale-and-approvals.md index c8a28bfe4abd..daccbc810ddf 100644 --- a/content/copilot/concepts/agents/cloud-agent/about-automation-rationale-and-approvals.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automation-rationale-and-approvals.md @@ -6,6 +6,8 @@ intro: 'When {% data variables.copilot.copilot_automations %} triage issues, it product: '{% data reusables.gated-features.copilot-automations %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/cloud-agent/about-automation-rationale-and-approvals contentType: concepts category: - Learn about Copilot diff --git a/content/copilot/concepts/agents/cloud-agent/about-automations.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations.md similarity index 96% rename from content/copilot/concepts/agents/cloud-agent/about-automations.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations.md index 35977b1cf690..c0e257048923 100644 --- a/content/copilot/concepts/agents/cloud-agent/about-automations.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations.md @@ -1,11 +1,13 @@ --- -title: About Copilot automations +title: Copilot automations shortTitle: About automations allowTitleToDifferFromFilename: true intro: '{% data variables.copilot.copilot_automations_cap %} let you run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events in a repository.' product: '{% data reusables.gated-features.copilot-automations %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/cloud-agent/about-automations contentType: concepts category: - Learn about Copilot @@ -72,7 +74,7 @@ You can manually select the tools you want to enable, or you can use the **Sugge An {% data variables.copilot.copilot_automation %} can only take action in the single repository it is scoped to. -When an {% data variables.copilot.copilot_automation %} changes an issue, it can explain each change and rate its confidence, applying high-confidence changes automatically and proposing others for your review. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automation-rationale-and-approvals). +When an {% data variables.copilot.copilot_automation %} changes an issue, it can explain each change and rate its confidence, applying high-confidence changes automatically and proposing others for your review. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automation-rationale-and-approvals). ## Configuration inherited from the repository @@ -112,4 +114,4 @@ For more information about how {% data variables.product.github %} mitigates the * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations) * [AUTOTITLE](/copilot/concepts/copilot-surfaces/copilot-on-github) -* To learn how to store your automation as code, review it through pull requests, or run it with a different coding agent, see [AUTOTITLE](/copilot/concepts/agents/about-github-agentic-workflows) +* To learn how to store your automation as code, review it through pull requests, or run it with a different coding agent, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-github-agentic-workflows) diff --git a/content/copilot/concepts/agents/about-github-agentic-workflows.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-github-agentic-workflows.md similarity index 98% rename from content/copilot/concepts/agents/about-github-agentic-workflows.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-github-agentic-workflows.md index f587d6f19b43..e7b93f90cfda 100644 --- a/content/copilot/concepts/agents/about-github-agentic-workflows.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-github-agentic-workflows.md @@ -1,9 +1,12 @@ --- -title: About GitHub Agentic Workflows +title: GitHub Agentic Workflows shortTitle: Agentic Workflows +allowTitleToDifferFromFilename: true intro: 'Automate repetitive repository work with natural language instructions executed by AI coding agents in {% data variables.product.prodname_actions %}.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/about-github-agentic-workflows contentType: concepts category: - Learn about Copilot diff --git a/content/copilot/concepts/agents/copilot-cli/about-remote-control.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control.md similarity index 97% rename from content/copilot/concepts/agents/copilot-cli/about-remote-control.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control.md index 126896132400..41b90b3d9af0 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-remote-control.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control.md @@ -1,11 +1,13 @@ --- -title: About remote control of {% data variables.copilot.copilot_cli %} sessions +title: Remote control of {% data variables.copilot.copilot_cli %} sessions shortTitle: About remote control +allowTitleToDifferFromFilename: true intro: 'Remote control lets you monitor and steer a {% data variables.copilot.copilot_cli_short %} session from {% data variables.product.prodname_dotcom_the_website %} or {% data variables.product.prodname_mobile %}, even after you''ve stepped away from your machine.' versions: feature: copilot redirect_from: - /copilot/concepts/agents/copilot-cli/about-remote-access + - /copilot/concepts/agents/copilot-cli/about-remote-control contentType: concepts category: - Learn about Copilot # Copilot discovery page diff --git a/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot.md new file mode 100644 index 000000000000..ef7163f2a80f --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot.md @@ -0,0 +1,65 @@ +--- +title: Allowing GitHub Copilot to work autonomously +shortTitle: Autopilot +intro: 'Autopilot mode lets {% data variables.product.prodname_copilot_short %} carry a well-defined coding task through multiple steps without waiting for you after each step.' +versions: + feature: copilot +contentType: concepts +category: + - Learn about Copilot + - Learn about Copilot CLI +docsTeamMetrics: + - copilot-cli +--- + +## Overview + +Typically, when you work interactively with {% data variables.product.prodname_copilot_short %} in the {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli %}, you submit a prompt, wait for a response, and then give the next instruction. This back-and-forth continues until the task is complete. + +Autopilot mode allows {% data variables.product.prodname_copilot_short %} to work through a task without waiting for your input after each step. After you give the initial instruction, the agent can write code, run tests, evaluate the results, and continue iterating until it determines that the task is complete. + +The difference between Interactive mode and Autopilot mode is like the difference between collaborating with a coworker who checks in with you periodically, and handing over a task with a clear outcome then reviewing the finished work. + +Autopilot mode is available in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}. + +## Benefits of Autopilot mode + +* **Hands-off execution:** After the initial instruction, {% data variables.product.prodname_copilot_short %} can complete multiple steps without repeatedly asking you to continue. +* **Efficient multi-step work:** Autopilot mode is suited to long-running tasks such as implementing a detailed plan, writing tests, refactoring files, or fixing a reproducible failure. +* **Continuous iteration:** The agent can run checks, respond to failures, and revise its work as part of the same task. +* **Programmatic automation:** Use Autopilot mode in scripts and CI workflows to allow {% data variables.copilot.copilot_cli_short %} to run tasks unattended. + +## Things to consider + +* **Task suitability:** Use Autopilot mode for a task with a clear outcome and enough detail for the agent to make implementation decisions. Vague, exploratory, or open-ended tasks are more likely to require your guidance and may produce work that does not meet your expectations. +* **Trust and access:** The agent may need permission to modify files, run commands, or access network resources. Grant only the access appropriate for the task. Consider using a local or cloud sandbox when the agent needs broad permissions within a restricted environment. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). +* **AI usage:** Autopilot mode can initiate multiple model interactions while working toward the goal. Monitor your {% data variables.product.prodname_ai_credits_short %} while the task runs. +* **Review:** You remain responsible for the work the agent performs. Review the changes and test results before you commit, push, or merge them. + +Use Interactive mode when you are still exploring the problem or expect to make frequent decisions. Use Plan mode when you want to review the approach before implementation begins, then move to Autopilot mode after the plan meets your requirements. + +## Autonomy and permissions + +Autopilot mode and tool permissions are separate controls: + +* Autopilot mode controls whether the agent continues through successive steps without waiting for another prompt. +* Permission settings control which tools and resources the agent can use without asking for approval. + +Autopilot mode does not automatically grant unrestricted access. If a required action is not permitted, the agent may be unable to complete the task even though Autopilot mode is active. + +Granting broad permissions can allow the agent to modify or delete files and run commands without asking you first. Limit access where possible, monitor longer tasks, and stop the agent if it takes an unsuitable approach. Stopping the current work does not undo changes the agent has already made. + +## Typical workflow + +Autopilot mode is especially useful for implementing a detailed plan: + +1. Describe the goal, relevant constraints, and how the completed work will be validated. +1. Use Plan mode to develop and review an implementation plan. +1. Move to Autopilot mode when the plan is ready. +1. Monitor the agent's progress and interrupt it if necessary. +1. Review the resulting changes and run the checks you would use for any other code change. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode) +* [AUTOTITLE](/copilot/how-tos/github-copilot-app/agent-sessions#choosing-a-session-mode) \ No newline at end of file diff --git a/content/copilot/concepts/agents/code-review.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review.md similarity index 99% rename from content/copilot/concepts/agents/code-review.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review.md index 2e6fc8a9dfc1..02edc9123372 100644 --- a/content/copilot/concepts/agents/code-review.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review.md @@ -1,5 +1,5 @@ --- -title: About GitHub Copilot code review +title: GitHub Copilot code review shortTitle: Code review allowTitleToDifferFromFilename: true intro: '{% data variables.product.prodname_copilot_short %} reviews your pull requests, identifies issues, and suggests fixes you can apply in a couple of clicks.' @@ -11,6 +11,7 @@ redirect_from: - /copilot/concepts/code-review/code-review - /copilot/concepts/code-review - /copilot/how-tos/use-copilot-agents/request-a-code-review/manage-tools + - /copilot/concepts/agents/code-review contentType: concepts category: - Learn about Copilot diff --git a/content/copilot/concepts/agents/computer-use.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use.md similarity index 89% rename from content/copilot/concepts/agents/computer-use.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use.md index 40911e56f0f3..c4a9fc4d79c9 100644 --- a/content/copilot/concepts/agents/computer-use.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use.md @@ -4,6 +4,8 @@ shortTitle: Computer use intro: '{% data variables.product.prodname_copilot_short %} can interact with desktop applications to automate tasks that cannot be completed with a more direct tool.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/computer-use contentType: concepts category: - Learn about Copilot @@ -16,7 +18,7 @@ category: {% data variables.product.prodname_copilot_short %} can interact with desktop applications on your behalf by reading accessible application content and visual context, clicking controls, entering and editing text, pressing keys, scrolling, dragging, and navigating workflows across applications. -Computer use is available in {% data variables.copilot.copilot_cli %} and {% data variables.copilot.github_copilot_app %} on macOS and Windows. +Computer use is available in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %} on macOS and Windows. Computer use expands the tasks {% data variables.product.prodname_copilot_short %} can help automate, including workflows in legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. @@ -48,13 +50,13 @@ Computer use is disabled by default. You must enable it before an agent can use Computer use follows the tool permission settings for the {% data variables.product.prodname_copilot_short %} surface where your session is running. These settings determine whether {% data variables.product.prodname_copilot_short %} asks for approval before controlling a desktop application. You can change the tool permission settings for each surface. If prompted to approve access to an application, you can grant access for the current session, save the approval for future sessions, or deny access. -If you choose **Always allow** for a specific application, {% data variables.product.prodname_copilot_short %} stores the decision locally. The decision applies to both {% data variables.copilot.copilot_cli %} and {% data variables.copilot.github_copilot_app %} on the same computer. In the app, you can review the list of always allowed applications and remove individual approvals. Removing an application deletes its saved approval for future sessions in both the app and CLI. It does not revoke access already granted in a running session. +If you choose **Always allow** for a specific application, {% data variables.product.prodname_copilot_short %} stores the decision locally. The decision applies to both {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %} on the same computer. In the app, you can review the list of always allowed applications and remove individual approvals. Removing an application deletes its saved approval for future sessions in both the app and CLI. It does not revoke access already granted in a running session. Permission rules that deny a tool take precedence over automatic or saved approvals. Enterprise administrators can disable computer use through managed settings. Enabling computer use locally does not override an enterprise policy. For configuration details, see [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings#featurescomputeruse). -You can interrupt an active operation if computer use starts acting unexpectedly. In {% data variables.copilot.copilot_cli %}, press Esc twice. In {% data variables.copilot.github_copilot_app %}, click **Stop** or press Esc. +You can interrupt an active operation if computer use starts acting unexpectedly. In {% data variables.copilot.copilot_cli %}, press Esc twice. In the {% data variables.copilot.github_copilot_app %}, click **Stop** or press Esc. On macOS, computer use guides you through granting: diff --git a/content/copilot/concepts/agents/copilot-cli/copilot-cli-in-github-actions.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/copilot-cli-in-github-actions.md similarity index 97% rename from content/copilot/concepts/agents/copilot-cli/copilot-cli-in-github-actions.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/copilot-cli-in-github-actions.md index 9324ff168358..a71182e91a98 100644 --- a/content/copilot/concepts/agents/copilot-cli/copilot-cli-in-github-actions.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/copilot-cli-in-github-actions.md @@ -1,10 +1,12 @@ --- -title: About using Copilot CLI in GitHub Actions +title: Copilot CLI in GitHub Actions shortTitle: Copilot CLI in Actions allowTitleToDifferFromFilename: true intro: 'You can run {% data variables.copilot.copilot_cli_short %} in a {% data variables.product.prodname_actions %} workflow using either a {% data variables.product.pat_generic %} or the built-in `GITHUB_TOKEN`. The two approaches differ in how {% data variables.product.prodname_ai_credits_short %} are billed and what setup is required.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/copilot-cli/copilot-cli-in-github-actions contentType: concepts category: - Learn about Copilot CLI # Copilot CLI bespoke page diff --git a/content/copilot/concepts/agents/dynamic-workflows.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows.md similarity index 99% rename from content/copilot/concepts/agents/dynamic-workflows.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows.md index 5b24f0c5b841..4e5165ded9dd 100644 --- a/content/copilot/concepts/agents/dynamic-workflows.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows.md @@ -3,6 +3,8 @@ title: Dynamic workflows intro: 'Use {% data variables.product.prodname_copilot %} to orchestrate work on complex tasks, potentially combining deterministic operations, agents, tools, API calls, and user interactions.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/dynamic-workflows contentType: concepts category: - Learn about Copilot # Copilot discovery page diff --git a/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/index.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/index.md new file mode 100644 index 000000000000..e97627b31b6f --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/index.md @@ -0,0 +1,18 @@ +--- +title: Agent-powered workflows and operations +intro: Learn how agents work autonomously, use tools to act on your behalf, and operate in automated workflows. +versions: + feature: copilot +children: + - /code-review + - /about-automations + - /about-automation-rationale-and-approvals + - /dynamic-workflows + - /about-github-agentic-workflows + - /copilot-cli-in-github-actions + - /about-remote-control + - /autopilot + - /tool-search + - /computer-use +contentType: concepts +--- diff --git a/content/copilot/concepts/agents/copilot-cli/tool-search.md b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/tool-search.md similarity index 98% rename from content/copilot/concepts/agents/copilot-cli/tool-search.md rename to content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/tool-search.md index aca6aaa7d03a..97ddb749cbc2 100644 --- a/content/copilot/concepts/agents/copilot-cli/tool-search.md +++ b/content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/tool-search.md @@ -4,6 +4,8 @@ shortTitle: Tool search intro: 'Tool search keeps your context small by letting {% data variables.copilot.copilot_cli_short %} load external tools only when a task needs them.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/copilot-cli/tool-search contentType: concepts category: - Learn about Copilot # Copilot discovery page diff --git a/content/copilot/concepts/tools/about-copilot-integrations.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations.md similarity index 95% rename from content/copilot/concepts/tools/about-copilot-integrations.md rename to content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations.md index d7e41a54ef5e..2d0233460439 100644 --- a/content/copilot/concepts/tools/about-copilot-integrations.md +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations.md @@ -1,9 +1,12 @@ --- -title: About Copilot integrations -shortTitle: About Copilot integrations +title: Copilot integrations +shortTitle: Copilot integrations +allowTitleToDifferFromFilename: true intro: 'Integrate Copilot with other tools and platforms to streamline your workflow.' versions: feature: copilot +redirect_from: + - /copilot/concepts/tools/about-copilot-integrations product: '{% data reusables.gated-features.copilot-integrations %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' contentType: concepts category: diff --git a/content/copilot/concepts/agents/cloud-agent/agent-management.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/agent-management.md similarity index 91% rename from content/copilot/concepts/agents/cloud-agent/agent-management.md rename to content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/agent-management.md index 837479d07b04..c49001a4e071 100644 --- a/content/copilot/concepts/agents/cloud-agent/agent-management.md +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/agent-management.md @@ -1,11 +1,13 @@ --- -title: About agent management +title: Agent management shortTitle: Agent management intro: 'Use one centralized control page to jump between agent sessions, check progress, and stay in control without losing your place.' product: '{% data reusables.gated-features.copilot-cloud-agent %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot redirect_from: + - /copilot/concepts/agents/agent-management + - /copilot/concepts/agents/cloud-agent/agent-management - /copilot/concepts/agents/coding-agent/agent-management - /copilot/concepts/agents/coding-agent/managing-agents contentType: concepts @@ -18,13 +20,13 @@ category: AI agents are autonomous systems that can evaluate their environment, make decisions, and take actions to complete tasks. Agents can break down complex tasks into steps, use various tools and resources, plan their approach, and adapt based on human feedback until they accomplish their assigned objective. -Agents bring automation and assistance to every stage of the software development process on {% data variables.product.github %}. You can run multiple agent sessions concurrently, allowing you to efficiently delegate work items. +Agents bring automation and assistance to every stage of the software development process on {% data variables.product.github %}. You can run multiple agent sessions concurrently, allowing you to efficiently delegate work items. -Alongside {% data variables.product.prodname_copilot_short %}, you can use {% data variables.product.prodname_anthropic_claude %} and {% data variables.product.prodname_openai_codex %}, giving you more flexibility and choice to find the right agent for a task. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). +Alongside {% data variables.product.prodname_copilot_short %}, you can use {% data variables.product.prodname_anthropic_claude %} and {% data variables.product.prodname_openai_codex %}, giving you more flexibility and choice to find the right agent for a task. See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents). -{% data variables.product.company_short %} partners can also offer their own agents as {% data variables.copilot.agent_apps %}, which you install as {% data variables.product.prodname_github_apps %} and trigger from issues, pull requests, and the Agents UI. See [AUTOTITLE](/copilot/concepts/agents/agent-apps). +{% data variables.product.company_short %} partners can also offer their own agents as {% data variables.copilot.agent_apps %}, which you install as {% data variables.product.prodname_github_apps %} and trigger from issues, pull requests, and the Agents UI. See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). -Utilizing {% data variables.copilot.custom_agents_short %} you can build out a team of task-specific agents with customized system prompts to handle simpler tasks like writing tests and refactoring, giving you bandwidth to prioritize problem-solving and collaboration. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-custom-agents). +Utilizing {% data variables.copilot.custom_agents_short %} you can build out a team of task-specific agents with customized system prompts to handle simpler tasks like writing tests and refactoring, giving you bandwidth to prioritize problem-solving and collaboration. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-custom-agents). Model choice allows you to choose from a selection of AI models to use with your agents, each with its own particular strengths. See [AUTOTITLE](/copilot/reference/ai-models/supported-models). @@ -43,7 +45,7 @@ From the Agents tab, you can: * **Open a session in {% data variables.product.prodname_vscode_shortname %} or {% data variables.copilot.copilot_cli %}**: When you want to start working on changes to an agent session in your local development environment, click **{% octicon "vscode" aria-label="VS Code" %} Open in {% data variables.product.prodname_vscode_shortname %}** or **{% octicon "agent" aria-label="Agent" %} Continue in {% data variables.copilot.copilot_cli %}** to bring the session to your local machine. {% data reusables.copilot.cloud-agent.use-latest-vscode %} * **Review and merge agent code**: Once the agent completes a session, you can jump to the pull request to review the changes, request further improvements, or approve and merge. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/review-copilot-output). -* **Set up {% data variables.copilot.copilot_automations %}**: Run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events such as an issue being opened. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +* **Set up {% data variables.copilot.copilot_automations %}**: Run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events such as an issue being opened. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). * **Query your past sessions**: You can search and reference your past agent sessions using natural language from {% data variables.copilot.copilot_cli_short %} or {% data variables.product.prodname_vscode_shortname %}. See [AUTOTITLE](/copilot/concepts/security-governance-and-network-settings/session-data). ## Next steps diff --git a/content/copilot/concepts/tools/ai-tools.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/ai-tools.md similarity index 99% rename from content/copilot/concepts/tools/ai-tools.md rename to content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/ai-tools.md index 4552125edbcd..0c362b92f754 100644 --- a/content/copilot/concepts/tools/ai-tools.md +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/ai-tools.md @@ -3,12 +3,13 @@ title: Choosing the right AI tool for your task shortTitle: AI tools intro: 'Understand {% data variables.product.github %}''s AI tools and how they can be used to help develop software.' versions: - fpt: '*' + feature: copilot redirect_from: - /copilot/using-github-copilot/guides-on-using-github-copilot/choosing-the-right-ai-tool-for-your-task - /copilot/tutorials/choosing-the-right-ai-tool-for-your-task - /copilot/concepts/choosing-the-right-ai-tool-for-your-task - /copilot/concepts/ai-tools + - /copilot/concepts/tools/ai-tools contentType: concepts category: - Learn about Copilot diff --git a/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents.md new file mode 100644 index 000000000000..265a0d182ef1 --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents.md @@ -0,0 +1,65 @@ +--- +title: Delegating and parallelizing work with agents +shortTitle: Delegate and parallelize work +intro: 'Break complex development work into focused tasks and coordinate multiple agents in the {% data variables.copilot.github_copilot_app %} or {% data variables.copilot.copilot_cli %}.' +versions: + feature: copilot +redirect_from: + - /copilot/concepts/agents/copilot-cli/fleet +contentType: concepts +category: + - Learn about Copilot +--- + +Delegating work to multiple agents can help you make progress on complex tasks more quickly. Each agent can focus on a defined part of the work, while you or another agent coordinates the overall result. + +## How agents coordinate work + +Multi-agent work typically has an orchestrator that keeps track of the overall goal. The orchestrator is usually the main agent that delegates work to subagents. + +A coordinated workflow usually involves: + +1. Breaking the goal into smaller tasks. +1. Identifying dependencies between the tasks. +1. Assigning each task to a subagent with the context and tools it needs. +1. Running independent tasks in parallel. +1. Reviewing and combining the results. + +## When to use multiple agents + +Delegation works best for: + +* **Large or complex tasks**: When your request involves multiple independent steps, such as refactoring several files, updating dependencies, or running tests across modules. +* **Parallelizable work**: If your task can be split into subtasks that don’t depend on each other. +* **Automated workflows**: When you want the quickest possible completion of a large task—for example, when you're using autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously. + +## Using the `/fleet` command to delegate and parallelize work + +When you use the `/fleet` command in the {% data variables.copilot.github_copilot_app %} or {% data variables.copilot.copilot_cli %}, the main {% data variables.product.prodname_copilot_short %} agent analyzes the prompt and determines whether it can be divided into smaller subtasks. It will assess, based on the nature of the subtasks and their dependencies, whether these can be efficiently executed by subagents. + +If it decides to assign some or all of the subtasks to subagents, it will act as orchestrator, managing the workflow and dependencies between the subtasks. + +Where possible, the orchestrator agent will run the subagents in parallel, allowing the whole task to be completed more quickly. + +Each subagent has its own context window, so it can focus on its assigned task without carrying all the context from the main session. + +### Planning work for delegation + +For a complex task, planning before delegation can clarify the goal, divide it into manageable subtasks, and reveal dependencies between them. In {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}, the `/plan` slash command can help shape that breakdown, and fleet mode can then delegate suitable subtasks to agents, running independent work in parallel. See [Using the `/fleet` slash command](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion#using-the-fleet-slash-command). + +## Considerations when using the `/fleet` command + +Using multiple agents can provide the following benefits: + +* **Faster completion:** Independent tasks can make progress at the same time. +* **Focused context:** Each agent can concentrate on a bounded task with only the relevant context. +* **Specialization:** You can assign work to custom agents or models that are suited to particular tasks. + +In addition to the benefits, there are some aspects to consider: + +* **Increased usage:** Each agent interacts with an AI model independently, so splitting work up into smaller tasks that are run by subagents may result in more LLM interactions than if the work was handled by the main agent. Using `/fleet` in a prompt may therefore cause more {% data variables.product.prodname_ai_credits %} to be consumed. +* **Task composition:** Parallel work provides the most value when the tasks are independent, the boundaries are clear, and the cost of coordinating the results is lower than the time saved. If your request is inherently sequential, using `/fleet` may not provide any benefit. + +## Next steps + +For more information on running `/fleet`, assigning specialized subagents to tasks, managing subagent tasks, and starting fleet mode directly from the command line, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion). diff --git a/content/copilot/concepts/agents/copilot-cli/rubber-duck.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion.md similarity index 77% rename from content/copilot/concepts/agents/copilot-cli/rubber-duck.md rename to content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion.md index 526399a7aef1..2c9c7c21b0d8 100644 --- a/content/copilot/concepts/agents/copilot-cli/rubber-duck.md +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion.md @@ -1,22 +1,22 @@ --- -title: About the rubber duck agent -shortTitle: About rubber duck +title: Getting a second opinion with the rubber duck agent +shortTitle: Getting a second opinion allowTitleToDifferFromFilename: true -intro: 'The rubber duck agent is a built-in critic that gives {% data variables.product.prodname_copilot_short %} a constructive second opinion on its own plans, code, and tests—using a different AI model from the one driving your session.' -product: '{% data reusables.gated-features.copilot-cli %}' +intro: 'Use the rubber duck agent to get an independent critique of plans, code, and tests in {% data variables.copilot.copilot_cli %} or the {% data variables.copilot.github_copilot_app %}.' versions: feature: copilot +redirect_from: + - /copilot/concepts/agents/copilot-cli/rubber-duck contentType: concepts category: - - Learn about Copilot # Copilot discovery page - - Learn about Copilot CLI # Copilot CLI bespoke page + - Learn about Copilot docsTeamMetrics: - copilot-cli --- ## Introduction -Rubber duck is a built-in agent in {% data variables.copilot.copilot_cli %} that acts as a constructive critic. While working on a task, the main CLI agent for a session can pass its current plan, design, implementation, or tests over to the rubber duck agent for review. The rubber duck agent looks for blind spots, design flaws, and substantive issues, and reports back with concrete, actionable feedback. {% data variables.product.prodname_copilot_short %} then takes that critique into account before continuing. +Rubber duck is a built-in agent available in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}. It acts as a constructive critic. While working on a task, the main agent for a session can pass its current plan, design, implementation, or tests to the rubber duck agent for review. The rubber duck agent looks for blind spots, design flaws, and substantive issues, and reports back with concrete, actionable feedback. {% data variables.product.prodname_copilot_short %} then takes that critique into account before continuing. The rubber duck agent is designed to review proposed changes, not to make file changes itself. The main agent for the session decides what to do with the feedback. @@ -28,11 +28,11 @@ The rubber duck agent applies a similar idea to {% data variables.product.prodna ## Second opinion from another model -A key design feature of the rubber duck agent is that it deliberately runs on a **different AI model from the one driving your session**. {% data variables.copilot.copilot_cli %} picks a critic model that contrasts with the current session model. For example, if you have chosen to use a Claude model for your session, the rubber duck agent may use a GPT model as the critic. {% data variables.copilot.copilot_cli_short %} only uses the rubber duck agent if a suitable model is available to provide a useful critique. +A key design feature of the rubber duck agent is that it deliberately runs on a **different AI model from the one driving your session**. {% data variables.product.prodname_copilot_short %} picks a critic model that contrasts with the current session model. For example, if you have chosen to use a Claude model for your session, the rubber duck agent may use a GPT model as the critic. {% data variables.product.prodname_copilot_short %} only uses the rubber duck agent if a suitable model is available to provide a useful critique. The benefit of using a different model is that the critic is less likely to share the same blind spots, biases, or failure modes as the model that produced the work. You effectively get two independent perspectives on the same problem. -The appropriate critic model is selected automatically each time the rubber duck agent is invoked, based on your current session model. If you switch session models mid-session (for example, with the `/model` command), the next invocation of the rubber duck agent picks the appropriate critic for the new session model. +The appropriate critic model is selected automatically each time the rubber duck agent is invoked, based on your current session model. If you switch models during a session, the next invocation of the rubber duck agent picks the appropriate critic for the new session model. ## What the rubber duck agent does @@ -71,7 +71,7 @@ You can also invoke the rubber duck agent with a slash command: ## Auto-invoking the rubber duck agent -If you want {% data variables.product.prodname_copilot_short %} to proactively consult the rubber duck agent without being asked, you can turn on auto-invocation for the agent from the `/subagents` picker. +In {% data variables.copilot.copilot_cli_short %}, if you want {% data variables.product.prodname_copilot_short %} to proactively consult the rubber duck agent without being asked, you can turn on auto-invocation for the agent from the `/subagents` picker. 1. In an interactive {% data variables.copilot.copilot_cli_short %} session, enter `/subagents`. 1. Use the keyboard arrow keys to select the rubber duck agent, then press Enter. @@ -101,7 +101,7 @@ When automatic invocation is enabled, {% data variables.product.prodname_copilot For small, well-understood changes {% data variables.product.prodname_copilot_short %} typically skips the rubber duck agent. -When {% data variables.product.prodname_copilot_short %} consults the rubber duck agent, it summarizes the resulting critique for you in the timeline output rather than repeating it verbatim—for example, "The critique pointed out a blind spot in my plan around X, so I updated my plan to address that." +When {% data variables.product.prodname_copilot_short %} consults the rubber duck agent, it summarizes the resulting critique in the session output rather than repeating it verbatim—for example, "The critique pointed out a blind spot in my plan around X, so I updated my plan to address that." ## Benefits of using the rubber duck agent @@ -117,4 +117,3 @@ When {% data variables.product.prodname_copilot_short %} consults the rubber duc ## Further reading * [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents#built-in-agents) - diff --git a/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/index.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/index.md new file mode 100644 index 000000000000..31c135ffb7f6 --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/index.md @@ -0,0 +1,14 @@ +--- +title: Choosing and delegating agent work +intro: Choose the right AI tool for your task and learn how agents can help you coordinate work. +versions: + feature: copilot +children: + - /ai-tools + - /agent-management + - /about-copilot-integrations + - /delegating-and-parallelizing-work-with-agents + - /getting-a-second-opinion + - /researching-with-agents +contentType: concepts +--- diff --git a/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents.md b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents.md new file mode 100644 index 000000000000..7202336a3276 --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents.md @@ -0,0 +1,58 @@ +--- +title: Researching with agents +intro: 'Use {% data variables.product.prodname_copilot_short %} agents to investigate complex questions across code, repositories, and the web, then produce detailed findings with citations.' +versions: + feature: copilot +contentType: concepts +category: + - Learn about Copilot +docsTeamMetrics: + - copilot-cli +--- + +Research agents are designed for complex questions that require extensive investigation, rather than a quick chat response. They can autonomously gather information from multiple sources, analyze and compare evidence, and produce an in-depth answer. + +Research experiences vary across {% data variables.product.prodname_copilot_short %} surfaces: + +* In {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}, the `/research` slash command conducts a multi-source investigation and produces a standalone cited report. +* {% data variables.copilot.copilot_cloud_agent %} can perform deep research on a repository as part of an ongoing agent session, then continue into planning and implementation. + +## Producing a cited research report + +In {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}, `/research` invokes a built-in research agent. The agent investigates your local codebase and repositories across your organization. It can also fetch files from public and accessible private repositories and search the web. + +The resulting report can be hundreds of lines long. It can include architecture diagrams, code examples, component analysis, and citations. + +Research reports are saved as Markdown files, so they are durable artifacts rather than transient chat responses. You can return to a report, save it elsewhere, or share it with other people. + +For instructions for {% data variables.copilot.copilot_cli_short %}, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli). For the commands available in the {% data variables.copilot.github_copilot_app %}, see [AUTOTITLE](/copilot/reference/github-copilot-app-reference/slash-commands). + +## Researching a repository with {% data variables.copilot.copilot_cloud_agent %} + +You can ask {% data variables.copilot.copilot_cloud_agent %} to investigate a repository before deciding what to change. The agent can explain how the repository works, locate relevant code, or evaluate a problem. Unlike `/research`, this workflow is part of an ongoing agent session and does not produce a standalone research report. + +In the same session, you can review the findings, steer the investigation with follow-up prompts, and ask the agent to create a plan. You can then continue into code changes. This makes {% data variables.copilot.copilot_cloud_agent_short %} useful when research is the first phase of a larger development task. + +This workflow is available through {% data variables.product.prodname_dotcom_the_website %}, including the Agents tab, agents panel, dashboard, and {% data variables.copilot.copilot_chat_short %}. It is also available in {% data variables.release-phases.public_preview %} through the Microsoft Teams and Slack integrations. Other integrations, such as Azure Boards, Jira, and Linear, only support asking the agent to create a pull request directly. + +For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/research-plan-iterate). + +## When to use agent-assisted research + +Use a research agent when you need to: + +* Understand the architecture or behavior of an unfamiliar codebase. +* Trace how a feature is implemented across multiple files or repositories. +* Investigate internal implementation patterns across your organization. +* Understand how an API, library, or technology works by drawing on code and web sources. +* Compare technologies or implementation approaches using multiple sources. +* Produce a detailed, cited artifact that you can review, save, or share. +* Investigate a problem and confirm assumptions before planning code changes. + +For a quick question with a narrow scope, a normal chat prompt is usually faster. + +## Getting useful research results + +Describe the question, scope, and desired output in your prompt. Include relevant constraints, repositories, technologies, or time periods. + +Your prompt can affect how the agent classifies the question and structures the report. Ask explicitly for the type of response you want. For example, instead of asking "What is X?", ask for "A technical deep dive into X, with architecture diagrams and code examples." diff --git a/content/copilot/concepts/agent-capabilities/index.md b/content/copilot/concepts/agent-capabilities/index.md new file mode 100644 index 000000000000..4377cc289390 --- /dev/null +++ b/content/copilot/concepts/agent-capabilities/index.md @@ -0,0 +1,13 @@ +--- +title: Agent capabilities +intro: Understand what {% data variables.product.prodname_copilot %} agents can do, how to delegate work to them, and how they operate in automated workflows. +versions: + feature: copilot +redirect_from: + - /copilot/concepts/tools +children: + - /about-agents + - /choosing-and-delegating-agent-work + - /agent-powered-workflows-and-operations +contentType: concepts +--- diff --git a/content/copilot/concepts/agents/anthropic-claude.md b/content/copilot/concepts/agents/anthropic-claude.md deleted file mode 100644 index fce475c3e86f..000000000000 --- a/content/copilot/concepts/agents/anthropic-claude.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Anthropic Claude -shortTitle: Anthropic Claude -intro: 'Use the {% data variables.product.prodname_anthropic_claude %} coding agent powered by {% data variables.product.prodname_copilot_short %}.' -product: '{% data reusables.gated-features.anthropic-claude %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' -versions: - feature: copilot -contentType: concepts ---- - -> [!NOTE] The {% data variables.product.prodname_anthropic_claude %} coding agent is currently in {% data variables.release-phases.public_preview %}. - -## Introduction - -The {% data variables.product.prodname_anthropic_claude %} coding agent uses the Claude Agent SDK and can be powered by your existing {% data variables.product.prodname_copilot_short %} subscription. For information about {% data variables.product.prodname_anthropic_claude %}, see the [{% data variables.product.prodname_anthropic_claude %} documentation](https://platform.claude.com/docs/en/agent-sdk/overview). - -## {% data variables.product.prodname_anthropic_claude %} coding agent - -Before you can assign tasks to {% data variables.product.prodname_anthropic_claude %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents#making-coding-agents-available). - -To learn more about using third-party coding agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). - -### Supported models - -When starting a task with the {% data variables.product.prodname_anthropic_claude %} coding agent, you can select the AI model used by the agent. The following models are available: - -* Auto -{% data reusables.copilot.anthropic-claude-agent-models %} - -If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_anthropic_claude %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. diff --git a/content/copilot/concepts/agents/cloud-agent/about-custom-agents.md b/content/copilot/concepts/agents/cloud-agent/about-custom-agents.md index 00207e306d2b..fee09e1be425 100644 --- a/content/copilot/concepts/agents/cloud-agent/about-custom-agents.md +++ b/content/copilot/concepts/agents/cloud-agent/about-custom-agents.md @@ -23,7 +23,7 @@ Once you create {% data variables.copilot.custom_agents_short %}, they become av * **{% data variables.copilot.copilot_cloud_agent %} on {% data variables.product.prodname_dotcom_the_website %}**: The agents tab and panel, issue assignment, and pull requests * **{% data variables.copilot.copilot_cloud_agent %} in IDEs**: {% data variables.product.prodname_vscode %}, JetBrains IDEs, Eclipse, and Xcode -* **{% data variables.copilot.github_copilot_app %}** +* **The {% data variables.copilot.github_copilot_app %}** * **{% data variables.copilot.copilot_cli %}** You can use {% data variables.copilot.agent_profiles %} directly in {% data variables.product.prodname_vscode %}, JetBrains IDEs, Eclipse, and Xcode. Some properties may function differently or be ignored between environments. diff --git a/content/copilot/concepts/agents/cloud-agent/index.md b/content/copilot/concepts/agents/cloud-agent/index.md index ed9b67eb0401..bef608f18120 100644 --- a/content/copilot/concepts/agents/cloud-agent/index.md +++ b/content/copilot/concepts/agents/cloud-agent/index.md @@ -6,10 +6,7 @@ intro: Learn how {% data variables.copilot.copilot_cloud_agent %} can carry out versions: feature: copilot children: - - /agent-management - /about-custom-agents - - /about-automations - - /about-automation-rationale-and-approvals - /mcp-and-cloud-agent contentType: concepts redirect_from: diff --git a/content/copilot/concepts/agents/copilot-cli/about-custom-agents.md b/content/copilot/concepts/agents/copilot-cli/about-custom-agents.md index 7eb1bd111c43..0d8becfc02d9 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-custom-agents.md +++ b/content/copilot/concepts/agents/copilot-cli/about-custom-agents.md @@ -33,7 +33,7 @@ In addition to the main {% data variables.product.prodname_copilot_short %} agen * **research** — This agent operates as a staff-level software engineer and research specialist. It provides exhaustive, meticulously researched answers about codebases, APIs, libraries, and software architecture. It uses {% data variables.product.github %} search/exploration tools, web fetch/search, and local tools. You can invoke it explicitly using the `/research` slash command. The main agent can also delegate research work to it when appropriate. -* **rubber-duck** — A constructive critic that gives {% data variables.product.prodname_copilot_short %} a second opinion on its own plans, code, and tests. It runs on a different model from the one driving your session, so it brings a complementary perspective. It is designed to review proposed changes, not to make file changes itself. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/rubber-duck). +* **rubber-duck** — A constructive critic that gives {% data variables.product.prodname_copilot_short %} a second opinion on its own plans, code, and tests. It runs on a different model from the one driving your session, so it brings a complementary perspective. It is designed to review proposed changes, not to make file changes itself. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion). * **security-review** — A read-only specialist that searches your codebase for exploitable security vulnerabilities and reports only high-confidence findings. You can invoke it explicitly using the `/security-review` slash command. The main agent can also delegate security-focused work to it, including when you explicitly ask it to find exploitable vulnerabilities. diff --git a/content/copilot/concepts/agents/copilot-cli/autopilot.md b/content/copilot/concepts/agents/copilot-cli/autopilot.md deleted file mode 100644 index 8a7410d702d7..000000000000 --- a/content/copilot/concepts/agents/copilot-cli/autopilot.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Allowing GitHub Copilot CLI to work autonomously -shortTitle: Autonomous task completion -allowTitleToDifferFromFilename: true -intro: 'The CLI''s autopilot mode lets {% data variables.copilot.copilot_cli_short %} work autonomously on a task, carrying out multiple steps until the task is complete.' -versions: - feature: copilot -contentType: concepts -category: - - Learn about Copilot CLI # Copilot CLI bespoke page - - Learn about Copilot # Copilot discovery page -docsTeamMetrics: - - copilot-cli ---- - -## Overview - -Typically, when you use {% data variables.copilot.copilot_cli_short %} interactively, you submit a prompt and then wait for {% data variables.copilot.copilot_cli_short %} to respond before giving the next instruction. This back-and-forth interaction continues until the task is done. - -Autopilot mode allows {% data variables.copilot.copilot_cli_short %} to work through a task without waiting for your input after each step. Once you give the initial instruction, {% data variables.copilot.copilot_cli_short %} works through each step autonomously until it determines the task is complete. - -The difference between the CLI's standard interactive mode and autopilot mode is like the difference between working on a task with a coworker, where they do most of the work, but check back with you periodically, versus handing the task over to your colleague, saying "Here's what I need—let me know when you're finished." - -In autopilot mode, {% data variables.product.prodname_copilot_short %} keeps on going until one of these happens: - -* The agent determines that the task is complete. -* A problem occurs that prevents further progress. -* You press Ctrl+C to stop the agent from continuing. -* The maximum continuation limit is reached. By default, autopilot mode pauses after 5 automatic continuation messages. You can adjust this limit with the `--max-autopilot-continues` option. - -To switch into autopilot mode during an interactive session, press Shift+Tab and cycle through the available modes until you reach autopilot mode, then enter your prompt. Use the same keypress to switch from autopilot mode back to the standard interactive mode. - -## Benefits of autopilot mode - -* **Hands-off automation:** {% data variables.product.prodname_copilot_short %} completes tasks without needing your input after the initial instruction. -* **Efficiency:** Ideal for well-defined tasks like writing tests, refactoring files, or fixing CI failures. Autopilot is particularly suited for large tasks that require long-running, multi-step sessions. -* **Batch operations:** Useful for scripting and CI workflows where you want {% data variables.product.prodname_copilot_short %} to run to completion. -* **Safety:** Autopilot mode allows {% data variables.product.prodname_copilot_short %} to take multiple self-directed steps to finish your task. By default, it pauses after 5 continuation messages; use `--max-autopilot-continues` to change this limit and avoid infinite loops. Also, in autopilot mode, {% data variables.product.prodname_copilot_short %} cannot carry out any actions that require permission unless you explicitly grant it full permissions. - -## Things to consider - -* **Task suitability:** Autopilot mode is best for well-defined tasks. It is not ideal for open-ended exploration, feature development without a clear goal, or tasks where you want to guide the ongoing work. - - {% data variables.product.prodname_copilot_short %} will do its best to complete any task, but it may struggle with vague or ambiguous instructions or tasks that require nuanced judgment calls along the way. This may result in a set of code changes that aren't what you expected and can't be used without remedial work. - -* **Trust:** You need to trust {% data variables.product.prodname_copilot_short %} to make reasonable decisions. Autopilot mode works best when you grant it approval for all permissions. This is equivalent to running {% data variables.copilot.copilot_cli_short %} with the `--allow-all` option. You should be aware that this gives the CLI permission to make any changes it deems necessary to complete the task, including altering and deleting files. - -* **Cost:** Each time {% data variables.product.prodname_copilot_short %} interacts with the AI model, it consumes {% data variables.product.prodname_ai_credits_short %} based on the number of tokens processed. The same applies in autopilot mode, except that {% data variables.product.prodname_copilot_short %} initiates each subsequent interaction autonomously, so {% data variables.product.prodname_ai_credits_short %} are consumed without your direct involvement. - -## Permissions - -When entering autopilot mode, if you have not already granted {% data variables.product.prodname_copilot_short %} all permissions, a message is displayed prompting you to choose between three options: - -```text -1. Enable all permissions (recommended) -2. Use Manual Approval for this session -3. Cancel (Esc) -``` - -You will get the best results from autopilot mode if you enable all permissions. If you choose manual approval, {% data variables.product.prodname_copilot_short %} will automatically deny any tool requests that require approval, which may prevent it from completing certain tasks. You can change your mind later and grant full permissions, during an autopilot session, by using the `/allow-all` command (or its alias `/yolo`). - -Before granting {% data variables.product.prodname_copilot_short %} wide-ranging permissions, consider using local sandboxing, or running the session in a cloud sandbox, to limit what {% data variables.product.prodname_copilot_short %} can access. - -If you enable local sandboxing while using autopilot mode, {% data variables.product.prodname_copilot_short %} completes anything it can achieve inside the sandbox without interruption. However, any step that needs to escape the sandbox—for example, writing to a file outside the current working directory—is denied. For more information about local sandboxing, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). - -## Staying in autopilot mode between tasks - -By default, autopilot mode is sticky: once {% data variables.product.prodname_copilot_short %} determines that a task is complete, {% data variables.copilot.copilot_cli_short %} remains in autopilot mode, so the next prompt you enter is also handled in autopilot mode. You can switch back to the standard interactive mode at any time by pressing Shift+Tab. - -If you'd rather have {% data variables.copilot.copilot_cli_short %} automatically switch back to interactive mode after each task completes, you can disable this behavior by setting `stayInAutopilot` to `false`. You can do this in either of the following ways: - -* During an interactive session, enter `/settings stayInAutopilot false`. -* Add `"stayInAutopilot": false` to your user configuration file (`~/.copilot/settings.json`). For more information, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson). - -When this setting is disabled, {% data variables.product.prodname_copilot_short %} automatically switches back to the standard interactive mode once a task completes. To run another task in autopilot mode, press Shift+Tab and cycle through the available modes until you re-enter autopilot mode, then enter your next prompt. - -> [!NOTE] -> This setting only controls which mode you are in _after_ a task completes. It does not cause {% data variables.product.prodname_copilot_short %} to keep working after it has decided the task is done. Autopilot still stops when the task is complete, when a problem occurs, when you press Ctrl+C, or when the continuation limit is reached. - -## Comparing autopilot mode, `--allow-all`, and `--no-ask-user` - -`--allow-all`, and its alias `--yolo`, are permissions-related options that you can pass to the `copilot` command when you start an interactive session. For a full list of available options, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). - -The `--allow-all` and `--yolo` options allow the CLI agent to use all tools, paths, and URLs. You can also set these permissions during an interactive session, by using the `/allow-all` or `/yolo` slash commands. - -> [!NOTE] -> Entering `/allow-all` and `/yolo` enables permissions for the current session. Entering these slash commands again does not disable permissions—in other words, these commands don't toggle permissions on and off. - -With `--allow-all`, you are still in the normal interactive flow. {% data variables.product.prodname_copilot_short %} will still stop and ask you what you want it to do when it reaches a decision point. However, when {% data variables.copilot.copilot_cli_short %} needs to do something that would normally require approval, such as using tools, paths, or URLs, it will go ahead without asking for permission. - -The `--no-ask-user` option suppresses clarifying questions that {% data variables.product.prodname_copilot_short %} would normally ask. Instead the agent must make decisions on its own, rather than asking for your input. This provides a degree of autonomy. However, unlike autopilot mode, `--no-ask-user` does not allow the agent to continue working on a task through successive steps where interaction with the AI model is required. With this option, the CLI won't use additional {% data variables.product.prodname_ai_credits %} without your involvement. - -## Typical workflow for using autopilot mode - -Autopilot mode is ideal for implementing a large, detailed plan of work. Often you will find it useful to switch to autopilot mode after working with {% data variables.product.prodname_copilot_short %} in plan mode to create an implementation plan. For more information about plan mode, see [AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices#2-plan-before-you-code). - -For example: - -* Start an interactive {% data variables.copilot.copilot_cli_short %} session. - - Optionally, you can include the `--allow-all` option to grant permissions, and the `--max-autopilot-continues` option to set a maximum continuation limit for autopilot mode during the session. For example, you could start the session with `copilot --allow-all --max-autopilot-continues 10` to give the agent permission to use all tools, paths, and URLs, and set a maximum continuation limit for autopilot to 10. - -* When the interactive session starts, if you're prompted to trust the files in the current folder, accept this option. -* Press Shift+Tab to switch to plan mode, enter a prompt describing what you want to achieve, then work with {% data variables.product.prodname_copilot_short %} to create a detailed plan. -* Once you have a plan that you are happy with, use the option that the CLI presents to "Accept plan and continue in Autopilot execution mode". -* If you're prompted about permissions, choose the option to enable all permissions. -* Leave {% data variables.product.prodname_copilot_short %} to implement the plan. You can check in on its progress periodically. - -## Using autopilot mode programmatically - -You can use autopilot mode when you run {% data variables.copilot.copilot_cli_short %} programmatically, for example when you pass {% data variables.product.prodname_copilot_short %} a prompt on the command line, or when you use the CLI as part of a script or CI workflow. Doing so allows you to automate tasks end-to-end without needing to interact with the CLI after the initial command. - -Use the `--allow-all` (or `--yolo`) option to grant {% data variables.product.prodname_copilot_short %} permission to use all tools, paths, and URLs. You can include the `--max-autopilot-continues` option to set a maximum continuation limit to prevent runaway loops. This is especially important in programmatic contexts where you won't be there to intervene if something goes wrong. - -Example usage: - -```shell -{% data reusables.cli.autopilot-programmatic-prompt %} -``` - -## Summary - -Use autopilot mode when you want {% data variables.product.prodname_copilot_short %} to take over a task and work to completion without your involvement. It's best for clear, well-defined tasks where you trust {% data variables.product.prodname_copilot_short %} to make reasonable decisions. - -## Further reading - -* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli) -* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet) -* [AUTOTITLE](/copilot/how-tos/copilot-cli) diff --git a/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md b/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md deleted file mode 100644 index 60b59392e8a3..000000000000 --- a/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Canceling a {% data variables.copilot.copilot_cli %} operation and rolling back changes -shortTitle: Cancel and roll back -intro: "Find out about the different ways to cancel an active {% data variables.product.prodname_copilot_short %} operation, and how to roll back changes made during a session if the result isn't what you expected." -versions: - feature: copilot -contentType: concepts -docsTeamMetrics: - - copilot-cli -category: - - Learn about Copilot # Copilot discovery page - - Learn about Copilot CLI # Copilot CLI bespoke page ---- - -## Introduction - -When you work in an interactive {% data variables.copilot.copilot_cli_short %} session, you can press Esc or Ctrl+C to control what {% data variables.product.prodname_copilot_short %} is doing. Both keypresses can cancel operations, but they work slightly differently: - -* Ctrl+C acts immediately, without a confirming second press—clearing any queued prompts and canceling the current operation. -* A single Esc keypress gives you more gradual, staged control. While {% data variables.product.prodname_copilot_short %} is actively working, a single Esc doesn't cancel right away—it shows a reminder, and a second press interrupts the current operation. In a local session, any queued prompts are then processed as the next turn. In a remote-backed or attached session, the second press fully cancels the operation instead, and queued prompts are not carried over to a follow-up turn. - -If {% data variables.product.prodname_copilot_short %} has already made changes and you want to undo them, you can roll back to a previous point in the session. As {% data variables.product.prodname_copilot_short %} works, {% data variables.copilot.copilot_cli_short %} tracks the file changes it makes as it responds to each prompt. This lets you rewind to an earlier point by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle and the input area is empty. When you rewind, you choose whether to rewind the conversation only, or to also restore the files that {% data variables.product.prodname_copilot_short %} changed. - -## What pressing Esc does in different situations - -Pressing Esc once performs different actions depending on the current state of the session: - -| Current state | What pressing Esc does | -| ------------- | --------------------------------- | -| {% data variables.product.prodname_copilot_short %} is active with no queued prompts. | Shows an "Esc again to cancel" reminder. The running operation is canceled only if you press Esc again within half a second. | -| {% data variables.product.prodname_copilot_short %} is active and there are queued prompts. | Shows the "Esc again to cancel" reminder. Pressing Esc again interrupts the current operation. In a local session, the queued prompts are then processed as the next turn; in a remote-backed or attached session, the operation is fully canceled and the queued prompts are not run as a follow-up turn. | -| A permission dialog is open. | A single Esc denies the pending request (no second press needed). | -| A dialog, overlay, or picker is open. | Closes the dialog, overlay, or picker. | -| {% data variables.product.prodname_copilot_short %} is idle. | Shows a brief reminder that pressing Esc again quickly will open the rewind picker. See [Rolling back changes](#rolling-back-changes). | - -Pressing Esc twice quickly, when {% data variables.product.prodname_copilot_short %} is idle and the input area is empty, allows you to roll back to an earlier point in the session. In other situations, a double Esc does one of the following, in this order of priority: - -* Cancels a running shell command. -* Stops the current response. -* Stops background agents. -* Clears text in the input area. - -If none of these applies, the rewind picker is displayed. - -## When to use Esc instead of Ctrl+C - -The main difference between these two ways of canceling an operation is that Esc is designed for gradual, targeted intervention, while Ctrl+C is a hard stop. - -Use Esc when you want a confirming keypress before interrupting an operation. If a permission dialog appears and you want to deny that specific request, pressing Esc once rejects the request and stops the current operation. If you've queued follow-up prompts in a local session, pressing Esc twice interrupts the current operation and processes the queued prompts as the next turn. In a remote-backed or attached session, pressing Esc twice fully cancels the operation instead, and queued prompts are not run as a follow-up turn. - -Use Ctrl+C when you want to cancel without the confirming second press that Esc requires. A single Ctrl+C immediately cancels the active operation and clears any queued prompts. Any file write that is already in progress will complete—files are not left corrupted mid-write—but any remaining planned changes are abandoned. Pressing Ctrl+C a second time within two seconds, when the input area is empty, exits the session entirely. - -As a rule of thumb, use Esc when you want to intervene selectively, and Ctrl+C when you want to stop and start over. - -## Rolling back changes - -While {% data variables.product.prodname_copilot_short %} is inactive and there is no text in the input area, you can press Esc twice to display a list of points in your current session that you can roll back to. Each point corresponds to a prompt you submitted, and rewinding takes the session back to the state it was in immediately before {% data variables.product.prodname_copilot_short %} started working on that prompt. - -After you choose a rewind point, you decide whether to: - -* **Rewind the conversation only**, leaving your files untouched. -* **Rewind the conversation and restore files**, which reverts the files {% data variables.product.prodname_copilot_short %} changed while leaving your own later edits in place. - -Because it restores only the files {% data variables.product.prodname_copilot_short %} changed rather than your whole workspace, rewind works in any directory, including folders that aren't Git repositories. - -For full details of how to use the double Esc keypress to roll back changes made during a session, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes). - -> [!WARNING] -> {% data reusables.copilot.copilot-cli.cli-rewind-warning %} - -### What happens when you roll back - -The actions that occur when you roll back depend on the option you choose. - -If you choose to rewind the conversation **and** restore files: - -1. **Files are restored.** The files {% data variables.product.prodname_copilot_short %} changed are reverted to the state they were in before the selected prompt. Files whose current contents no longer match what {% data variables.product.prodname_copilot_short %} last wrote—for example, because you edited them yourself—are skipped so your later edits aren't overwritten. -1. **Session history is truncated.** The conversation is rewound to the selected point. All messages and tool calls that occurred after that point are removed from the session. -1. **Obsolete snapshots are removed.** The captured file changes for the discarded turns are cleaned up. Earlier points remain available for future rewinds. -1. **Rollback confirmed.** After the rollback, {% data variables.product.prodname_copilot_short %} displays a message indicating how many files were restored, and notes any files that were skipped. -1. **Your prompt is restored.** The prompt associated with the selected point is placed in the input area, so you can edit and resubmit it. - -If you choose to rewind the conversation only, your files are left untouched: the session history is truncated (step 2) and your prompt is restored to the input area (step 5). - -### Changes that can't be rolled back - -File restoration is skipped, or unavailable, in the following situations: - -* **Files over 10 MB.** Individual files larger than 10 MB are skipped during capture, so changes to those files are not restored during a rollback. -* **More than 500 changed files.** If more than 500 files were changed during a single turn, file changes for that turn are not captured, so you won't be able to restore files for it. Other turns are unaffected. -* **Files you changed yourself.** Files whose current contents no longer match what {% data variables.product.prodname_copilot_short %} last wrote are left untouched rather than overwritten. -* **Sessions without file tracking.** If you resume a session that started before file-change tracking was enabled, only conversation rewind is available. Start a new session to be able to restore file changes. -* **Remote-backed or busy sessions.** Rewind isn't available for remote-backed sessions, or while the session still has work in progress. - -## Further reading - -- [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/concepts/agents/copilot-cli/fleet.md b/content/copilot/concepts/agents/copilot-cli/fleet.md deleted file mode 100644 index 23b79d1c350e..000000000000 --- a/content/copilot/concepts/agents/copilot-cli/fleet.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Running tasks in parallel with the `/fleet` command -shortTitle: Parallel task execution -allowTitleToDifferFromFilename: true -intro: 'The `/fleet` slash command lets {% data variables.copilot.copilot_cli_short %} break down a complex request into smaller tasks and run them in parallel, maximizing efficiency and throughput.' -versions: - feature: copilot -contentType: concepts -category: - - Learn about Copilot # Copilot discovery page - - Learn about Copilot CLI # Copilot CLI bespoke page -docsTeamMetrics: - - copilot-cli ---- - -## Introduction - -The `/fleet` slash command in {% data variables.copilot.copilot_cli_short %} is designed to take an implementation plan and break it down into smaller, independent tasks that can be executed in parallel by subagents. This allows for faster completion of complex requests that involve multiple steps. - -This article gives a conceptual overview of the `/fleet` slash command. - -You can also start fleet mode directly from the command line by using the `--fleet` option. This is the command-line equivalent of the `/fleet` slash command. - -For information on using the `/fleet` slash command, and the `--fleet` command line option, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion). - -## How `/fleet` works - -When you use the `/fleet` command, the main {% data variables.product.prodname_copilot_short %} agent analyzes the prompt and determines whether it can be divided into smaller subtasks. It will assess, based on the nature of the subtasks and their dependencies, whether these can be efficiently executed by subagents. If it decides to assign some or all of the subtasks to subagents, it will act as orchestrator, managing the workflow and dependencies between the subtasks. Where possible, the orchestrator agent will run the subagents in parallel, allowing the whole task to be completed more quickly. - -## Benefits of using `/fleet` - -* **Speed of task completion**: The main benefit of using the `/fleet` command is that a large, multi-part task can be completed more quickly by running subtasks in parallel. Whether parts of a large task can be worked on in parallel will be determined by the dependencies between the subtasks. Some tasks, such as creating a suite of tests for a new feature, are well suited to parallelization and will typically complete faster when you use the `/fleet` slash command. - -* **Specialization**: If you've defined custom agents that are specialized for certain types of work, these may be used by the subagents. This allows for specialization, with the subagents using the custom agents best suited to the specific subtask they are working on. - - By default, subagents use a low-cost AI model. However, you can tell {% data variables.product.prodname_copilot_short %} to use a specific model for part of the work. For example, within a larger prompt, you could specify `... Use GPT-5.3-Codex, to create ... Use Claude Opus 5, to analyze ...`. If a subagent uses a custom agent profile that specifies a particular AI model, then that model will be used by the subagent. Using a specific model may produce better quality results for particular types of subtask. - - If custom agents are available, {% data variables.product.prodname_copilot_short %} will decide whether to use one to complete a particular subtask. However, if you know that a specific custom agent is well-suited to a particular subtask, you can specify this in your prompt by using `@CUSTOM-AGENT-NAME`. For example, within a larger prompt: `... Use @test-writer to create comprehensive unit tests for ...`. - - For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli). - -* **Context window**: Each subagent has its own context window, separate from the main agent and other subagents. This allows each subagent to focus on its specific task without being overwhelmed by the full context of the larger task. - -## When should you use `/fleet`? - -* **Large or complex tasks**: When your request involves multiple independent steps, such as refactoring several files, updating dependencies, or running tests across modules. -* **Parallelizable work**: If your task can be split into subtasks that don’t depend on each other. -* **Automated workflows**: When you want the quickest possible completion of a large task—for example, when you're using autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously. - -## Points to consider - -* **{% data variables.product.prodname_ai_credits %} usage**: When you submit a prompt in the CLI and {% data variables.product.prodname_copilot_short %} interacts with the selected large language model (LLM) to generate a response, this consumes {% data variables.product.prodname_ai_credits %}. More interactions with the LLM result in a higher consumption of {% data variables.product.prodname_ai_credits %}. - - Each subagent can interact with the LLM independently of the main agent, so splitting work up into smaller tasks that are run by subagents may result in more LLM interactions than if the work was handled by the main agent. Using `/fleet` in a prompt may therefore cause more {% data variables.product.prodname_ai_credits %} to be consumed. - -* **Task composition**: Work is best suited to execution by multiple subagents if it can be decomposed into independent subtasks. If your request is inherently sequential, using the `/fleet` slash command mode may not provide any benefit. - -## Relationship between `/fleet` and autopilot mode - -The `/fleet` slash command is often used in autopilot mode, but these are distinct features that can be used independently: - -* **Autopilot mode** allows {% data variables.product.prodname_copilot_short %} to continue working autonomously until a task is complete, auto-responding to requests that would otherwise require user intervention. -* **`/fleet`** is all about using subagents to execute tasks in parallel, while the main agent manages the overall workflow. You can use the `/fleet` slash command in interactive sessions independently of autopilot mode. - -A typical workflow for using `/fleet` in autopilot mode might look like this: - -1. Press Shift+Tab to switch into plan mode and work with {% data variables.copilot.copilot_cli_short %} to create an implementation plan. -1. Recognize that the completed plan contains multiple elements and looks like a good candidate for `/fleet`. -1. Select the **Accept plan and continue in Autopilot execution mode + /fleet** option that's displayed when the plan is complete. - -For more information about autopilot mode, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). - -## Further reading - -* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion) -* [AUTOTITLE](/copilot/how-tos/copilot-cli) -* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/overview) diff --git a/content/copilot/concepts/agents/copilot-cli/index.md b/content/copilot/concepts/agents/copilot-cli/index.md index 05e30130703b..12392eed52f3 100644 --- a/content/copilot/concepts/agents/copilot-cli/index.md +++ b/content/copilot/concepts/agents/copilot-cli/index.md @@ -7,18 +7,10 @@ versions: feature: copilot children: - /comparing-cli-features - - /copilot-cli-in-github-actions - - /cancel-and-roll-back - /context-management - - /about-remote-control - /about-custom-agents - - /autopilot - - /fleet - - /research - - /rubber-duck - /lsp-servers - /about-cli-extensions - - /tool-search - /understanding-local-sandboxing contentType: concepts docsTeamMetrics: diff --git a/content/copilot/concepts/agents/copilot-cli/research.md b/content/copilot/concepts/agents/copilot-cli/research.md deleted file mode 100644 index a910c262e34f..000000000000 --- a/content/copilot/concepts/agents/copilot-cli/research.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: Researching with {% data variables.copilot.copilot_cli %} -shortTitle: Researching with {% data variables.product.prodname_copilot_short %} -allowTitleToDifferFromFilename: true -intro: 'The `/research` slash command turns {% data variables.product.prodname_copilot_short %} into your research assistant, gathering in-depth information and insights on a topic.' -versions: - feature: copilot -contentType: concepts -category: - - Learn about Copilot # Copilot discovery page - - Learn about Copilot CLI # Copilot CLI bespoke page -docsTeamMetrics: - - copilot-cli ---- - -## Introduction - -{% data variables.copilot.copilot_cli_short %}'s `/research` slash command is a powerful tool for deep research and investigation. When you enter `/research` followed by details of what you want to know about, {% data variables.product.prodname_copilot_short %} activates a specialized research agent that gathers and processes information from your codebase, from relevant {% data variables.product.github %} repositories, and from the web. This built-in custom agent produces a comprehensive Markdown report with citations, along with a brief summary in the CLI. You can view the full report and save it as a gist on {% data variables.product.github %}, making it easy to share. - -The command is designed to provide exhaustive, well-cited answers to complex questions about codebases, APIs, libraries, software architecture and other technical topics. - -## Using the `/research` slash command - -In an interactive CLI session, enter: - -```copilot copy -/research TOPIC -``` - -Where `TOPIC` is a natural language description of what you want to find out about. - -Depending on the permissions you have given the CLI, {% data variables.product.prodname_copilot_short %} may ask you to grant permission for it to create a directory in which to store data as it compiles the research. - -When the research is complete, {% data variables.product.prodname_copilot_short %} shows you a summary of the key findings, and gives you a link to a Markdown file containing the full report. - -## Viewing and sharing a research report - -You can use the link displayed when the research completes to view the full report in your default editor for Markdown files. - -Alternatively, press Ctrl+Y to open the current session's most recent research report in the terminal. - -> [!NOTE] -> The application used to display a report when you press Ctrl+Y is determined by the value of the `COPILOT_EDITOR`, `VISUAL`, or `EDITOR` environment variables (in that order of precedence). On Linux and macOS, if none of these are set, the CLI will use vi. - -To share the report you can either save it to a file or create a {% data variables.product.github %} gist. - -1. To create a gist enter: - - ```copilot copy - /share gist research - ``` - - To save to a file, enter: - - ```copilot copy - /share file research [PATH] - ``` - - If you omit the `[PATH]` parameter, the file will be saved to the current working directory with a filename based on the research topic. - -1. Use the up/down and enter keys to select the report you want to share from the list of research reports you've created during the current session. - - The URL of the gist, or the path to the file, is displayed in the CLI. - -## Benefits of `/research` - -* **Depth over speed**: Normal chat is optimized for quick answers. `/research` is optimized for thoroughness. It produces reports that can be hundreds of lines long, with architecture diagrams, code snippets, and citations. - -* **Saved and shareable output**: Reports are saved to disk as Markdown files. You can view and share them at any time. This makes the research output a permanent artifact, rather than a transient chat message. - -* **Works across repositories**: When logged into {% data variables.product.github %}, the agent can search across your organization's repositories, fetch files from any public or accessible private repository, and search the web—it's not limited to your local codebase. - -* **Query-type adaptation**: Rather than generating a standard, one-size-fits-all report, the response format automatically adapts to whether you're asking a how-to question, a conceptual question, or requesting a technical deep-dive. - -* **Autonomous operation**: The agent never interrupts you with clarifying questions. It makes reasonable assumptions and explicitly documents them in a "Confidence Assessment" section. - -## Example prompts for `/research` - -### Codebase architecture - -```copilot copy -/research What is the architecture of this codebase? -``` - -**Why it works well**: The research agent has access to `grep`, `glob`, and `view` tools scoped to your current working directory. It can explore the full project tree, read key files, and synthesize an architectural overview—something a normal chat response might do only superficially. The agent will typically produce architecture diagrams, component breakdowns, and data flow descriptions. - -### How a specific technology works - -```copilot copy -/research How does React implement concurrent rendering? -``` - -**Why it works well**: The agent uses specialized tools to pull information from the internet, and to look at actual React source code on {% data variables.product.github %}. It's instructed to prioritize code over documentation and provide file paths with line numbers. - -### Understanding internal implementation patterns - -```copilot copy -/research How are feature flags implemented at our organization? -``` - -**Why it works well**: The agent is explicitly instructed to "always prioritize internal/private implementations over public/open-source alternatives" and to search the organization's repositories first using `org:ORGNAME` queries. It knows to look for internal naming patterns like `-hub`, `-service`, `-client`. - -### Comparing technologies or approaches - -```copilot copy -/research What's the difference between JWT and session-based authentication? -``` - -**Why it works well**: The agent adapts its response to "Conceptual/Explanatory Questions" with narrative explanations, trade-offs, and design decisions. It will typically use tables for comparisons of three or more items. - -### Process/how-to questions - -```copilot copy -/research How do I add an endpoint to the API? -``` - -**Why it works well**: The agent is trained to detect query type and provide step-by-step guidance with links to relevant docs, contacts, and systems for process/how-to type questions. - -### Deep-diving into a specific codebase component - -```copilot copy -/research How is the session management system implemented in this repo? -``` - -**Why it works well**: Combining local tools (`grep`, `glob`, `view`) with the agent's instructions to "trace imports, calls, and type references" and "follow dependencies" means it will walk through the actual implementation, not just give a high-level answer. - -## When you might _not_ want to use `/research` - -* **Quick, simple questions**: If you just want to know "What does this function do?" or "Fix this bug", a normal chat message is faster and more appropriate. `/research` is designed for questions requiring extensive investigation. - -* **When you need code changes**: `/research` produces a report, not code modifications. It uses the `create` tool to save the report file, but does not use `edit`, `bash`, or other code-modification tools. If you need the agent to actually change your code, use a normal prompt (typically starting in plan mode). - -* **Time-sensitive interactions**: Research takes longer than a normal response because the agent makes many tool calls (searching code, fetching files, searching the web). If you need a quick answer in the flow of coding, normal chat is better. - -## Considerations and things to be aware of - -* **Reports are tied to your session**: Research reports are stored in a session-specific research directory. If you start a new session, previous research won't be available within the CLI when you use the Ctrl+Y shortcut or the `/share` slash command. However, you can access previous reports from the appropriate `~/.copilot/session-state/SESSION-ID/research/` directory. - - In Linux or macOS, you can use the following command at a terminal command prompt to list the 10 most recent CLI session directories: - - ```bash copy - ls -dtl ~/.copilot/session-state/*/ | head -10 - ``` - -* **The research agent uses a specific model**: The research agent is hard-coded to use a particular AI model (see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#built-in-agents)). The model selection is not configurable via the `/model` command. The research agent always uses the defined model regardless of what model you've selected for your main session. - -* **Report quality varies by query type**: The agent classifies your query into three types and adapts its response accordingly: - - * **Process questions** → step-by-step guidance (minimal code). - * **Conceptual questions** → narrative explanation with context. - * **Technical deep-dives** → full architecture diagrams, component sections, and code examples. - - The way you phrase your prompt may affect the agent's choice of research classification. For example, if you want a technical deep-dive but you phrase your question as "What is X?", you might get a conceptual answer. In this situation you could rephrase your prompt to be more explicit about the type of report you want {% data variables.product.prodname_copilot_short %} to produce. For example: "Give me a technical deep-dive into X, with architecture diagrams and code examples." - -## Further reading - -* [AUTOTITLE](/copilot/how-tos/copilot-cli) -* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/overview) diff --git a/content/copilot/concepts/agents/index.md b/content/copilot/concepts/agents/index.md index c13ee71cbc24..b5e69471d238 100644 --- a/content/copilot/concepts/agents/index.md +++ b/content/copilot/concepts/agents/index.md @@ -8,17 +8,9 @@ versions: children: - /cloud-agent - /copilot-cli - - /code-review - - /computer-use - - /about-github-agentic-workflows - /copilot-memory - - /dynamic-workflows - /hooks - /about-plugins - - /about-third-party-coding-agents - - /agent-apps - - /openai-codex - - /anthropic-claude - /about-agent-skills contentType: concepts --- diff --git a/content/copilot/concepts/agents/openai-codex.md b/content/copilot/concepts/agents/openai-codex.md deleted file mode 100644 index cd38ab50c055..000000000000 --- a/content/copilot/concepts/agents/openai-codex.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: OpenAI Codex -shortTitle: OpenAI Codex -allowTitleToDifferFromFilename: true -intro: 'Use the {% data variables.product.prodname_openai_codex %} coding agent and Visual Studio Code extension powered by {% data variables.product.prodname_copilot_short %}.' -product: '{% data reusables.gated-features.openai-codex %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' -versions: - feature: copilot -contentType: concepts -category: - - Learn about Copilot ---- - -> [!NOTE] {% data variables.product.prodname_openai_codex %} integration is currently in {% data variables.release-phases.public_preview %}. - -## Introduction - -The {% data variables.product.prodname_openai_codex %} coding agent and the {% data variables.product.prodname_vscode_shortname %} {% data variables.product.prodname_openai_codex %} integration use the Codex SDK and can be powered by your existing {% data variables.product.prodname_copilot_short %} subscription. For more information about how {% data variables.product.prodname_openai_codex %} works, see the [{% data variables.product.prodname_openai_codex %} documentation](https://developers.openai.com/codex). - -## {% data variables.product.prodname_openai_codex %} coding agent - -Before you can assign tasks to {% data variables.product.prodname_openai_codex %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents#making-coding-agents-available). - -To learn more about using third-party agents on {% data variables.product.github %}, see [AUTOTITLE](/free-pro-team@latest/copilot/concepts/agents/about-third-party-coding-agents). - -### Supported models - -When starting a task with the {% data variables.product.prodname_openai_codex %} coding agent, you can select the AI model used by the agent. The following models are available: - -* Auto -{% data reusables.copilot.openai-codex-agent-models %} - -If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_openai_codex %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. - -## {% data variables.product.prodname_vscode_shortname %} extension - -> [!NOTE] The "Sign in with {% data variables.product.prodname_copilot_short %}" option in the {% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode_shortname %} extension is only available to {% data variables.copilot.copilot_pro_plus %} and {% data variables.copilot.copilot_max_short %} subscribers. - -Use "Sign in with {% data variables.product.prodname_copilot_short %}" when launching the extension. {% data variables.copilot.copilot_pro_plus_short %} and {% data variables.copilot.copilot_max_short %} users can see this integration in the [Agent Sessions view](https://code.visualstudio.com/docs/copilot/chat/chat-sessions#_agent-sessions-view) in {% data variables.product.prodname_vscode_shortname %} Insiders along with progress on their running tasks. All usage is subject to {% data variables.product.github %} rate limits and billing. See [AUTOTITLE](/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests#premium-features). - -### Model availability - -A subset of available models may only be available in the {% data variables.product.prodname_openai_codex %} extension. Model availability and visibility is not governed by {% data variables.product.prodname_copilot_short %} model configuration policies. diff --git a/content/copilot/concepts/context/mcp.md b/content/copilot/concepts/context/mcp.md index eddaf6cf48ff..c412343d3582 100644 --- a/content/copilot/concepts/context/mcp.md +++ b/content/copilot/concepts/context/mcp.md @@ -54,7 +54,7 @@ MCP is supported across the following clients: * **IDEs**: There is broad support for local MCP servers in clients such as {% data variables.product.prodname_vscode %}, JetBrains IDEs, Xcode, and others. Support for remote MCP servers is growing, with editors like {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs, Xcode, Eclipse, Cursor, and Windsurf providing this functionality with OAuth or PAT. To find out if your preferred editor supports remote MCP servers, check the documentation for your specific editor. * **{% data variables.copilot.copilot_cli_short %}**: {% data variables.copilot.copilot_cli %} supports both local and remote MCP servers. The {% data variables.product.github %} MCP server is built in and available without additional configuration. -* **{% data variables.copilot.github_copilot_app %}**: The {% data variables.copilot.github_copilot_app %} supports MCP servers configured in your repository or {% data variables.copilot.copilot_cli_short %} and lets you add additional MCP servers in app settings. +* **The {% data variables.copilot.github_copilot_app %}**: The {% data variables.copilot.github_copilot_app %} supports MCP servers configured in your repository or {% data variables.copilot.copilot_cli_short %} and lets you add additional MCP servers in app settings. * **Chat on {% data variables.product.prodname_dotcom_the_website %}**: Chat is preconfigured with tools for tasks such as creating branches, updating files, and semantic code search. See [AUTOTITLE](/copilot/concepts/copilot-surfaces/copilot-on-github). * **{% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}**: {% data variables.product.prodname_dotcom_the_website %} supports MCP servers configured at the repository level. The configuration applies to both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. The {% data variables.product.github %} MCP server and Playwright MCP server are configured by default. diff --git a/content/copilot/concepts/copilot-surfaces/copilot-cli.md b/content/copilot/concepts/copilot-surfaces/copilot-cli.md index 70ea8bb3950f..0e9f28004cbe 100644 --- a/content/copilot/concepts/copilot-surfaces/copilot-cli.md +++ b/content/copilot/concepts/copilot-surfaces/copilot-cli.md @@ -124,7 +124,7 @@ The following sections provide examples of tasks you can complete with {% data v ### Computer use -In local sessions on macOS and Windows, you can enable computer use to let {% data variables.product.prodname_copilot_short %} interact with desktop applications. This capability is useful for workflows in legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. For more information, see [AUTOTITLE](/copilot/concepts/agents/computer-use). +In local sessions on macOS and Windows, you can enable computer use to let {% data variables.product.prodname_copilot_short %} interact with desktop applications. This capability is useful for workflows in legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use). ### Tasks involving {% data variables.product.prodname_dotcom_the_website %} diff --git a/content/copilot/concepts/copilot-surfaces/github-copilot-app.md b/content/copilot/concepts/copilot-surfaces/github-copilot-app.md index 4bf180d364f7..e2a167ff1612 100644 --- a/content/copilot/concepts/copilot-surfaces/github-copilot-app.md +++ b/content/copilot/concepts/copilot-surfaces/github-copilot-app.md @@ -2,7 +2,7 @@ title: GitHub Copilot app shortTitle: GitHub Copilot app intro: 'The {% data variables.copilot.github_copilot_app %} is a desktop application for agent-driven development that brings parallel workstreams, {% data variables.product.github %} integration, and PR lifecycle management into one place.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: concepts @@ -50,9 +50,9 @@ The {% data variables.copilot.github_copilot_app %} supports the following opera * **Chats:** Brainstorm in a conversation mode without creating a dedicated branch or workspace. * **Session history:** Use `/chronicle` to get insights from previous sessions, including work you started in the app. * **Canvases:** Open custom, agent-driven artifacts and interfaces where people and agents can collaborate. -* **Computer use:** Allow local sessions on macOS and Windows to interact with desktop applications, including legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. For more information, see [AUTOTITLE](/copilot/concepts/agents/computer-use). +* **Computer use:** Allow local sessions on macOS and Windows to interact with desktop applications, including legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use). -## {% data variables.copilot.github_copilot_app %} workflow +## The {% data variables.copilot.github_copilot_app %} workflow A typical workflow in the {% data variables.copilot.github_copilot_app %} looks like this: @@ -86,7 +86,7 @@ For {% data variables.copilot.copilot_business_short %} and {% data variables.co ## Public code -{% data variables.copilot.github_copilot_app %} may generate code that is a match or near match of publicly available code, even if the "Suggestions matching public code" policy is set to "Block." See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code). +The {% data variables.copilot.github_copilot_app %} may generate code that is a match or near match of publicly available code, even if the "Suggestions matching public code" policy is set to "Block." See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code). ## Further reading diff --git a/content/copilot/concepts/enterprise/agent-management.md b/content/copilot/concepts/enterprise/agent-management.md index 56168e98d551..002e2b050e0f 100644 --- a/content/copilot/concepts/enterprise/agent-management.md +++ b/content/copilot/concepts/enterprise/agent-management.md @@ -58,7 +58,7 @@ Third-party agents, or partner agents, such as Claude and Codex work alongside { Enterprise administrators and AI managers can control the availability of third-party agents from the Agents page in the AI Controls view. These policies govern third-party agent usage on {% data variables.product.prodname_dotcom_the_website %}. -For more information about available third-party agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). +For more information about available third-party agents, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents). ## Local agents diff --git a/content/copilot/concepts/enterprise/cloud-agent-access.md b/content/copilot/concepts/enterprise/cloud-agent-access.md index 66f9f6ea5e45..a3dc4cc9fe29 100644 --- a/content/copilot/concepts/enterprise/cloud-agent-access.md +++ b/content/copilot/concepts/enterprise/cloud-agent-access.md @@ -55,7 +55,7 @@ For information on disabling {% data variables.copilot.copilot_cloud_agent %} in ## Managing access to {% data variables.copilot.copilot_automations_cap %} -{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). {% data reusables.copilot.cloud-agent.automations-availability %} diff --git a/content/copilot/concepts/enterprise/learning-about-new-features-and-models.md b/content/copilot/concepts/enterprise/learning-about-new-features-and-models.md index 2ecec9d8ac51..451875c3317b 100644 --- a/content/copilot/concepts/enterprise/learning-about-new-features-and-models.md +++ b/content/copilot/concepts/enterprise/learning-about-new-features-and-models.md @@ -38,7 +38,7 @@ To learn about new {% data variables.product.prodname_copilot_short %} features, | Assistive | Respond to prompts and provide suggestions, but require human review before changes are made. | Inline suggestions, {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_for_prs %}. | All changes require user approval. | | Agentic | Autonomously research, plan, and make changes on behalf of users. | {% data variables.copilot.copilot_cloud_agent %}, third-party agents. | Can work autonomously, but with built-in protections. | | Customizations | Add context, instructions, tools, skills, and agents to tailor how {% data variables.product.prodname_copilot_short %} responds and works. | Custom instructions, prompt files, {% data variables.copilot.copilot_spaces %}, MCP servers, agent skills, custom agents. | Support and configuration vary by feature and surface. Organization and enterprise policies can control access to some customizations. | -| External AI agents, models, and tools | External coding agents, models, and tools, including MCP servers from other providers, that work alongside {% data variables.copilot.copilot_cloud_agent %} to complete tasks asynchronously. | {% data variables.product.prodname_anthropic_claude %}, {% data variables.product.prodname_openai_codex %}. | Same as agentic. Review provider documentation and enable via policies. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). | +| External AI agents, models, and tools | External coding agents, models, and tools, including MCP servers from other providers, that work alongside {% data variables.copilot.copilot_cloud_agent %} to complete tasks asynchronously. | {% data variables.product.prodname_anthropic_claude %}, {% data variables.product.prodname_openai_codex %}. | Same as agentic. Review provider documentation and enable via policies. See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents). | {% endrowheaders %} diff --git a/content/copilot/concepts/index.md b/content/copilot/concepts/index.md index 3ae153975230..603b055cbb3c 100644 --- a/content/copilot/concepts/index.md +++ b/content/copilot/concepts/index.md @@ -7,9 +7,9 @@ versions: children: - /copilot-surfaces - /agents + - /agent-capabilities - /prompting - /context - - /tools - /models - /billing-and-usage - /security-governance-and-network-settings diff --git a/content/copilot/concepts/models/auto-model-selection.md b/content/copilot/concepts/models/auto-model-selection.md index 4d08c4d61f03..efd9c0a4e365 100644 --- a/content/copilot/concepts/models/auto-model-selection.md +++ b/content/copilot/concepts/models/auto-model-selection.md @@ -19,7 +19,7 @@ More than just a model picker, {% data variables.copilot.copilot_auto_model_sele ### Auto with task optimization -> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website, in {% data variables.product.prodname_vscode_shortname %}, in {% data variables.copilot.copilot_cli_short %}, in {% data variables.copilot.github_copilot_app %}, and in JetBrains IDEs. +> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website, in {% data variables.product.prodname_vscode_shortname %}, in {% data variables.copilot.copilot_cli_short %}, in the {% data variables.copilot.github_copilot_app %}, and in JetBrains IDEs. {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization combines two systems to provide high quality results and better reliability. One system tracks real-time system health and availability, while the other evaluates task complexity. Putting these together, {% data variables.copilot.copilot_auto_model_selection_short %} routes the task to the optimal model. @@ -35,7 +35,7 @@ Benefits of using {% data variables.copilot.copilot_auto_model_selection_short % #### Auto tier options -When using auto with task optimization, there are three tiers available. Use these tiers to adjust how {% data variables.copilot.copilot_auto_model_selection_short %} preferentially routes models for each prompt. +When using auto with task optimization, there are three tiers available. Use these tiers to adjust how {% data variables.copilot.copilot_auto_model_selection_short %} preferentially routes models for each prompt. | Tier | Priority | Typical use | | --- | --- | --- | @@ -44,11 +44,11 @@ When using auto with task optimization, there are three tiers available. Use the | **Intelligence** | Quality | Built for complex tasks. | With tiers, {% data variables.copilot.copilot_auto_model_selection_short %} still considers the prompt for each task. The same models remain available in each tier, but tiered routing changes how preferred models are selected for each task. Examples for each tier: -* **Efficiency**: All prompts are routed to the most cost-efficient and appropriately capable model for the task. +* **Efficiency**: All prompts are routed to the most cost-efficient and appropriately capable model for the task. * **Balance**: For each prompt, the model is selected by considering cost, quality, and latency, to provide cost effective and efficient performance appropriate to the complexity of each prompt. * **Intelligence**: Prompts are evaluated for which model would provide the highest quality response. A simple prompt could still be routed to a smaller model, while a complex prompt is routed to the most capable model for that task. -Usage is still charged based on the model auto selects, regardless of tier, alongside the 10% discount for users on paid plans. See [Discount for auto model selection](#discount-for-using-auto-model-selection). +Usage is still charged based on the model auto selects, regardless of tier, alongside the 10% discount for users on paid plans. See [Discount for auto model selection](#discount-for-using-auto-model-selection). ### Auto optimized for model reliability and availability @@ -81,14 +81,14 @@ When you select **Auto**, {% data variables.copilot.copilot_auto_model_selection {% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, with task optimization, is generally available in these {% data variables.product.prodname_copilot_short %} products: * {% data variables.copilot.copilot_chat_short %}, on the {% data variables.product.github %} website and supported IDEs * {% data variables.copilot.copilot_cli_short %} -* {% data variables.copilot.github_copilot_app %} +* The {% data variables.copilot.github_copilot_app %} * {% data variables.copilot.copilot_cloud_agent %} -> [!NOTE] Auto tiers are only available on {% data variables.product.prodname_vscode_shortname %}, {% data variables.copilot.copilot_cli_short %}, and {% data variables.copilot.github_copilot_app %} . +> [!NOTE] Auto tiers are only available on {% data variables.product.prodname_vscode_shortname %}, {% data variables.copilot.copilot_cli_short %}, and the {% data variables.copilot.github_copilot_app %} . > [!TIP] > You can see which model was used for each {% data variables.product.prodname_copilot_short %} response. -> * In **{% data variables.copilot.copilot_chat_short %}** and **{% data variables.copilot.github_copilot_app %}**, hover over the response. +> * In **{% data variables.copilot.copilot_chat_short %}** and **the {% data variables.copilot.github_copilot_app %}**, hover over the response. > * In **{% data variables.copilot.copilot_cli_short %}**, the model used for each response displays in the terminal. > * In **{% data variables.copilot.copilot_cloud_agent %}**, the model used for each response displays at the end of the response. diff --git a/content/copilot/concepts/models/bring-your-own-key.md b/content/copilot/concepts/models/bring-your-own-key.md index 55ddb144d6c4..b55fe09e4673 100644 --- a/content/copilot/concepts/models/bring-your-own-key.md +++ b/content/copilot/concepts/models/bring-your-own-key.md @@ -23,7 +23,7 @@ Local BYOK is available in the following clients. | JetBrains | [Bring your own key (BYOK) support for JetBrains IDEs and Xcode](https://github.blog/changelog/2025-09-11-bring-your-own-key-byok-support-for-jetbrains-ides-and-xcode-in-public-preview/#try-it-out) on {% data variables.product.prodname_blog %} | | Xcode | [Bring your own key (BYOK) support for JetBrains IDEs and Xcode](https://github.blog/changelog/2025-09-11-bring-your-own-key-byok-support-for-jetbrains-ides-and-xcode-in-public-preview/#try-it-out) on {% data variables.product.prodname_blog %} | | {% data variables.copilot.copilot_cli_short %} | [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models) | -| {% data variables.copilot.github_copilot_app %} | [AUTOTITLE](/copilot/how-tos/github-copilot-app/use-byok-models) | +| The {% data variables.copilot.github_copilot_app %} | [AUTOTITLE](/copilot/how-tos/github-copilot-app/use-byok-models) | | {% data variables.copilot.copilot_sdk_short %} | [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) | For users on a {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} plan, the ability to use local BYOK in IDEs can be disabled by an enterprise or organization policy. diff --git a/content/copilot/concepts/models/utility-models.md b/content/copilot/concepts/models/utility-models.md index cee78f60592b..66cbaa43bb9e 100644 --- a/content/copilot/concepts/models/utility-models.md +++ b/content/copilot/concepts/models/utility-models.md @@ -6,7 +6,7 @@ versions: contentType: concepts --- -Utility models are a small set of models that are automatically enabled for all {% data variables.product.prodname_copilot %} users across every plan. They power background features such as the generation of commit messages or chat session titles, and they apply across {% data variables.product.prodname_copilot_short %} surfaces: in IDEs, on {% data variables.product.github %}, in {% data variables.copilot.copilot_cli_short %}, and in {% data variables.copilot.github_copilot_app %}. +Utility models are a small set of models that are automatically enabled for all {% data variables.product.prodname_copilot %} users across every plan. They power background features such as the generation of commit messages or chat session titles, and they apply across {% data variables.product.prodname_copilot_short %} surfaces: in IDEs, on {% data variables.product.github %}, in {% data variables.copilot.copilot_cli_short %}, and in the {% data variables.copilot.github_copilot_app %}. ## How do utility models work? diff --git a/content/copilot/concepts/security-governance-and-network-settings/about-cloud-and-local-sandboxes.md b/content/copilot/concepts/security-governance-and-network-settings/about-cloud-and-local-sandboxes.md index 9008d1b77d6c..44526edaf44f 100644 --- a/content/copilot/concepts/security-governance-and-network-settings/about-cloud-and-local-sandboxes.md +++ b/content/copilot/concepts/security-governance-and-network-settings/about-cloud-and-local-sandboxes.md @@ -65,7 +65,7 @@ The CLI's built-in file tools—first-party commands that are part of the CLI, r In the {% data variables.copilot.github_copilot_app %}, project settings define the local sandboxing default for new local repository and working tree sessions. You can also change sandboxing for an active local session without changing the project default. -For more information about enabling local sandboxing in {% data variables.copilot.copilot_cli_short %} and {% data variables.copilot.github_copilot_app_short %}, see [AUTOTITLE](/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing). +For more information about enabling local sandboxing in {% data variables.copilot.copilot_cli_short %} and the {% data variables.copilot.github_copilot_app_short %}, see [AUTOTITLE](/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing). ### Configuring local sandboxing diff --git a/content/copilot/concepts/security-governance-and-network-settings/content-exclusion.md b/content/copilot/concepts/security-governance-and-network-settings/content-exclusion.md index 5b92997ba3a1..df2ffef1eeea 100644 --- a/content/copilot/concepts/security-governance-and-network-settings/content-exclusion.md +++ b/content/copilot/concepts/security-governance-and-network-settings/content-exclusion.md @@ -44,7 +44,7 @@ The {% data variables.copilot.copilot_business_short %} and {% data variables.co | Azure Data Studio | {% octicon "x" aria-label="Not supported" %} | Not applicable | | The {% data variables.product.github %} website | Not applicable | {% octicon "check" aria-label="Supported" %} | | {% data variables.product.prodname_mobile %} | Not applicable | {% octicon "check" aria-label="Supported" %} | -| {% data variables.copilot.github_copilot_app %} | Not applicable | {% octicon "check" aria-label="Supported" %} | +| The {% data variables.copilot.github_copilot_app %} | Not applicable | {% octicon "check" aria-label="Supported" %} | | {% data variables.copilot.copilot_cli %} | Not applicable | {% octicon "check" aria-label="Supported" %} | Content exclusions also apply to {% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website. diff --git a/content/copilot/concepts/security-governance-and-network-settings/risks-and-mitigations.md b/content/copilot/concepts/security-governance-and-network-settings/risks-and-mitigations.md index df3b5a925e81..53523ee2c99f 100644 --- a/content/copilot/concepts/security-governance-and-network-settings/risks-and-mitigations.md +++ b/content/copilot/concepts/security-governance-and-network-settings/risks-and-mitigations.md @@ -64,7 +64,7 @@ To mitigate this risk, {% data variables.copilot.copilot_cloud_agent %} is desig ## Automations run without a person initiating each task -{% data variables.copilot.copilot_automations_cap %} run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events, without a person initiating each task. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). This introduces some additional risks, which {% data variables.product.github %} mitigates as follows. +{% data variables.copilot.copilot_automations_cap %} run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events, without a person initiating each task. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). This introduces some additional risks, which {% data variables.product.github %} mitigates as follows. * **Work is attributed to the person who created the automation.** Pull requests opened and code pushed by an {% data variables.copilot.copilot_automation %} are attributed to the user who created the {% data variables.copilot.copilot_automation %}. As when that user creates a pull request themselves, they can't approve it, which preserves the expected "Required approvals" controls. * **You control which tools an automation can use.** When an {% data variables.copilot.copilot_automation %} is triggered by an event, input from untrusted users could become part of the prompt. To limit the impact of prompt injection, you choose exactly which tools an {% data variables.copilot.copilot_automation %} can use, so it can only take the actions the task requires. diff --git a/content/copilot/concepts/security-governance-and-network-settings/session-data.md b/content/copilot/concepts/security-governance-and-network-settings/session-data.md index bf96aed79b81..71caa070b84e 100644 --- a/content/copilot/concepts/security-governance-and-network-settings/session-data.md +++ b/content/copilot/concepts/security-governance-and-network-settings/session-data.md @@ -79,7 +79,7 @@ The following controls are available: | Surface | Share | Delete | Archive | | --- | --- | --- | --- | | {% data variables.copilot.copilot_cli_short %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | -| {% data variables.copilot.github_copilot_app %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| The {% data variables.copilot.github_copilot_app %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | For {% data variables.copilot.copilot_cli_short %}, deleting a local session that has been synced to your account prompts you to choose whether to also delete the synced copy. For the {% data variables.copilot.github_copilot_app %}, deleting a local session also deletes its synced copy immediately. @@ -94,13 +94,13 @@ The following controls are available: | Session source | Share | Delete | Archive | | --- | --- | --- | --- | | Synced {% data variables.copilot.copilot_cli_short %} session | {% octicon "check" aria-label="Supported" %} (Unshared by default) | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| Synced {% data variables.copilot.github_copilot_app %} session | {% octicon "check" aria-label="Supported" %} (Unshared by default) | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| Synced session from the {% data variables.copilot.github_copilot_app %} | {% octicon "check" aria-label="Supported" %} (Unshared by default) | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | {% data variables.copilot.copilot_cloud_agent %} session | {% octicon "check" aria-label="Supported" %} (Shared by default) | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | For more information, see: * **{% data variables.copilot.copilot_cli_short %}**: [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle) -* **{% data variables.copilot.github_copilot_app %}**: [AUTOTITLE](/copilot/how-tos/github-copilot-app/agent-sessions) +* **The {% data variables.copilot.github_copilot_app %}**: [AUTOTITLE](/copilot/how-tos/github-copilot-app/agent-sessions) * **{% data variables.copilot.copilot_cloud_agent %}**: [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents) For information about the session data controls available for {% data variables.product.prodname_copilot_short %} in an IDE, see the documentation for that IDE. diff --git a/content/copilot/concepts/tools/index.md b/content/copilot/concepts/tools/index.md deleted file mode 100644 index 841e9a8a8484..000000000000 --- a/content/copilot/concepts/tools/index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Concepts for AI tools -shortTitle: Tools -intro: 'Learn about different Copilot tools and how they can be used to help develop software.' -versions: - feature: copilot -children: - - /ai-tools - - /about-copilot-integrations -contentType: concepts ---- \ No newline at end of file diff --git a/content/copilot/get-started/plans.md b/content/copilot/get-started/plans.md index f260cdf820c5..d5b082eb1fe5 100644 --- a/content/copilot/get-started/plans.md +++ b/content/copilot/get-started/plans.md @@ -51,7 +51,7 @@ category: ## {% data variables.product.prodname_copilot_short %} plans overview -The table below provides an overview of differences between plans. All plans include {% data variables.copilot.copilot_cli_short %} and {% data variables.copilot.github_copilot_app_short %}. +The table below provides an overview of differences between plans. All plans include {% data variables.copilot.copilot_cli_short %} and the {% data variables.copilot.github_copilot_app_short %}. {% rowheaders %} @@ -163,7 +163,7 @@ On {% data variables.copilot.copilot_free_short %} and {% data variables.copilot | Audit logs | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | Content exclusion | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | | {% data variables.copilot.copilot_cli_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.github_copilot_app_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| The {% data variables.copilot.github_copilot_app_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_spark %} ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "x" aria-label="Not included" %} | {% endrowheaders %} @@ -260,7 +260,7 @@ For a full explanation of how {% data variables.product.prodname_ai_credits_shor | Audit logs | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | Content exclusion | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.copilot.copilot_cli_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.copilot.github_copilot_app_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| The {% data variables.copilot.github_copilot_app_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_spark %} ({% data variables.release-phases.public_preview %}) | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} diff --git a/content/copilot/get-started/quickstart-copilot-app.md b/content/copilot/get-started/quickstart-copilot-app.md index b84019c42f62..a569edc1a43c 100644 --- a/content/copilot/get-started/quickstart-copilot-app.md +++ b/content/copilot/get-started/quickstart-copilot-app.md @@ -3,7 +3,7 @@ title: Getting started with the GitHub Copilot app shortTitle: Copilot app quickstart allowTitleToDifferFromFilename: true intro: 'Sign in to the {% data variables.copilot.github_copilot_app %}, connect a repository or local folder, and create your first agent session to make code changes.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: get-started @@ -35,7 +35,7 @@ In this quickstart, you will: ## Installing the {% data variables.copilot.github_copilot_app %} -1. Visit the [download page for {% data variables.copilot.github_copilot_app %}](https://github.com/features/ai/github-app). +1. Visit the [download page for the {% data variables.copilot.github_copilot_app %}](https://github.com/features/ai/github-app). 1. Download the app for your platform. ## Opening the {% data variables.copilot.github_copilot_app %} for the first time diff --git a/content/copilot/get-started/where-to-use-github-copilot.md b/content/copilot/get-started/where-to-use-github-copilot.md index d321bfe4da1c..b67ab730e130 100644 --- a/content/copilot/get-started/where-to-use-github-copilot.md +++ b/content/copilot/get-started/where-to-use-github-copilot.md @@ -29,7 +29,7 @@ If you’re not sure where to start, choose a surface based on the coding work y | Where | Use it for | Get started | | ----- | ---------- | ----------- | -| **{% data variables.copilot.github_copilot_app %}** | Managing your developer and agent-driven work across parallel tasks, multiple repositories, and the pull request lifecycle in one dedicated workspace. | [AUTOTITLE](/copilot/get-started/quickstart-copilot-app) | +| **The {% data variables.copilot.github_copilot_app %}** | Managing your developer and agent-driven work across parallel tasks, multiple repositories, and the pull request lifecycle in one dedicated workspace. | [AUTOTITLE](/copilot/get-started/quickstart-copilot-app) | | **{% data variables.copilot.copilot_cli %}** | Working with {% data variables.product.prodname_copilot_short %} from the terminal, including repeatable command-line workflows. | [AUTOTITLE](/copilot/get-started/cli-quickstart) | | **Your IDE**
({% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, {% data variables.product.prodname_jetbrains_ides %}, Eclipse, and XCode) | Getting inline suggestions, chatting about nearby code, and using an agent that can edit files for you. | [AUTOTITLE](/copilot/get-started/quickstart-for-using-github-copilot-in-your-ide) | | **{% data variables.copilot.copilot_sdk %}** | Building custom applications that use the same primitives as {% data variables.product.prodname_copilot_short %}. | [AUTOTITLE](/copilot/get-started/sdk-quickstart) | @@ -73,7 +73,7 @@ The surfaces also share the same foundation. The {% data variables.product.prodn Your choices hold across the workflow, including: * **Which model**: Different models suit different kinds of work, and you can switch models for chat and agents. See [AUTOTITLE](/copilot/how-tos/use-ai-models/change-the-chat-model). -* **Which agents**: {% data variables.product.prodname_copilot_short %} agents and agents from other providers work in the same repositories, open pull requests, and go through review. {% data variables.product.prodname_copilot_short %} applies the same security protections, mitigations, and limitations to third-party agents as it does to {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) and [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). +* **Which agents**: {% data variables.product.prodname_copilot_short %} agents and agents from other providers work in the same repositories, open pull requests, and go through review. {% data variables.product.prodname_copilot_short %} applies the same security protections, mitigations, and limitations to third-party agents as it does to {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) and [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents). * **What {% data variables.product.prodname_copilot_short %} can see**: Custom instructions, agent skills, and MCP servers connect {% data variables.product.prodname_copilot_short %} to your conventions and to the tools your team uses. See [AUTOTITLE](/copilot/concepts/context/mcp). * **What {% data variables.product.prodname_copilot_short %} remembers**: For supported features, {% data variables.copilot.copilot_memory %} can reuse repository facts and your preferences in later work. See [AUTOTITLE](/copilot/concepts/agents/copilot-memory). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md index ac0556986519..d768c39b671e 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md @@ -54,6 +54,6 @@ You can enable third-party MCP servers to allow developers to integrate {% data ## Enabling {% data variables.copilot.agent_apps %} and third-party agents -Enterprise owners can enable third-party agents, including {% data variables.copilot.agent_apps %}, for their organizations. Once enabled at the enterprise level, organization owners can choose which agents to allow. For an overview of {% data variables.copilot.agent_apps %}, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). +Enterprise owners can enable third-party agents, including {% data variables.copilot.agent_apps %}, for their organizations. Once enabled at the enterprise level, organization owners can choose which agents to allow. For an overview of {% data variables.copilot.agent_apps %}, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). To manage agent and enterprise policies, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-availability-of-default-models.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-availability-of-default-models.md index 12b35c4754cf..f5a0eb085d4f 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-availability-of-default-models.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-availability-of-default-models.md @@ -100,7 +100,7 @@ To grant access to an enterprise team: ### Granting access to {% data variables.copilot.agent_apps %} -{% data reusables.copilot.agent-apps-intro %} See [AUTOTITLE](/copilot/concepts/agents/agent-apps). +{% data reusables.copilot.agent-apps-intro %} See [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). Ensure models you want to enable specifically for apps are set to **Delegate to Enterprise Teams/Apps** in your enterprise's model policies. diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md index 3a28e2e4f788..9741e65aa66a 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md @@ -47,7 +47,7 @@ Once {% data variables.copilot.copilot_cloud_agent %} is enabled for a repositor ## Controlling {% data variables.copilot.copilot_automations %} in your repositories -{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). {% data variables.copilot.copilot_automations_cap %} are allowed by default in repositories where {% data variables.copilot.copilot_cloud_agent %} is available. You can control whether {% data variables.copilot.copilot_automations %} are allowed in repositories owned by your organization, separately from the {% data variables.copilot.copilot_cloud_agent %} policy. diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md index f1527fb882ec..a3325850b4df 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md @@ -46,7 +46,7 @@ category: > [!NOTE] > * {% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %} > * If your organization is owned by an enterprise, these settings are only visible if an enterprise admin has enabled third-party coding agents at the enterprise level. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies). -> * {% data variables.copilot.agent_apps_caps %} are not enabled here. They are controlled separately by a single "{% data variables.copilot.agent_apps %}" policy. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). +> * {% data variables.copilot.agent_apps_caps %} are not enabled here. They are controlled separately by a single "{% data variables.copilot.agent_apps %}" policy. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). You can choose whether to allow the following coding agents to be enabled in your organization: diff --git a/content/copilot/how-tos/cloud-and-local-sandboxes/index.md b/content/copilot/how-tos/cloud-and-local-sandboxes/index.md index 42c8ef0d1973..62a3a3a18abf 100644 --- a/content/copilot/how-tos/cloud-and-local-sandboxes/index.md +++ b/content/copilot/how-tos/cloud-and-local-sandboxes/index.md @@ -1,7 +1,7 @@ --- title: Cloud and local sandboxes for GitHub Copilot shortTitle: Sandbox Copilot -intro: 'Configure local sandboxing for your {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %} sessions, and manage cloud sandbox access for your organization or enterprise.' +intro: 'Configure local sandboxing for your sessions in the {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}, and manage cloud sandbox access for your organization or enterprise.' versions: feature: copilot children: diff --git a/content/copilot/how-tos/copilot-cli/cli-best-practices.md b/content/copilot/how-tos/copilot-cli/cli-best-practices.md index 87bd568db746..e87f733af2f2 100644 --- a/content/copilot/how-tos/copilot-cli/cli-best-practices.md +++ b/content/copilot/how-tos/copilot-cli/cli-best-practices.md @@ -434,9 +434,9 @@ Then fix each issue one by one, checking them off as you go. ### Autonomous task completion -Switch into autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously on a task until it is complete. This is ideal for long-running tasks that don't require constant supervision. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). +Switch into autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously on a task until it is complete. This is ideal for long-running tasks that don't require constant supervision. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode). -Optionally, you can usually speed up large tasks by using the `/fleet` slash command at the start of your prompt to allow {% data variables.product.prodname_copilot_short %} to break the task into parallel subtasks that are run by subagents. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). +Optionally, you can usually speed up large tasks by using the `/fleet` slash command at the start of your prompt to allow {% data variables.product.prodname_copilot_short %} to break the task into parallel subtasks that are run by subagents. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion). ## 7. Team guidelines diff --git a/content/copilot/how-tos/copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/index.md index bde928d00957..0d74e68e68be 100644 --- a/content/copilot/how-tos/copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/index.md @@ -40,18 +40,16 @@ children: - /content/copilot/concepts/agents/about-agent-skills - /content/copilot/concepts/agents/about-plugins - /content/copilot/concepts/copilot-surfaces/copilot-cli - - /content/copilot/concepts/agents/dynamic-workflows + - /content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows - /content/copilot/concepts/agents/copilot-cli/about-custom-agents - - /content/copilot/concepts/agents/copilot-cli/about-remote-control - - /content/copilot/concepts/agents/copilot-cli/autopilot - - /content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back + - /content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control - /content/copilot/concepts/agents/copilot-cli/comparing-cli-features - /content/copilot/concepts/agents/copilot-cli/context-management - - /content/copilot/concepts/agents/copilot-cli/tool-search - - /content/copilot/concepts/agents/copilot-cli/fleet + - /content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/tool-search + - /content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents - /content/copilot/concepts/agents/copilot-cli/lsp-servers - - /content/copilot/concepts/agents/copilot-cli/research - - /content/copilot/concepts/agents/copilot-cli/rubber-duck + - /use-copilot-cli/research-with-copilot-cli + - /content/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion - /content/copilot/concepts/agents/copilot-cli/about-cli-extensions - /content/copilot/how-tos/use-copilot-agents/use-dynamic-workflows - /content/copilot/reference/copilot-cli-reference/acp-server @@ -81,6 +79,8 @@ children: - /use-copilot-cli/agentic-code-review - /use-copilot-cli/allowing-tools - /use-copilot-cli/voice-input + - /use-copilot-cli/use-autopilot-mode + - /content/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot - /use-copilot-cli/chronicle - /use-copilot-cli/connecting-vs-code - /use-copilot-cli/delegate-tasks-to-cca diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli-in-actions.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli-in-actions.md index 4bed4fdba593..49901473f214 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli-in-actions.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli-in-actions.md @@ -13,7 +13,7 @@ docsTeamMetrics: - copilot-cli --- -For background on authentication options and how billing works when running {% data variables.copilot.copilot_cli_short %} in {% data variables.product.prodname_actions %}, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/copilot-cli-in-github-actions). +For background on authentication options and how billing works when running {% data variables.copilot.copilot_cli_short %} in {% data variables.product.prodname_actions %}, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/copilot-cli-in-github-actions). ## Enabling the policy diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md index db6563ad404b..037afc2dfbce 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md @@ -87,7 +87,7 @@ To export the session as an interactive HTML file, type: As with Markdown export, if you don't specify a file path the file is saved in the current working directory, with the name `copilot-session-SESSIONID.html`. -If you have used the `/research` slash command in the current session, you can also use the `/share` command to share a research report. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/research#viewing-and-sharing-a-research-report). +If you have used the `/research` slash command in the current session, you can also use the `/share` command to share a research report. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli#viewing-and-sharing-a-research-report). ## Using the `/chronicle` slash command @@ -248,7 +248,7 @@ For the full list of `/session` subcommands, see [AUTOTITLE](/copilot/reference/ ### Deleting session data manually * **Local data**: To remove data for a particular CLI session locally, delete the relevant session directory from `~/.copilot/session-state/`. To clear all local session data, delete everything under `~/.copilot/session-state/`. After doing this you must manually reindex the session store. See [Reindexing the session store](#reindexing-the-session-store) later in this article. Deleting local files does not affect session data that has been synced to your account. You cannot delete synced data locally. -* **Synced data**: You can delete or hide synced CLI sessions from {% data variables.product.prodname_dotcom_the_website %}. Hiding a session removes it from your session index so it no longer appears in query results. Deleting a session removes it from your session list on {% data variables.product.prodname_dotcom_the_website %}. Deletion applies to CLI, {% data variables.product.prodname_vscode_shortname %}, and {% data variables.copilot.github_copilot_app %} sessions. +* **Synced data**: You can delete or hide synced CLI sessions from {% data variables.product.prodname_dotcom_the_website %}. Hiding a session removes it from your session index so it no longer appears in query results. Deleting a session removes it from your session list on {% data variables.product.prodname_dotcom_the_website %}. Deletion applies to sessions from {% data variables.copilot.copilot_cli_short %}, {% data variables.product.prodname_vscode_shortname %}, and the {% data variables.copilot.github_copilot_app %}. ## Reindexing the session store diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/computer-use.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/computer-use.md index 9494ffc735f4..fc46d9fc6123 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/computer-use.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/computer-use.md @@ -22,7 +22,7 @@ docsTeamMetrics: This capability is useful for workflows in legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. It is available for local sessions on macOS and Windows. -For information about its capabilities, controls, and limitations, see [AUTOTITLE](/copilot/concepts/agents/computer-use). +For information about its capabilities, controls, and limitations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use). ## Checking computer use status @@ -61,7 +61,7 @@ Replace `APP_NAME` with the name of an application installed on your computer. Computer use follows the active {% data variables.copilot.copilot_cli_short %} permission mode. This mode determines whether {% data variables.product.prodname_copilot_short %} asks for approval before controlling an application. Enter `/permissions show` to review the active mode. When approval is required, choose **Allow** to grant access for the current computer-use session, **Always allow** to save the approval for future sessions, or decline or cancel the request. -If you choose **Always allow** for an application, the saved approval also applies when you use computer use in {% data variables.copilot.github_copilot_app %} on the same computer. When a prompt appears, confirm that the application and action match your request. Configured deny rules still take precedence. +If you choose **Always allow** for an application, the saved approval also applies when you use computer use in the {% data variables.copilot.github_copilot_app %} on the same computer. When a prompt appears, confirm that the application and action match your request. Configured deny rules still take precedence. To interrupt an active operation, press Esc twice. diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca.md index 91112a695e61..1884aa535f7a 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca.md @@ -28,7 +28,7 @@ There are two ways to use autopilot mode: * **Interactively:** In an interactive session, press Shift+Tab until you see "autopilot" in the status bar. If prompted to choose permissions for autopilot mode, allow full permissions, then enter your prompt. * **Programmatically:** Pass the CLI a prompt directly in a command, and include the `--autopilot` option. For example, to use autopilot mode with full permissions, restricting it to 10 continuations, enter `{% data reusables.cli.autopilot-programmatic-prompt %}`. -For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). +For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode). ## Delegate tasks to {% data variables.copilot.copilot_cloud_agent %} diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md index 9c4c20e3286a..fbee698898e7 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md @@ -9,6 +9,7 @@ redirect_from: children: - /overview - /allowing-tools + - /use-autopilot-mode - /voice-input - /computer-use - /connecting-vs-code @@ -18,6 +19,7 @@ children: - /roll-back-changes - /work-with-multiple-sessions - /invoke-custom-agents + - /research-with-copilot-cli - /steer-agents - /steer-remotely - /set-session-limit diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli.md new file mode 100644 index 000000000000..410cf345bfd8 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli.md @@ -0,0 +1,126 @@ +--- +title: Researching with {% data variables.copilot.copilot_cli %} +shortTitle: Research with {% data variables.copilot.copilot_cli_short %} +allowTitleToDifferFromFilename: true +intro: 'Use the `/research` slash command to investigate a complex topic and produce a cited report from your codebase, repositories on {% data variables.product.github %}, and web sources.' +product: '{% data reusables.gated-features.copilot-cli %}' +versions: + feature: copilot +contentType: how-tos +category: + - Build with Copilot CLI +docsTeamMetrics: + - copilot-cli +redirect_from: + - /copilot/concepts/agents/copilot-cli/research +--- + +## About research in {% data variables.copilot.copilot_cli_short %} + +The `/research` slash command invokes a specialized research agent. It investigates a topic and produces a cited Markdown report. The agent can gather information from your local codebase, public and accessible private repositories across your organization, and the web. + +Research is optimized for complex questions that require an in-depth investigation. For an overview of research across {% data variables.product.prodname_copilot_short %} surfaces, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents). + +## Running a research investigation + +1. In an interactive {% data variables.copilot.copilot_cli_short %} session, enter: + + ```copilot copy + /research TOPIC + ``` + + Replace `TOPIC` with a natural-language description of what you want to investigate. + +1. If prompted, review and approve the permissions the agent needs. For example, the agent may request permission to create a directory to store data while compiling the research. +1. Wait for the research to complete. {% data variables.product.prodname_copilot_short %} displays a summary of the key findings. It also provides a link to the full Markdown report. +1. Review the report, including its sources and documented assumptions. + +## Writing an effective research prompt + +State your question, its scope, and the type of response you want. If relevant, include the repositories, components, technologies, constraints, or time period to investigate. + +The research agent adapts its report to the question: + +* Process questions typically produce step-by-step guidance. +* Conceptual questions typically produce narrative explanations and tradeoffs. +* Technical deep dives can include architecture diagrams and code examples. + +Below are some example research prompts and explanations of why they work well. + +### Codebase architecture + +```copilot copy +/research What is the architecture of this codebase? +``` + +**Why it works well**: The research agent has access to `grep`, `glob`, and `view` tools scoped to your current working directory. It can explore the full project tree, read key files, and synthesize an architectural overview—something a normal chat response might do only superficially. The agent will typically produce architecture diagrams, component breakdowns, and data flow descriptions. + +### How a specific technology works + +```copilot copy +/research How does React implement concurrent rendering? +``` + +**Why it works well**: The agent uses specialized tools to pull information from the internet, and to look at actual React source code on {% data variables.product.github %}. It's instructed to prioritize code over documentation and provide file paths with line numbers. + +### Understanding internal implementation patterns + +```copilot copy +/research How are feature flags implemented at our organization? +``` + +**Why it works well**: The agent is explicitly instructed to "always prioritize internal/private implementations over public/open-source alternatives" and to search the organization's repositories first using `org:ORGNAME` queries. It knows to look for internal naming patterns like `-hub`, `-service`, `-client`. + +### Comparing technologies or approaches + +```copilot copy +/research What's the difference between JWT and session-based authentication? +``` + +**Why it works well**: The agent adapts its response to "Conceptual/Explanatory Questions" with narrative explanations, trade-offs, and design decisions. It will typically use tables for comparisons of three or more items. + +### Process/how-to questions + +```copilot copy +/research How do I add an endpoint to the API? +``` + +**Why it works well**: The agent is trained to detect query type and provide step-by-step guidance with links to relevant docs, contacts, and systems for process/how-to type questions. + +### Deep-diving into a specific codebase component + +```copilot copy +/research How is the session management system implemented in this repo? +``` + +**Why it works well**: Combining local tools (`grep`, `glob`, `view`) with the agent's instructions to "trace imports, calls, and type references" and "follow dependencies" means it will walk through the actual implementation, not just give a high-level answer. + +## Viewing and sharing a research report + +When the research completes, use the displayed link to open the full report in your default Markdown editor. Alternatively, press Ctrl+Y to open the most recent research report from the current session. + +> [!NOTE] +> The editor used by Ctrl+Y is determined by the `COPILOT_EDITOR`, `VISUAL`, or `EDITOR` environment variables, in that order. On Linux and macOS, if none of these variables are set, {% data variables.copilot.copilot_cli_short %} uses vi. + +To create a {% data variables.product.github %} gist containing a research report, enter: + +```copilot copy +/share gist research +``` + +To save a report to a file, enter: + +```copilot copy +/share file research [PATH] +``` + +If you omit `[PATH]`, the report is saved to the current working directory with a filename based on the research topic. + +Use the arrow keys and Enter to select a report created during the current session. {% data variables.copilot.copilot_cli_short %} then displays the URL of the gist or the path to the saved file. + +## Considerations + +* **Research reports belong to a session**: The report picker and Ctrl+Y shortcut only show reports from the current session. You can still access reports from previous sessions in `~/.copilot/session-state/SESSION-ID/research/`. +* **Research uses a dedicated model**: The research agent uses its configured model regardless of the model selected for your main session. You cannot change the research model with `/model`. +* **Research takes longer than normal chat**: The agent searches multiple sources and produces a detailed report. Use a normal prompt for quick, narrowly scoped questions. +* **Research does not make code changes**: The research workflow produces findings rather than modifying your project. Start or resume a normal agent task when you are ready to implement changes. diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes.md index f4c9b5023206..bc99780d68e8 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes.md @@ -1,12 +1,14 @@ --- -title: Rolling back changes made during a {% data variables.copilot.copilot_cli %} session -shortTitle: Roll back changes -intro: "Rewind your {% data variables.copilot.copilot_cli_short %} session to a previous prompt to undo changes in conversation history, and optionally restore files." +title: Canceling operations and rolling back changes in GitHub Copilot CLI +shortTitle: Cancel and roll back +allowTitleToDifferFromFilename: true +intro: "Stop an active {% data variables.copilot.copilot_cli_short %} operation, or rewind a session to undo changes in conversation history and optionally restore files." versions: feature: copilot contentType: how-tos redirect_from: - /copilot/how-tos/copilot-cli/roll-back-changes + - /copilot/concepts/agents/copilot-cli/cancel-and-roll-back category: - Author and optimize with Copilot # Copilot discovery page - Build with Copilot CLI # Copilot CLI bespoke page @@ -16,22 +18,39 @@ docsTeamMetrics: ## Introduction -When you work in an interactive {% data variables.copilot.copilot_cli_short %} session, {% data variables.product.prodname_copilot_short %} can make changes to files, run shell commands, and modify your repository. If the result isn't what you expected, you can rewind to a previous point in the session to undo those changes. +When you work in an interactive {% data variables.copilot.copilot_cli_short %} session, you can stop work that is in progress or undo work that has already been completed: -You can trigger a rewind by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle, or by using the `/undo` slash command (or its alias `/rewind`). +* **Cancel an operation** by using Esc or Ctrl+C. These keys behave differently depending on whether {% data variables.product.prodname_copilot_short %} is working, prompts are queued, or a dialog is open. +* **Roll back completed work** by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle, or by using the `/undo` slash command or its `/rewind` alias. -When you select a point to rewind to, you can choose whether to **Rewind the conversation only** or **Rewind the conversation and restore files**. +When you roll back, you can choose whether to rewind only the conversation or also restore files that {% data variables.product.prodname_copilot_short %} changed. Rewind works in any directory, including folders that aren't Git repositories. It restores only the files that {% data variables.product.prodname_copilot_short %} changed. -This article explains how to roll back changes. For more conceptual information about rewinding to an earlier point in a session, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/cancel-and-roll-back). +## Canceling an operation -## Prerequisites +Use Esc when you want gradual, targeted control. While {% data variables.product.prodname_copilot_short %} is working, the first press displays a reminder and a second press interrupts the operation. A single press also closes an open dialog or denies a pending permission request. -* **A rewind point must exist.** You can't roll back before your first prompt in a session. -* **File restoration is only available for sessions that tracked file changes.** If you resume a session that started before file-change tracking was enabled, only conversation rewind is offered. Start a new session to be able to restore file changes. -* **File restoration skips files you changed yourself.** Files whose current contents no longer match what {% data variables.product.prodname_copilot_short %} last wrote (for example, because you edited them afterward), and files that were too large to back up, are left untouched rather than overwritten. -* **Rewind isn't available for remote-backed sessions**, or while the session still has work in progress. +Use Ctrl+C when you want to cancel without the confirming second press that Esc requires. A single Ctrl+C immediately cancels the active operation and clears any queued prompts. Any file write that is already in progress will complete—files are not left corrupted mid-write—but any remaining planned changes are abandoned. Pressing Ctrl+C a second time within two seconds, when the input area is empty, exits the session entirely. + +### What pressing Esc does in different situations + +The effect of pressing Esc depends on the current state of the session. + +| Current state | What pressing Esc does | +| ------------- | --------------------------------- | +| {% data variables.product.prodname_copilot_short %} is active with no queued prompts. | Displays an "Esc again to cancel" reminder. Press Esc again within half a second to cancel the operation. | +| {% data variables.product.prodname_copilot_short %} is active and prompts are queued. | Displays the cancellation reminder. Pressing Esc again interrupts the current operation. In a local session, queued prompts are processed as the next turn. In a remote-backed or attached session, the operation is fully canceled and queued prompts are not run as a follow-up turn. | +| A permission dialog is open. | Denies the pending request without requiring a second press. | +| A dialog, overlay, or picker is open. | Closes the dialog, overlay, or picker. | +| {% data variables.product.prodname_copilot_short %} is idle. | Displays a reminder that pressing Esc again quickly will open the rewind picker. | + +Pressing Esc twice quickly opens the rewind picker only when {% data variables.product.prodname_copilot_short %} is idle and the input area is empty. In other situations, a double Esc performs the first applicable action in this order: + +1. Cancels a running shell command. +1. Stops the current response. +1. Stops background agents. +1. Clears text in the input area. ## Rolling back with a double Esc keypress @@ -40,7 +59,11 @@ This article explains how to roll back changes. For more conceptual information > * Rewinding cannot be undone. Once you roll back, later session history is permanently removed. > * If you choose to restore files, {% data variables.product.prodname_copilot_short %} restores only the files it changed, and skips any file whose current contents no longer match what it last wrote, so your own later edits aren't overwritten. -Pressing Esc twice only opens the rewind picker when {% data variables.product.prodname_copilot_short %} is idle. For details of what a double Esc does when an operation is in progress, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/cancel-and-roll-back#what-pressing-esc-does-in-different-situations). +### Prerequisites + +* **A rewind point must exist.** You can't roll back before your first prompt in a session. +* **File restoration is only available for sessions that tracked file changes.** If you resume a session that started before file-change tracking was enabled, only conversation rewind is offered. Start a new session to be able to restore file changes. +* **Rewind isn't available for remote-backed sessions**, or while the session still has work in progress. When {% data variables.product.prodname_copilot_short %} has finished responding to a prompt you've entered: @@ -65,6 +88,28 @@ The `/undo` slash command, and its alias `/rewind`, provide an alternative way o Both commands produce the same result that you get by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle and there is no text in the input area. +## What happens when you roll back + +If you choose to rewind the conversation and restore files: + +1. {% data variables.product.prodname_copilot_short %} restores the files it changed to their state before the selected prompt. It skips files that you edited afterward. +1. The conversation is rewound to the selected point. Messages and tool calls after that point are removed. +1. Captured file changes for the discarded turns are removed. Earlier rewind points remain available. +1. {% data variables.product.prodname_copilot_short %} reports how many files were restored and identifies any skipped files. +1. The selected prompt is placed in the input area so you can edit and resubmit it. + +If you choose to rewind only the conversation, your files are left untouched. The later session history is removed and the selected prompt is restored to the input area. + +## Changes that can't be restored + +File restoration is skipped or unavailable in these situations: + +* **Files over 10 MB**: Changes to individual files larger than 10 MB aren't captured. +* **More than 500 changed files**: If a single turn changes more than 500 files, file changes for that turn aren't captured. Other turns are unaffected. +* **Files you changed yourself**: If a file's current contents no longer match what {% data variables.product.prodname_copilot_short %} last wrote, the file is left untouched. +* **Sessions without file tracking**: If a session started before file-change tracking was enabled, only conversation rewind is available. +* **Remote-backed or busy sessions**: Rewind isn't available for remote-backed sessions or while work is still in progress. + ## Verifying the rollback After rolling back, you can use Git commands to verify the state of your repository and confirm that it matches your expectations. @@ -79,4 +124,4 @@ Typing `!` allows you to run shell commands directly from the {% data variables. ## Further reading -- [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion.md index 1c543b6f7ed7..01336e02390b 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion.md @@ -17,7 +17,7 @@ docsTeamMetrics: Where a task involves multiple operations, some or all of which can be worked on in parallel, the `/fleet` slash command can speed up task completion. When you use this command, {% data variables.product.prodname_copilot_short %} assigns separate parts of the work to subagents. -For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). +For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents). ## Using the `/fleet` slash command @@ -32,9 +32,22 @@ Typically, you'll use the `/fleet` slash command after creating an implementatio 1. Work with {% data variables.product.prodname_copilot_short %} in plan mode to create an implementation plan. 1. Once the plan is complete, select one of the following options: - * **Accept plan and build on autopilot + /fleet** to allow {% data variables.product.prodname_copilot_short %} to use subagents and work autonomously to implement the plan without any further input. + * **Accept plan and continue in Autopilot execution mode + /fleet** to allow {% data variables.product.prodname_copilot_short %} to use subagents and work autonomously to implement the plan without any further input. * **Exit plan mode and I will prompt myself** and then enter a prompt such as `/fleet implement the plan`. {% data variables.product.prodname_copilot_short %} will start working on the plan, using subagents to run parts of the work in parallel where possible. It may ask you to answer questions or make decisions as it works through the plan. +### Assigning specialized subagents + +If you have a custom agent with expertise suited to a particular subtask, name it in your `/fleet` prompt. {% data variables.product.prodname_copilot_short %} can also select an appropriate custom agent based on the task and the agent's description. + +For example, you could prompt: + +```copilot +/fleet Implement the plan. Use the @CUSTOM-AGENT-NAME agent +to create tests for each component. +``` + +Replace `@CUSTOM-AGENT-NAME` with the name of a custom agent available in your CLI session. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli). + ### Monitoring progress Use the `/tasks` slash command to see a list of background tasks relating to the current session. This will include any subtasks handled by subagents when you use the `/fleet` command. diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents.md index 83e1a083ff34..b0f4c7e840c5 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents.md @@ -20,7 +20,7 @@ While {% data variables.product.prodname_copilot_short %} is working on a task, ## Queue a prompt to be processed next -You can also queue a message instead of steering with it, by pressing Ctrl+Enter (or Ctrl+Q) instead of Enter. A queued message waits until the current task finishes, then runs as the next turn, instead of being folded into the task that's in progress. For more information about queued prompts, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/cancel-and-roll-back). +You can also queue a message instead of steering with it, by pressing Ctrl+Enter (or Ctrl+Q) instead of Enter. A queued message waits until the current task finishes, then runs as the next turn, instead of being folded into the task that's in progress. For information about canceling operations with queued prompts, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes#canceling-an-operation). Steering lets you: diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md index 0b499549e10a..8dec22f86458 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md @@ -17,7 +17,7 @@ docsTeamMetrics: Remote control lets you connect to a running {% data variables.copilot.copilot_cli_short %} session from any browser or from {% data variables.product.prodname_mobile %}. You can view session output, respond to permission requests, and continue working in the session without being at the machine where the session is running. -This article explains how to enable and use remote control. For more conceptual information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-remote-control). +This article explains how to enable and use remote control. For more conceptual information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control). {% data reusables.copilot.copilot-cli.synced-sessions-view-only %} diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode.md new file mode 100644 index 000000000000..2f472eaacdc8 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode.md @@ -0,0 +1,148 @@ +--- +title: Using Autopilot mode in GitHub Copilot CLI +shortTitle: Use Autopilot mode +intro: 'Give {% data variables.copilot.copilot_cli_short %} a well-defined task and let it work through the implementation, testing, and iteration without waiting for input after each step.' +versions: + feature: copilot +contentType: how-tos +redirect_from: + - /copilot/concepts/agents/copilot-cli/autopilot +category: + - Build with Copilot CLI +docsTeamMetrics: + - copilot-cli +--- + +For an overview of when to use Autopilot mode and what to consider before handing over a task, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot). + +## Starting or switching to Autopilot mode + +You can start Autopilot mode from an interactive {% data variables.copilot.copilot_cli_short %} session. + +1. In your terminal, start the CLI: + + ```shell copy + copilot + ``` + +1. Press Shift+Tab until the status line shows Autopilot mode. +1. If the CLI asks how to handle permissions, choose whether to enable all permissions, use manual approval for the session, or cancel. +1. Enter a specific prompt that includes the outcome and checks you expect. For example: + + ```copilot + Add pagination to the users API. Preserve the existing response + fields, add tests for the first and final pages, and run the API + test suite. + ``` + +You can also start or refocus Autopilot mode with the `/autopilot` slash command: + +```copilot +/autopilot Fix the failing API tests and verify the full test suite +``` + +To leave Autopilot mode, press Shift+Tab to cycle to another mode. + +## Moving from a plan to Autopilot mode + +For complex work, create and review a plan before allowing autonomous implementation. + +1. In an interactive session, press Shift+Tab until the status line shows Plan mode. +1. Enter a prompt that describes the change, constraints, and required validation. +1. Review the plan and ask {% data variables.product.prodname_copilot_short %} to revise it until it matches your requirements. +1. Select **Accept plan and continue in Autopilot execution mode**. +1. If prompted, choose the permissions appropriate for the task. +1. Monitor the implementation, then review the resulting changes and test output. + +To start a plan-then-Autopilot session from the command line, enter: + +```shell copy +copilot --plan --mode autopilot +``` + +This command moves from planning to Autopilot mode automatically when the plan is ready. It does not wait for interactive plan approval. For the exact behavior and compatible options, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#plan-then-autopilot). + +## Configuring permissions + +When entering autopilot mode, if you have not already granted {% data variables.product.prodname_copilot_short %} all permissions, a message is displayed prompting you to choose between three options: + +```text +1. Enable all permissions (recommended) +2. Use Manual Approval for this session +3. Cancel (Esc) +``` + +You will get the best results from Autopilot mode if you enable all permissions. If you choose manual approval, {% data variables.product.prodname_copilot_short %} will automatically deny any tool requests that require approval, which may prevent it from completing certain tasks. You can change your mind later and grant full permissions, during an Autopilot session, by using the `/allow-all` command (or its alias `/yolo`). + +Before granting {% data variables.product.prodname_copilot_short %} wide-ranging permissions, consider using local sandboxing, or running the session in a cloud sandbox, to limit what {% data variables.product.prodname_copilot_short %} can access. + +If you enable local sandboxing while using Autopilot mode, {% data variables.product.prodname_copilot_short %} completes anything it can achieve inside the sandbox without interruption. However, any step that needs to escape the sandbox—for example, writing to a file outside the current working directory—is denied. For more information about local sandboxing, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +## Comparing Autopilot mode, `--allow-all`, and `--no-ask-user` + +These controls affect separate aspects of how {% data variables.copilot.copilot_cli_short %} works: + +* **Autopilot mode** controls continuation. The agent can work through successive steps that require additional interactions with the AI model without waiting for another prompt. +* **`--allow-all`**, and its alias `--yolo`, control approvals. They allow the agent to use all tools, paths, and URLs without asking for permission, but do not enable autonomous continuation. In Interactive mode, the agent still stops when it needs further direction. +* **`--no-ask-user`** suppresses clarifying questions. The agent makes decisions instead of asking for input, but does not continue through successive model interactions unless Autopilot mode is also enabled. + +During an interactive session, you can enable all permissions with `/allow-all` or `/yolo`. + +> [!NOTE] +> The `/allow-all` and `/yolo` commands enable all permissions for the current session. Entering either command again does not disable the permissions. + +For more details about the available command options for permissions, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). + +## Limiting autonomous work + +Use limits to prevent a task from continuing longer or consuming more {% data variables.product.prodname_ai_credits_short %} than you expect. + +* Use `--max-autopilot-continues=COUNT` to cap automatic continuation messages. +* Use `--max-ai-credits=CREDITS` to set a soft {% data variables.product.prodname_ai_credit_singular %} limit for programmatic use. +* In an interactive session, use `/limits` to inspect or change the {% data variables.product.prodname_ai_credit_singular %} limit. + +For current defaults and accepted values, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). For procedures for {% data variables.product.prodname_ai_credit_singular %} limits, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/set-session-limit). + +## Stopping and reviewing work + +1. To interrupt a running turn, press Esc twice. +1. To prevent the next prompt from running in Autopilot mode, press Shift+Tab to select another mode. +1. Review the files the agent changed. In the CLI, you can open the diff view with: + + ```copilot + /diff + ``` + +1. Run the relevant tests, linters, and security checks before committing or pushing the changes. + +For all interruption and review controls, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#global-shortcuts-in-the-interactive-interface). + +## Choosing the mode for the next task + +By default, Autopilot mode is sticky: once {% data variables.product.prodname_copilot_short %} determines that a task is complete, {% data variables.copilot.copilot_cli_short %} remains in Autopilot mode, so the next prompt you enter is also handled in autopilot mode. You can switch back to the standard interactive mode at any time by pressing Shift+Tab. + +If you'd rather have {% data variables.copilot.copilot_cli_short %} automatically switch back to interactive mode after each task completes, you can disable this behavior by setting `stayInAutopilot` to `false`. You can do this in either of the following ways: + +* During an interactive session, enter `/settings stayInAutopilot false`. +* Add `"stayInAutopilot": false` to your user configuration file (`~/.copilot/settings.json`). For more information, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson). + +When this setting is disabled, {% data variables.product.prodname_copilot_short %} automatically switches back to the standard Interactive mode once a task completes. To run another task in Autopilot mode, press Shift+Tab and cycle through the available modes until you re-enter Autopilot mode, then enter your next prompt. + +> [!NOTE] +> This setting only controls which mode you are in _after_ a task completes. It does not cause {% data variables.product.prodname_copilot_short %} to keep working after it has decided the task is done. Autopilot still stops when the task is complete, when a problem occurs, when you press Ctrl+C, or when the continuation limit is reached. + +## Running Autopilot mode programmatically + +Use programmatic Autopilot mode for a script or other non-interactive workflow where the CLI must continue after the initial prompt. + +1. Decide which permissions the task requires. +1. Set a continuation limit or an {% data variables.product.prodname_ai_credit_singular %} limit appropriate for the task. +1. Run the prompt with `-p` and `--autopilot`. For example: + + ```shell copy + {% data reusables.cli.autopilot-programmatic-prompt %} + ``` + + Replace `YOUR PROMPT HERE` with a specific task. This example grants all permissions and sets the maximum number of automatic continuations to `10`. + +For the complete list of programmatic options, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) and [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). diff --git a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-azure-boards.md b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-azure-boards.md index 0296993a9d66..c4bdf4a67339 100644 --- a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-azure-boards.md +++ b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-azure-boards.md @@ -16,7 +16,7 @@ redirect_from: The Azure Boards {% data variables.product.github %} integration allows you to invoke {% data variables.copilot.copilot_cloud_agent %} without leaving your workspace. From within a Azure Boards work item you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions and open pull requests, using the context of your work item description and comments. -For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/tools/about-copilot-integrations). +For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations). > [!NOTE] > * {% data variables.product.prodname_copilot %} uses AI. Check for mistakes. See [AUTOTITLE](/copilot/responsible-use/agents). diff --git a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-linear.md b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-linear.md index 3d4925a78230..b1b2657ef60c 100644 --- a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-linear.md +++ b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-linear.md @@ -19,7 +19,7 @@ redirect_from: The {% data variables.product.prodname_copilot_short %} integration in Linear allows you to invoke {% data variables.copilot.copilot_cloud_agent %} without leaving your Linear workspace. From within a Linear issue you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions, customize which model, custom agent, or branches the agent uses, steer a session, and open pull requests, all using the context of your issue description and comments. -For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/tools/about-copilot-integrations). +For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations). > [!NOTE] > When you mention @{% data variables.product.github %} in, or assign {% data variables.product.prodname_copilot_short %} to, a Linear issue, the agent captures the entire issue description and comments as context for your request. This helps the agent to understand the issue and implement an appropriate solution, based on all of the information in the issue. This context is stored in the pull request. diff --git a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-slack.md b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-slack.md index aaa25bd615f0..94fe58fc5fa2 100644 --- a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-slack.md +++ b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-slack.md @@ -22,7 +22,7 @@ redirect_from: The {% data variables.copilot.copilot_cloud_agent %} integration in Slack allows you to interact with {% data variables.copilot.copilot_cloud_agent %} from your Slack workspace and is included in the {% data variables.product.github %} app for Slack. Within a Slack message, thread, or direct message, you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions to investigate, plan, write code, and create issues and pull requests, using the context of your conversation. Your team's collaborative decisions stay connected to your code, bridging the gap between where discussions happen and where implementation lives. -For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/tools/about-copilot-integrations). +For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations). ## Security considerations diff --git a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-teams.md b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-teams.md index d0ab17d2b445..84d08ec2d0be 100644 --- a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-teams.md +++ b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-teams.md @@ -20,7 +20,7 @@ redirect_from: The {% data variables.product.github %} integration in Microsoft Teams allows you to interact with {% data variables.copilot.copilot_cloud_agent %} all from within your Teams conversations. Within Teams you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions to investigate, plan, write code, and create issues and pull requests, using the context of your conversation. Your team's collaborative decisions stay connected to your code, bridging the gap between where discussions happen and where implementation lives. -For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/tools/about-copilot-integrations). +For information about additional {% data variables.product.prodname_copilot_short %} integrations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/about-copilot-integrations). ## Security considerations diff --git a/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review.md b/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review.md index 824537de3ae0..7114ebc3cce6 100644 --- a/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review.md +++ b/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review.md @@ -20,7 +20,7 @@ category: ## Introduction -You can configure {% data variables.copilot.copilot_code-review_short %} to review pull requests automatically, set your {% data variables.product.prodname_copilot_short %} review effort, and control who can request reviews. For an overview, see [AUTOTITLE](/copilot/concepts/agents/code-review#automatic-pull-request-reviews). +You can configure {% data variables.copilot.copilot_code-review_short %} to review pull requests automatically, set your {% data variables.product.prodname_copilot_short %} review effort, and control who can request reviews. For an overview, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#automatic-pull-request-reviews). ## Configuring automatic code review for your own pull requests @@ -35,11 +35,11 @@ You can set {% data variables.copilot.copilot_code-review_short %} to review the 1. Optionally, to review each new push to a pull request that {% data variables.product.prodname_copilot_short %} is already reviewing, enable **Review new pushes**. 1. Optionally, to review pull requests while they are still marked as drafts, enable **Review draft pull requests**. -A pull request can qualify for automatic review from several independent sources: your user settings, repository rulesets, or organization rulesets. These sources are evaluated separately. If more than one source applies, {% data variables.product.prodname_copilot_short %} still posts a single review. Your user settings cannot disable push or draft reviews that a ruleset has enabled. For more information, see [AUTOTITLE](/copilot/concepts/agents/code-review#automatic-pull-request-reviews). +A pull request can qualify for automatic review from several independent sources: your user settings, repository rulesets, or organization rulesets. These sources are evaluated separately. If more than one source applies, {% data variables.product.prodname_copilot_short %} still posts a single review. Your user settings cannot disable push or draft reviews that a ruleset has enabled. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#automatic-pull-request-reviews). ## Configuring your {% data variables.product.prodname_copilot_short %} review effort -You can choose the {% data variables.product.prodname_copilot_short %} review effort that {% data variables.copilot.copilot_code-review_short %} uses for the reviews you request. Your choice applies to automatic reviews and to reviews you request manually. For an overview of the levels and how {% data variables.product.prodname_copilot_short %} decides which to use, see [AUTOTITLE](/copilot/concepts/agents/code-review#review-effort-level). +You can choose the {% data variables.product.prodname_copilot_short %} review effort that {% data variables.copilot.copilot_code-review_short %} uses for the reviews you request. Your choice applies to automatic reviews and to reviews you request manually. For an overview of the levels and how {% data variables.product.prodname_copilot_short %} decides which to use, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#review-effort-level). {% data reusables.user-settings.copilot-settings %} {% data reusables.copilot.code-review.user-settings-sidebar %} @@ -76,7 +76,7 @@ You can configure how {% data variables.copilot.copilot_code-review_short %} com * **Lite**: Standard review. * **Balanced**: Deeper analysis of complex logic, security-sensitive code, and cross-service changes. - Balanced reviews use more {% data variables.product.prodname_ai_credits_short %}, and may consume marginally more {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/copilot/concepts/agents/code-review#estimated-consumption). + Balanced reviews use more {% data variables.product.prodname_ai_credits_short %}, and may consume marginally more {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#estimated-consumption). 1. To choose whether {% data variables.product.prodname_copilot_short %} can approve pull requests in your repository, configure the settings under "Auto-approval." * **Allow {% data variables.product.prodname_copilot_short %} to approve pull requests**: Toggle on to let {% data variables.product.prodname_copilot_short %} submit approving reviews. * **Allow {% data variables.product.prodname_copilot_short %} approvals to count toward merge requirements**: Toggle on so {% data variables.product.prodname_copilot_short %} approvals can satisfy pull request approval requirements. @@ -85,7 +85,7 @@ You can configure how {% data variables.copilot.copilot_code-review_short %} com > [!NOTE] > {% data reusables.copilot.automatic-approvals-public-preview %} -1. To prevent people from using an external {% data variables.product.prodname_copilot_short %} license to request reviews in this repository, enable **Only allow {% data variables.copilot.copilot_code-review_short %} to be triggered by authorized users**. If this setting is enabled for your organization, you cannot turn it off for the repository. See [AUTOTITLE](/copilot/concepts/agents/code-review#reviews-requested-with-an-external-copilot-license). +1. To prevent people from using an external {% data variables.product.prodname_copilot_short %} license to request reviews in this repository, enable **Only allow {% data variables.copilot.copilot_code-review_short %} to be triggered by authorized users**. If this setting is enabled for your organization, you cannot turn it off for the repository. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#reviews-requested-with-an-external-copilot-license). ## Configuring automatic code review for repositories in an organization @@ -121,7 +121,7 @@ You can configure how {% data variables.copilot.copilot_code-review_short %} com * **Lite**: Standard review. * **Balanced**: Deeper analysis of complex logic, security-sensitive code, and cross-service changes. - Balanced reviews use more {% data variables.product.prodname_ai_credits_short %}, and may consume marginally more {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/copilot/concepts/agents/code-review#estimated-consumption). + Balanced reviews use more {% data variables.product.prodname_ai_credits_short %}, and may consume marginally more {% data variables.product.prodname_actions %} minutes. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#estimated-consumption). 1. To choose how {% data variables.product.prodname_ai_credits_short %} usage associated with members who have paid {% data variables.product.prodname_copilot_short %} licenses is billed, next to **Choose how members with a {% data variables.product.prodname_copilot_short %} license are billed**, select an option. * **Member**: Use the member's {% data variables.product.prodname_copilot_short %} entitlement. If the member's quota is exhausted, the code review fails. This is the default. * **Organization**: Bill the organization. @@ -132,7 +132,7 @@ You can configure how {% data variables.copilot.copilot_code-review_short %} com * **Let repositories decide**: Repository admins can decide this in repository settings. * **Enable for selected repositories**: {% data variables.product.prodname_copilot_short %} approvals can count toward merge requirements only in the repositories you select. If you choose this option, also assign the repositories you want to enable this for. * **Disabled everywhere**: {% data variables.product.prodname_copilot_short %} approvals cannot count toward merge requirements in any repository in the organization. - + > [!NOTE] > {% data reusables.copilot.automatic-approvals-public-preview %} diff --git a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md index e2e0f329d28b..9c8b1e685595 100644 --- a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md +++ b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md @@ -10,7 +10,7 @@ category: - Author and optimize with Copilot --- -{% data variables.copilot.copilot_code-review_short %} is also available for organization members without a {% data variables.product.prodname_copilot_short %} license, when enabled by an enterprise administrator or organization owner. See [{% data variables.copilot.copilot_code-review_short %} for organization members without a {% data variables.product.prodname_copilot_short %} license](/copilot/concepts/agents/code-review#copilot-code-review-without-a-copilot-license). +{% data variables.copilot.copilot_code-review_short %} is also available for organization members without a {% data variables.product.prodname_copilot_short %} license, when enabled by an enterprise administrator or organization owner. See [{% data variables.copilot.copilot_code-review_short %} for organization members without a {% data variables.product.prodname_copilot_short %} license](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#copilot-code-review-without-a-copilot-license). ## Request a review from {% data variables.product.prodname_copilot_short %} @@ -85,5 +85,5 @@ To make these available for {% data variables.copilot.copilot_code-review_short ## Further reading -* [AUTOTITLE](/copilot/concepts/agents/code-review) +* [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/review-copilot-output) diff --git a/content/copilot/how-tos/github-agentic-workflows/quickstart.md b/content/copilot/how-tos/github-agentic-workflows/quickstart.md index 3b0a8d7c7f0e..e7f2b730cbbe 100644 --- a/content/copilot/how-tos/github-agentic-workflows/quickstart.md +++ b/content/copilot/how-tos/github-agentic-workflows/quickstart.md @@ -13,7 +13,7 @@ category: ## Introduction -{% data variables.copilot.github_agentic_workflows %} let you automate repository tasks using AI-powered workflows. For an overview of {% data variables.copilot.github_agentic_workflows %}, see [AUTOTITLE](/copilot/concepts/agents/about-github-agentic-workflows). +{% data variables.copilot.github_agentic_workflows %} let you automate repository tasks using AI-powered workflows. For an overview of {% data variables.copilot.github_agentic_workflows %}, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-github-agentic-workflows). In this guide, you'll add a pre-built agentic workflow—a daily repository status report—to an existing repository. This takes about 10 minutes and gives you a working example of automated agents running in {% data variables.product.prodname_actions %}. diff --git a/content/copilot/how-tos/github-copilot-app/agent-sessions.md b/content/copilot/how-tos/github-copilot-app/agent-sessions.md index 391aa02bbdcb..a70bfa5f7e9b 100644 --- a/content/copilot/how-tos/github-copilot-app/agent-sessions.md +++ b/content/copilot/how-tos/github-copilot-app/agent-sessions.md @@ -3,7 +3,7 @@ title: Working with agent sessions in the GitHub Copilot app shortTitle: Agent sessions intro: 'Run multiple isolated agent sessions simultaneously, each with its own branch, and steer them using different session modes, models, and tools.' allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos @@ -96,7 +96,7 @@ You can also manually ask {% data variables.product.prodname_copilot_short %} to 1. Open an active session. 1. In the prompt box, type `/rubber-duck` and ask for a critique of your current plan, implementation, or tests. -For more information on the rubber duck agent, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/rubber-duck). +For more information on the rubber duck agent, see [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion). ## Using `/chronicle` with app sessions diff --git a/content/copilot/how-tos/github-copilot-app/computer-use.md b/content/copilot/how-tos/github-copilot-app/computer-use.md index e1c6d61c22c8..46742baf3425 100644 --- a/content/copilot/how-tos/github-copilot-app/computer-use.md +++ b/content/copilot/how-tos/github-copilot-app/computer-use.md @@ -2,7 +2,7 @@ title: Using the GitHub Copilot app to interact with desktop applications shortTitle: Computer use intro: 'With computer use, allow {% data variables.product.prodname_copilot_short %} to interact with local desktop applications from the {% data variables.copilot.github_copilot_app %}.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos @@ -19,11 +19,11 @@ category: This capability is useful for workflows in legacy and GUI-only software that do not provide an API, command-line interface, or MCP integration. It is available for local sessions on macOS and Windows. -For information about its capabilities, controls, and limitations, see [AUTOTITLE](/copilot/concepts/agents/computer-use). +For information about its capabilities, controls, and limitations, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use). ## Enabling computer use -1. Open the settings for {% data variables.copilot.github_copilot_app %}. +1. Open the settings for the {% data variables.copilot.github_copilot_app %}. 1. In the sidebar, select **Computer Use**. 1. Under **Enable Computer Use**, turn on **Enable Computer Use**. 1. On macOS, under **Prerequisites**, grant both required permissions: @@ -52,9 +52,9 @@ To interrupt an active operation, click **Stop** or press Esc. ## Reviewing always allowed applications -If you choose **Always allow** in {% data variables.copilot.github_copilot_app %} or {% data variables.copilot.copilot_cli %}, the approval is saved and applies to both surfaces on the same computer. +If you choose **Always allow** in the {% data variables.copilot.github_copilot_app %} or {% data variables.copilot.copilot_cli %}, the approval is saved and applies to both surfaces on the same computer. -1. Open the settings for {% data variables.copilot.github_copilot_app %}. +1. Open the settings for the {% data variables.copilot.github_copilot_app %}. 1. In the sidebar, select **Computer Use**. 1. Under **Always allowed apps**, click the delete icon next to the application. @@ -62,7 +62,7 @@ Removing an application deletes its saved approval for future sessions in both t ## Disabling computer use -Open the settings for {% data variables.copilot.github_copilot_app %}. In the sidebar, select **Computer Use**, then turn off **Enable Computer Use**. +Open the settings for the {% data variables.copilot.github_copilot_app %}. In the sidebar, select **Computer Use**, then turn off **Enable Computer Use**. You can also use `/computer off` in a session. diff --git a/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md b/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md index e8f251e7adfa..75c0b9b8c4bc 100644 --- a/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md +++ b/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md @@ -3,7 +3,7 @@ title: Customizing the GitHub Copilot app shortTitle: Customize the GitHub Copilot app intro: 'Customize the {% data variables.copilot.github_copilot_app %} so it works the way you and your team do.' allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos diff --git a/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md b/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md index c3afd562b464..bffe7ce235e4 100644 --- a/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md +++ b/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md @@ -3,7 +3,7 @@ title: Managing issues and pull requests with the GitHub Copilot app shortTitle: Managing issues and pull requests allowTitleToDifferFromFilename: true intro: 'Pick up an issue, direct an agent to implement changes, and land a pull request—all without leaving the {% data variables.copilot.github_copilot_app %}.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos diff --git a/content/copilot/how-tos/github-copilot-app/open-with-deep-links.md b/content/copilot/how-tos/github-copilot-app/open-with-deep-links.md index 638141bbb670..fec1c49e8182 100644 --- a/content/copilot/how-tos/github-copilot-app/open-with-deep-links.md +++ b/content/copilot/how-tos/github-copilot-app/open-with-deep-links.md @@ -3,7 +3,7 @@ title: Using deep links to open the GitHub Copilot app shortTitle: Open with deep links allowTitleToDifferFromFilename: true intro: "Use deep links to launch the {% data variables.copilot.github_copilot_app %} from the terminal, tickets, and internal tools, so people can jump directly into the right repository, pull request, automation, or session." -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos diff --git a/content/copilot/how-tos/github-copilot-app/use-byok-models.md b/content/copilot/how-tos/github-copilot-app/use-byok-models.md index 4c26147fdde7..3051d7b7a568 100644 --- a/content/copilot/how-tos/github-copilot-app/use-byok-models.md +++ b/content/copilot/how-tos/github-copilot-app/use-byok-models.md @@ -3,7 +3,7 @@ title: Adding LLM models to the GitHub Copilot app shortTitle: Add LLM models intro: 'Connect a model from an external provider of your choice by supplying your own API key, then use the model in agent sessions.' allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos @@ -24,7 +24,7 @@ You must sign in with a {% data variables.product.github %} account to use the a ## Supported providers -{% data variables.copilot.github_copilot_app %} supports these model providers: +The {% data variables.copilot.github_copilot_app %} supports these model providers: * OpenAI * Azure OpenAI diff --git a/content/copilot/how-tos/github-copilot-app/using-automations.md b/content/copilot/how-tos/github-copilot-app/using-automations.md index 771648e80671..ef0322491c17 100644 --- a/content/copilot/how-tos/github-copilot-app/using-automations.md +++ b/content/copilot/how-tos/github-copilot-app/using-automations.md @@ -3,7 +3,7 @@ title: Using automations in the GitHub Copilot app shortTitle: Automations intro: 'Automate recurring agent tasks so they run on a schedule or on demand, without manual intervention.' allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos @@ -23,7 +23,7 @@ You can create and manage {% data variables.copilot.copilot_automations %} from: * The **Agents** tab in a repository on {% data variables.product.github %}, in the **{% data variables.copilot.copilot_automations_cap %}** pane. * The **[{% data variables.copilot.copilot_automations_cap %}](https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations)** tab in the {% data variables.copilot.github_copilot_app %}. -For an overview of {% data variables.copilot.copilot_automations %}, including triggers, tools, visibility, and security, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +For an overview of {% data variables.copilot.copilot_automations %}, including triggers, tools, visibility, and security, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). The {% data variables.copilot.github_copilot_app %} supports two types of {% data variables.copilot.copilot_automations %}: diff --git a/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md b/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md index e132a603c139..2b357dc1898f 100644 --- a/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md +++ b/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md @@ -3,7 +3,7 @@ title: Working with canvas extensions in the GitHub Copilot app shortTitle: Canvas extensions intro: 'Use canvases in the {% data variables.copilot.github_copilot_app %} to build shared, agent-driven artifacts and interfaces for human-agent collaboration.' allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: how-tos diff --git a/content/copilot/how-tos/manage-your-account/manage-policies.md b/content/copilot/how-tos/manage-your-account/manage-policies.md index a0c18bee4914..847cdfa8e198 100644 --- a/content/copilot/how-tos/manage-your-account/manage-policies.md +++ b/content/copilot/how-tos/manage-your-account/manage-policies.md @@ -63,7 +63,7 @@ You can choose whether to allow the following coding agents to be enabled in you * {% data variables.product.prodname_anthropic_claude %} * {% data variables.product.prodname_openai_codex %} -Installed {% data variables.copilot.agent_apps %} also appear under "Partner agents" and are enabled in the same way. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). +Installed {% data variables.copilot.agent_apps %} also appear under "Partner agents" and are enabled in the same way. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). Coding agents have access to the same repositories that {% data variables.copilot.copilot_cloud_agent %} has been enabled in. diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md index 82a4c48dbd1b..4e659181f788 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md @@ -17,7 +17,7 @@ category: You can create and manage {% data variables.copilot.copilot_automations %} from the **Agents** tab of a repository on {% data variables.product.github %}. You can also create and manage {% data variables.copilot.copilot_automations %} from the **{% data variables.copilot.copilot_automations_cap %}** tab in the {% data variables.copilot.github_copilot_app %}. -For an overview of {% data variables.copilot.copilot_automations %}, including triggers, tools, visibility, and security, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +For an overview of {% data variables.copilot.copilot_automations %}, including triggers, tools, visibility, and security, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations). ## Prerequisites @@ -52,7 +52,7 @@ For an overview of {% data variables.copilot.copilot_automations %}, including t 1. Optionally, select the **model** you want {% data variables.product.prodname_copilot_short %} to use. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/changing-the-ai-model). 1. Select the **tools** {% data variables.product.prodname_copilot_short %} can use when the {% data variables.copilot.copilot_automation %} runs, such as pushing changes, updating issue labels, or creating a pull request. - Select only the tools the task requires. The tools you select control what actions {% data variables.product.prodname_copilot_short %} can take in your repository. Optionally, you can use the **Suggest tools** button to ask {% data variables.product.prodname_copilot_short %} to suggest tools based on your prompt. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations#tools-and-actions). + Select only the tools the task requires. The tools you select control what actions {% data variables.product.prodname_copilot_short %} can take in your repository. Optionally, you can use the **Suggest tools** button to ask {% data variables.product.prodname_copilot_short %} to suggest tools based on your prompt. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations#tools-and-actions). 1. Save the {% data variables.copilot.copilot_automation %} by clicking **Create automation**. @@ -79,6 +79,6 @@ To see all of your {% data variables.copilot.copilot_automations %} across every ## Further reading -* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations) +* [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-automations) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions) * [AUTOTITLE](/copilot/concepts/agents/cloud-agent/risks-and-mitigations) diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md index a069cb2cc4e7..30a61728f924 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md @@ -14,7 +14,7 @@ category: ## Introduction -{% data variables.copilot.agent_apps_caps %} let you delegate work to partner-built agents from within {% data variables.product.github %}. For an overview, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). +{% data variables.copilot.agent_apps_caps %} let you delegate work to partner-built agents from within {% data variables.product.github %}. For an overview, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/agent-apps). Before you can use an {% data variables.copilot.agent_app %}, the {% data variables.product.prodname_github_app %} must be installed on the account or organization that owns the repository, and agent features must be enabled for the app. If the repository is owned by an organization that belongs to an enterprise, the "{% data variables.copilot.agent_apps_caps %}" {% data variables.product.prodname_copilot_short %} policy must also be enabled in your enterprise settings. diff --git a/content/copilot/how-tos/use-copilot-agents/use-code-review.md b/content/copilot/how-tos/use-copilot-agents/use-code-review.md index b6b12425aff7..da5f0adfe9da 100644 --- a/content/copilot/how-tos/use-copilot-agents/use-code-review.md +++ b/content/copilot/how-tos/use-copilot-agents/use-code-review.md @@ -24,13 +24,13 @@ category: {% data variables.product.prodname_copilot %} can review your code and provide feedback. Where possible, {% data variables.product.prodname_copilot_short %}'s feedback includes suggested changes which you can apply with a couple of clicks. -For a full introduction to {% data variables.copilot.copilot_code-review %}, see [AUTOTITLE](/copilot/concepts/agents/code-review). +For a full introduction to {% data variables.copilot.copilot_code-review %}, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review). -{% data variables.copilot.copilot_code-review_short %} uses {% data variables.product.prodname_actions %} to run agentic capabilities. For more information, see [Agentic capabilities for {% data variables.copilot.copilot_code-review_short %}](/copilot/concepts/agents/code-review#usage-of-github-actions-runners-for-agentic-capabilities-in-code-review). +{% data variables.copilot.copilot_code-review_short %} uses {% data variables.product.prodname_actions %} to run agentic capabilities. For more information, see [Agentic capabilities for {% data variables.copilot.copilot_code-review_short %}](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#usage-of-github-actions-runners-for-agentic-capabilities-in-code-review). {% webui %} -{% data variables.copilot.copilot_code-review_short %} is also available for organization members without a {% data variables.product.prodname_copilot_short %} license, when enabled by an enterprise administrator or organization owner. See [{% data variables.copilot.copilot_code-review_short %} for organization members without a {% data variables.product.prodname_copilot_short %} license](/copilot/concepts/agents/code-review#copilot-code-review-without-a-copilot-license). +{% data variables.copilot.copilot_code-review_short %} is also available for organization members without a {% data variables.product.prodname_copilot_short %} license, when enabled by an enterprise administrator or organization owner. See [{% data variables.copilot.copilot_code-review_short %} for organization members without a {% data variables.product.prodname_copilot_short %} license](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#copilot-code-review-without-a-copilot-license). ## Using {% data variables.copilot.copilot_code-review_short %} @@ -89,7 +89,7 @@ With review effort levels, you can choose the level of thoroughness of {% data v You can select {% data variables.product.prodname_copilot_short %} review effort in the pull request before you request a review from {% data variables.product.prodname_copilot_short %}, under the **Reviewers** section where {% data variables.product.prodname_copilot_short %} appears as a reviewer. You can also set a default {% data variables.product.prodname_copilot_short %} review effort in your settings. Organization owners and repository administrators can set a default {% data variables.product.prodname_copilot_short %} review effort for automatic reviews. -For more information, see [AUTOTITLE](/copilot/concepts/agents/code-review#review-effort-level). +For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review#review-effort-level). ## Pull request approvals from {% data variables.product.prodname_copilot_short %} diff --git a/content/copilot/how-tos/use-copilot-agents/use-dynamic-workflows.md b/content/copilot/how-tos/use-copilot-agents/use-dynamic-workflows.md index a33a1b450d0d..c01e2597eae3 100644 --- a/content/copilot/how-tos/use-copilot-agents/use-dynamic-workflows.md +++ b/content/copilot/how-tos/use-copilot-agents/use-dynamic-workflows.md @@ -17,7 +17,7 @@ docsTeamMetrics: This article explains how to create, use, and share dynamic workflows in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}. -For an overview of what dynamic workflows are and how they work, see [AUTOTITLE](/copilot/concepts/agents/dynamic-workflows). +For an overview of what dynamic workflows are and how they work, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows). ## Prerequisite @@ -52,7 +52,7 @@ If you don't have any dynamic workflows yet, you can create one. See [Creating a ``` > [!IMPORTANT] - > Setting limits on a dynamic workflow is optional but recommended, as it helps control resource usage and prevent excessive consumption of {% data variables.product.prodname_ai_credits_short %}. For more information about the limits you can set, see [AUTOTITLE](/copilot/concepts/agents/dynamic-workflows#limiting-a-dynamic-workflow). + > Setting limits on a dynamic workflow is optional but recommended, as it helps control resource usage and prevent excessive consumption of {% data variables.product.prodname_ai_credits_short %}. For more information about the limits you can set, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows#limiting-a-dynamic-workflow). 1. Depending on your current permission approval settings, {% data variables.product.prodname_copilot_short %} asks you to approve the dynamic workflow run before it starts. Choose **Yes**. @@ -89,7 +89,7 @@ If the extension provides another way to start its workflow, such as a slash com 1. Watch the phases and progress messages reported by the workflow. When it completes, the command prints its result, if it returns one, and exits. If it pauses or stops without completing, the command reports the run's status and run ID. To interrupt a run, press Ctrl+C. -The workflow's configured limits and your personal default limits still apply. See [AUTOTITLE](/copilot/concepts/agents/dynamic-workflows#limiting-a-dynamic-workflow). +The workflow's configured limits and your personal default limits still apply. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows#limiting-a-dynamic-workflow). ### Saving the result to a file diff --git a/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md b/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md index 339aaf930410..1fc1ba63c34d 100644 --- a/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md +++ b/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md @@ -45,8 +45,8 @@ The following {% data variables.product.prodname_copilot_short %} features can u | [{% data variables.product.prodname_copilot_short %} code review](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) | Each time {% data variables.product.prodname_copilot_short %} reviews a pull request (when assigned as a reviewer) or reviews code in your IDE, **13 premium requests** are consumed. | {% data variables.product.prodname_copilot_short %} premium requests | | [{% data variables.copilot.copilot_cloud_agent %}](/copilot/concepts/copilot-surfaces/copilot-on-github) | {% data variables.copilot.copilot_cloud_agent %} uses **one premium request** per session, multiplied by the model's rate. A session begins when you prompt {% data variables.product.prodname_copilot_short %} to undertake a task. In addition, each real-time steering comment made during an active session uses **one premium request** per session, multiplied by the model's rate. | {% data variables.copilot.copilot_cloud_agent %} premium requests | | [{% data variables.copilot.copilot_spaces %}](/copilot/concepts/context/spaces) | {% data variables.copilot.copilot_spaces %} uses **one premium request** per user prompt, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | -| [{% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode %} integration](/copilot/concepts/agents/openai-codex) | While in preview, each prompt to {% data variables.product.prodname_openai_codex %} uses **one premium request** multiplied by the model multiplier rates. | {% data variables.product.prodname_copilot_short %} premium requests | -| [Third-party coding agents](/free-pro-team@latest/copilot/concepts/agents/about-third-party-coding-agents) | While in preview, each prompt to a third-party coding agent uses **one premium request**, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | +| [{% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode %} integration](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents#vs-code-extension) | While in preview, each prompt to {% data variables.product.prodname_openai_codex %} uses **one premium request** multiplied by the model multiplier rates. | {% data variables.product.prodname_copilot_short %} premium requests | +| [Third-party coding agents](/free-pro-team@latest/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents) | While in preview, each prompt to a third-party coding agent uses **one premium request**, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | {% endrowheaders %} diff --git a/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md b/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md index fb187296c811..88850b7f6ea3 100644 --- a/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md +++ b/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md @@ -36,7 +36,7 @@ The following table shows the model multipliers per supported model. > * {% data variables.copilot.copilot_claude_sonnet_46 %} > * {% data variables.copilot.copilot_gpt_54_mini %} > -> If you use {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, {% data variables.copilot.github_copilot_app %}, or {% data variables.copilot.copilot_cloud_agent %}, you qualify for a 10% discount. For example, if a model has a multiplier of 1x you'll be billed at 0.9x instead. +> If you use {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, the {% data variables.copilot.github_copilot_app %}, or {% data variables.copilot.copilot_cloud_agent %}, you qualify for a 10% discount. For example, if a model has a multiplier of 1x you'll be billed at 0.9x instead. | Model | Multiplier | | --- | ---: | 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 4e65cefa1a69..de3e4bccde38 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -563,7 +563,7 @@ These are the slash commands you can use from within an interactive CLI session. | `/extensions [manage\|mode]`, `/extension` | Manage CLI extensions. {% data reusables.copilot.experimental %} | | `/experimental [on\|off\|show]` | Toggle, set, or show experimental features. | | `/feedback`, `/bug` | Provide feedback about the CLI. Can offer a feedback-with-logs route; see [Collecting and sharing debug logs](#collecting-and-sharing-debug-logs). | -| `/fleet [PROMPT]` | Enable parallel subagent execution of parts of a task. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). | +| `/fleet [PROMPT]` | Enable parallel subagent execution of parts of a task. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion). | | `/help` | Show the help for interactive commands. | | `/ide` | Connect to an IDE workspace. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/connecting-vs-code#managing-the-connection-with-the-ide-slash-command). | | `/init` | Initialize {% data variables.product.prodname_copilot_short %} custom instructions and agentic features for this repository. See [Project initialization for {% data variables.product.prodname_copilot_short %}](#project-initialization-for-copilot). | @@ -595,12 +595,12 @@ These are the slash commands you can use from within an interactive CLI session. | `/refine TEXT` | Rewrite a roughly composed prompt into a clear one for review. Run with no arguments (via Ctrl+X then `/refine`) to clean up the current input box. Can be particularly useful for prompts entered by speaking. | | `/remote [on\|off]` | Show the remote control status (if no argument provided), enable remote steering (`on`), or end the remote connection (`off`). See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely). | | `/rename [NAME]` | Rename the current session (auto-generates a name if omitted; alias for `/session rename`). | -| `/research TOPIC` | Run a deep research investigation using {% data variables.product.github %} search and web sources. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/research). | +| `/research TOPIC` | Run a deep research investigation using {% data variables.product.github %} search and web sources. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/research-with-copilot-cli). | | `/reset-allowed-tools` | Reset the list of allowed tools. | | `/restart` | Restart the CLI, restoring all of the current process's live sessions, not only the foreground one. If the target CLI version can't restore multiple sessions, you're prompted to continue with only the foreground session or cancel. | | `/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). | +| `/rubber-duck [PROMPT]` | Consult the rubber duck agent for a second opinion on plans, code, and tests. See [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion). | | `/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. | @@ -676,7 +676,7 @@ Use `/collect-debug-logs [file|gist|share] [PATH]` to gather debug logs for trou | `--allow-url=URL ...` | Allow access to specific URLs or domains. For multiple URLs, use a quoted, comma-separated list. | | `--acp` | Start as Agent Client Protocol server. | | `--attachment PATH` | Attach a file to the initial prompt (can be used multiple times). Image files are accepted, but sending them successfully requires the selected model and organization policy to allow vision input. | -| `--autopilot` | Enable autopilot continuation—the agent keeps working until `task_complete` is called, then returns to interactive mode. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | +| `--autopilot` | Enable autopilot continuation—the agent keeps working until `task_complete` is called, then returns to interactive mode. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode). | | `--available-tools=TOOL ...` | Only these tools will be available to the model. For multiple tools, use a quoted, comma-separated list. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools). | | `--banner`, `--no-banner` | Show or hide the startup banner. | | `--bash-env` | Enable `BASH_ENV` support for bash shells. | @@ -698,13 +698,13 @@ Use `/collect-debug-logs [file|gist|share] [PATH]` to gather debug logs for trou | `--excluded-tools=TOOL ...` | These tools will not be available to the model. For multiple tools, use a quoted, comma-separated list. | | `--experimental` | Enable experimental features (use `--no-experimental` to disable). | | `--extension-sdk-path DIRECTORY` | Override the bundled `@github/copilot-sdk` injected into extension subprocesses with a local `copilot-sdk/` folder. Invalid paths fall back to the bundled SDK. | -| `--fleet` | Run the prompt in fleet mode (parallel subagent orchestration). Combine with `-i`, `-p`, or piped standard input. This requires a prompt from one of those sources, and has no effect on its own. This is equivalent to prefixing an interactive prompt with the `/fleet` slash command. With `-p` or piped input it dispatches the same fleet orchestration non-interactively. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). | +| `--fleet` | Run the prompt in fleet mode (parallel subagent orchestration). Combine with `-i`, `-p`, or piped standard input. This requires a prompt from one of those sources, and has no effect on its own. This is equivalent to prefixing an interactive prompt with the `/fleet` slash command. With `-p` or piped input it dispatches the same fleet orchestration non-interactively. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion). | | `-h`, `--help` | Display help. | | `-i PROMPT`, `--interactive=PROMPT` | Start an interactive session and automatically execute this prompt. | | `--log-dir=DIRECTORY` | Set the log file directory (default: `~/.copilot/logs/`). | | `--log-level=LEVEL` | Set the log level (choices: `none`, `error`, `warning`, `info`, `debug`, `all`, `default`). | | `--max-ai-credits=CREDITS` | Set a soft maximum for AI Credits allowed for each response. The limit resets per user message and can be adjusted mid-session with `/limits`. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/set-session-limit). | -| `--max-autopilot-continues=COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). Must be a non-negative integer. Malformed values (`NaN`, negative, fractional, or scientific notation) are rejected. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | +| `--max-autopilot-continues=COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). Must be a non-negative integer. Malformed values (`NaN`, negative, fractional, or scientific notation) are rejected. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode). | | `--mode=MODE` | Set the initial agent mode (choices: `interactive`, `plan`, `autopilot`). Combine with `--plan` (as `--plan --mode autopilot`) for plan-then-autopilot: the session starts in plan mode and automatically progresses to autopilot mode once the plan is ready, instead of waiting for a human to approve it. Any other `--plan --mode MODE` pairing is rejected. | | `--model=MODEL` | Set the AI model you want to use. Pass `auto` as the value to let {% data variables.product.prodname_copilot_short %} pick the best available model automatically. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection). | | `--mouse[=VALUE]` | Enable or disable mouse support in the interactive interface. VALUE can be `on` (default) or `off`. When enabled, the CLI captures mouse events—scroll wheel, clicks, and so on—to navigate its own interface, such as scrolling the timeline or clicking tabs. When disabled, the terminal's native mouse behavior, such as text selection and scrollback, is preserved. When you set this option explicitly, the value is persisted to your configuration file. | @@ -1354,7 +1354,7 @@ Custom agents are specialized AI agents defined in Markdown files. For user, pro | `explore` | gpt-5.4-mini | Fast codebase exploration. Searches files, reads code, and answers questions. Returns focused answers under 300 words. Safe to run in parallel. | | `general-purpose` | claude-sonnet-4.6 | Full-capability agent for complex multi-step tasks. Runs in a separate context window. | | `research` | claude-haiku-4.5 | Executes thorough searches based on instructions. Searches {% data variables.product.github %} repositories, fetches files, verifies claims, and reports detailed findings with citations. | -| `rubber-duck` | complementary model | Use a complementary model to provide a constructive critique of proposals, designs, implementations, or tests. Identifies weak points and suggests improvements. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/rubber-duck). | +| `rubber-duck` | complementary model | Use a complementary model to provide a constructive critique of proposals, designs, implementations, or tests. Identifies weak points and suggests improvements. See [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/getting-a-second-opinion). | | `security-review` | claude-sonnet-4.6 | Security-focused code review. Analyzes changes for high-confidence vulnerabilities across 11 categories. Only flags issues with >80% confidence of exploitability. Reports severity and confidence scores. Will not modify code. | | `task` | gpt-5.6-luna (falls back to gpt-5.4-mini, then claude-haiku-4.5) | Command execution (tests, builds, lints). Returns brief summary on success, full output on failure. | 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 d1501b328dfb..1d1bfdef7fd8 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 @@ -515,7 +515,7 @@ These settings apply across all your sessions and repositories. You can use the | `sidebar` | `boolean` | `true` | Enable the current-session sidebar. Set to `false` to disable it entirely, hiding the composer hint and the ← open gesture. See [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#sidebar-and-sessions-tab-shortcuts). | | `skillDirectories` | `string[]` | `[]` | Additional directories to search for custom skill definitions (in addition to `~/.copilot/skills/`). | | `statusLine` | `object` | — | Custom status line display. `type`: must be `"command"`. `command`: path to an executable script that receives session JSON on stdin and prints status content to stdout. `padding`: optional number of left-padding spaces. `refreshInterval`: optional integer number of seconds (`1`–`2147483`) to re-run the command on a timer instead of only on events; omit it to refresh only when the session state changes. If the command fails to spawn, exits non-zero, or fails to receive the status JSON on stdin, the CLI logs a warning once per continuous failure episode and leaves the status line blank instead of failing silently. Run with `--log-level all` to see the underlying error detail. | -| `stayInAutopilot` | `boolean` | `true` | Remain in autopilot mode after each task completes. When enabled, the next prompt you enter after a task completes is also handled in autopilot mode. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot#staying-in-autopilot-mode-between-tasks). | +| `stayInAutopilot` | `boolean` | `true` | Remain in autopilot mode after each task completes. When enabled, the next prompt you enter after a task completes is also handled in autopilot mode. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode). | | `storeTokenPlaintext` | `boolean` | `false` | Allow authentication tokens to be stored in plain text in `config.json` when no system keychain is available. | | `stream` | `boolean` | `true` | Enable streaming responses. | | `streamerMode` | `boolean` | `false` | Hide preview model names, quota details, prompt timestamps, and the update-available notice. Useful when demonstrating {% data variables.copilot.copilot_cli_short %} or screen sharing. | diff --git a/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md b/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md index 7347ede40572..924e8940f85a 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-programmatic-reference.md @@ -53,7 +53,7 @@ There are a number of command-line options that are particularly useful when run ## Running dynamic workflows -Use `copilot workflow run WORKFLOW-NAME` to run a dynamic workflow from a script. To find out about dynamic workflows, see [AUTOTITLE](/copilot/concepts/agents/dynamic-workflows). +Use `copilot workflow run WORKFLOW-NAME` to run a dynamic workflow from a script. To find out about dynamic workflows, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows). Use `--args` for inline JSON or an `@`-prefixed JSON file path. Arguments are not read from standard input. diff --git a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md index 42123cb8233c..65ec0c76f35f 100644 --- a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md +++ b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md @@ -137,7 +137,7 @@ Per-user reports contain one record per user for the reporting period. The 28-da | `totals_by_slash_cmd` | `array` | Yes | Top slash commands used in {% data variables.copilot.copilot_cli_short %}, ordered by interaction count. See [{% data variables.copilot.copilot_cli_short %} customization fields](#copilot-cli-customization-fields-api-only). | | `totals_by_plugin` | `array` | Yes | Top plugins used in {% data variables.copilot.copilot_cli_short %}, ordered by interaction count. See [{% data variables.copilot.copilot_cli_short %} customization fields](#copilot-cli-customization-fields-api-only). | | `totals_by_cli` | `object` | Yes | CLI-specific metrics for the user. Omitted when the user had no {% data variables.copilot.copilot_cli_short %} usage that day. See [{% data variables.copilot.copilot_cli_short %} metrics fields](#copilot-cli-metrics-fields). | -| `totals_by_copilot_app` | `object` | Yes | {% data variables.copilot.github_copilot_app_short %} metrics for the user. Omitted when the user had no {% data variables.copilot.github_copilot_app_short %} usage that day. See [{% data variables.copilot.github_copilot_app_short %} metrics fields](#copilot-app-metrics-fields). | +| `totals_by_copilot_app` | `object` | Yes | The {% data variables.copilot.github_copilot_app_short %} metrics for the user. Omitted when the user did not use the {% data variables.copilot.github_copilot_app_short %} that day. See [Metrics fields for the {% data variables.copilot.github_copilot_app_short %}](#copilot-app-metrics-fields). | | `totals_by_3rd_party_agent` | `array` | Yes | Per-agent usage metrics for recognized {% data variables.copilot.agent_apps %}. Omitted when the user had no recognized {% data variables.copilot.agent_app %} activity during the reporting period. See [{% data variables.copilot.agent_apps_caps %} metrics fields](#agent-apps-metrics-fields). | | `totals_by_vscode_agent` | `object` | Yes | Dedicated {% data variables.product.prodname_vscode_shortname %} Agents-window metrics for the user. Omitted when both required counts are not available. See [{% data variables.product.prodname_vscode_shortname %} Agents-window metrics fields](#vs-code-agents-window-metrics-fields). | | `totals_by_ide` | `array` | No | Per-IDE breakdown of the user's activity. See [Activity breakdown objects](#activity-breakdown-objects). | @@ -171,7 +171,7 @@ Active-user counts: | `weekly_passive_copilot_code_review_users` | `integer` | No | Number of unique users who had {% data variables.copilot.copilot_code-review_short %} automatically assigned to review their pull request during a trailing seven-day window, with no active engagement. | | `monthly_passive_copilot_code_review_users` | `integer` | No | Number of unique users who had {% data variables.copilot.copilot_code-review_short %} automatically assigned to review their pull request during a trailing 28-day window, with no active engagement. | | `daily_active_cli_users` | `integer` | Yes | Number of unique users who used {% data variables.copilot.copilot_cli_short %} on a given day. This count is **independent** of IDE active-user counts and is **not** included in IDE-based active-user definitions. Omitted for enterprises or organizations with no CLI usage that day. | -| `daily_active_copilot_app_users` | `integer` | Yes | Number of unique users who used the {% data variables.copilot.github_copilot_app_short %} on a given day. Null when the enterprise or organization has no {% data variables.copilot.github_copilot_app_short %} activity that day. | +| `daily_active_copilot_app_users` | `integer` | Yes | Number of unique users who used the {% data variables.copilot.github_copilot_app_short %} on a given day. Null when the enterprise or organization has no activity in the {% data variables.copilot.github_copilot_app_short %} that day. | | `daily_active_vscode_agent_users` | `integer` | Yes | Number of unique users who used the dedicated {% data variables.product.prodname_vscode_shortname %} Agents window on a given day. Omitted when no dedicated Agents-window data is available for the enterprise or organization. | Activity totals and breakdowns: @@ -201,7 +201,7 @@ Activity totals and breakdowns: | `totals_by_language_model` | `array` | No | Aggregated language-and-model activity breakdown. See [Activity breakdown objects](#activity-breakdown-objects). | | `totals_by_model_feature` | `array` | No | Aggregated model-and-feature activity breakdown. See [Activity breakdown objects](#activity-breakdown-objects). | | `totals_by_cli` | `object` | Yes | Aggregated {% data variables.copilot.copilot_cli_short %} metrics for the day. Omitted when there is no CLI usage that day. Unlike the per-user form, it does not include `last_known_cli_version`. See [{% data variables.copilot.copilot_cli_short %} metrics fields](#copilot-cli-metrics-fields). | -| `totals_by_copilot_app` | `object` | Yes | Aggregated {% data variables.copilot.github_copilot_app_short %} metrics for the day. Null when the enterprise or organization has no {% data variables.copilot.github_copilot_app_short %} activity that day. See [{% data variables.copilot.github_copilot_app_short %} metrics fields](#copilot-app-metrics-fields). | +| `totals_by_copilot_app` | `object` | Yes | Aggregated daily metrics for the {% data variables.copilot.github_copilot_app_short %}. Null when the enterprise or organization has no activity in the {% data variables.copilot.github_copilot_app_short %} that day. See [Metrics fields for the {% data variables.copilot.github_copilot_app_short %}](#copilot-app-metrics-fields). | | `totals_by_3rd_party_agent` | `array` | Yes | Aggregated per-agent usage metrics for recognized {% data variables.copilot.agent_apps %}. Omitted when the enterprise or organization had no recognized {% data variables.copilot.agent_app %} activity that day. See [{% data variables.copilot.agent_apps_caps %} metrics fields](#agent-apps-metrics-fields). | | `totals_by_vscode_agent` | `object` | Yes | Aggregated dedicated {% data variables.product.prodname_vscode_shortname %} Agents-window metrics for the day. Omitted when both required counts are not available. See [{% data variables.product.prodname_vscode_shortname %} Agents-window metrics fields](#vs-code-agents-window-metrics-fields). | | `totals_by_ai_adoption_phase` | `array` | Yes | Per-phase aggregates of users and their average activity. Omitted when no adoption-phase data is available. See [AI adoption phase fields](#ai-adoption-phase-fields). | @@ -345,18 +345,21 @@ Distinct counts retain the full identifier cardinality, including items outside When these fields are present, empty arrays and distinct counts of `0` mean that no matching activity was recorded. The fields can be null or absent when {% data variables.copilot.copilot_cli_short %} customization data isn't available during rollout. -### {% data variables.copilot.github_copilot_app_short %} metrics fields + + -The `totals_by_copilot_app` object contains the following nested fields when {% data variables.copilot.github_copilot_app_short %} usage is present. It appears in per-user reports and in aggregated enterprise reports; it is omitted or null when the user or enterprise had no {% data variables.copilot.github_copilot_app_short %} activity that day. Unlike `totals_by_cli`, {% data variables.copilot.github_copilot_app_short %} coding activity is also reflected in `totals_by_feature`, `totals_by_model_feature`, `totals_by_language_feature`, and `totals_by_language_model` under the `copilot_app` feature value, and in the top-level code activity and lines-of-code metrics. There is no `last_known_app_version` field. +### Metrics fields for the {% data variables.copilot.github_copilot_app_short %} + +The `totals_by_copilot_app` object contains the following nested fields when usage of the {% data variables.copilot.github_copilot_app_short %} is present. It appears in per-user reports and in aggregated enterprise reports; it is omitted or null when the user or enterprise had no activity in the {% data variables.copilot.github_copilot_app_short %} that day. Unlike `totals_by_cli`, coding activity in the {% data variables.copilot.github_copilot_app_short %} is also reflected in `totals_by_feature`, `totals_by_model_feature`, `totals_by_language_feature`, and `totals_by_language_model` under the `copilot_app` feature value, and in the top-level code activity and lines-of-code metrics. There is no `last_known_app_version` field. | Field | Type | Nullable | Description | |:--|:--|:--|:--| -| `totals_by_copilot_app.session_count` | `integer` | No | Number of distinct {% data variables.copilot.github_copilot_app_short %} sessions initiated on this day. | +| `totals_by_copilot_app.session_count` | `integer` | No | Number of distinct sessions initiated in the {% data variables.copilot.github_copilot_app_short %} on this day. | | `totals_by_copilot_app.request_count` | `integer` | No | Total number of requests made to {% data variables.product.prodname_copilot_short %} via the {% data variables.copilot.github_copilot_app_short %} on this day, including both user-initiated prompts and automated agentic follow-up calls. | | `totals_by_copilot_app.prompt_count` | `integer` | No | Total number of user prompts, commands, or queries executed within a session. | -| `totals_by_copilot_app.token_usage.output_tokens_sum` | `integer` | No | Total output tokens generated across all {% data variables.copilot.github_copilot_app_short %} requests on this day. | -| `totals_by_copilot_app.token_usage.prompt_tokens_sum` | `integer` | No | Total prompt tokens sent across all {% data variables.copilot.github_copilot_app_short %} requests on this day. | -| `totals_by_copilot_app.token_usage.avg_tokens_per_request` | `number` | Yes | Average of output and prompt tokens per {% data variables.copilot.github_copilot_app_short %} request, computed as `(output_tokens_sum + prompt_tokens_sum) ÷ request_count`. Null when there were no requests that day. | +| `totals_by_copilot_app.token_usage.output_tokens_sum` | `integer` | No | Total output tokens generated across all requests in the {% data variables.copilot.github_copilot_app_short %} on this day. | +| `totals_by_copilot_app.token_usage.prompt_tokens_sum` | `integer` | No | Total prompt tokens sent across all requests in the {% data variables.copilot.github_copilot_app_short %} on this day. | +| `totals_by_copilot_app.token_usage.avg_tokens_per_request` | `number` | Yes | Average of output and prompt tokens per request in the {% data variables.copilot.github_copilot_app_short %}, computed as `(output_tokens_sum + prompt_tokens_sum) ÷ request_count`. Null when there were no requests that day. | ### {% data variables.product.prodname_vscode_shortname %} Agents-window metrics fields diff --git a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md index ce80a422175f..fdbef1c7d76a 100644 --- a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md +++ b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md @@ -18,7 +18,7 @@ For instructions on creating the file, see [AUTOTITLE](/copilot/how-tos/administ {% rowheaders %} -| Key | Purpose | {% data variables.copilot.copilot_cli_short %} | {% data variables.product.prodname_vscode_shortname %} | {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_cloud_agent %} | {% data variables.product.prodname_jetbrains_ides %} | +| Key | Purpose | {% data variables.copilot.copilot_cli_short %} | {% data variables.product.prodname_vscode_shortname %} | The {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_cloud_agent %} | {% data variables.product.prodname_jetbrains_ides %} | | --- | --- | --- | --- | --- | --- | --- | | `permissions.disableBypassPermissionsMode` | Disables bypass or YOLO-style allow-all behavior | {% 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" %} | | `permissions.deny` | Blocks specific operations | {% 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" %} | @@ -142,7 +142,7 @@ The following example shows these keys in one managed settings file. ## features.computerUse -Controls whether users can enable computer use in {% data variables.copilot.copilot_cli %} and {% data variables.copilot.github_copilot_app %}. Set `features.computerUse` to `false` to prevent users from enabling computer use. A local setting cannot override this restriction. Set the value to `true`, or omit the key, to allow users to control computer use through their local settings. +Controls whether users can enable computer use in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %}. Set `features.computerUse` to `false` to prevent users from enabling computer use. A local setting cannot override this restriction. Set the value to `true`, or omit the key, to allow users to control computer use through their local settings. ## enabledPlugins @@ -392,7 +392,7 @@ Enforces minimum local sandbox restrictions for {% data variables.copilot.copilo In {% data variables.product.prodname_vscode_shortname %} 1.138.0 and later, these settings apply to {% data variables.product.prodname_copilot_short %} sessions that use Agent Host's built-in sandbox. This support does not extend to every type of chat session or terminal in {% data variables.product.prodname_vscode_shortname %}. In {% data variables.product.prodname_vscode_shortname %} 1.140.0 and later, setting `sandbox.enabled` to `true` prevents users from turning sandboxing off with the session's sandbox toggle. If your policy permits bypass, users can still turn it off for the current session when responding to a sandbox-bypass permission prompt. This does not change your organization's policy. -In {% data variables.copilot.github_copilot_app_short %} sessions, the embedded runtime parses, combines, and enforces the complete managed `sandbox` object, including properties that are not available in the app's project settings. The app displays the user's project settings, not the complete effective managed policy, and does not show per-setting managed locks. +For sessions in the {% data variables.copilot.github_copilot_app_short %}, the embedded runtime parses, combines, and enforces the complete managed `sandbox` object, including properties that are not available in the app's project settings. The app displays the user's project settings, not the complete effective managed policy, and does not show per-setting managed locks. The following sub-properties are supported: diff --git a/content/copilot/reference/enterprise-administrators/policy-conflicts.md b/content/copilot/reference/enterprise-administrators/policy-conflicts.md index c0f818b150ae..fe6c4454eae6 100644 --- a/content/copilot/reference/enterprise-administrators/policy-conflicts.md +++ b/content/copilot/reference/enterprise-administrators/policy-conflicts.md @@ -49,7 +49,7 @@ Feature, model, and privacy settings for users are set according to the **least | {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_dotcom_the_website %} | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/chat) | | {% data variables.copilot.copilot_desktop_short %} | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/chat) | | {% data variables.copilot.copilot_cli_short %} | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/agents) | -| {% data variables.copilot.github_copilot_app %} | Least restrictive organization | [AUTOTITLE](/copilot/concepts/copilot-surfaces/github-copilot-app) | +| The {% data variables.copilot.github_copilot_app %} | Least restrictive organization | [AUTOTITLE](/copilot/concepts/copilot-surfaces/github-copilot-app) | | Editor preview features | Least restrictive organization | [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) | | MCP servers in {% data variables.product.prodname_copilot_short %} | Least restrictive organization | [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) | | {% data variables.product.prodname_copilot_short %}-generated commit messages | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/chat) | diff --git a/content/copilot/reference/github-copilot-app-reference/built-in-skills.md b/content/copilot/reference/github-copilot-app-reference/built-in-skills.md index 6399f9e224ef..fd909c46df66 100644 --- a/content/copilot/reference/github-copilot-app-reference/built-in-skills.md +++ b/content/copilot/reference/github-copilot-app-reference/built-in-skills.md @@ -3,7 +3,7 @@ title: Built-in skills for the GitHub Copilot app shortTitle: Built-in skills allowTitleToDifferFromFilename: true intro: 'Use this reference to find built-in agent skills available in the {% data variables.copilot.github_copilot_app %}.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: reference diff --git a/content/copilot/reference/github-copilot-app-reference/repository-configuration.md b/content/copilot/reference/github-copilot-app-reference/repository-configuration.md index 89ed9b6f89ef..23c5ff995d83 100644 --- a/content/copilot/reference/github-copilot-app-reference/repository-configuration.md +++ b/content/copilot/reference/github-copilot-app-reference/repository-configuration.md @@ -3,7 +3,7 @@ title: Repository configuration for the GitHub Copilot app shortTitle: Repository configuration allowTitleToDifferFromFilename: true intro: 'Define repository-specific instructions, scripts, and automation behavior for the {% data variables.copilot.github_copilot_app %}.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: reference @@ -122,7 +122,7 @@ Set automation options under `automation`: * `automation.auto_issue_session` (`boolean`) controls whether the app automatically starts a session with issue context. If omitted, the effective default is `true`. * `automation.remote_control` (`boolean`) controls whether sessions can be accessed from the {% data variables.product.github %} web interface or {% data variables.product.prodname_mobile %}. If omitted, the effective default is `false`. -If your {% data variables.product.prodname_copilot_short %} seat comes from an organization, the applicable "Store local sessions in the Cloud" policy must be set to "View and control" for remote control to be available. Enterprise-managed `remoteControl` settings can further restrict remote control even when `automation.remote_control` is `true`. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-remote-control) and [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings). +If your {% data variables.product.prodname_copilot_short %} seat comes from an organization, the applicable "Store local sessions in the Cloud" policy must be set to "View and control" for remote control to be available. Enterprise-managed `remoteControl` settings can further restrict remote control even when `automation.remote_control` is `true`. For more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control) and [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings). ## Runtime environment variables for scripts diff --git a/content/copilot/reference/github-copilot-app-reference/slash-commands.md b/content/copilot/reference/github-copilot-app-reference/slash-commands.md index 6826c427680c..68215ea1bec1 100644 --- a/content/copilot/reference/github-copilot-app-reference/slash-commands.md +++ b/content/copilot/reference/github-copilot-app-reference/slash-commands.md @@ -3,7 +3,7 @@ title: Slash commands for the GitHub Copilot app shortTitle: Slash commands allowTitleToDifferFromFilename: true intro: 'Use slash commands in the {% data variables.copilot.github_copilot_app %} to switch modes, run common workflows, and manage sessions without writing a long prompt.' -product: '{% data reusables.gated-features.github-app %}
Download {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' +product: '{% data reusables.gated-features.github-app %}
Download the {% data variables.copilot.github_copilot_app %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: reference @@ -59,9 +59,9 @@ Some commands require specific context, such as an active session, session chang | `/pr-merge` | **Requires a mergeable pull request.** Merges the current pull request. | | `/pr-open` | **Requires an active session with changes.** Opens a pull request from current session changes. | | `/pr-resolve-comments` | **Requires an open pull request with unresolved review comments.** Runs a prompt to resolve pull request comments. | -| `/remote` | **Requires an active session.** Enables or manages remote control so you can access the current session from {% data variables.product.prodname_dotcom_the_website %} in a browser or from {% data variables.product.prodname_mobile %}. Availability depends on your organization or enterprise policy. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-remote-control). | +| `/remote` | **Requires an active session.** Enables or manages remote control so you can access the current session from {% data variables.product.prodname_dotcom_the_website %} in a browser or from {% data variables.product.prodname_mobile %}. Availability depends on your organization or enterprise policy. See [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/about-remote-control). | | `/rename` | **Requires an active session.** Renames the current chat or session. | -| `/research [PROMPT]` | Runs a research workflow and produces a cited report. | +| `/research [PROMPT]` | Runs a research workflow and produces a cited report. See [AUTOTITLE](/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents). | | `/reset-allowed-tools` | **Requires an active session.** Clears session-level tool approvals and turns auto-approval off. | | `/restart-session` | **Requires an active session.** Restarts the current session and keeps its history. | | `/review` | **Requires an active session.** Reviews the current session's changes. | diff --git a/content/copilot/reference/supported-surfaces-for-policies.md b/content/copilot/reference/supported-surfaces-for-policies.md index 8661cffcb7ad..167f9e5b2c99 100644 --- a/content/copilot/reference/supported-surfaces-for-policies.md +++ b/content/copilot/reference/supported-surfaces-for-policies.md @@ -18,7 +18,7 @@ A dedicated policy exists to enable or disable each supported feature or surface {% rowheaders %} -| Policy name | IDEs | {% data variables.copilot.copilot_cloud_agent %} | Third-party agents | {% data variables.copilot.copilot_cli_short %} | {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_chat_dotcom_short %} | {% data variables.copilot.copilot_code-review_short %} | {% data variables.product.prodname_spark_short %} | +| Policy name | IDEs | {% data variables.copilot.copilot_cloud_agent %} | Third-party agents | {% data variables.copilot.copilot_cli_short %} | The {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_chat_dotcom_short %} | {% data variables.copilot.copilot_code-review_short %} | {% data variables.product.prodname_spark_short %} | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Editor preview features | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% data variables.product.prodname_copilot_short %} can search the web | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | diff --git a/content/copilot/responsible-use/agents.md b/content/copilot/responsible-use/agents.md index 115117ada7d6..fb8ab06565b0 100644 --- a/content/copilot/responsible-use/agents.md +++ b/content/copilot/responsible-use/agents.md @@ -41,7 +41,7 @@ GitHub Copilot includes several agentic features that go beyond suggestion and c * **Copilot cloud agent**: An asynchronous agent on GitHub.com that can create branches, write code, and open pull requests in response to assigned issues. The cloud agent runs in an ephemeral, firewalled environment with automated security scanning. * **Copilot CLI**: A command-line tool that can create and modify files, execute commands, and perform multi-step tasks. By default, filesystem access is scoped to the directory where the CLI was started. Permission prompts depend on the active permission mode. When computer use is enabled, Copilot CLI can also interact with desktop applications outside that directory scope. * **Copilot SDK**: A programmatic library that allows developers to build custom AI-powered applications using Copilot. The SDK communicates with Copilot CLI over JSON-RPC and supports custom agents, MCP server integrations, lifecycle hooks, and session management. -* **{% data variables.copilot.github_copilot_app %}**: A desktop application for directing agent sessions across local repositories, git worktrees, and cloud sandboxes. The app uses {% data variables.copilot.copilot_cli %} and {% data variables.copilot.copilot_sdk %} as its foundation and adds a user interface for parallel sessions, quick chats, {% data variables.product.github %} issue and pull request workflows, automations, and canvases. When computer use is enabled, the app can also interact with desktop applications. +* **The {% data variables.copilot.github_copilot_app %}**: A desktop application for directing agent sessions across local repositories, git worktrees, and cloud sandboxes. The app uses {% data variables.copilot.copilot_cli %} and {% data variables.copilot.copilot_sdk %} as its foundation and adds a user interface for parallel sessions, quick chats, {% data variables.product.github %} issue and pull request workflows, automations, and canvases. When computer use is enabled, the app can also interact with desktop applications. These features share common principles—human oversight, review of outputs, and responsible use—but differ in their execution environments, permissions, and data flows. The sections below describe each in context. @@ -51,7 +51,7 @@ The following list provides a glossary of key terms related to GitHub Copilot Ag * **Code suggestion**: A specific code change proposed by Copilot code review as part of its feedback on a pull request. Code suggestions are presented as suggested changes that can be applied with a couple of clicks. * **Content filtering**: A safety system that scans prompts and responses to detect and block harmful, offensive, or insecure content before it is shown to the user. -* **Computer use**: An optional capability in {% data variables.copilot.copilot_cli %} and {% data variables.copilot.github_copilot_app %} that allows an agent to interact with desktop applications. Its tools can read accessible application content and visual context through the operating system's accessibility tree or screenshots when visual context is needed, click controls, enter and edit text, press keys, scroll, drag, and navigate workflows across applications. +* **Computer use**: An optional capability in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %} that allows an agent to interact with desktop applications. Its tools can read accessible application content and visual context through the operating system's accessibility tree or screenshots when visual context is needed, click controls, enter and edit text, press keys, scroll, drag, and navigate workflows across applications. * **Custom instructions**: Natural language descriptions of coding style and best practices that a repository maintainer can configure to guide Copilot code review's feedback. Custom instructions help Copilot understand the conventions and standards of a specific codebase. * **Hallucination**: A phenomenon where a language model generates output that sounds plausible but is factually incorrect, unsupported by the provided context, or entirely fabricated. In code review, hallucination can manifest as feedback that highlights problems that do not exist or are based on misunderstandings of the code. * **Large language model (LLM)**: A type of neural network trained on a large body of text data that can generate, analyze, and transform natural language and code. Copilot Agents use one or more LLMs to process context and produce responses. @@ -75,7 +75,7 @@ The key features and capabilities outlined here describe what GitHub Copilot Age * **Automated security scanning**: During code generation, the cloud agent automatically analyzes newly generated code for security vulnerabilities using CodeQL, secret scanning, and dependency analysis, and attempts to resolve any issues before they are introduced. * **External integrations**: The cloud agent can receive information and context from MCP like workIQ and Microsoft 365, and external applications like Microsoft Teams, Linear, Slack, and Jira, enabling teams to assign tasks and track progress directly within their existing workflows. * **Local agentic execution (Copilot CLI)**: Copilot CLI provides a chat-like interface in the terminal that can autonomously create and modify files, execute commands, and perform multi-step tasks. By default, filesystem access is scoped to the directory where the CLI was started. The active permission mode determines whether the CLI prompts before modifying files or running commands. -* **Desktop application interaction (computer use)**: In local {% data variables.copilot.copilot_cli_short %} and {% data variables.copilot.github_copilot_app_short %} sessions, computer use can read accessible application content and visual context through the operating system's accessibility tree or screenshots when visual context is needed, click controls, enter and edit text, press keys, scroll, drag, and navigate workflows across applications. +* **Desktop application interaction (computer use)**: In local sessions in {% data variables.copilot.copilot_cli_short %} and the {% data variables.copilot.github_copilot_app_short %}, computer use can read accessible application content and visual context through the operating system's accessibility tree or screenshots when visual context is needed, click controls, enter and edit text, press keys, scroll, drag, and navigate workflows across applications. ## 4. Intended uses @@ -181,11 +181,11 @@ Understanding GitHub Copilot agentic features' limitations is crucial to determi ### Performance and quality evaluations -GitHub Copilot Agents are evaluated across its supported surfaces using a combination of industry-standard benchmarks (e.g., SWE-Bench) and internally developed evaluation suites. Benchmark tasks are sourced from public open-source repositories and synthetic scenarios; no real user queries or customer code are used. Each evaluation includes multiple independent runs to account for nondeterminism in model outputs. Key metrics include resolution rate (percentage of tasks successfully completed), token efficiency, latency, and tool call reliability. Models are re-evaluated when updates are made and monitored continuously in production via error rates, response latency, and aggregate usage patterns. +GitHub Copilot Agents are evaluated across its supported surfaces using a combination of industry-standard benchmarks (e.g., SWE-Bench) and internally developed evaluation suites. Benchmark tasks are sourced from public open-source repositories and synthetic scenarios; no real user queries or customer code are used. Each evaluation includes multiple independent runs to account for nondeterminism in model outputs. Key metrics include resolution rate (percentage of tasks successfully completed), token efficiency, latency, and tool call reliability. Models are re-evaluated when updates are made and monitored continuously in production via error rates, response latency, and aggregate usage patterns. ### Performance and quality evaluation methods -New models for GitHub Copilot Agents undergo a staged evaluation process before deployment. Integrator teams run benchmark suites specific to their surface, testing the model on representative coding tasks such as bug fixes, code generation, and multi-file refactoring. Results are reviewed against established baselines and existing production models. Models must meet or exceed baseline performance across key metrics like resolution rate, token efficiency, and latency, before advancing to the next stage. A cross-functional review board makes a formal go/no-go decision before any model is approved for user-facing deployment. +New models for GitHub Copilot Agents undergo a staged evaluation process before deployment. Integrator teams run benchmark suites specific to their surface, testing the model on representative coding tasks such as bug fixes, code generation, and multi-file refactoring. Results are reviewed against established baselines and existing production models. Models must meet or exceed baseline performance across key metrics like resolution rate, token efficiency, and latency, before advancing to the next stage. A cross-functional review board makes a formal go/no-go decision before any model is approved for user-facing deployment. ### Risk and safety evaluations @@ -214,10 +214,10 @@ Copilot agentic features have been subject to RAI red teaming to identify and ad * **Directory-scoped access**: By default, Copilot CLI only has access to files and folders in, and below, the directory from which it was invoked. If the agent wishes to access files outside the current directory, it will ask for permission. * **Permission prompts for file modifications**: Copilot CLI asks for permission before modifying files. You should ensure it is modifying the correct files before granting permission. * **Permission prompts for command execution**: Copilot CLI asks for permission before executing commands that may be dangerous. You should review these commands carefully before giving permission to run. -* **Configurable permissions**: You can grant Copilot CLI specific permissions, or all permissions, by using the various command line options: for example, `--allow-tool=[TOOLS...]`, `--allow-all-tools`, `--allow-all` (or its slash command equivalent `/allow-all` for use in an interactive session). For more information, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). Typically, when you use Copilot CLI in autopilot mode, you will grant it full permissions to allow it to complete a task autonomously, without requiring you to approve activity as it works on the task. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). +* **Configurable permissions**: You can grant Copilot CLI specific permissions, or all permissions, by using the various command line options: for example, `--allow-tool=[TOOLS...]`, `--allow-all-tools`, `--allow-all` (or its slash command equivalent `/allow-all` for use in an interactive session). For more information, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options). Typically, when you use Copilot CLI in autopilot mode, you will grant it full permissions to allow it to complete a task autonomously, without requiring you to approve activity as it works on the task. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/use-autopilot-mode) * **Security considerations**: For more information about security practices while using Copilot CLI, see [AUTOTITLE](/copilot/concepts/copilot-surfaces/copilot-cli#security-considerations). -### Computer use in {% data variables.copilot.copilot_cli %} and {% data variables.copilot.github_copilot_app %} +### Computer use in {% data variables.copilot.copilot_cli %} and the {% data variables.copilot.github_copilot_app %} Computer use is an optional local capability that allows an agent to interact with desktop applications on a user's behalf. Like other agentic features, computer use has limitations. Because it interprets visual interfaces, changing interfaces or unexpected on-screen content can lead to inconsistent results, stalled workflows, or unintended actions. The following controls help users limit and interrupt its access. @@ -225,8 +225,8 @@ Computer use is an optional local capability that allows an agent to interact wi * **Managed policy**: Enterprise administrators can disable computer use through managed settings. Users cannot override the enterprise policy through local settings. For configuration details, see [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings#featurescomputeruse). * **Tool permission controls**: Computer-use application requests use the host permission system. Depending on the active permission mode, the host displays an approval prompt or approves the request automatically. Explicit deny rules take precedence, and a request fails closed if no permission handler accepts it. * **Operating system permissions**: On macOS, computer use guides users through granting Accessibility permission to interact with controls and Screen Recording permission to inspect windows when visual context is needed. -* **Application approval management**: In {% data variables.copilot.github_copilot_app %}, users can review and remove saved application approvals. Removing an application deletes its saved approval for future sessions, but does not revoke access already granted in a running session. The host's permission settings determine whether later requests display a prompt or are approved automatically. -* **Session interruption**: Users can interrupt an active local operation if computer use starts acting unexpectedly. In {% data variables.copilot.copilot_cli %}, pressing Esc twice interrupts the current operation. In {% data variables.copilot.github_copilot_app %}, clicking **Stop** or pressing Esc interrupts it. +* **Application approval management**: In the {% data variables.copilot.github_copilot_app %}, users can review and remove saved application approvals. Removing an application deletes its saved approval for future sessions, but does not revoke access already granted in a running session. The host's permission settings determine whether later requests display a prompt or are approved automatically. +* **Session interruption**: Users can interrupt an active local operation if computer use starts acting unexpectedly. In {% data variables.copilot.copilot_cli %}, pressing Esc twice interrupts the current operation. In the {% data variables.copilot.github_copilot_app %}, clicking **Stop** or pressing Esc interrupts it. ### Copilot SDK @@ -236,7 +236,7 @@ Computer use is an optional local capability that allows an agent to interact wi * **Session scoping**: Each SDK session is isolated with its own context, tools, and permissions. Developers can control what data and capabilities are available within each session. * **BYOK responsibility**: When using bring-your-own-key configurations, prompts and responses are sent directly to the configured provider. Developers are responsible for reviewing the data handling policies of their chosen provider. -### {% data variables.copilot.github_copilot_app %} +### The {% data variables.copilot.github_copilot_app %} The {% data variables.copilot.github_copilot_app %} is a desktop application for directing agent sessions across local repositories, git worktrees, and cloud sandboxes. The app uses {% data variables.copilot.copilot_cli %} and {% data variables.copilot.copilot_sdk %} as its foundation and adds a user interface for parallel sessions, quick chats, {% data variables.product.github %} issue and pull request workflows, automations, and canvases. @@ -311,7 +311,7 @@ For additional guidance on the responsible use of Copilot agentic features, we r * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) * [AUTOTITLE](/copilot/concepts/copilot-surfaces/copilot-cli) * [AUTOTITLE](/copilot/concepts/copilot-surfaces/github-copilot-app) -* [AUTOTITLE](/copilot/concepts/agents/computer-use) +* [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/computer-use) * [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) * [Copilot Trust Center](https://copilot.github.trust.page/) diff --git a/content/copilot/tutorials/roll-out-at-scale/enable-developers/drive-team-agentic-adoption.md b/content/copilot/tutorials/roll-out-at-scale/enable-developers/drive-team-agentic-adoption.md index 504bf8b05e39..5dae739f3dfc 100644 --- a/content/copilot/tutorials/roll-out-at-scale/enable-developers/drive-team-agentic-adoption.md +++ b/content/copilot/tutorials/roll-out-at-scale/enable-developers/drive-team-agentic-adoption.md @@ -2,7 +2,7 @@ title: Driving team adoption of agentic GitHub Copilot shortTitle: Drive agentic adoption allowTitleToDifferFromFilename: true -intro: 'Help established teams build sustained habits with {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}, then measure adoption and business impact.' +intro: 'Help established teams build sustained habits with the {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}, then measure adoption and business impact.' versions: feature: copilot contentType: tutorials @@ -13,7 +13,7 @@ docsTeamMetrics: - ai-governance --- -After developers are using {% data variables.product.prodname_copilot_short %}, a focused rollout can help established teams add {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %} to their daily work. These tools complement IDE chat and agent mode. The goal is to help teams build repeatable agentic workflows with the tool that best fits each task. +After developers are using {% data variables.product.prodname_copilot_short %}, a focused rollout can help established teams add the {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %} to their daily work. These tools complement IDE chat and agent mode. The goal is to help teams build repeatable agentic workflows with the tool that best fits each task. This playbook is for people who coordinate {% data variables.product.prodname_copilot_short %} adoption for established teams. It guides you through a two-week onboarding sprint to test workflow fit and establish usage habits. A two-week sprint provides an early signal of adoption, not enough evidence to prove long-term productivity or cost impact. @@ -37,7 +37,7 @@ Avoid selecting only enthusiasts. Include a representative mix of experience lev Select a real project with enough suitable work for participants to use agentic tools several times during the sprint. Then prepare access: 1. Confirm that each participant receives their {% data variables.product.prodname_copilot_short %} license through the organization whose policies will govern the sprint. -1. Work with the appropriate enterprise and organization owners to enable the separate policies for {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}. +1. Work with the appropriate enterprise and organization owners to enable the separate policies for the {% data variables.copilot.github_copilot_app %} and {% data variables.copilot.copilot_cli_short %}. 1. Confirm the scope before enabling a policy. Organization policies apply to everyone who receives their license through that organization, not only the selected team. Enterprise policies can also restrict which settings organization owners can change. For more information, see [AUTOTITLE](/copilot/concepts/enterprise/policies). 1. Ask participants to install and sign in to both tools before the kickoff. See [AUTOTITLE](/copilot/get-started/quickstart-copilot-app) and [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli). 1. Confirm that each participant can access the project and use the tools under the intended policies and managed settings. @@ -47,7 +47,7 @@ If you are enabling these tools for the first time, treat the sprint as part of ### Define activation and outcome targets -Set an **activation** target for the onboarding sprint. For example, set a target for each participant to use either {% data variables.copilot.github_copilot_app_short %} or {% data variables.copilot.copilot_cli_short %} on at least three separate days in each week of the sprint. Repeated use gives participants time to try the tools on different tasks and decide where they fit into daily work. +Set an **activation** target for the onboarding sprint. For example, set a target for each participant to use either the {% data variables.copilot.github_copilot_app_short %} or {% data variables.copilot.copilot_cli_short %} on at least three separate days in each week of the sprint. Repeated use gives participants time to try the tools on different tasks and decide where they fit into daily work. Pair the activation target with one or two **outcomes** that matter to the team. For example: @@ -65,8 +65,8 @@ Do not use the amount of generated code as a success target. More generated code Instead of asking participants to "use AI more," give the team two or three **approved workflows** that match their current work. For example: * Use {% data variables.copilot.copilot_cli_short %} to investigate a failure, plan a multi-file change, run tests, or review local changes. -* Use {% data variables.copilot.github_copilot_app_short %} to work from an issue, make changes in an agent session, and open a pull request. -* Move between the tools when useful, for example by opening {% data variables.copilot.github_copilot_app_short %} from {% data variables.copilot.copilot_cli_short %} with `copilot app`. +* Use the {% data variables.copilot.github_copilot_app_short %} to work from an issue, make changes in an agent session, and open a pull request. +* Move between the tools when useful, for example by opening the {% data variables.copilot.github_copilot_app_short %} from {% data variables.copilot.copilot_cli_short %} with `copilot app`. For each workflow, document the required human review, testing, and approval steps. If your enterprise uses custom instructions, agents, managed settings, or approved Model Context Protocol (MCP) servers, configure them before the sprint. @@ -94,7 +94,7 @@ In the first week, remove setup barriers and create shared experiences. In the s 1. **Launch with the whole team.** Explain the outcomes you want to improve, the activation target, and the guardrails participants must follow. 1. **Demonstrate real work.** Ask the manager, team lead, or experienced contributor to complete one of the selected workflows in the team's codebase. Show where human review and approval remain required. -1. **Complete a first task together.** Pair participants so that everyone starts a session in {% data variables.copilot.github_copilot_app_short %} or {% data variables.copilot.copilot_cli_short %} and completes a small, low-risk task. +1. **Complete a first task together.** Pair participants so that everyone starts a session in the {% data variables.copilot.github_copilot_app_short %} or {% data variables.copilot.copilot_cli_short %} and completes a small, low-risk task. 1. **Use the tools during normal work.** Ask participants to use at least one selected workflow on the number of days in your activation target. Avoid creating artificial exercises after the first task. 1. **Check operations.** Confirm that policies and managed settings behave as intended. Review support and safety reports, and check usage-based spending against the agreed limit. diff --git a/content/copilot/tutorials/use-copilot-code-review-across-the-pull-request-lifecycle.md b/content/copilot/tutorials/use-copilot-code-review-across-the-pull-request-lifecycle.md index a0624e6bd139..9559e1365066 100644 --- a/content/copilot/tutorials/use-copilot-code-review-across-the-pull-request-lifecycle.md +++ b/content/copilot/tutorials/use-copilot-code-review-across-the-pull-request-lifecycle.md @@ -119,6 +119,6 @@ For planning and setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-gith ## Next steps -* For broader concepts, including review effort and agentic capabilities, see [AUTOTITLE](/copilot/concepts/agents/code-review). +* For broader concepts, including review effort and agentic capabilities, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review). * To tune automated review quality for specific repositories, see [AUTOTITLE](/copilot/tutorials/optimize-code-reviews). * For excluded file types and other limits, see [AUTOTITLE](/copilot/reference/review-excluded-files). diff --git a/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md b/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md index dbc0766a3614..e95937c7eb68 100644 --- a/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md +++ b/content/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot.md @@ -17,7 +17,7 @@ Getting feedback on your pull request from others is an important part of the so A pull request is a collaborative place where you can show other people the changes you're proposing and get feedback. When you request a review from Copilot, you'll be learning the same process that you'll use when working with development teams. The only difference is you'll also be requesting reviews from human colleagues alongside Copilot. > [!NOTE] -> {% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website is a premium feature, available with paid {% data variables.product.prodname_copilot_short %} plans. For more information about how using {% data variables.copilot.copilot_code-review_short %} affects your quotas, see [AUTOTITLE](/copilot/concepts/agents/code-review). If you're a student, you may be able to access {% data variables.product.prodname_copilot_short %}'s premium features for free, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students). +> {% data variables.copilot.copilot_code-review_short %} on the {% data variables.product.github %} website is a premium feature, available with paid {% data variables.product.prodname_copilot_short %} plans. For more information about how using {% data variables.copilot.copilot_code-review_short %} affects your quotas, see [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review). If you're a student, you may be able to access {% data variables.product.prodname_copilot_short %}'s premium features for free, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students). ## 1. Creating the practice repository diff --git a/content/pull-requests/concepts/giving-reviews.md b/content/pull-requests/concepts/giving-reviews.md index 355c7ec349aa..7f3c8f0f59c3 100644 --- a/content/pull-requests/concepts/giving-reviews.md +++ b/content/pull-requests/concepts/giving-reviews.md @@ -44,5 +44,5 @@ Thorough reviews go beyond reading the diff top to bottom. {% data variables.pro * [AUTOTITLE](/pull-requests/get-started/reviewing-pull-requests-quickstart) * [AUTOTITLE](/pull-requests/how-tos/review-pull-requests/reviewing-dependency-changes-in-a-pull-request) {% ifversion fpt or ghec %} -* [AUTOTITLE](/copilot/concepts/agents/code-review). +* [AUTOTITLE](/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/code-review). {% endif %} 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 6a86588211b6..823a6caeb648 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 @@ -248,6 +248,10 @@ If your repositories are configured with {% data variables.product.prodname_code For more information, see [AUTOTITLE](/code-security/concepts/code-quality/code-quality) and [AUTOTITLE](/code-security/how-tos/maintain-quality-code/set-pr-thresholds). +## Require license compliance results before merging + +This enables the license compliance feature on the targeted repositories. License compliance checks added or changed dependencies against a policy of permitted licenses and will block pull requests which add dependencies whose licenses are not allowed. For more information, see [AUTOTITLE](/code-security/concepts/supply-chain-security/open-source-license-compliance). + ## Restrict code coverage > [!NOTE] diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md deleted file mode 100644 index d8972ce15a3f..000000000000 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: About email notifications for pushes to your repository -intro: You can choose to automatically send email notifications to a specific email address when anyone pushes to the repository. -permissions: People with admin permissions in a repository can enable email notifications for pushes to your repository. -redirect_from: - - /articles/managing-notifications-for-pushes-to-a-repository - - /articles/receiving-email-notifications-for-pushes-to-a-repository - - /articles/about-email-notifications-for-pushes-to-your-repository - - /github/receiving-notifications-about-activity-on-github/about-email-notifications-for-pushes-to-your-repository - - /github/administering-a-repository/about-email-notifications-for-pushes-to-your-repository - - /github/administering-a-repository/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository -versions: - fpt: '*' - ghes: '*' - ghec: '*' -shortTitle: Email notifications for pushes -category: - - Customize and configure a repository ---- -{% data reusables.notifications.outbound_email_tip %} - -Each email notification for a push to a repository lists the new commits and links to a diff containing just those commits. In the email notification you'll see: - -* The name of the repository where the commit was made -* The branch a commit was made in -* The SHA1 of the commit, including a link to the diff in {% data variables.product.github %} -* The author of the commit -* The date when the commit was made -* The files that were changed as part of the commit -* The commit message - -You can filter email notifications you receive for pushes to a repository. For more information, see [AUTOTITLE](/subscriptions-and-notifications/get-started/configuring-notifications). - -{% ifversion ghec %} - ->[!NOTE] Notifications for pushes to your repository will bypass restrictions for email notifications to verified domains configured in your enterprise account or organization. - -{% endif %} - -## Enabling email notifications for pushes to your repository - -{% data reusables.repositories.navigate-to-repo %} -{% data reusables.repositories.sidebar-settings %} -{% data reusables.repositories.sidebar-notifications %} -1. In the "Address" field, type up to two email addresses, separated by whitespace, where you'd like notifications to be sent. If you'd like to send emails to more than two accounts, set one of the email addresses to a group email address. -1. If you operate your own server, you can verify the integrity of emails via the "Approved header." The "Approved header" is a token or secret that you type in this field, and that is sent with the email. If the `Approved` header of an email matches the token, you can trust that the email is from {% data variables.product.github %}. -1. Click **Setup notifications**. - -## Further reading - -* [AUTOTITLE](/subscriptions-and-notifications/concepts/about-notifications) diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/index.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/index.md index 4af79156b1a9..330e901f37c2 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/index.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/index.md @@ -15,7 +15,6 @@ children: - /managing-the-push-policy-for-your-repository - /managing-git-lfs-objects-in-archives-of-your-repository - /enabling-anonymous-git-read-access-for-a-repository - - /about-email-notifications-for-pushes-to-your-repository - /configuring-autolinks-to-reference-external-resources - /managing-auto-closing-issues shortTitle: Manage repository settings diff --git a/content/subscriptions-and-notifications/get-started/configuring-notifications.md b/content/subscriptions-and-notifications/get-started/configuring-notifications.md index a44c0af1b2c5..71bb6933f7c9 100644 --- a/content/subscriptions-and-notifications/get-started/configuring-notifications.md +++ b/content/subscriptions-and-notifications/get-started/configuring-notifications.md @@ -17,6 +17,7 @@ redirect_from: - /github/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications - /account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications - /subscriptions-and-notifications/setting-up-notifications/configuring-notifications + - /repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository versions: fpt: '*' ghes: '*' @@ -123,8 +124,6 @@ Choose a default email address where you want to send updates for conversations Depending on the organization that owns the repository, you can also send notifications to different email addresses. Your organization may require the email address to be verified for a specific domain. For more information, see [AUTOTITLE](/subscriptions-and-notifications/how-tos/managing-organization-notifications#choosing-where-your-organizations-email-notifications-are-sent). -You can also send notifications for a specific repository to an email address. For more information, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository). - {% data reusables.notifications-v2.email-notification-caveats %} Each email notification that {% data variables.product.prodname_dotcom %} sends contains header information that you can use to filter notifications in your email client. For information about the headers included, see [AUTOTITLE](/subscriptions-and-notifications/reference/email-notification-headers). diff --git a/data/features/open-source-license-compliance.yml b/data/features/open-source-license-compliance.yml index dae8c8b56fd1..e41a76f79d3c 100644 --- a/data/features/open-source-license-compliance.yml +++ b/data/features/open-source-license-compliance.yml @@ -1,4 +1,4 @@ -# Open source license compliance (public preview) +# Open source license compliance versions: fpt: '*' ghec: '*' diff --git a/data/release-notes/enterprise-server/3-18/16.yml b/data/release-notes/enterprise-server/3-18/16.yml index fb8b177847bd..f7827ae5ab16 100644 --- a/data/release-notes/enterprise-server/3-18/16.yml +++ b/data/release-notes/enterprise-server/3-18/16.yml @@ -37,7 +37,7 @@ sections: - | {% data reusables.release-notes.2024-06-possible-frontend-5-minute-outage-during-hotpatch-upgrade %} - | - When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a scheduled job that runs on the first Saturday of each month. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. - | An organization-level code scanning configuration page is displayed on instances that do not use GitHub Advanced Security or code scanning. - | @@ -62,3 +62,6 @@ sections: Custom NTP settings are removed during the upgrade process. - | When applying an enterprise security configuration to all repositories (for example, enabling Secret Scanning or Code Scanning across all repositories), the system immediately enqueues enablement jobs for every organization in the enterprise simultaneously. For enterprises with a large number of repositories, this can result in significant system load and potential performance degradation. If you manage a large enterprise with many organizations and repositories, we recommend applying security configurations at the organization level rather than at the enterprise level in the UI. This allows you to enable security features incrementally and monitor system performance as you roll out changes. + errata: + - | + The known issues incorrectly indicated that Elasticsearch indices are reindexed by a nightly scheduled job after restoring data backed up from GitHub Enterprise Server 3.13 or later. The scheduled job runs on the first Saturday of each month. [Updated: 2026-10-15] diff --git a/data/release-notes/enterprise-server/3-19/13.yml b/data/release-notes/enterprise-server/3-19/13.yml index 136ebf847d85..740600e85193 100644 --- a/data/release-notes/enterprise-server/3-19/13.yml +++ b/data/release-notes/enterprise-server/3-19/13.yml @@ -43,7 +43,7 @@ sections: - | {% data reusables.release-notes.2024-06-possible-frontend-5-minute-outage-during-hotpatch-upgrade %} - | - When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a scheduled job that runs on the first Saturday of each month. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. - | When enabling automatic update checks for the first time in the Management Console, the status is not dynamically reflected until the "Updates" page is reloaded. - | @@ -64,3 +64,6 @@ sections: An issue in the Management Console means the Backups (Preview) and Updates tabs may fail to open and instead return an Internal Server Error. We recommend using the command line interface (CLI) for backups and updates. - | When applying an enterprise security configuration to all repositories (for example, enabling Secret Scanning or Code Scanning across all repositories), the system immediately enqueues enablement jobs for every organization in the enterprise simultaneously. For enterprises with a large number of repositories, this can result in significant system load and potential performance degradation. If you manage a large enterprise with many organizations and repositories, we recommend applying security configurations at the organization level rather than at the enterprise level in the UI. This allows you to enable security features incrementally and monitor system performance as you roll out changes. + errata: + - | + The known issues incorrectly indicated that Elasticsearch indices are reindexed by a nightly scheduled job after restoring data backed up from GitHub Enterprise Server 3.13 or later. The scheduled job runs on the first Saturday of each month. [Updated: 2026-10-15] diff --git a/data/release-notes/enterprise-server/3-20/9.yml b/data/release-notes/enterprise-server/3-20/9.yml index bf6254c363f4..b1419ffc2738 100644 --- a/data/release-notes/enterprise-server/3-20/9.yml +++ b/data/release-notes/enterprise-server/3-20/9.yml @@ -50,7 +50,7 @@ sections: - | Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shut down the node and repeat the steps. - | - When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a scheduled job that runs on the first Saturday of each month. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. - | When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. - | @@ -67,3 +67,6 @@ sections: On instances with multiple Git storage nodes in a voting configuration, including cluster and geo-replication high availability topologies, upgrading may fail to correctly install Actions that ship with the new version. In some cases, previous versions of these Actions remain on the instance. To resolve this issue, run the following commands on the primary node: `ghe-config --unset 'app.actions.actions-repos-sha1sum'`, `ghe-config-apply`, and `/usr/local/share/enterprise/ghe-run-init-actions-graph`. - | When restoring an instance with `ghe-restore` while the replication controller is enabled, the storage directory is not restored. + errata: + - | + The known issues incorrectly indicated that Elasticsearch indices are reindexed by a nightly scheduled job after restoring data backed up from GitHub Enterprise Server 3.13 or later. The scheduled job runs on the first Saturday of each month. [Updated: 2026-10-15] diff --git a/data/release-notes/enterprise-server/3-21/7.yml b/data/release-notes/enterprise-server/3-21/7.yml index 87cc989b25f4..dacf5eea9f95 100644 --- a/data/release-notes/enterprise-server/3-21/7.yml +++ b/data/release-notes/enterprise-server/3-21/7.yml @@ -50,7 +50,7 @@ sections: - | Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shut down the node and repeat the steps. - | - When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a scheduled job that runs on the first Saturday of each month. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. - | When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. - | @@ -75,3 +75,6 @@ sections: When restoring an instance with `ghe-restore` while the replication controller is enabled, the storage directory is not restored. - | On a newly booted {% data variables.product.prodname_ghe_server %} instance, the merge box on a newly created pull request can stay on "Checking for the ability to merge automatically" and not show the merge status. If encountered, refreshing the page shows the correct merge status. + errata: + - | + The known issues incorrectly indicated that Elasticsearch indices are reindexed by a nightly scheduled job after restoring data backed up from GitHub Enterprise Server 3.13 or later. The scheduled job runs on the first Saturday of each month. [Updated: 2026-10-15] diff --git a/data/release-notes/enterprise-server/3-22/2.yml b/data/release-notes/enterprise-server/3-22/2.yml index d055ac8133fc..fce3e9cf824b 100644 --- a/data/release-notes/enterprise-server/3-22/2.yml +++ b/data/release-notes/enterprise-server/3-22/2.yml @@ -43,7 +43,7 @@ sections: - | Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shut down the node and repeat the steps. - | - When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a scheduled job that runs on the first Saturday of each month. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. - | When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. - | @@ -72,3 +72,6 @@ sections: When restoring an instance with `ghe-restore` while the replication controller is enabled, the storage directory is not restored. - | On a newly booted {% data variables.product.prodname_ghe_server %} instance, the merge box on a newly created pull request can stay on "Checking for the ability to merge automatically" and not show the merge status. If encountered, refreshing the page shows the correct merge status. + errata: + - | + The known issues incorrectly indicated that Elasticsearch indices are reindexed by a nightly scheduled job after restoring data backed up from GitHub Enterprise Server 3.13 or later. The scheduled job runs on the first Saturday of each month. [Updated: 2026-10-15] diff --git a/data/reusables/code-security/open-source-license-compliance-public-preview-note.md b/data/reusables/code-security/open-source-license-compliance-public-preview-note.md deleted file mode 100644 index 8344f83db946..000000000000 --- a/data/reusables/code-security/open-source-license-compliance-public-preview-note.md +++ /dev/null @@ -1,2 +0,0 @@ -> [!NOTE] -> Open source license compliance is in {% data variables.release-phases.public_preview %} and subject to change. diff --git a/data/reusables/copilot/auto-model-discount.md b/data/reusables/copilot/auto-model-discount.md index 407c30b920e2..6996f7520fd3 100644 --- a/data/reusables/copilot/auto-model-discount.md +++ b/data/reusables/copilot/auto-model-discount.md @@ -1 +1 @@ -If you are on a paid {% data variables.product.prodname_copilot_short %} plan, you qualify for a 10% discount on model costs while using {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, {% data variables.copilot.github_copilot_app %}, or {% data variables.copilot.copilot_cloud_agent %}. +If you are on a paid {% data variables.product.prodname_copilot_short %} plan, you qualify for a 10% discount on model costs while using {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, the {% data variables.copilot.github_copilot_app %}, or {% data variables.copilot.copilot_cloud_agent %}. diff --git a/data/reusables/copilot/cloud-agent-required-hosts.md b/data/reusables/copilot/cloud-agent-required-hosts.md index 3b5295602a48..fc09e17d04a9 100644 --- a/data/reusables/copilot/cloud-agent-required-hosts.md +++ b/data/reusables/copilot/cloud-agent-required-hosts.md @@ -3,7 +3,7 @@ * `api.individual.githubcopilot.com` (if you expect {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) * `api.business.githubcopilot.com` (if you expect {% data variables.copilot.copilot_business_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) * `api.enterprise.githubcopilot.com` (if you expect {% data variables.copilot.copilot_enterprise_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) -* If you are using the {% data variables.product.prodname_openai_codex %} third-party coding agent (for more information, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents)): +* If you are using the {% data variables.product.prodname_openai_codex %} third-party coding agent (for more information, see [AUTOTITLE](/copilot/concepts/agent-capabilities/about-agents/about-third-party-coding-agents)): * `npmjs.org` * `npmjs.com` * `registry.npmjs.com` diff --git a/data/reusables/copilot/preview-features-policy.md b/data/reusables/copilot/preview-features-policy.md deleted file mode 100644 index 16acd5a2016e..000000000000 --- a/data/reusables/copilot/preview-features-policy.md +++ /dev/null @@ -1 +0,0 @@ -Access to preview features is controlled by policy settings at the organization and enterprise level. See [AUTOTITLE](/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies#opting-in-to-previews-or-feedback) and [AUTOTITLE](/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies#defining-policies-for-your-enterprise). diff --git a/data/reusables/data-residency/dependency-graph-data-availability.md b/data/reusables/data-residency/dependency-graph-data-availability.md index e3ecc64ff00c..1ca4068e59b7 100644 --- a/data/reusables/data-residency/dependency-graph-data-availability.md +++ b/data/reusables/data-residency/dependency-graph-data-availability.md @@ -1,2 +1,2 @@ -On {% data variables.enterprise.data_residency_site %}, dependency insights and license and package metadata in the dependency graph are not currently available. The dependency graph itself remains available at the repository level. See [AUTOTITLE](/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency#currently-unavailable-features). +On {% data variables.enterprise.data_residency_site %}, organization-level dependency insights is not currently available. The dependency graph itself remains available at the repository level. See [AUTOTITLE](/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency#currently-unavailable-features). diff --git a/data/reusables/gated-features/github-app.md b/data/reusables/gated-features/github-app.md index 28612fbe2ff6..faaa3374e8e8 100644 --- a/data/reusables/gated-features/github-app.md +++ b/data/reusables/gated-features/github-app.md @@ -1 +1 @@ -{% data variables.copilot.github_copilot_app %} is available for all {% data variables.product.prodname_copilot_short %} plans. +The {% data variables.copilot.github_copilot_app %} is available for all {% data variables.product.prodname_copilot_short %} plans. diff --git a/data/reusables/pull_requests/retention-checks-data.md b/data/reusables/pull_requests/retention-checks-data.md index fe40d1fa7a45..e8050c0923d2 100644 --- a/data/reusables/pull_requests/retention-checks-data.md +++ b/data/reusables/pull_requests/retention-checks-data.md @@ -1,11 +1,11 @@ {% ifversion fpt or ghec %} -{% data variables.product.prodname_dotcom %} retains checks data for 400 days. After 400 days, the data is archived. 10 days after archival, the data is permanently deleted. +{% data variables.product.prodname_dotcom %} retains checks data based on the retention setting configured for checks, workflow runs, statuses, artifacts, and logs. After the configured retention period has elapsed, the data is permanently deleted. {% elsif ghes %} Site administrators can control the retention policy for checks data on {% data variables.location.product_location %}. For more information, see [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-applications#enabling-retention-policy-for-checks). -{% endif %} - To merge a pull request with checks that are both required and archived, you must rerun the checks. + +{% endif %} diff --git a/data/reusables/rai/code-scanning/gated-feature-agentic-autofix.md b/data/reusables/rai/code-scanning/gated-feature-agentic-autofix.md new file mode 100644 index 000000000000..442e8290f622 --- /dev/null +++ b/data/reusables/rai/code-scanning/gated-feature-agentic-autofix.md @@ -0,0 +1 @@ +{% data variables.copilot.agentic_autofix_caps %} is available for public repositories on {% data variables.product.prodname_dotcom_the_website %} and for organization-owned repositories with {% data variables.product.prodname_GH_code_security %} or {% data variables.product.prodname_GHAS %}. Users don't need a {% data variables.product.prodname_copilot %} license. {% data variables.copilot.agentic_autofix_caps %} is not available for user-owned repositories in an enterprise that uses {% data variables.product.prodname_emus %}. diff --git a/data/reusables/rai/code-scanning/gated-feature-autofix.md b/data/reusables/rai/code-scanning/gated-feature-autofix.md index 6ef2beb6a700..ada25c047df7 100644 --- a/data/reusables/rai/code-scanning/gated-feature-autofix.md +++ b/data/reusables/rai/code-scanning/gated-feature-autofix.md @@ -1,11 +1,13 @@ +{% data variables.copilot.agentic_autofix_caps %} has narrower eligibility requirements than {% data variables.copilot.copilot_autofix_short %}, and isn't available for user-owned repositories in an enterprise that uses {% data variables.product.prodname_emus %}. For details, see [AUTOTITLE](/code-security/concepts/code-scanning/autofix-for-code-scanning#where-is-autofix-available). + {% data variables.copilot.copilot_autofix_short %} for {% data variables.product.prodname_code_scanning %} is available for the following repository types: {% ifversion fpt %} * Public repositories on {% data variables.product.prodname_dotcom_the_website %} -* Organization-owned repositories on {% data variables.product.prodname_team %} with [{% data variables.product.prodname_GH_code_security %}](/get-started/learning-about-github/about-github-advanced-security) enabled{% endif %} +* Organization-owned repositories on {% data variables.product.prodname_team %} with {% data variables.product.prodname_GH_code_security %} enabled{% endif %} {% ifversion ghec %} * Public repositories on {% data variables.product.prodname_dotcom_the_website %} -* Organization-owned repositories on {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %} with [{% data variables.product.prodname_GH_code_security %}](/get-started/learning-about-github/about-github-advanced-security) enabled{% endif %}
+* Organization-owned repositories on {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_GH_code_security %} enabled{% endif %} -Agentic autofix additionally requires {% data variables.copilot.copilot_cloud_agent %} to be available in the repository. +For more information about eligible products, see [AUTOTITLE](/get-started/learning-about-github/about-github-advanced-security). diff --git a/data/reusables/security-configurations/display-global-settings.md b/data/reusables/security-configurations/display-global-settings.md index 3f6f2d171be5..53a8c384d12e 100644 --- a/data/reusables/security-configurations/display-global-settings.md +++ b/data/reusables/security-configurations/display-global-settings.md @@ -1 +1 @@ -1. In the "Security" section of the sidebar, click **{% octicon "codescan" aria-hidden="true" aria-label="codescan" %} {% data variables.product.UI_advanced_security %}** then **Global settings**. +1. In the "{% data variables.product.prodname_security_and_quality_tab %}" section of the sidebar, click **{% octicon "codescan" aria-hidden="true" aria-label="codescan" %} {% data variables.product.UI_advanced_security %}** then **Global settings**. diff --git a/data/reusables/security/alert-assignee-mention.md b/data/reusables/security/alert-assignee-mention.md index f328cda164a2..7f35b63a934f 100644 --- a/data/reusables/security/alert-assignee-mention.md +++ b/data/reusables/security/alert-assignee-mention.md @@ -1,5 +1,5 @@ {% ifversion code-secret-alert-assignees %} -In addition, you will receive a notification if someone assigns a {% data variables.product.prodname_code_scanning %} or a {% data variables.product.prodname_secret_scanning %} alert to you, see [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts-to-users-and-copilot-cloud-agent). +In addition, you will receive a notification if someone assigns a {% data variables.product.prodname_code_scanning %} or a {% data variables.product.prodname_secret_scanning %} alert to you. See [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts). {% endif %} diff --git a/data/reusables/security/alert-assignee-step.md b/data/reusables/security/alert-assignee-step.md index c9cedc2976f7..b6318dde0481 100644 --- a/data/reusables/security/alert-assignee-step.md +++ b/data/reusables/security/alert-assignee-step.md @@ -1,5 +1,5 @@ {% ifversion code-secret-alert-assignees %} -1. Optionally, assign the alert to someone to fix using the **Assignees** control shown on the right, see [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts-to-users-and-copilot-cloud-agent). +1. Optionally, assign the alert to someone to fix using the **Assignees** control shown on the right. See [Assigning alerts](/code-security/concepts/security-at-scale/about-security-campaigns#about-assigning-alerts). {% endif %} diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index feaaf7ebf5c9..087ccd0c6673 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -174,6 +174,8 @@ copilot_spaces: 'Copilot Spaces' # Note: Copilot Autofix is branded as a Copilot feature but is billed using a Code security or GHAS license copilot_autofix: 'GitHub Copilot Autofix' copilot_autofix_short: 'Copilot Autofix' +agentic_autofix: 'agentic autofix' +agentic_autofix_caps: 'Agentic Autofix' ## Copilot Chat in GitHub: maximum number of repos that can be indexed for an org max-chat-indexed-repos: '50' diff --git a/data/variables/product.yml b/data/variables/product.yml index 79c23f371afe..997f87d41dd9 100644 --- a/data/variables/product.yml +++ b/data/variables/product.yml @@ -216,7 +216,7 @@ prodname_secret_protection: 'Secret Protection' prodname_cs_or_sp: 'Secret Protection or Code Security' prodname_cs_and_sp: 'Secret Protection and Code Security' UI_advanced_security: '{% data variables.product.prodname_AS %}' -UI_advanced_security_ent: '{% data variables.product.prodname_AS %} Code security' +UI_advanced_security_ent: '{% data variables.product.prodname_AS %}' UI_code_security_scanning: 'Code Security' UI_secret_protection_scanning: 'Secret Protection' diff --git a/src/deployments/production/build-scripts/clone-or-use-cached-repo.sh b/src/deployments/production/build-scripts/clone-or-use-cached-repo.sh index 0dad817f3ff9..bc716502c3ae 100644 --- a/src/deployments/production/build-scripts/clone-or-use-cached-repo.sh +++ b/src/deployments/production/build-scripts/clone-or-use-cached-repo.sh @@ -36,7 +36,7 @@ clone_or_use_cached_repo() { echo "Cloning repository '$repo_name' from branch '$branch'..." # Production deploys only need the most recent commit. - if ! git clone --depth 1 --branch "$branch" "https://${GITHUB_TOKEN}@github.com/github/$repo_url.git" "$repo_name"; then + if ! git clone --depth 1 --branch "$branch" "https://github.com/github/$repo_url.git" "$repo_name"; then echo "❌ Failed to clone repository '$repo_name'" return 1 fi diff --git a/src/deployments/production/build-scripts/fetch-repos.sh b/src/deployments/production/build-scripts/fetch-repos.sh index ae10318e7cde..9106f8c44692 100644 --- a/src/deployments/production/build-scripts/fetch-repos.sh +++ b/src/deployments/production/build-scripts/fetch-repos.sh @@ -11,6 +11,10 @@ set -e # Docker build mounts DOCS_BOT_PAT_BASE at /run/secrets/DOCS_BOT_PAT_BASE. GITHUB_TOKEN=$(cat /run/secrets/DOCS_BOT_PAT_BASE) +auth=$(printf 'x-access-token:%s' "$GITHUB_TOKEN" | base64 | tr -d '\n') +export GIT_CONFIG_COUNT=1 +export GIT_CONFIG_KEY_0=http.https://github.com/.extraheader +export GIT_CONFIG_VALUE_0="AUTHORIZATION: basic $auth" echo "Fetching early access..." clone_or_use_cached_repo "docs-early-access" "docs-early-access" "main" @@ -44,12 +48,13 @@ else echo "✅ All translations fetched." fi -# The Dockerfile copies translations/ into the image, and each .git/config keeps -# the token-bearing clone URL. Nothing reads translation git metadata at runtime. +# The Dockerfile copies translations/ into the image. Nothing reads translation +# git metadata at runtime. rm -rf ./*/.git # Return to the docs-internal root after cloning translations. cd .. -# Remove the token from the shell environment. +# Remove the token and Git authentication settings from the shell environment. +unset GIT_CONFIG_COUNT GIT_CONFIG_KEY_0 GIT_CONFIG_VALUE_0 auth unset GITHUB_TOKEN