diff --git a/.github/workflows/sync-sdk-docs.yml b/.github/workflows/sync-sdk-docs.yml index b8d56344aaca..82a1b2d3a1b4 100644 --- a/.github/workflows/sync-sdk-docs.yml +++ b/.github/workflows/sync-sdk-docs.yml @@ -24,6 +24,7 @@ on: types: [opened, synchronize, reopened] paths: - '.github/workflows/sync-sdk-docs.yml' + - 'content/copilot/get-started/sdk-quickstart.md' - 'src/workflows/sync-sdk-docs/**' concurrency: @@ -77,6 +78,10 @@ jobs: - name: Copy SDK docs run: | mkdir -p "$SDK_DOCS_TARGET" + # Pages relocated out of this tree into hand-authored content are not + # excluded here — they are removed by the RELOCATED_PAGES map in + # src/workflows/sync-sdk-docs/normalize-sdk-docs.ts, which also + # repoints inbound links at their new URLs. rsync -av --exclude='.validation/' --exclude='developer-docs/' "$SDK_TMP/docs/" "$SDK_DOCS_TARGET/" echo "Copied $(find "$SDK_DOCS_TARGET" -name '*.md' | wc -l | tr -d ' ') markdown files" diff --git a/assets/images/help/code-quality/assign-findings-bulk.png b/assets/images/help/code-quality/assign-findings-bulk.png new file mode 100644 index 000000000000..6b12a3972ce5 Binary files /dev/null and b/assets/images/help/code-quality/assign-findings-bulk.png differ diff --git a/assets/images/help/copilot/code-review/automatic-code-review.png b/assets/images/help/copilot/code-review/automatic-code-review.png deleted file mode 100644 index 49a5283cf131..000000000000 Binary files a/assets/images/help/copilot/code-review/automatic-code-review.png and /dev/null differ diff --git a/assets/images/help/copilot/spark-data-access.png b/assets/images/help/copilot/spark-data-access.png deleted file mode 100644 index cbb288acd318..000000000000 Binary files a/assets/images/help/copilot/spark-data-access.png and /dev/null differ diff --git a/assets/images/help/copilot/spark-fix-all-errors.png b/assets/images/help/copilot/spark-fix-all-errors.png deleted file mode 100644 index 7bbd4ebfd403..000000000000 Binary files a/assets/images/help/copilot/spark-fix-all-errors.png and /dev/null differ diff --git a/assets/images/help/copilot/spark-github-user-visibility.png b/assets/images/help/copilot/spark-github-user-visibility.png deleted file mode 100644 index d88f06f9b00b..000000000000 Binary files a/assets/images/help/copilot/spark-github-user-visibility.png and /dev/null differ diff --git a/content/billing/concepts/enterprise-billing/ghes-license-files.md b/content/billing/concepts/enterprise-billing/ghes-license-files.md index 324ea215d132..99dddd27c388 100644 --- a/content/billing/concepts/enterprise-billing/ghes-license-files.md +++ b/content/billing/concepts/enterprise-billing/ghes-license-files.md @@ -25,5 +25,5 @@ If your license expires, you won't be able to access {% data variables.product.p * To download your license file, see [AUTOTITLE]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/billing/how-tos/manage-server-licenses/download-your-license). * To upload your license file to {% data variables.product.prodname_ghe_server %}, see {% ifversion fpt or ghec %}[AUTOTITLE](/enterprise-server@latest/billing/how-tos/manage-server-licenses/upload-new-license) in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}[AUTOTITLE](/billing/how-tos/manage-server-licenses/upload-new-license).{% endif %} -* To back up your {% data variables.product.prodname_ghe_server %} instance, see {% ifversion fpt or ghec %}[Configuring backups on your appliance](/enterprise-server@latest/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance) in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}[AUTOTITLE](/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance).{% endif %} +* To back up your {% data variables.product.prodname_ghe_server %} instance, see {% ifversion fpt or ghec %}[Configuring backups on your appliance](/enterprise-server@latest/admin/backing-up-and-restoring-your-instance/about-the-backup-service-for-github-enterprise-server) in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}[AUTOTITLE](/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance).{% endif %} * If you have questions about renewing your license, contact {% data variables.contact.contact_enterprise_sales %}. diff --git a/content/billing/concepts/product-billing/github-code-quality.md b/content/billing/concepts/product-billing/github-code-quality.md index b1eb5125d9d0..9441ea76e11a 100644 --- a/content/billing/concepts/product-billing/github-code-quality.md +++ b/content/billing/concepts/product-billing/github-code-quality.md @@ -30,7 +30,7 @@ In a detailed usage report, you can identify usage from {% data variables.produc {% data reusables.code-quality.model-usage %} -For more information about how {% data variables.product.prodname_ai_credits_short %} work, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +For more information about how {% data variables.product.prodname_ai_credits_short %} work, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ### Active and unique committers @@ -50,4 +50,4 @@ Users can contribute to multiple repositories or organizations. Usage is measure * [AUTOTITLE](/code-security/tutorials/improve-code-quality/catch-issues-before-merge) * [AUTOTITLE](/billing/concepts/product-billing/github-actions) -* [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises) +* [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing) diff --git a/content/billing/concepts/product-billing/github-copilot-billing.md b/content/billing/concepts/product-billing/github-copilot-billing.md index 71291503596a..272a1361467a 100644 --- a/content/billing/concepts/product-billing/github-copilot-billing.md +++ b/content/billing/concepts/product-billing/github-copilot-billing.md @@ -20,6 +20,6 @@ To understand how {% data variables.product.prodname_ai_credits_short %} work fo For organizations and enterprises, each assigned {% data variables.product.prodname_copilot_short %} license comes with a monthly amount of included {% data variables.product.prodname_ai_credits_short %}, which can be pooled at the billing entity level. -* To understand how {% data variables.product.prodname_ai_credits_short %} work and what happens when your pool is exhausted, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +* To understand how {% data variables.product.prodname_ai_credits_short %} work and what happens when your pool is exhausted, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). * To understand budget controls and how to prevent unexpected charges, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing). * To compare per-token costs across models and how they translate to {% data variables.product.prodname_ai_credits_short %}, see [AUTOTITLE](/copilot/reference/copilot-billing/models-and-pricing). diff --git a/content/billing/concepts/product-billing/github-copilot-licenses.md b/content/billing/concepts/product-billing/github-copilot-licenses.md index 8caea7c23397..1d848611af4c 100644 --- a/content/billing/concepts/product-billing/github-copilot-licenses.md +++ b/content/billing/concepts/product-billing/github-copilot-licenses.md @@ -15,7 +15,7 @@ category: - Understand product costs --- -Usage of {% data variables.product.prodname_copilot %} is measured through a combination of licenses and {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-individuals) and [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Usage of {% data variables.product.prodname_copilot %} is measured through a combination of licenses and {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-individuals) and [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Licenses for {% data variables.product.prodname_copilot_short %} diff --git a/content/billing/how-tos/products/view-productlicense-use.md b/content/billing/how-tos/products/view-productlicense-use.md index 465aa75f2237..2e362dd63311 100644 --- a/content/billing/how-tos/products/view-productlicense-use.md +++ b/content/billing/how-tos/products/view-productlicense-use.md @@ -101,7 +101,7 @@ If you use {% data variables.product.prodname_copilot_short %}, an additional ** * 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/usage-based-billing-for-organizations-and-enterprises). +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/organizations-and-enterprises/usage-based-billing). {% endif %} diff --git a/content/billing/how-tos/set-up-budgets.md b/content/billing/how-tos/set-up-budgets.md index 114d9a6f22f7..721fab220bc3 100644 --- a/content/billing/how-tos/set-up-budgets.md +++ b/content/billing/how-tos/set-up-budgets.md @@ -79,7 +79,7 @@ To edit or delete a budget, on the "Budget and alerts" page, click **Edit** or * ## Managing budgets for your organization or enterprise > [!IMPORTANT] -> {% data variables.product.prodname_copilot_short %} usage is now measured in {% data variables.product.prodname_ai_credits_short %} under usage-based billing. Existing premium request budgets have been automatically converted to {% data variables.product.prodname_ai_credit_singular %} budgets. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +> {% data variables.product.prodname_copilot_short %} usage is now measured in {% data variables.product.prodname_ai_credits_short %} under usage-based billing. Existing premium request budgets have been automatically converted to {% data variables.product.prodname_ai_credit_singular %} budgets. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). You can set budgets and receive alerts when your usage of a product or license type reaches 75%, 90%, or 100% of a defined budget. For budgets that control metered use of a product, you can also block further use when the budget is exhausted. Each budget has a scope. 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 65aaca6ea2e2..aff4e62a426a 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 @@ -19,7 +19,7 @@ While {% data variables.product.prodname_codeql %} provides high-precision stati During the {% data variables.release-phases.public_preview %}, AI-powered security detections require a {% data variables.product.prodname_GHAS %} license and a {% data variables.product.prodname_copilot %} license. -Usage consumes {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Usage consumes {% data variables.product.prodname_ai_credits_short %}. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## How AI-powered security detections work diff --git a/content/code-security/how-tos/maintain-quality-code/fix-backlog-findings.md b/content/code-security/how-tos/maintain-quality-code/fix-backlog-findings.md index ccf36d0052d1..2a51b764a9e8 100644 --- a/content/code-security/how-tos/maintain-quality-code/fix-backlog-findings.md +++ b/content/code-security/how-tos/maintain-quality-code/fix-backlog-findings.md @@ -22,13 +22,19 @@ category: 1. **{% data variables.code-quality.all_findings %}**: {% data variables.product.prodname_code_quality_short %} uses {% data variables.product.prodname_codeql %} to perform a deterministic, rules-based scan of your default branch. Finding are grouped by rule and language, labeled by severity (**Error**, **Warning**, **Note**), and each includes a suggested autofix. - 1. **{% data variables.code-quality.recent_suggestions %}**: {% data variables.product.prodname_code_quality_short %} uses AI-powered analysis to identify quality issues in the files most recently pushed to your default branch, including issues that rule-based analysis may not detect - such as best practices, naming conventions, or design considerations. +1. **{% data variables.code-quality.recent_suggestions %}**: {% data variables.product.prodname_code_quality_short %} uses AI-powered analysis to identify quality issues in the files most recently pushed to your default branch, including issues that rule-based analysis may not detect - such as best practices, naming conventions, or design considerations. - {% data reusables.code-quality.recent-suggestions-preview-note %} +{% data reusables.code-quality.recent-suggestions-preview-note %} - For information on resolving {% data variables.code-quality.recent_suggestions %}, see [AUTOTITLE](/code-security/how-tos/maintain-quality-code/fix-findings-in-recent-merges). +For information on resolving {% data variables.code-quality.recent_suggestions %}, see [AUTOTITLE](/code-security/how-tos/maintain-quality-code/fix-findings-in-recent-merges). -## Resolving a standard finding +## Resolving standard findings + +You can resolve findings individually or assign multiple findings to {% data variables.product.prodname_copilot_short %}. + +{% data reusables.code-quality.agentic-autofix-preview-note %} + +### Resolving a single finding {% data reusables.code-quality.dashboard-navigation-repo %} {% data reusables.code-quality.dashboard-all-findings %} @@ -48,6 +54,22 @@ category: To raise a maintainability or reliability score, you must resolve every finding at the highest severity level currently affecting that metric. See [AUTOTITLE](/code-security/reference/code-quality/metrics-and-ratings). +### Assigning multiple findings to {% data variables.product.prodname_copilot_short %} + +If you have many findings for a rule and want to remediate them efficiently, you can select these findings in bulk and assign them to {% data variables.product.prodname_copilot_short %} for agentic remediation. {% data variables.product.prodname_copilot_short %} will open a pull request with fixes for the selected findings. + +You don't need a {% data variables.product.prodname_copilot_short %} license to use this feature, but your enterprise owner must allow {% data variables.product.prodname_code_quality_short %} for your organization. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/allow-github-code-quality-in-enterprise). + +For the best results, start with a single rule that has many high-severity findings. This lets you validate the quality of the autofixes on a cohesive set of changes before expanding to other rules. + +{% data reusables.code-quality.dashboard-navigation-repo %} +{% data reusables.code-quality.dashboard-all-findings %} +1. Select the findings you want to remediate. You can select up to 25 findings per page, one page at a time. +1. Click **Assign to {% data variables.product.prodname_copilot_short %}**. + + ![Screenshot of the "Standard findings" view. The "3 of 3 selected" checkbox and the "Dismiss" and "Assign to Copilot" buttons are outlined in orange.](/assets/images/help/code-quality/assign-findings-bulk.png) +1. {% data variables.product.prodname_copilot_short %} will open a pull request with fixes for the selected findings. Review the pull request carefully before merging. + ## Verifying that your code quality scores have updated After your autofix pull requests are merged, return to the "{% data variables.code-quality.all_findings %}" view to confirm that: diff --git a/content/code-security/how-tos/maintain-quality-code/view-and-manage-cost.md b/content/code-security/how-tos/maintain-quality-code/view-and-manage-cost.md index ebefc9d1b463..1450bddd51b7 100644 --- a/content/code-security/how-tos/maintain-quality-code/view-and-manage-cost.md +++ b/content/code-security/how-tos/maintain-quality-code/view-and-manage-cost.md @@ -37,7 +37,7 @@ It's important to understand how {% data variables.product.prodname_code_quality {% data variables.product.prodname_code_quality_short %} usage appears in the **same billing and usage views as your other products**, not in a separate {% data variables.product.prodname_code_quality_short %} meter. Where you look depends on how granular a breakdown you need: * **For a repository- or organization-level breakdown, download the billing usage report** from the "Billing and licensing" tab. This is the only place you can attribute {% data variables.product.prodname_code_quality_short %} spend, including {% data variables.product.prodname_actions %} minutes, down to a specific repository or organization. There's no equivalent view in the UI. See [AUTOTITLE](/billing/how-tos/products/view-productlicense-use). -* **For {% data variables.product.prodname_code_quality_short %}'s {% data variables.product.prodname_ai_credits_short %} usage over time, use the AI usage page** and group it by **Product** using the dropdown at the top right. This separates {% data variables.product.prodname_code_quality_short %} from your other AI products, like {% data variables.product.prodname_copilot_short %}, so you can track its share of the pool. To monitor the pool as a whole instead, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +* **For {% data variables.product.prodname_code_quality_short %}'s {% data variables.product.prodname_ai_credits_short %} usage over time, use the AI usage page** and group it by **Product** using the dropdown at the top right. This separates {% data variables.product.prodname_code_quality_short %} from your other AI products, like {% data variables.product.prodname_copilot_short %}, so you can track its share of the pool. To monitor the pool as a whole instead, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Monitoring your spend 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 index f6913eab7091..ca913a0ff16e 100644 --- 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 @@ -18,7 +18,7 @@ category: 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/agents/cloud-agent/access-management#opting-repositories-out-of-copilot-cloud-agent). +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). diff --git a/content/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/allow-github-code-quality-in-enterprise.md b/content/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/allow-github-code-quality-in-enterprise.md index 15df3a33f611..242bc22b9553 100644 --- a/content/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/allow-github-code-quality-in-enterprise.md +++ b/content/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/allow-github-code-quality-in-enterprise.md @@ -17,7 +17,13 @@ category: --- > [!NOTE] -> Previously, {% data variables.product.prodname_AS %} policies also controlled access to {% data variables.product.prodname_code_quality_short %}. Those existing policy settings are automatically applied to the standalone {% data variables.product.prodname_code_quality_short %} policies. +> {% data variables.product.prodname_code_quality_short %} has its own standalone enterprise policies. Access was previously controlled by your {% data variables.product.prodname_AS %} policies, and those existing settings are automatically applied to the new {% data variables.product.prodname_code_quality_short %} policies. + +{% data reusables.code-quality.agentic-autofix-preview-note %} + +When you allow {% data variables.product.prodname_code_quality_short %} for an organization and set the repository admin policy to **Allowed**, repository administrators can enable {% data variables.product.prodname_code_quality_short %} scans and all associated capabilities, including bulk agentic remediation with {% data variables.product.prodname_copilot_short %}. There is no separate policy for agentic remediation. + +If you restrict {% data variables.product.prodname_code_quality_short %}, repository administrators cannot enable scans or use {% data variables.product.prodname_copilot_short %}-powered autofixes for code quality findings. 1. Navigate to your enterprise. For example, from [https://github.com/settings/enterprises](https://github.com/settings/enterprises?ref_product=ghec&ref_type=engagement&ref_style=text). {% data reusables.enterprise-accounts.policies-tab %} diff --git a/content/code-security/tutorials/improve-code-quality/raise-your-quality-rating.md b/content/code-security/tutorials/improve-code-quality/raise-your-quality-rating.md index e3cb297bf8f9..2a287e8d8477 100644 --- a/content/code-security/tutorials/improve-code-quality/raise-your-quality-rating.md +++ b/content/code-security/tutorials/improve-code-quality/raise-your-quality-rating.md @@ -64,10 +64,13 @@ Once you've picked a rule, decide how to handle each finding: | Assessment | Recommended action | Notes | | --- | --- | --- | -| The finding is legitimate. | Click **Generate fix** and open a pull request | Clicking **Generate fix** consumes {% data variables.product.prodname_ai_credits_short %}. You can add multiple autofixes to the same branch to group remediation work in one pull request. | -| The finding doesn't apply. For example, it's in legacy code, an intentional pattern, or a false positive | Click **Dismiss**. | The finding is considered resolved and removed from the list of open findings. | +| One finding is legitimate. | Click **Assign to {% data variables.product.prodname_copilot_short %}**. | {% data variables.product.prodname_copilot_short %} opens a pull request containing fixes for the selected findings. Assigning to {% data variables.product.prodname_copilot_short %} consumes {% data variables.product.prodname_ai_credits_short %}. | +| Multiple findings for the same rule are legitimate. | Select up to 25 findings on a page, then click **Assign to {% data variables.product.prodname_copilot_short %}**. | {% data variables.product.prodname_copilot_short %} opens a pull request containing fixes for the selected findings. Assigning to {% data variables.product.prodname_copilot_short %} consumes {% data variables.product.prodname_ai_credits_short %}| +| A finding doesn't apply. For example, it's in legacy code, an intentional pattern, or a false positive. | Click **Dismiss**. | The finding is considered resolved and removed from the list of open findings. | -In our example, we generate autofixes for the 40 "Overwritten property" findings and open a pull request. Because they share a single pattern, the fixes are nearly identical. We merge the pull request once CI checks pass. +{% data reusables.code-quality.agentic-autofix-preview-note %} + +In our example, we assign the 40 "Overwritten property" findings to {% data variables.product.prodname_copilot_short %} in batches of up to 25. We review the resulting pull requests and merge them once the CI checks pass. ## Step 4: Communicate impact diff --git a/content/code-security/tutorials/trialing-github-advanced-security/explore-trial-code-scanning.md b/content/code-security/tutorials/trialing-github-advanced-security/explore-trial-code-scanning.md index ef4716eb6691..df2bbf25c838 100644 --- a/content/code-security/tutorials/trialing-github-advanced-security/explore-trial-code-scanning.md +++ b/content/code-security/tutorials/trialing-github-advanced-security/explore-trial-code-scanning.md @@ -90,7 +90,7 @@ This allows you to update the configuration in a single location, but use the wo > > * If you get a {% data variables.product.prodname_copilot_short %} subscription from an organization, you will only be able to participate in the {% data variables.release-phases.public_preview %} on the {% data variables.product.github %} website if an owner of your organization or enterprise has enabled {% data variables.copilot.copilot_code-review_short %}. 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){% ifversion fpt or ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. -By default, users request a review from {% data variables.product.prodname_copilot_short %} in the same way as they do from human reviewers. However, you can update or create an organization-level branch ruleset to automatically add {% data variables.product.prodname_copilot_short %} as a reviewer to all pull requests made to selected branches in all or selected repositories. See [AUTOTITLE](/enterprise-cloud@latest/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review){% ifversion fpt or ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. +By default, users request a review from {% data variables.product.prodname_copilot_short %} in the same way as they do from human reviewers. However, you can update or create an organization-level branch ruleset to automatically add {% data variables.product.prodname_copilot_short %} as a reviewer to all pull requests made to selected branches in all or selected repositories. See [AUTOTITLE](/enterprise-cloud@latest/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review){% ifversion fpt or ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. {% data variables.product.prodname_copilot_short %} leaves a review comment on each pull request it reviews, without approving the pull request or requesting changes. This ensures that its review is advisory and will not block development work. Similarly, you should not enforce the resolution of suggestions made by {% data variables.product.prodname_copilot_short %} because AI suggestions have known limitations, see [AUTOTITLE](/enterprise-cloud@latest/copilot/responsible-use/agents#7-limitations){% ifversion fpt or ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. diff --git a/content/copilot/concepts/about-cloud-and-local-sandboxes.md b/content/copilot/concepts/about-cloud-and-local-sandboxes.md index 7dc5cc5609a0..74df2c81958e 100644 --- a/content/copilot/concepts/about-cloud-and-local-sandboxes.md +++ b/content/copilot/concepts/about-cloud-and-local-sandboxes.md @@ -101,7 +101,7 @@ The sandbox proxy operates differently on each operating system: ### Enterprise policy enforcement -Enterprises can require local sandboxing and enforce its configuration through server-managed, MDM-managed, or file-based managed settings. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +Enterprises can require local sandboxing and enforce its configuration through server-managed, MDM-managed, or file-based managed settings. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). ## Cloud sandboxing diff --git a/content/copilot/concepts/agents/about-plugins.md b/content/copilot/concepts/agents/about-plugins.md index a3c0480c1078..d572a196cbe5 100644 --- a/content/copilot/concepts/agents/about-plugins.md +++ b/content/copilot/concepts/agents/about-plugins.md @@ -86,7 +86,7 @@ How you install a plugin depends on which client you're using: * In {% data variables.copilot.copilot_cloud_agent %}, you install plugins declaratively by adding them to the `enabledPlugins` field of the repository's `.github/copilot/settings.json` file. To install plugins from a marketplace that isn't registered by default, you can also add the marketplace to the `extraKnownMarketplaces` field in the same file. * In the {% data variables.copilot.github_copilot_app %}, click **Customize**, then click **Plugins** to browse marketplaces and install plugins. -Enterprise administrators can define plugin standards that apply to users on the enterprise's {% data variables.product.prodname_copilot_short %} plan, including specifying additional marketplaces and plugins that are automatically installed. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards). +Enterprise administrators can define plugin standards that apply to users on the enterprise's {% data variables.product.prodname_copilot_short %} plan, including specifying additional marketplaces and plugins that are automatically installed. See [AUTOTITLE](/copilot/concepts/enterprise/plugin-standards). ## How plugin marketplaces work diff --git a/content/copilot/concepts/agents/about-third-party-coding-agents.md b/content/copilot/concepts/agents/about-third-party-coding-agents.md index a54d7c56907e..aee2ce7d7d97 100644 --- a/content/copilot/concepts/agents/about-third-party-coding-agents.md +++ b/content/copilot/concepts/agents/about-third-party-coding-agents.md @@ -79,7 +79,7 @@ Security validation does not require a {% data variables.product.prodname_GHAS % Coding agents consume **{% data variables.product.prodname_actions %} minutes** and **{% data variables.product.prodname_ai_credits_short %}**. Each agent session consumes {% data variables.product.prodname_ai_credits_short %} based on the model used and the number of tokens processed. -Within your included {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}, you can use agents without incurring additional costs. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Within your included {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}, you can use agents without incurring additional costs. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Partner agents diff --git a/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md b/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md index cad75460f535..066ec9e4ab7d 100644 --- a/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md +++ b/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md @@ -108,7 +108,7 @@ If you are a {% data variables.copilot.copilot_for_business %} or {% data variab Repository owners can choose to opt out some or all repositories from {% data variables.copilot.copilot_cloud_agent %}. -See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). ## AI models for {% data variables.copilot.copilot_cloud_agent %} @@ -132,7 +132,7 @@ The more {% data variables.copilot.copilot_cloud_agent %} knows about the code i {% data variables.copilot.copilot_cloud_agent %} uses {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}. The {% data variables.product.prodname_ai_credits_short %} consumed depend on the model used and the number of tokens processed during the session. -Within your included {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}, you can use {% data variables.copilot.copilot_cloud_agent %} without incurring additional costs. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Within your included {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}, you can use {% data variables.copilot.copilot_cloud_agent %} without incurring additional costs. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). {% data variables.product.prodname_copilot_short %} code review also consumes {% data variables.product.prodname_actions %} minutes on private repositories. See [AUTOTITLE](/billing/concepts/product-billing/github-actions#copilot-code-review-and-github-actions-minutes). diff --git a/content/copilot/concepts/agents/code-review.md b/content/copilot/concepts/agents/code-review.md index c05aab1dc38c..b903de7175cd 100644 --- a/content/copilot/concepts/agents/code-review.md +++ b/content/copilot/concepts/agents/code-review.md @@ -59,7 +59,7 @@ The second policy has these characteristics: When both policies are enabled, users without a {% data variables.product.prodname_copilot_short %} license can request a review from {% data variables.copilot.copilot_code-review_short %} on their pull requests in the organization's repositories. -In repositories where automatic code review is enabled, {% data variables.product.prodname_copilot_short %} automatically reviews all pull requests. This happens regardless of whether the author has a {% data variables.product.prodname_copilot_short %} license. For more information about how to configure automatic code review, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +In repositories where automatic code review is enabled, {% data variables.product.prodname_copilot_short %} automatically reviews all pull requests. This happens regardless of whether the author has a {% data variables.product.prodname_copilot_short %} license. For more information about how to configure automatic code review, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). {% data variables.copilot.copilot_code-review_short %} for users without a license is not available in IDEs. @@ -96,7 +96,7 @@ A review typically consumes an estimated $0.05 USD to $1 USD worth of {% data va Consumption generally increases with pull request size and repository custom instructions, and the ranges may change as models evolve. These estimates do not include {% data variables.product.prodname_actions %} minutes. -Repository and organization administrators can set the default review effort level for automatic code reviews. For configuration steps, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review#customizing-copilot-code-review-1). +Repository and organization administrators can set the default review effort level for automatic code reviews. For configuration steps, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review#customizing-copilot-code-review-1). ## Code review usage @@ -151,7 +151,7 @@ The triggers for automatic code review depend on the configuration settings. * Review draft pull requests: * Pull requests are automatically reviewed while they are still drafts, before you switch them to "Open". -For full instructions, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +For full instructions, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). > [!NOTE] > Unless {% data variables.product.prodname_copilot_short %} has been configured to review each push to a pull request, it will only review a pull request once. If you make changes to the pull request after it has been automatically reviewed and you want {% data variables.product.prodname_copilot_short %} to re-review it, you can request this manually. Click the {% octicon "sync" aria-label="Re-request review" %} button next to {% data variables.product.prodname_copilot_short %}'s name in the **Reviewers** menu. @@ -263,4 +263,4 @@ For more information, see [AUTOTITLE](/copilot/responsible-use/agents). ## Next steps * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) -* [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review) +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review) diff --git a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md index f81a62d9f14b..42bf4227d625 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md +++ b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md @@ -325,7 +325,7 @@ Alternatively, you can run {% data variables.copilot.copilot_cli_short %} in a v * **MCP servers in {% data variables.product.prodname_copilot_short %}**, which controls whether MCP servers can be used at all by {% data variables.product.prodname_copilot_short %}. * **MCP Registry URL**, which controls which MCP registry {% data variables.product.prodname_copilot_short %} will allow MCP servers to be used from. -For more information about these policies, see [AUTOTITLE](/copilot/concepts/mcp-management#mcp-allowlists). +For more information about these policies, see [AUTOTITLE](/copilot/concepts/enterprise/mcp-management#mcp-allowlists). ## Model usage diff --git a/content/copilot/concepts/agents/copilot-in-jetbrains.md b/content/copilot/concepts/agents/copilot-in-jetbrains.md index d1c482c9f270..44f7ee3fefcc 100644 --- a/content/copilot/concepts/agents/copilot-in-jetbrains.md +++ b/content/copilot/concepts/agents/copilot-in-jetbrains.md @@ -34,14 +34,19 @@ There are three ways to use {% data variables.product.prodname_copilot %} in {% The {% data variables.product.prodname_copilot %} plugin for {% data variables.product.prodname_jetbrains_ides %} is the most comprehensive way to use {% data variables.product.prodname_copilot_short %} and is the recommended choice. -The plugin is transitioning from its local agent harness to {% data variables.copilot.copilot_cli_short %} as the default agent harness, which brings faster feature parity and higher-quality results. For more information, see [{% data variables.copilot.copilot_cli_short %} is becoming the default agent harness in {% data variables.product.prodname_copilot %} for JetBrains](https://devblogs.microsoft.com/java/github-copilot-for-jetbrains-is-moving-to-copilot-cli-as-the-default-agent-harness/). For installation instructions, see [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-extension). +The plugin is transitioning from its local agent harness to {% data variables.copilot.copilot_agent_short %} as the default agent harness, which brings faster feature parity and higher-quality results. For installation instructions, see [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-extension). + +The {% data variables.product.prodname_copilot %} plugin provides the following capabilities. -* **Code completion and next edit suggestions**: {% data variables.product.prodname_copilot_short %} suggests completions as you type and proactively predicts your next intended edit. -* **Multiple agent harnesses**: The plugin ships its own agent experience and partners with other agent providers, giving you multiple interaction modes. * **Full model and feature support**: All {% data variables.copilot.copilot_chat_short %} models, code completion modes, and bring-your-own-key features are available as they are released. +* **Code completion and next edit suggestions**: {% data variables.product.prodname_copilot_short %} suggests completions as you type and proactively predicts your next intended edit. +* **Commit message generation**: {% data variables.product.prodname_copilot_short %} inspects your staged changes and generates a clear, conventional commit message. * **Inline chat**: Explain, refactor, document, or generate code directly in the editor gutter, without switching to a separate panel. * **Code review**: {% data variables.product.prodname_copilot_short %} analyzes your changes and surfaces actionable feedback, flagging potential bugs, style violations, and logic issues. -* **Commit message generation**: {% data variables.product.prodname_copilot_short %} inspects your staged changes and generates a clear, conventional commit message. +* **Multiple agent harnesses**: The plugin ships its own agent experience and partners with other agent providers, giving you multiple interaction modes. +* **Sandbox support** ({% data variables.release-phases.public_preview %}): Isolated execution environments for {% data variables.product.prodname_copilot_short %} to safely interact with code, tools, filesystem, and network resources. +* **OpenTelemetry**: Analyze agent sessions and understand agent usage across an enterprise. +* **Enterprise managed settings**: Apply consistent controls for everyone on your enterprise’s {% data variables.product.prodname_copilot_short %} plan, including plugins and MCP management, OpenTelemetry settings, and permission control. ## {% data variables.product.prodname_copilot %} in JetBrains AI Assistant diff --git a/content/copilot/concepts/billing/organizations-and-enterprises/fundamentals.md b/content/copilot/concepts/billing/organizations-and-enterprises/fundamentals.md index 3032f395c216..6c44070edc0b 100644 --- a/content/copilot/concepts/billing/organizations-and-enterprises/fundamentals.md +++ b/content/copilot/concepts/billing/organizations-and-enterprises/fundamentals.md @@ -46,7 +46,7 @@ With {% data variables.product.prodname_ghe_cloud %}: {% data variables.product.prodname_copilot_short %} usage is measured in {% data variables.product.prodname_ai_credits_short %} under usage-based billing. Each license contributes {% data variables.product.prodname_ai_credits_short %} to a shared enterprise pool, and usage beyond the pool is charged at {% data variables.product.prodname_ai_credits_value %} per {% data variables.product.prodname_ai_credit_singular %}. Code completions and {% data variables.copilot.next_edit_suggestions %} are not billed in {% data variables.product.prodname_ai_credits_short %} and remain unlimited for all paid plans. -For a full explanation of how {% data variables.product.prodname_ai_credits_short %} work, including pooling, additional usage, and what happens when credits run out, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +For a full explanation of how {% data variables.product.prodname_ai_credits_short %} work, including pooling, additional usage, and what happens when credits run out, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Seat assignment diff --git a/content/copilot/concepts/context/spaces.md b/content/copilot/concepts/context/spaces.md index b9a3cfb80957..154f403d2701 100644 --- a/content/copilot/concepts/context/spaces.md +++ b/content/copilot/concepts/context/spaces.md @@ -65,7 +65,7 @@ You can use {% data variables.copilot.copilot_spaces %} in {% data variables.cop Questions you submit in a space count as {% data variables.copilot.copilot_chat_short %} requests and consume {% data variables.product.prodname_ai_credits_short %} based on the model used and the number of tokens processed. * If you're a {% data variables.copilot.copilot_free_short %} user, this usage counts toward your monthly chat limit. -* For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, usage draws from your enterprise's shared {% data variables.product.prodname_ai_credits_short %} pool. For details on how consumption is calculated, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +* For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, usage draws from your enterprise's shared {% data variables.product.prodname_ai_credits_short %} pool. For details on how consumption is calculated, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Next steps diff --git a/content/copilot/concepts/enterprise/agent-management.md b/content/copilot/concepts/enterprise/agent-management.md index d6d36a488a8a..b6cdf46976d2 100644 --- a/content/copilot/concepts/enterprise/agent-management.md +++ b/content/copilot/concepts/enterprise/agent-management.md @@ -74,13 +74,13 @@ To help you meet security and compliance requirements, you can choose to: Private MCP registries apply to {% data variables.copilot.copilot_cli_short %} and IDEs, but not to cloud agents that run on {% data variables.product.github %}. For {% data variables.copilot.copilot_cloud_agent %}, MCP servers can be configured at the repository level or in custom agent profiles defined at the enterprise level. -For more information, see [AUTOTITLE](/copilot/concepts/mcp-management). +For more information, see [AUTOTITLE](/copilot/concepts/enterprise/mcp-management). ## Enterprise-managed settings The `{% data variables.copilot.managed_setting_file %}` file allows enterprises to control how users can interact with agents across {% data variables.product.prodname_copilot_short %} clients. For example: which plugins can people install, and can people use "allow all" commands that let agents run commands without asking for permission? This file can be hosted on {% data variables.product.company_short %} or installed directly on users' machines. -For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). ## Agent mode in the IDE diff --git a/content/copilot/concepts/enterprise/default-model-availability.md b/content/copilot/concepts/enterprise/default-model-availability.md index e328dd617628..f8e8b32aa093 100644 --- a/content/copilot/concepts/enterprise/default-model-availability.md +++ b/content/copilot/concepts/enterprise/default-model-availability.md @@ -31,4 +31,4 @@ For instructions on managing model policies, see [AUTOTITLE](/copilot/how-tos/ad ## How do I prepare for new models? -We recommend keeping up with new model releases so you can choose your enablement settings for each one. New models are announced on {% data variables.product.github %}'s changelog. For more information, see [AUTOTITLE](/copilot/concepts/learning-about-new-features-and-models#learning-about-new-copilot-models). +We recommend keeping up with new model releases so you can choose your enablement settings for each one. New models are announced on {% data variables.product.github %}'s changelog. For more information, see [AUTOTITLE](/copilot/concepts/enterprise/learning-about-new-features-and-models#learning-about-new-copilot-models). 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 9b53069fbda4..8429e9d02766 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 @@ -42,7 +42,7 @@ To learn about new {% data variables.product.prodname_copilot_short %} features, Each feature has its own enablement requirements and policy settings. When a new feature is released: 1. Review the feature documentation to understand its capabilities. -1. Check the policy settings available at the enterprise and organization level. See [AUTOTITLE](/copilot/concepts/policies). +1. Check the policy settings available at the enterprise and organization level. See [AUTOTITLE](/copilot/concepts/enterprise/policies). 1. Consider running a pilot with a subset of users before broader rollout. ### Learning about new {% data variables.product.prodname_copilot_short %} models diff --git a/content/copilot/concepts/enterprise/mcp-management.md b/content/copilot/concepts/enterprise/mcp-management.md index 8663d6d2e363..b5cab39c726c 100644 --- a/content/copilot/concepts/enterprise/mcp-management.md +++ b/content/copilot/concepts/enterprise/mcp-management.md @@ -31,7 +31,7 @@ Alternatively, you can host your own MCP registry and restrict access to servers | Release phase | Generally available | {% data variables.release-phases.public_preview_caps %}, not prioritized for development | | Ease of setup | You can host a configuration file on {% data variables.product.github %} that applies automatically to clients. | You must host your own registry that matches the MCP specification and serves HTTPS requests. | | Enforcement level | Enterprise-wide settings, overridable for enterprise teams | Enterprise-wide or for individual organizations | -| Supported clients | Clients supported by the `{% data variables.copilot.managed_setting_file %}` file, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). Planned to expand in the near future. | See [AUTOTITLE](/copilot/reference/enterprise-administrators/mcp-private-registry-enforcement). | +| Supported clients | Clients supported by the `{% data variables.copilot.managed_setting_file %}` file, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). Planned to expand in the near future. | See [AUTOTITLE](/copilot/reference/enterprise-administrators/mcp-private-registry-enforcement). | | Server matching method | Secure matching based on name, URL, or `stdio` commands | Less secure matching, based on name or ID only. Users can bypass the restriction by editing configuration files. | {% endrowheaders %} diff --git a/content/copilot/concepts/enterprise/opentelemetry.md b/content/copilot/concepts/enterprise/opentelemetry.md index de175fa4468d..c6e625519d0b 100644 --- a/content/copilot/concepts/enterprise/opentelemetry.md +++ b/content/copilot/concepts/enterprise/opentelemetry.md @@ -37,7 +37,7 @@ To collect OTel data from users' {% data variables.product.prodname_copilot_shor Enterprises can enforce OTel configuration across supported clients with managed settings. These settings are enforced across users' clients and cannot be overridden. The `telemetry` property includes keys for enabling and configuring OpenTelemetry. -For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings) and [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings). +For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started) and [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings). ## Client documentation diff --git a/content/copilot/concepts/enterprise/plugin-standards.md b/content/copilot/concepts/enterprise/plugin-standards.md index 9cb0ad2a5285..47a97f26e19a 100644 --- a/content/copilot/concepts/enterprise/plugin-standards.md +++ b/content/copilot/concepts/enterprise/plugin-standards.md @@ -44,4 +44,4 @@ Enterprise-managed plugin standards help administrators address several common c ## Next step -To configure enterprise plugin standards, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +To configure enterprise plugin standards, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). diff --git a/content/copilot/get-started/index.md b/content/copilot/get-started/index.md index 04fd99c3a261..62e71e31c8f0 100644 --- a/content/copilot/get-started/index.md +++ b/content/copilot/get-started/index.md @@ -8,6 +8,7 @@ children: - /quickstart - /cli-quickstart - /quickstart-copilot-app + - /sdk-quickstart - /what-is-github-copilot - /plans - /features diff --git a/content/copilot/get-started/plans.md b/content/copilot/get-started/plans.md index 4b88115f0881..bcf808ebc22b 100644 --- a/content/copilot/get-started/plans.md +++ b/content/copilot/get-started/plans.md @@ -67,7 +67,7 @@ The table below provides an overview of differences between plans. All plans inc {% endrowheaders %} -Each plan comes with an allowance of {% data variables.product.prodname_ai_credits %}. For more information, including how {% data variables.product.prodname_ai_credits %} work, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-individuals) and [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Each plan comes with an allowance of {% data variables.product.prodname_ai_credits %}. For more information, including how {% data variables.product.prodname_ai_credits %} work, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-individuals) and [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). For more detail on what's uniquely available in each plan, see the following sections: * [Individual plans](#individual-plans) @@ -187,7 +187,7 @@ With these plans you'll receive access to the following features and capabilitie {% data variables.product.prodname_copilot_short %} usage is measured in {% data variables.product.prodname_ai_credits_short %} under usage-based billing. Each license contributes {% data variables.product.prodname_ai_credits_short %} to a shared enterprise pool, and usage beyond the pool is charged at {% data variables.product.prodname_ai_credits_value %} per {% data variables.product.prodname_ai_credit_singular %}. Code completions and {% data variables.copilot.next_edit_suggestions %} are not billed in {% data variables.product.prodname_ai_credits_short %} and remain unlimited for all paid plans. -For a full explanation of how {% data variables.product.prodname_ai_credits_short %} work, including pooling, additional usage, and what happens when credits run out, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +For a full explanation of how {% data variables.product.prodname_ai_credits_short %} work, including pooling, additional usage, and what happens when credits run out, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ### Inline suggestions and {% data variables.copilot.copilot_chat_short %} diff --git a/content/copilot/how-tos/copilot-sdk/getting-started.md b/content/copilot/get-started/sdk-quickstart.md similarity index 99% rename from content/copilot/how-tos/copilot-sdk/getting-started.md rename to content/copilot/get-started/sdk-quickstart.md index 0b14f781ee31..33db9d2e1cab 100644 --- a/content/copilot/how-tos/copilot-sdk/getting-started.md +++ b/content/copilot/get-started/sdk-quickstart.md @@ -1,21 +1,22 @@ --- title: Build your first Copilot-powered app -shortTitle: Getting Started +shortTitle: Copilot SDK quickstart +allowTitleToDifferFromFilename: true intro: >- In this tutorial, you'll use the Copilot SDK to build a command-line assistant. You'll start with the basics, add streaming responses, then add custom tools - giving Copilot the ability to call your code. versions: - fpt: '*' - ghec: '*' + feature: copilot redirect_from: - /copilot/how-tos/copilot-sdk/sdk-getting-started -contentType: how-tos + - /copilot/how-tos/copilot-sdk/getting-started +contentType: get-started +category: + - Quickstarts + - Integrate Copilot with your tools --- - - - **What you'll build:** ```text diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/create-github-private-repo.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/create-github-private-repo.md index 62a9ec1c38b1..c9bbb2ba8d74 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/create-github-private-repo.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/create-github-private-repo.md @@ -44,4 +44,4 @@ To control who can propose and merge changes to the governance settings stored h ## Next steps * [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents) -* [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings) +* [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started) diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md index 62c0ea639fd7..6dc84c880741 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity.md @@ -41,4 +41,4 @@ OpenTelemetry (OTel) is an open source observability framework. It provides a st When you enable OTel monitoring, you can send data from users' {% data variables.product.prodname_copilot_short %} clients to an OTel-compatible backend. This lets you analyze agent sessions and understand agent usage across your enterprise. -For more information, see [AUTOTITLE](/copilot/concepts/agents/opentelemetry). +For more information, see [AUTOTITLE](/copilot/concepts/enterprise/opentelemetry). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents.md index 8bdf3137443d..8fb11a2ffe63 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents.md @@ -42,4 +42,4 @@ If you prefer to maintain full control over your enterprise's tooling to ensure ## Next steps -To centrally control {% data variables.product.prodname_copilot_short %} client behavior across your enterprise, configure enterprise managed settings. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +To centrally control {% data variables.product.prodname_copilot_short %} client behavior across your enterprise, configure enterprise managed settings. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies.md index b3628cc5a50b..f46ab2084ef0 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies.md @@ -23,7 +23,7 @@ If you're setting up {% data variables.product.prodname_copilot_short %} for the ## Defining policies for your enterprise -Enterprise owners can define a policy for the whole enterprise, or delegate the decision to individual organization owners. See [AUTOTITLE](/copilot/concepts/policies). +Enterprise owners can define a policy for the whole enterprise, or delegate the decision to individual organization owners. See [AUTOTITLE](/copilot/concepts/enterprise/policies). {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.ai-controls-tab %} diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-default-models.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-default-models.md index d0715e17454f..72322048c0a4 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-default-models.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-default-models.md @@ -22,7 +22,7 @@ When viewing the model settings for your organization, you may see the following * **Enabled** or **Disabled** with a {% octicon "shield" aria-label="shield" %} icon: The enterprise owner has enforced this setting. You cannot change the availability of this model. * **Enabled** or **Disabled** in a dropdown menu: The enterprise owner has made this model optional. You can configure the availability for your organization. -* **Delegate to Default Policy**: This model is available for you to configure, but no one has configured it in the organization. The model inherits the default set in the "Default availability" policy for your organization. See [AUTOTITLE](/copilot/concepts/models/default-availability). +* **Delegate to Default Policy**: This model is available for you to configure, but no one has configured it in the organization. The model inherits the default set in the "Default availability" policy for your organization. See [AUTOTITLE](/copilot/concepts/enterprise/default-model-availability). ## Configuring model availability for your organization diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-plan/subscribe.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-plan/subscribe.md index 8ca6e0194577..a62e0a01716d 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-plan/subscribe.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-plan/subscribe.md @@ -21,14 +21,14 @@ category: --- > [!NOTE] -> If your organization is part of an enterprise, you will gain {% data variables.product.prodname_copilot_short %} through your enterprise instead. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/subscribing-to-copilot-for-your-enterprise) and [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/enabling-copilot-for-organizations-in-your-enterprise). +> If your organization is part of an enterprise, you will gain {% data variables.product.prodname_copilot_short %} through your enterprise instead. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-plan/subscribe) and [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/grant-access). 1. Navigate to the [{% data variables.product.prodname_copilot %} sign up page](https://github.com/github-copilot/purchase?ref_product=copilot&ref_type=purchase&ref_style=text). 1. Ensure you are signed in to the right organization account. If you are not, click **{% octicon "arrow-switch" aria-hidden="true" aria-label="arrow-switch" %} Switch** and select the organization for which you want to purchase {% data variables.product.prodname_copilot %}. 1. Click **Enable {% data variables.product.prodname_copilot %}**. -1. Enable {% data variables.product.prodname_copilot_short %} for some or all members of your organization. For more information about assigning seats, see [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization). +1. Enable {% data variables.product.prodname_copilot_short %} for some or all members of your organization. For more information about assigning seats, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/manage-access/grant-access). ## Next steps -* To finish setting up {% data variables.product.prodname_copilot_short %} for your organization, see [AUTOTITLE](/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-organization). -* For billing information, see [AUTOTITLE](/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot-business-and-github-copilot-enterprise) and [AUTOTITLE](/billing/managing-your-billing). \ No newline at end of file +* To finish setting up {% data variables.product.prodname_copilot_short %} for your organization, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-organization). +* For billing information, see [AUTOTITLE](/billing/concepts/product-billing/github-copilot-licenses#about-billing-for-github-copilot-business-and-github-copilot-enterprise) and [AUTOTITLE](/billing/get-started). \ No newline at end of file diff --git a/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist.md b/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist.md index 97f4ef40bad4..ec9868c37ab3 100644 --- a/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist.md +++ b/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist.md @@ -16,7 +16,7 @@ category: You can define an allowlist and denylist to control which MCP servers users in your enterprise can run in {% data variables.product.prodname_copilot_short %} clients. These lists are defined in your enterprise's `{% data variables.copilot.managed_setting_file %}`, which you can store on {% data variables.product.github %}. -For more information, see [AUTOTITLE](/copilot/concepts/mcp-management). +For more information, see [AUTOTITLE](/copilot/concepts/enterprise/mcp-management). ## Prerequisites @@ -27,7 +27,7 @@ You can find these settings in the {% octicon "mcp" aria-hidden="true" aria-labe ## Defining an allowlist or denylist -1. Create a `{% data variables.copilot.managed_setting_file %}` file for your enterprise. Most enterprises store this file in a `.github-private` repository. You can also install it directly on users' machines using mobile device management. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings#deploying-server-managed-settings). +1. Create a `{% data variables.copilot.managed_setting_file %}` file for your enterprise. Most enterprises store this file in a `.github-private` repository. You can also install it directly on users' machines using mobile device management. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/deploy-managed-settings#deploying-server-managed-settings). 1. Edit the file to define an allowlist and denylist for MCP servers. You can match by name, server URL, or specific commands. For syntax details, see [allowedMcpServers](/copilot/reference/enterprise-administrators/enterprise-managed-settings#allowedmcpservers), and [deniedMcpServers](/copilot/reference/enterprise-administrators/enterprise-managed-settings#deniedmcpservers) in "Enterprise managed settings." The following example allows servers that match any of the three allowlist entries. The filesystem server configured to access the root filesystem is always blocked, even if it also matches an allowlist entry. diff --git a/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-mcp-registry.md b/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-mcp-registry.md index 4e8ba65eb0b4..7eb195f216e9 100644 --- a/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-mcp-registry.md +++ b/content/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-mcp-registry.md @@ -16,7 +16,7 @@ category: ## Prerequisites -Before you create your Model Context Protocol (MCP) registry, you should understand the functionality and benefits of MCP management for your company. See [AUTOTITLE](/copilot/concepts/mcp-management). +Before you create your Model Context Protocol (MCP) registry, you should understand the functionality and benefits of MCP management for your company. See [AUTOTITLE](/copilot/concepts/enterprise/mcp-management). ## Option 1: Self-hosting an MCP registry 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 a34bb684e624..d2a9d122f749 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 @@ -63,4 +63,4 @@ If you already have the Azure Boards application installed on {% data variables. ## Further reading * [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) -* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management) +* [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access) diff --git a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-jira.md b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-jira.md index 8c3b7247aabe..2c554d68422d 100644 --- a/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-jira.md +++ b/content/copilot/how-tos/copilot-integrations/integrate-cloud-agent-with-jira.md @@ -140,7 +140,7 @@ Use custom instructions to set defaults that apply to every session, such as the {% data variables.copilot.copilot_cloud_agent %} uses {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}. -For more information, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +For more information, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## Adding or removing an organization to the {% data variables.product.prodname_copilot %} for Jira app @@ -200,6 +200,6 @@ To resolve this issue, follow these steps to start a new active SSO session for ## Further reading * [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) -* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management) +* [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers#example-atlassian) * [Collaborate on work items with AI agents](https://support.atlassian.com/jira-software-cloud/docs/collaborate-on-work-items-with-ai-agents/) in the Atlassian documentation 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 6d546c1296fa..c4c718e92361 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 @@ -96,4 +96,4 @@ After you trigger {% data variables.copilot.copilot_cloud_agent %} from a Linear ## Further reading * [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) -* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management) +* [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access) 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 41c5fd13e32c..9a10abe04f15 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 @@ -129,4 +129,4 @@ You can view and share feedback in our [discussion forum](https://github.com/org ## Further reading * [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) -* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management) +* [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access) diff --git a/content/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-mobile.md b/content/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-mobile.md index 267cd13ba512..48f05a93d72e 100644 --- a/content/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-mobile.md +++ b/content/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-mobile.md @@ -24,7 +24,7 @@ category: The following limitations apply to {% data variables.copilot.copilot_mobile_short %}: -* If you're a member of an organization or enterprise, your access to {% data variables.copilot.copilot_mobile_short %} may depend on policies set by your administrator. See [AUTOTITLE](/copilot/concepts/policies). +* If you're a member of an organization or enterprise, your access to {% data variables.copilot.copilot_mobile_short %} may depend on policies set by your administrator. See [AUTOTITLE](/copilot/concepts/enterprise/policies). * If you purchased {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} through an in-app purchase on iOS or Android, you cannot enable additional {% data variables.product.prodname_ai_credits %}. To do so, cancel your mobile subscription and re-subscribe on {% data variables.product.prodname_dotcom_the_website %} through a web browser. ## Asking a general question about software development diff --git a/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues.md b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues.md index cf4e82664d6d..e6a265155af3 100644 --- a/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues.md +++ b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues.md @@ -81,7 +81,7 @@ Review the draft in the workbench, then click **Review and create** > **Create i ## Assign an issue to {% data variables.product.prodname_copilot_short %} -With {% data variables.copilot.copilot_cloud_agent %} enabled, you can assign an issue to {% data variables.product.prodname_copilot_short %} during creation. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +With {% data variables.copilot.copilot_cloud_agent %} enabled, you can assign an issue to {% data variables.product.prodname_copilot_short %} during creation. See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). * **Natural language:** Include `Assign this issue to {% data variables.product.prodname_copilot_short %}.` in your prompt. * **Manually:** Select "{% data variables.product.prodname_copilot_short %}" from the assignee list. diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md index 07591c5dc3d1..9e83e1e90d97 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md @@ -16,7 +16,7 @@ This quickstart walks you through customizing {% data variables.product.prodname ## Prerequisites * Any paid {% data variables.product.prodname_copilot_short %} plan. For more information, see [AUTOTITLE](/copilot/get-started/plans). -* {% data variables.copilot.copilot_cloud_agent_short_cap_c %} enabled for your organization or account. For more information, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +* {% data variables.copilot.copilot_cloud_agent_short_cap_c %} enabled for your organization or account. For more information, see [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). * Write access to a {% data variables.product.github %} repository. ## Step 1: Teach {% data variables.product.prodname_copilot_short %} your project's conventions diff --git a/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-a-dedicated-enterprise-for-copilot-business.md b/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-a-dedicated-enterprise-for-copilot-business.md index 808cf9cf95d9..7e9b7d97774e 100644 --- a/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-a-dedicated-enterprise-for-copilot-business.md +++ b/content/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-a-dedicated-enterprise-for-copilot-business.md @@ -18,7 +18,7 @@ category: - Manage Copilot for a team --- -Before you begin, see [AUTOTITLE](/copilot/concepts/about-enterprise-accounts-for-copilot-business) to understand how to use a standard enterprise account for {% data variables.copilot.copilot_business_short %} without consuming {% data variables.product.prodname_ghe_cloud %} licenses. +Before you begin, see [AUTOTITLE](/copilot/concepts/enterprise/about-enterprise-accounts-for-copilot-business) to understand how to use a standard enterprise account for {% data variables.copilot.copilot_business_short %} without consuming {% data variables.product.prodname_ghe_cloud %} licenses. ## Create an enterprise account @@ -63,7 +63,7 @@ For detailed steps, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-f After you assign licenses, you can centrally govern how members use {% data variables.product.prodname_copilot_short %}: * **Policies**. Control feature availability with policies in AI Controls. -* **Enterprise managed settings**. Distribute client governance and extensibility configuration from a centrally defined source. For example, you can disable bypass mode, restrict plugins, and set the default model for new conversations. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +* **Enterprise managed settings**. Distribute client governance and extensibility configuration from a centrally defined source. For example, you can disable bypass mode, restrict plugins, and set the default model for new conversations. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). To use server-managed settings, you need an organization and a `.github-private` repository, which requires a {% data variables.product.prodname_enterprise %} license for the user who creates them. Alternatively, you can deploy managed settings through MDM or a file-based deployment without creating an organization. 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 b9ffeb91fd26..e2e0f329d28b 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 @@ -58,13 +58,13 @@ When you push new changes to a pull request that {% data variables.product.prodn To manually request a re-review, click the {% octicon "sync" aria-label="Re-request review" %} button next to {% data variables.product.prodname_copilot_short %}'s name in the **Reviewers** menu. For more information, see [AUTOTITLE](/pull-requests/how-tos/create-pull-requests/requesting-a-pull-request-review). -To automatically request re-reviews on every push, enable automatic code review and select **Review new pushes** in the ruleset settings. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review#configuring-automatic-code-review-for-repositories-in-an-organization). +To automatically request re-reviews on every push, enable automatic code review and select **Review new pushes** in the ruleset settings. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review#configuring-automatic-code-review-for-repositories-in-an-organization). When re-reviewing, {% data variables.product.prodname_copilot_short %} may repeat previous comments, even if you resolved or downvoted them. ## Enable automatic reviews -By default, you request reviews from {% data variables.product.prodname_copilot_short %} manually on each pull request. To enable automatic reviews for all pull requests, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +By default, you request reviews from {% data variables.product.prodname_copilot_short %} manually on each pull request. To enable automatic reviews for all pull requests, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). ## Customize reviews with custom instructions diff --git a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/overview.md b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/overview.md index 945ae16c17e1..1e60d6018a65 100644 --- a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/overview.md +++ b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/overview.md @@ -11,7 +11,7 @@ contentType: how-tos ## Prerequisite -You need a repository where {% data variables.copilot.copilot_cloud_agent %} is enabled. For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} subscribers, an administrator must enable the agent before you can use it. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +You need a repository where {% data variables.copilot.copilot_cloud_agent %} is enabled. For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} subscribers, an administrator must enable the agent before you can use it. See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). ## Step 1: Assign an issue to {% data variables.product.prodname_copilot_short %} diff --git a/content/copilot/how-tos/copilot-sdk/auth/authenticate.md b/content/copilot/how-tos/copilot-sdk/auth/authenticate.md index 7b6068443725..efd6654f5bb8 100644 --- a/content/copilot/how-tos/copilot-sdk/auth/authenticate.md +++ b/content/copilot/how-tos/copilot-sdk/auth/authenticate.md @@ -404,5 +404,5 @@ const client = new CopilotClient({ ## Next steps * [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) - Learn how to use your own API keys -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) - Build your first Copilot-powered app +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) - Build your first Copilot-powered app * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/mcp) - Connect to external tools diff --git a/content/copilot/how-tos/copilot-sdk/auth/byok.md b/content/copilot/how-tos/copilot-sdk/auth/byok.md index a5ec405399ee..6624808ec975 100644 --- a/content/copilot/how-tos/copilot-sdk/auth/byok.md +++ b/content/copilot/how-tos/copilot-sdk/auth/byok.md @@ -594,4 +594,4 @@ foundry model run phi-4-mini ## Next steps * [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth) - Learn about all authentication methods -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) - Build your first Copilot-powered app +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) - Build your first Copilot-powered app diff --git a/content/copilot/how-tos/copilot-sdk/features/hooks.md b/content/copilot/how-tos/copilot-sdk/features/hooks.md index 3958e751636a..172c78fd7633 100644 --- a/content/copilot/how-tos/copilot-sdk/features/hooks.md +++ b/content/copilot/how-tos/copilot-sdk/features/hooks.md @@ -890,7 +890,7 @@ For full type definitions, input/output field tables, and additional examples fo ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/custom-agents) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/streaming-events) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/troubleshooting/debugging) diff --git a/content/copilot/how-tos/copilot-sdk/features/mcp.md b/content/copilot/how-tos/copilot-sdk/features/mcp.md index d23b054c0bb9..9569df0f34d1 100644 --- a/content/copilot/how-tos/copilot-sdk/features/mcp.md +++ b/content/copilot/how-tos/copilot-sdk/features/mcp.md @@ -340,7 +340,7 @@ For detailed debugging guidance, see the **[AUTOTITLE](/copilot/how-tos/copilot- * [Model Context Protocol Specification](https://modelcontextprotocol.io/) * [MCP Servers Directory](https://github.com/modelcontextprotocol/servers) - Community MCP servers * [GitHub MCP Server](https://github.com/github/github-mcp-server) - Official GitHub MCP server -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) - SDK basics and custom tools +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) - SDK basics and custom tools * [AUTOTITLE](/copilot/how-tos/copilot-sdk/troubleshooting/debugging) - SDK-wide debugging ## See also diff --git a/content/copilot/how-tos/copilot-sdk/features/skills.md b/content/copilot/how-tos/copilot-sdk/features/skills.md index 17676dc35f94..71fa9121dc63 100644 --- a/content/copilot/how-tos/copilot-sdk/features/skills.md +++ b/content/copilot/how-tos/copilot-sdk/features/skills.md @@ -373,6 +373,6 @@ If multiple skills provide conflicting instructions: ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started#create-custom-agents) - Define specialized AI personas -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started#step-4-add-a-custom-tool) - Build your own tools +* [AUTOTITLE](/copilot/get-started/sdk-quickstart#create-custom-agents) - Define specialized AI personas +* [AUTOTITLE](/copilot/get-started/sdk-quickstart#step-4-add-a-custom-tool) - Build your own tools * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/mcp) - Connect external tool providers diff --git a/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md b/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md index b1576cef0332..3669f9c5c2ca 100644 --- a/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md +++ b/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md @@ -546,7 +546,7 @@ class InteractiveChat { ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started): Set up a session and send messages +* [AUTOTITLE](/copilot/get-started/sdk-quickstart): Set up a session and send messages * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/custom-agents): Define specialized agents with scoped tools * [AUTOTITLE](/copilot/how-tos/copilot-sdk/hooks/hooks-overview): React to session lifecycle events * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/session-persistence): Resume sessions across restarts diff --git a/content/copilot/how-tos/copilot-sdk/hooks/hooks-overview.md b/content/copilot/how-tos/copilot-sdk/hooks/hooks-overview.md index 2a5df49b0ab7..58541e6eeb89 100644 --- a/content/copilot/how-tos/copilot-sdk/hooks/hooks-overview.md +++ b/content/copilot/how-tos/copilot-sdk/hooks/hooks-overview.md @@ -277,6 +277,6 @@ const session = await client.createSession({ ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started#step-4-add-a-custom-tool) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart#step-4-add-a-custom-tool) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/troubleshooting/debugging) diff --git a/content/copilot/how-tos/copilot-sdk/index.md b/content/copilot/how-tos/copilot-sdk/index.md index 094b1f3411a1..2285a39ff9fa 100644 --- a/content/copilot/how-tos/copilot-sdk/index.md +++ b/content/copilot/how-tos/copilot-sdk/index.md @@ -9,7 +9,6 @@ versions: ghec: '*' contentType: how-tos children: - - /getting-started - /auth - /features - /hooks diff --git a/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md b/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md index 2bc40d5b2b24..ce4a8769c230 100644 --- a/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md +++ b/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md @@ -33,7 +33,7 @@ The Microsoft Agent Framework is the unified successor to Semantic Kernel and Au Before you begin, ensure you have: -* A working [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) in your language of choice +* A working [AUTOTITLE](/copilot/get-started/sdk-quickstart) in your language of choice * A GitHub Copilot subscription (Individual, Business, or Enterprise) * The Copilot CLI installed or available via the SDK's bundled CLI @@ -593,7 +593,7 @@ client.stop().get(); ### Copilot SDK options (passed through) -All standard [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) options are still available when creating the underlying Copilot client. The MAF wrapper delegates to the SDK under the hood: +All standard [AUTOTITLE](/copilot/get-started/sdk-quickstart) options are still available when creating the underlying Copilot client. The MAF wrapper delegates to the SDK under the hood: | SDK Feature | MAF Support | |-------------|-------------| @@ -661,7 +661,7 @@ catch (AgentException ex) ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started): initial Copilot SDK setup +* [AUTOTITLE](/copilot/get-started/sdk-quickstart): initial Copilot SDK setup * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/custom-agents): define specialized sub-agents within the SDK * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/skills): reusable prompt modules * [Microsoft Agent Framework documentation](https://learn.microsoft.com/en-us/agent-framework/agents/providers/github-copilot): official MAF docs for the Copilot provider diff --git a/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md b/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md index 7f9f3b012772..51076cb21120 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md +++ b/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md @@ -215,4 +215,4 @@ Session state persists at `~/.copilot/session-state/{sessionId}/`. * **[AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok)**: Use your own model provider keys * **[AUTOTITLE](/copilot/how-tos/copilot-sdk/features/session-persistence)**: Advanced session management -* **[AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started)**: Build a complete app +* **[AUTOTITLE](/copilot/get-started/sdk-quickstart)**: Build a complete app diff --git a/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md b/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md index 79d5e41f9608..34c16e7d36cd 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md +++ b/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md @@ -101,7 +101,7 @@ All guides assume you have: * Go: `go get github.com/github/copilot-sdk/go` (requires separate CLI installation) * .NET: `dotnet add package GitHub.Copilot.SDK` -If you're brand new, start with the **[AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started)** first, then come back here for production configuration. +If you're brand new, start with the **[AUTOTITLE](/copilot/get-started/sdk-quickstart)** first, then come back here for production configuration. ## Next steps diff --git a/content/copilot/how-tos/copilot-sdk/setup/local-cli.md b/content/copilot/how-tos/copilot-sdk/setup/local-cli.md index 541c481c4038..8efe570391ed 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/local-cli.md +++ b/content/copilot/how-tos/copilot-sdk/setup/local-cli.md @@ -177,5 +177,5 @@ Session state is stored locally at `~/.copilot/session-state/{sessionId}/`. ## Next steps * **[AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/bundled-cli)**: Use the SDK's built-in CLI (recommended for most use cases) -* **[AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started)**: Build a complete interactive app +* **[AUTOTITLE](/copilot/get-started/sdk-quickstart)**: Build a complete interactive app * **[AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/authenticate)**: All auth methods in detail diff --git a/content/copilot/how-tos/copilot-sdk/troubleshooting/compatibility.md b/content/copilot/how-tos/copilot-sdk/troubleshooting/compatibility.md index 4499e127ded7..5a1f9a6cd656 100644 --- a/content/copilot/how-tos/copilot-sdk/troubleshooting/compatibility.md +++ b/content/copilot/how-tos/copilot-sdk/troubleshooting/compatibility.md @@ -308,7 +308,7 @@ console.log("Protocol version:", status.protocolVersion); ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/hooks/hooks-overview) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/mcp) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/troubleshooting/debugging) diff --git a/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md b/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md index bcd88f945ae6..5f99af3540d1 100644 --- a/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md +++ b/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md @@ -538,7 +538,7 @@ If you're still stuck: ## See also -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/mcp) - MCP configuration and setup * [AUTOTITLE](/copilot/how-tos/copilot-sdk/troubleshooting/mcp-debugging) - Detailed MCP troubleshooting * [API Reference](https://github.com/github/copilot-sdk) 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 2447d870f801..e8f251e7adfa 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 @@ -104,4 +104,4 @@ Use canvas extensions to build shared, agent-driven artifacts and interfaces for Enterprise and organization owners can set policies to govern how {% data variables.product.prodname_copilot_short %} is used across surfaces. For the major policies supported by the {% data variables.copilot.github_copilot_app %}, see [AUTOTITLE](/copilot/reference/supported-surfaces-for-policies). -Enterprises can also define a `{% data variables.copilot.managed_setting_file %}` file to control which actions users can take in supported {% data variables.product.prodname_copilot_short %} clients, such as which plugins users can install and whether "YOLO-style" commands are permitted. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings). +Enterprises can also define a `{% data variables.copilot.managed_setting_file %}` file to control which actions users can take in supported {% data variables.product.prodname_copilot_short %} clients, such as which plugins users can install and whether "YOLO-style" commands are permitted. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/get-started). 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 91bce8c3fd60..771648e80671 100644 --- a/content/copilot/how-tos/github-copilot-app/using-automations.md +++ b/content/copilot/how-tos/github-copilot-app/using-automations.md @@ -36,7 +36,7 @@ Open **[Automations](https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fau To use cloud {% data variables.copilot.copilot_automations %}, make sure the following settings are enabled. -* {% data variables.copilot.copilot_cloud_agent %} must be enabled for the repository. If you have {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %}, an administrator must enable the {% data variables.copilot.copilot_cloud_agent %} policy. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +* {% data variables.copilot.copilot_cloud_agent %} must be enabled for the repository. If you have {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %}, an administrator must enable the {% data variables.copilot.copilot_cloud_agent %} policy. See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). * The organization must allow both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_automations %} in the repository (both are enabled by default). See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent). * If you want to create {% data variables.copilot.copilot_automations %} that can listen to events triggered by users without write access, disable the "Only allow automations to be triggered by users with write access" setting in {% data variables.copilot.copilot_cloud_agent %} repository settings. diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md index dd6f4579c433..1be6dcd31f13 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md @@ -138,11 +138,30 @@ When an {% data variables.product.prodname_actions %} workflow run fails on a pu ## Continuing work on a pull request +You can ask {% data variables.product.prodname_copilot_short %} to make changes or address review comments on an existing pull request. You can then track the resulting session and provide follow-up instructions. + +### Asking {% data variables.product.prodname_copilot_short %} to make changes + You can mention `@copilot` in a comment on any pull request to ask {% data variables.product.prodname_copilot_short %} to make changes. This works on pull requests created by {% data variables.product.prodname_copilot_short %} and on pull requests you or others created. By default, {% data variables.product.prodname_copilot_short %} pushes commits directly to the pull request branch. To create a separate pull request instead, describe that in your comment. You can also check out the branch and push changes yourself. -Batch review comments instead of submitting them individually. When submitting a pull request comment (not a review or review comment) through the {% data variables.product.github %} web interface, select a model with the model picker. {% data variables.product.prodname_copilot_short %} uses the model from the original pull request by default. +When submitting a pull request comment (not a review or review comment) through the {% data variables.product.github %} web interface, select a model with the model picker. {% data variables.product.prodname_copilot_short %} uses the model from the original pull request by default. + +### Delegating review comments + +You can delegate review comments to have {% data variables.product.prodname_copilot_short %} implement feedback from human reviewers and {% data variables.copilot.copilot_code-review %}. + +1. In the pull request, open the **Files changed** tab. +1. Navigate to the first review comment you want {% data variables.product.prodname_copilot_short %} to implement. + * To delegate one comment, click **Fix with {% data variables.product.prodname_copilot_short %}**. + * To delegate multiple comments, click **Add to batch**. Continue to add the comments you want {% data variables.product.prodname_copilot_short %} to work on. +1. In the **Manage batch** panel, add any additional instructions, and optionally select a model with the model picker. +1. Choose how you want {% data variables.product.prodname_copilot_short %} to apply the changes: + * To commit the changes directly to the branch, click **{% octicon "agent" aria-label="The Agents icon" %} Fix and commit**. + * To have {% data variables.product.prodname_copilot_short %} create a new pull request with the changes, click **Fix and open pull request** from the dropdown menu. + +### Tracking and continuing a session {% data reusables.copilot.cloud-agent.write-access-required %} diff --git a/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md b/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md index 25546e4d8a1f..4c2d03f0dd06 100644 --- a/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md +++ b/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md @@ -66,7 +66,7 @@ You can also request a review from {% data variables.product.prodname_copilot_sh ## Enabling automatic reviews -By default, you manually request a review from {% data variables.product.prodname_copilot_short %} on each pull request, in the same way you would request a review from a human. However, you can set up {% data variables.product.prodname_copilot_short %} to automatically review all pull requests. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +By default, you manually request a review from {% data variables.product.prodname_copilot_short %} on each pull request, in the same way you would request a review from a human. However, you can set up {% data variables.product.prodname_copilot_short %} to automatically review all pull requests. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). ## Requesting a re-review from {% data variables.product.prodname_copilot_short %} @@ -74,7 +74,7 @@ When you push changes to a pull request that {% data variables.product.prodname_ To manually request a re-review from {% data variables.product.prodname_copilot_short %}, click the {% octicon "sync" aria-label="Re-request review" %} button next to {% data variables.product.prodname_copilot_short %}'s name in the **Reviewers** menu. For more information, see [AUTOTITLE](/pull-requests/how-tos/create-pull-requests/requesting-a-pull-request-review). -To automatically request re-reviews from {% data variables.product.prodname_copilot_short %} on every push, enable automatic code review for the repository and select **Review new pushes** in the ruleset settings. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review#configuring-automatic-code-review-for-repositories-in-an-organization). +To automatically request re-reviews from {% data variables.product.prodname_copilot_short %} on every push, enable automatic code review for the repository and select **Review new pushes** in the ruleset settings. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review#configuring-automatic-code-review-for-repositories-in-an-organization). > [!NOTE] When re-reviewing a pull request, {% data variables.product.prodname_copilot_short %} may repeat the same comments again, even if they have been dismissed with the "Resolve conversation" button or downvoted with the thumbs down (:-1:) button. @@ -98,7 +98,7 @@ Every {% data variables.copilot.copilot_code-review_short %} includes an approva When approvals are enabled, {% data variables.product.prodname_copilot_short %} can submit an approving review that satisfies your repository's required-approval rule the same way a teammate's approval would. If new commits are pushed after {% data variables.product.prodname_copilot_short %} approves, the approval is dismissed, and you can re-request a review. For more details on required reviews, see [AUTOTITLE](/pull-requests/how-tos/review-pull-requests/approving-a-pull-request-with-required-reviews). -Approvals are off by default and can be configured at the enterprise, organization, and repository levels. Repository administrators can also use file paths to control which {% data variables.product.prodname_copilot_short %} approvals count toward merge requirements. For configuration steps, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review#customizing-copilot-code-review). +Approvals are off by default and can be configured at the enterprise, organization, and repository levels. Repository administrators can also use file paths to control which {% data variables.product.prodname_copilot_short %} approvals count toward merge requirements. For configuration steps, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review#customizing-copilot-code-review). ## Customizing {% data variables.product.prodname_copilot_short %}'s reviews with custom instructions diff --git a/content/copilot/reference/copilot-billing/models-and-pricing.md b/content/copilot/reference/copilot-billing/models-and-pricing.md index 0ee0e06a752b..808a74eda135 100644 --- a/content/copilot/reference/copilot-billing/models-and-pricing.md +++ b/content/copilot/reference/copilot-billing/models-and-pricing.md @@ -19,7 +19,7 @@ The cost of an interaction depends on two things: the model and the number of to How {% data variables.product.prodname_copilot_short %} usage is tracked and billed depends on your plan type: * Individual plans ({% data variables.copilot.copilot_free_short %}, {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %}) include {% data variables.product.prodname_ai_credits %} allowances that vary by plan. For details, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-individuals). -* {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} include per-user {% data variables.product.prodname_ai_credits %} allowances that are pooled at the billing entity level. For details, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +* {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} include per-user {% data variables.product.prodname_ai_credits %} allowances that are pooled at the billing entity level. For details, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). When usage exceeds the included allowances for any {% data variables.product.prodname_copilot_short %} plan, additional usage is billed in {% data variables.product.prodname_ai_credits %} at the per-token rates shown in the pricing tables below (1 {% data variables.product.prodname_ai_credit_singular %} = {% data variables.product.prodname_ai_credits_value %}). diff --git a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md index 7fdc016ee897..7bc2a539fe65 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md @@ -346,7 +346,7 @@ The following diagram illustrates the loading order and precedence rules. ## Further reading -* [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards) +* [AUTOTITLE](/copilot/concepts/enterprise/plugin-standards) * [AUTOTITLE](/copilot/how-tos/copilot-cli) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) diff --git a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md index c667854ae6d8..96a55c360283 100644 --- a/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md +++ b/content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md @@ -126,7 +126,7 @@ The following example shows these keys in one managed settings file. ## enabledPlugins -Defines plugins that are automatically installed or blocked for all enterprise users. Each entry uses the format `PLUGIN-NAME@MARKETPLACE-NAME` as the key, with a boolean value: `true` to require the plugin to be enabled, or `false` to require it to be disabled. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards). +Defines plugins that are automatically installed or blocked for all enterprise users. Each entry uses the format `PLUGIN-NAME@MARKETPLACE-NAME` as the key, with a boolean value: `true` to require the plugin to be enabled, or `false` to require it to be disabled. See [AUTOTITLE](/copilot/concepts/enterprise/plugin-standards). ## extraKnownMarketplaces @@ -142,7 +142,7 @@ The following source types are supported: * `"git"` — requires `url`; optional `ref` and `path` * `"directory"` — requires `path` -See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards). +See [AUTOTITLE](/copilot/concepts/enterprise/plugin-standards). ## strictKnownMarketplaces diff --git a/content/copilot/reference/enterprise-administrators/policy-conflicts.md b/content/copilot/reference/enterprise-administrators/policy-conflicts.md index f7cbaa1e34ba..6c8cf243139a 100644 --- a/content/copilot/reference/enterprise-administrators/policy-conflicts.md +++ b/content/copilot/reference/enterprise-administrators/policy-conflicts.md @@ -15,7 +15,7 @@ contentType: reference ## About delegating policy decisions to organizations -Policies can be defined for a whole enterprise, or set at the organization level. See [AUTOTITLE](/copilot/concepts/policies). +Policies can be defined for a whole enterprise, or set at the organization level. See [AUTOTITLE](/copilot/concepts/enterprise/policies). When an enterprise owner delegates control of a policy to organization owners by setting "No policy," some organizations may enable a feature while others disable it. Users may be granted a {% data variables.product.prodname_copilot_short %} license by organizations with different policies for the same feature. diff --git a/content/copilot/responsible-use/agents.md b/content/copilot/responsible-use/agents.md index 6ccf2ca743bb..9c744465e944 100644 --- a/content/copilot/responsible-use/agents.md +++ b/content/copilot/responsible-use/agents.md @@ -285,7 +285,7 @@ For additional guidance on the responsible use of Copilot agentic features, we r * [AUTOTITLE](/copilot/tutorials/cloud-agent/get-the-best-results) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/customize-the-agent-environment) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-the-firewall) -* [AUTOTITLE](/copilot/how-tos/copilot-sdk/getting-started) +* [AUTOTITLE](/copilot/get-started/sdk-quickstart) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) * [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-copilot-cli) * [AUTOTITLE](/copilot/concepts/agents/github-copilot-app) diff --git a/content/copilot/tutorials/budgets/getting-started-with-budget-controls.md b/content/copilot/tutorials/budgets/getting-started-with-budget-controls.md index e68253eed67b..ea13f3e7de01 100644 --- a/content/copilot/tutorials/budgets/getting-started-with-budget-controls.md +++ b/content/copilot/tutorials/budgets/getting-started-with-budget-controls.md @@ -18,7 +18,7 @@ Before you begin, make sure you understand how the four budget controls work and > [!NOTE] -> If your enterprise was using {% data variables.product.prodname_copilot_short %} before June 1, 2026, you are on a promotional period (June–August 2026) where your included {% data variables.product.prodname_ai_credits_short %} are higher than the standard amounts. When the promotional period ends on September 1, 2026, the shared pool will be smaller. Use this period to understand your team's baseline consumption and adjust your spending limits before the transition. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises#how-do-ai-credits-work) for the standard and promotional amounts. +> If your enterprise was using {% data variables.product.prodname_copilot_short %} before June 1, 2026, you are on a promotional period (June–August 2026) where your included {% data variables.product.prodname_ai_credits_short %} are higher than the standard amounts. When the promotional period ends on September 1, 2026, the shared pool will be smaller. Use this period to understand your team's baseline consumption and adjust your spending limits before the transition. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing#how-do-ai-credits-work) for the standard and promotional amounts. diff --git a/content/copilot/tutorials/cloud-agent/build-guardrails.md b/content/copilot/tutorials/cloud-agent/build-guardrails.md index 3e28bd90d880..00698ffbf2ac 100644 --- a/content/copilot/tutorials/cloud-agent/build-guardrails.md +++ b/content/copilot/tutorials/cloud-agent/build-guardrails.md @@ -22,7 +22,7 @@ Plan your policies for {% data variables.copilot.copilot_cloud_agent %} in advan Some questions to ask are: -* Which organizations and repositories will {% data variables.copilot.copilot_cloud_agent %} be enabled in? See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +* Which organizations and repositories will {% data variables.copilot.copilot_cloud_agent %} be enabled in? See [AUTOTITLE](/copilot/concepts/enterprise/cloud-agent-access). * Which MCP servers will you configure to give {% data variables.copilot.copilot_cloud_agent %} access to external tools? See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). ### Which policies don't apply? diff --git a/content/copilot/tutorials/cloud-agent/give-access-to-resources.md b/content/copilot/tutorials/cloud-agent/give-access-to-resources.md index ca0fae4e8c09..0ceb67d89c6a 100644 --- a/content/copilot/tutorials/cloud-agent/give-access-to-resources.md +++ b/content/copilot/tutorials/cloud-agent/give-access-to-resources.md @@ -101,4 +101,4 @@ Now you have seen how access to resources is controlled at the repository and or 1. **Consider who gets admin access** to these repositories. You can control this at the organization level by creating a team with the **All-repository admin** custom role. These users will be able to manage configuration _settings_, such as MCP configuration and Agents secrets and variables, in every repository. 1. **Use rulesets and CODEOWNERS files** to control edits of configuration _files_, such as `copilot-setup-steps.yml`, which anyone with write access can edit by default. 1. **Review the default firewall**. The firewall doesn't affect connections to MCP servers or setup steps in `copilot-setup-steps.yml`, but it does limit {% data variables.product.prodname_copilot_short %}'s access to the Internet during task execution. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-the-firewall). -1. **Define plugin standards**. Plugins are installable packages that extend {% data variables.product.prodname_copilot_short %} with reusable agents, skills, hooks, and integrations. You can control which plugins and marketplaces are permitted in an enterprise's `{% data variables.copilot.managed_setting_file %}` file. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards). +1. **Define plugin standards**. Plugins are installable packages that extend {% data variables.product.prodname_copilot_short %} with reusable agents, skills, hooks, and integrations. You can control which plugins and marketplaces are permitted in an enterprise's `{% data variables.copilot.managed_setting_file %}` file. See [AUTOTITLE](/copilot/concepts/enterprise/plugin-standards). diff --git a/content/copilot/tutorials/optimize-code-reviews.md b/content/copilot/tutorials/optimize-code-reviews.md index 2b3b80f78a89..8c3e2d22053c 100644 --- a/content/copilot/tutorials/optimize-code-reviews.md +++ b/content/copilot/tutorials/optimize-code-reviews.md @@ -227,7 +227,7 @@ Automatic review comments help you optimize your reviews and secure your code mo To make your reviews more efficient and effective using {% data variables.product.prodname_copilot_short %}'s review capabilities, get started by following these steps. 1. Create custom instructions specific to your project and repository. Write your own, or take inspiration from our library of examples. See [AUTOTITLE](/copilot/tutorials/customization-library/custom-instructions). -1. To enable automatic {% data variables.copilot.copilot_code-review_short %} for your repository, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +1. To enable automatic {% data variables.copilot.copilot_code-review_short %} for your repository, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). 1. To configure {% data variables.copilot.copilot_autofix_short %} for your repo you'll need to enable {% data variables.product.prodname_code_scanning %}. Once {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %} analysis is enabled, {% data variables.copilot.copilot_autofix_short %} is enabled by default. For the easiest setup, see [AUTOTITLE](/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning). 1. To add reliability, maintainability, and coverage checks to your pull requests, enable {% data variables.product.prodname_code_quality %} for your repository. See [AUTOTITLE](/code-security/how-tos/maintain-quality-code/enable-code-quality). diff --git a/content/copilot/tutorials/roll-out-at-scale/assign-licenses/choose-enterprise-plan.md b/content/copilot/tutorials/roll-out-at-scale/assign-licenses/choose-enterprise-plan.md index 1cde205b0847..b017f03df758 100644 --- a/content/copilot/tutorials/roll-out-at-scale/assign-licenses/choose-enterprise-plan.md +++ b/content/copilot/tutorials/roll-out-at-scale/assign-licenses/choose-enterprise-plan.md @@ -40,7 +40,7 @@ For a full comparison, see our [plans page](https://github.com/features/copilot/ {% data variables.product.prodname_ai_credits_short %} are consumed by advanced {% data variables.product.prodname_copilot_short %} features and models, including AI agents. Each plan's included {% data variables.product.prodname_ai_credits_short %} are pooled across your enterprise, so heavier users can draw from lighter users' unused portions. By giving members access to more {% data variables.product.prodname_ai_credits_short %}, you can scale your company with AI agents and drive real business outcomes. -By default, usage can continue beyond the included pool, with additional usage charged at {% data variables.product.prodname_ai_credits_value %} per {% data variables.product.prodname_ai_credit_singular %}. You can control this with budget controls. See [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +By default, usage can continue beyond the included pool, with additional usage charged at {% data variables.product.prodname_ai_credits_value %} per {% data variables.product.prodname_ai_credit_singular %}. You can control this with budget controls. See [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). ## How does {% data variables.copilot.copilot_enterprise_short %} support business goals? diff --git a/content/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests.md b/content/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests.md index 8a7a4ba745d4..746e8e98aa9c 100644 --- a/content/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests.md +++ b/content/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests.md @@ -158,7 +158,7 @@ Developers **should not**: * [AUTOTITLE](/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/create-a-pr-summary) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions) -* [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review) +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-organization-instructions) ## Metrics to watch diff --git a/content/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model.md b/content/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model.md index 580c83697efe..36a15d5f8e9c 100644 --- a/content/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model.md +++ b/content/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model.md @@ -15,7 +15,7 @@ This tutorial walks you through running a pilot end to end: setting a budget, en ## Before you start your pilot -Before you enable anything, make sure you've evaluated the feature or model and confirmed it meets your compliance requirements. See [AUTOTITLE](/copilot/concepts/learning-about-new-features-and-models). +Before you enable anything, make sure you've evaluated the feature or model and confirmed it meets your compliance requirements. See [AUTOTITLE](/copilot/concepts/enterprise/learning-about-new-features-and-models). If you're not sure whether a feature or model is safe to enable, check with security and compliance teams at your company before you start the pilot. @@ -42,7 +42,7 @@ Many of the features and models you'll want to pilot are billed through usage, s A handful of active developers using a frontier model or an agentic feature could consume more than you'd expect. Work out a rough estimate of what the pilot could cost, and decide on a ceiling you're willing to spend before you enable the feature. -Start by understanding how the feature or model is billed. Usage-based features consume {% data variables.product.prodname_ai_credits %}, and the cost of each interaction depends on the model and the number of tokens consumed. To understand which features count toward usage, how included credits are pooled across your enterprise, and how overages are charged, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises). +Start by understanding how the feature or model is billed. Usage-based features consume {% data variables.product.prodname_ai_credits %}, and the cost of each interaction depends on the model and the number of tokens consumed. To understand which features count toward usage, how included credits are pooled across your enterprise, and how overages are charged, see [AUTOTITLE](/copilot/concepts/billing/organizations-and-enterprises/usage-based-billing). To produce an estimate, combine three numbers: @@ -75,7 +75,7 @@ If any of your pilot users aren't yet members, or are members but receive their {% data variables.product.prodname_copilot_short %} policies control which features and models your users can access and how their data is handled. Configure these policies for the pilot organization *before* you turn the feature on, so that pilot users get a correctly governed experience from their very first interaction rather than a brief window where the feature is available without the guardrails you intend. -Decide which features and models the pilot should allow, and set the policies at the organization level so the change only affects your pilot organization; policies set at the enterprise level apply to every organization in your enterprise. If your enterprise policy doesn't allow organizations to set their own value, an enterprise owner must change this before you can continue. To understand how policies cascade from the enterprise to organizations and who can override settings at each level, see [AUTOTITLE](/copilot/concepts/policies). +Decide which features and models the pilot should allow, and set the policies at the organization level so the change only affects your pilot organization; policies set at the enterprise level apply to every organization in your enterprise. If your enterprise policy doesn't allow organizations to set their own value, an enterprise owner must change this before you can continue. To understand how policies cascade from the enterprise to organizations and who can override settings at each level, see [AUTOTITLE](/copilot/concepts/enterprise/policies). ### Enable the feature for a single organization 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 be06455d09c7..a0624e6bd139 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 @@ -33,7 +33,7 @@ Choose a review model and set up early feedback for draft and active pull reques | Automatic review on draft pull requests | Teams that want earlier feedback loops | Authors can fix issues before human review starts. | | Automatic review on new pushes | Fast-moving pull requests with multiple revisions | {% data variables.product.prodname_copilot_short %} reevaluates substantial updates as the pull request evolves. | -For setup steps, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) and [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). +For setup steps, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) and [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-code-review). ### Use {% data variables.copilot.copilot_code-review_short %} early on draft pull requests diff --git a/content/pull-requests/how-tos/review-pull-requests/incorporating-feedback-in-your-pull-request.md b/content/pull-requests/how-tos/review-pull-requests/incorporating-feedback-in-your-pull-request.md index 2ec8f7488301..e42cdc06da06 100644 --- a/content/pull-requests/how-tos/review-pull-requests/incorporating-feedback-in-your-pull-request.md +++ b/content/pull-requests/how-tos/review-pull-requests/incorporating-feedback-in-your-pull-request.md @@ -40,6 +40,12 @@ Each person who suggested a change included in the commit will be a co-author of 1. In the commit message field, type a short, meaningful commit message that describes the change you made to the file or files. 1. Click **Commit changes**. +{% ifversion fpt or ghec %} +## Delegating review comments to {% data variables.product.prodname_copilot_short %} + +If you have access to {% data variables.copilot.copilot_cloud_agent %}, you can delegate review comments to have {% data variables.product.prodname_copilot_short %} implement the feedback. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github#delegating-review-comments). +{% endif %} + ## Re-requesting a review For example, you can re-request a review after you've made substantial changes to your pull request. diff --git a/data/features/spark.yml b/data/features/spark.yml deleted file mode 100644 index f6715c0d95ba..000000000000 --- a/data/features/spark.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Reference: #17636 -# Spark (No-code app builder, public preview) -versions: - fpt: '*' - ghec: '*' diff --git a/data/reusables/code-quality/agentic-autofix-preview-note.md b/data/reusables/code-quality/agentic-autofix-preview-note.md new file mode 100644 index 000000000000..82110a9f15e5 --- /dev/null +++ b/data/reusables/code-quality/agentic-autofix-preview-note.md @@ -0,0 +1,2 @@ +> [!NOTE] +> Agentic Autofix for {% data variables.product.prodname_code_quality %} backlog findings is currently in {% data variables.release-phases.public_preview %} and subject to change. diff --git a/data/reusables/code-quality/generate-autofix-from-dashboard.md b/data/reusables/code-quality/generate-autofix-from-dashboard.md index 3dbbc61c5618..86a8c3b199c5 100644 --- a/data/reusables/code-quality/generate-autofix-from-dashboard.md +++ b/data/reusables/code-quality/generate-autofix-from-dashboard.md @@ -1,3 +1,2 @@ -1. To the right of an individual finding, click **Generate fix**. -1. Review the diff of the proposed change. If you agree with it, click **Open pull request**. -1. In the "Commit autofix to branch" dialog, select "Open a pull request", then click **Commit change**. +1. To the right of an individual finding, click **Assign to {% data variables.product.prodname_copilot_short %}**. Assigning a finding to {% data variables.product.prodname_copilot_short %} consumes {% data variables.product.prodname_ai_credits_short %}. +1. Review the draft pull request that {% data variables.product.prodname_copilot_short %} opens with a fix for the finding. diff --git a/data/reusables/copilot/plans/organization-plans-paused.md b/data/reusables/copilot/plans/organization-plans-paused.md deleted file mode 100644 index 1561e3f17ddc..000000000000 --- a/data/reusables/copilot/plans/organization-plans-paused.md +++ /dev/null @@ -1,7 +0,0 @@ - - -On April 22, 2026, new self-serve purchases of {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} were temporarily paused. - -Self-serve sign-ups **are reopening soon** for customers paying by credit card or PayPal. You might be charged prorated seat costs at sign-up. Additional usage beyond your included amount requires payment as you go. Self-serve trials remain paused. - - diff --git a/data/reusables/copilot/spark-deprecation.md b/data/reusables/copilot/spark-deprecation.md deleted file mode 100644 index 746e8bc208cd..000000000000 --- a/data/reusables/copilot/spark-deprecation.md +++ /dev/null @@ -1 +0,0 @@ -Beginning August 4, 2026, {% data variables.product.prodname_spark %} will no longer accept new users or allow the creation of new apps. Existing users can continue to access and use apps they have already created. Open Spark workbench for your app, select "..." and "Create repository" to save your app code before August 31, 2026. \ No newline at end of file diff --git a/data/reusables/elm/ghe-pat-description.md b/data/reusables/elm/ghe-pat-description.md deleted file mode 100644 index 2d20f0ca17ab..000000000000 --- a/data/reusables/elm/ghe-pat-description.md +++ /dev/null @@ -1 +0,0 @@ -The {% data variables.product.pat_v1 %} for {% data variables.enterprise.data_residency_site %} diff --git a/data/reusables/elm/hmac-key-value.md b/data/reusables/elm/hmac-key-value.md deleted file mode 100644 index 976ff0198dfd..000000000000 --- a/data/reusables/elm/hmac-key-value.md +++ /dev/null @@ -1 +0,0 @@ -$(ghe-config secrets.elm-exporter.elm-exporter-hmac-keys) \ No newline at end of file diff --git a/data/reusables/elm/localhost-value.md b/data/reusables/elm/localhost-value.md deleted file mode 100644 index f342748276e3..000000000000 --- a/data/reusables/elm/localhost-value.md +++ /dev/null @@ -1 +0,0 @@ -http://localhost:1738 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ffd4b8c84745..e39deb56e96b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,7 +81,7 @@ "mdast-util-to-markdown": "2.1.2", "mdast-util-to-string": "^4.0.0", "micromark-extension-gfm": "^3.0.0", - "next": "^16.2.6", + "next": "^16.3.3", "ora": "^9.3.0", "parse5": "8.0.1", "quick-lru": "7.0.1", @@ -100,7 +100,7 @@ "remark-remove-comments": "^1.1.1", "remark-stringify": "^11.0.0", "semver": "^7.7.4", - "sharp": "0.35.3", + "sharp": "0.35.4", "slash": "^5.1.0", "strip-ansi": "7.1.0", "swr": "^2.4.0", @@ -1171,9 +1171,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "dev": true, "funding": [ { @@ -1401,9 +1401,9 @@ } }, "node_modules/@gr2m/gray-matter/node_modules/js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "funding": [ { "type": "github", @@ -1687,9 +1687,9 @@ } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", - "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", + "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", "cpu": [ "arm64" ], @@ -1705,13 +1705,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.3.2" + "@img/sharp-libvips-darwin-arm64": "1.3.3" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", - "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", + "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", "cpu": [ "x64" ], @@ -1727,20 +1727,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.3.2" + "@img/sharp-libvips-darwin-x64": "1.3.3" } }, "node_modules/@img/sharp-freebsd-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", - "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", + "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", "license": "Apache-2.0", "optional": true, "os": [ "freebsd" ], "dependencies": { - "@img/sharp-wasm32": "0.35.3" + "@img/sharp-wasm32": "0.35.4" }, "engines": { "node": ">=20.9.0" @@ -1750,9 +1750,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", - "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", + "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", "cpu": [ "arm64" ], @@ -1766,9 +1766,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", - "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", + "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", "cpu": [ "x64" ], @@ -1782,9 +1782,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", - "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", + "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", "cpu": [ "arm" ], @@ -1801,9 +1801,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", - "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", + "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", "cpu": [ "arm64" ], @@ -1819,10 +1819,48 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", + "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", + "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", - "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", + "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", "cpu": [ "s390x" ], @@ -1839,9 +1877,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", - "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", + "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", "cpu": [ "x64" ], @@ -1858,9 +1896,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", - "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", + "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", "cpu": [ "arm64" ], @@ -1877,9 +1915,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", - "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", + "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", "cpu": [ "x64" ], @@ -1896,9 +1934,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", - "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", + "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", "cpu": [ "arm" ], @@ -1917,13 +1955,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.3.2" + "@img/sharp-libvips-linux-arm": "1.3.3" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", - "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", + "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", "cpu": [ "arm64" ], @@ -1942,13 +1980,63 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.3.2" + "@img/sharp-libvips-linux-arm64": "1.3.3" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", + "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.3" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", + "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.3" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", - "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", + "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", "cpu": [ "s390x" ], @@ -1967,13 +2055,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.3.2" + "@img/sharp-libvips-linux-s390x": "1.3.3" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", - "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", + "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", "cpu": [ "x64" ], @@ -1992,13 +2080,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.3.2" + "@img/sharp-libvips-linux-x64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", - "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", + "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", "cpu": [ "arm64" ], @@ -2017,13 +2105,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", - "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", + "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", "cpu": [ "x64" ], @@ -2042,17 +2130,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.3.2" + "@img/sharp-libvips-linuxmusl-x64": "1.3.3" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", - "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", + "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.11.1" + "@emnapi/runtime": "^1.11.3" }, "engines": { "node": ">=20.9.0" @@ -2062,17 +2150,36 @@ } }, "node_modules/@img/sharp-webcontainers-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", - "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", + "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", "cpu": [ "wasm32" ], "license": "Apache-2.0", "optional": true, "dependencies": { - "@img/sharp-wasm32": "0.35.3" + "@img/sharp-wasm32": "0.35.4" + }, + "engines": { + "node": ">=20.9.0" }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", + "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=20.9.0" }, @@ -2081,9 +2188,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", - "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", + "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", "cpu": [ "ia32" ], @@ -2100,9 +2207,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", - "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", + "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", "cpu": [ "x64" ], @@ -2178,15 +2285,15 @@ } }, "node_modules/@next/env": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.11.tgz", - "integrity": "sha512-0do5A3BJ2gxWr0ZCMcD6BhW+e595jyxdTl3rXTS6lOtD8ektMiW6CO+EPwt1Eca1DBnm90r/7GdiKWBKxH++DA==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.3.tgz", + "integrity": "sha512-U2eYQRwXj+dsqxV79zFqExDdatnNY/ZWc2nsJU1p/OgT7fd3dXwlF6OjYaFQCfMoeTA19PWq+wVmYgimVA+V+g==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.11.tgz", - "integrity": "sha512-wryL4pjKmDwGv2ox6+GZDFxvmtSRLqApBR8kL1j4+vhB7Z5vJC/zAnXpiR9Xkfzl0AS8WLMnsuGV/UKI67/rrw==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.3.tgz", + "integrity": "sha512-8Hiv32QJPwdV6KYJ8meR9SBA061tQqnIKTJDocvOXlEQqib0xMFpzArosuffFUUc0sslbh7QQ8a3Yey1QV8EIw==", "cpu": [ "arm64" ], @@ -2200,9 +2307,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.11.tgz", - "integrity": "sha512-aZl2j4f/fLyjQvOhv0Oe9UaMAQHolYpKhctsoYzplSumKJKPUmgjcf6545aBtysLTcu994TREd0+pSgNE4ohmg==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.3.tgz", + "integrity": "sha512-A1lgKgwVchRYmSe467zdwhxT9040dd8lH+o65sL5Jet8fjB4kegw/rDyPIpYVRb6jAqwXFOJpjIXJLxQKLiE3A==", "cpu": [ "x64" ], @@ -2216,9 +2323,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.11.tgz", - "integrity": "sha512-5jEriyEnH/LWFy27L2ZG0XaLlyEJIjhsImEsiS9P563PKEVp2BVups/xfOucIrsvVntp11oNcZwjHvaDPYVB5g==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.3.tgz", + "integrity": "sha512-bf0FIssMFueU2dm7vQEWWxk0c8UjKTdW0yzuh0sQsD8pf1+KCLDdaqhYZNMYGmXwEOiHAUzgBKudovIlcvvBjg==", "cpu": [ "arm64" ], @@ -2235,9 +2342,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.11.tgz", - "integrity": "sha512-eIjcpx2fnnFSSkZDbTxy74KnokUXDjfoLClpWelfgHLf621aTqswhwXQ7GkD5K5rplrS6LZ/Bj+mVuvzluBOEg==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.3.tgz", + "integrity": "sha512-W7viwCk9JY/cAkdz/A273rd5bb3RgT/IHwR7Upv90tunjBWNtAAhGhoecHh+teRNRSinuAFmE+l7fwZ4YKkrXg==", "cpu": [ "arm64" ], @@ -2254,9 +2361,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.11.tgz", - "integrity": "sha512-8WgzpaWMs46qJT9kiV47cje86L0x/Mu9t8/Gwj+pnbgW3rETVfCnaScPjlYUwNScpOozdcIMHWmAvuZJUonR2w==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.3.tgz", + "integrity": "sha512-0W46zw1N3ODpI6n0GeivHvvob1pooozgZVqy65k0mh4/7vr+FbY9+WpHzNVXjHipJf/A3FDheBG19H1s5A25rA==", "cpu": [ "x64" ], @@ -2273,9 +2380,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.11.tgz", - "integrity": "sha512-I3UgPds7G4ZYnTb/H+5GBGuUT2DhAk6j0mL6A4s63RjFs74wB2hOWP0vaxsK+3NJraExt3eYEPQ/UtT0x/64Nw==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.3.tgz", + "integrity": "sha512-H4mBso8ZTMBPtdT0PN0pBx2ayTvQuTuvS6qT13d77yVFJXAPCxkyIhLTmdMaGTJs0krQYI/qpzdHijCeihXhbg==", "cpu": [ "x64" ], @@ -2292,9 +2399,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.11.tgz", - "integrity": "sha512-n89CjtcThnjrwgJMAiI5xbqwLY51zvwC9tSlArmVndAJLYVl9T9UAdlkXTmZvE++idoXe8KdglQlhNRdUp1c6g==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.3.tgz", + "integrity": "sha512-cTMUJpcEGmeywofCUfhR+rSsoE33+rVPnPEYNTNdLNlsOeEg/vktOsKUSTb28vUGqD2jkm4Zaskcwn7OCI6FQg==", "cpu": [ "arm64" ], @@ -2308,9 +2415,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.11.tgz", - "integrity": "sha512-md8CLNggS1Dx9pUgApzps5uAf+N8GN9xywzmNx9vHAWo94HtBwCCqkSnhIrdfQe83Dhz8Lfo/20Nb1Zxal092w==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.3.tgz", + "integrity": "sha512-2VR4cTBzHXaBjnGsuH6GyJjENzQOmHeAh11uY1iUhjm3j5dEUrVJuUj+VL78jaGi/Dik8xS76zEj18BsFhlVZQ==", "cpu": [ "x64" ], @@ -4283,9 +4390,9 @@ "license": "MIT" }, "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" @@ -8498,9 +8605,9 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", "funding": [ { "type": "github", @@ -10423,9 +10530,9 @@ } }, "node_modules/js-yaml": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.3.tgz", - "integrity": "sha512-n+mUVyUX5bVv7G/G2zyIHOhdxfuU1dY2NOFzTQUWiMUbFss8b57NFlgCCaggU78wSw5KVS9cllzeLyzyR+n5nw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.1.tgz", + "integrity": "sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==", "funding": [ { "type": "github", @@ -12311,16 +12418,16 @@ } }, "node_modules/next": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/next/-/next-16.2.11.tgz", - "integrity": "sha512-B339zaqbyK8cmxhoAvLrcwoabwCP1wz21zSzfqxqXAemTu2BXnH7tQnfcglKv1vnMUIDBc+Hth7XODQriTZiRQ==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/next/-/next-16.3.3.tgz", + "integrity": "sha512-tuRTx1nQ/yVw83cwJBo9F+njGUgMn3UHQycreWHB8XsStvvAh1AthbI8/4IpKnFaF58F+iSiHejYOlMQ/eq83g==", "license": "MIT", "dependencies": { - "@next/env": "16.2.11", - "@swc/helpers": "0.5.15", + "@next/env": "16.3.3", + "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", + "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "bin": { @@ -12330,15 +12437,15 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.11", - "@next/swc-darwin-x64": "16.2.11", - "@next/swc-linux-arm64-gnu": "16.2.11", - "@next/swc-linux-arm64-musl": "16.2.11", - "@next/swc-linux-x64-gnu": "16.2.11", - "@next/swc-linux-x64-musl": "16.2.11", - "@next/swc-win32-arm64-msvc": "16.2.11", - "@next/swc-win32-x64-msvc": "16.2.11", - "sharp": "^0.34.5" + "@next/swc-darwin-arm64": "16.3.3", + "@next/swc-darwin-x64": "16.3.3", + "@next/swc-linux-arm64-gnu": "16.3.3", + "@next/swc-linux-arm64-musl": "16.3.3", + "@next/swc-linux-x64-gnu": "16.3.3", + "@next/swc-linux-x64-musl": "16.3.3", + "@next/swc-win32-arm64-msvc": "16.3.3", + "@next/swc-win32-x64-msvc": "16.3.3", + "sharp": "^0.35.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -14214,9 +14321,9 @@ "license": "ISC" }, "node_modules/sharp": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", - "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", + "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "license": "Apache-2.0", "dependencies": { "@img/colour": "^1.1.0", @@ -14230,31 +14337,31 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.35.3", - "@img/sharp-darwin-x64": "0.35.3", - "@img/sharp-freebsd-wasm32": "0.35.3", - "@img/sharp-libvips-darwin-arm64": "1.3.2", - "@img/sharp-libvips-darwin-x64": "1.3.2", - "@img/sharp-libvips-linux-arm": "1.3.2", - "@img/sharp-libvips-linux-arm64": "1.3.2", - "@img/sharp-libvips-linux-ppc64": "1.3.2", - "@img/sharp-libvips-linux-riscv64": "1.3.2", - "@img/sharp-libvips-linux-s390x": "1.3.2", - "@img/sharp-libvips-linux-x64": "1.3.2", - "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", - "@img/sharp-libvips-linuxmusl-x64": "1.3.2", - "@img/sharp-linux-arm": "0.35.3", - "@img/sharp-linux-arm64": "0.35.3", - "@img/sharp-linux-ppc64": "0.35.3", - "@img/sharp-linux-riscv64": "0.35.3", - "@img/sharp-linux-s390x": "0.35.3", - "@img/sharp-linux-x64": "0.35.3", - "@img/sharp-linuxmusl-arm64": "0.35.3", - "@img/sharp-linuxmusl-x64": "0.35.3", - "@img/sharp-webcontainers-wasm32": "0.35.3", - "@img/sharp-win32-arm64": "0.35.3", - "@img/sharp-win32-ia32": "0.35.3", - "@img/sharp-win32-x64": "0.35.3" + "@img/sharp-darwin-arm64": "0.35.4", + "@img/sharp-darwin-x64": "0.35.4", + "@img/sharp-freebsd-wasm32": "0.35.4", + "@img/sharp-libvips-darwin-arm64": "1.3.3", + "@img/sharp-libvips-darwin-x64": "1.3.3", + "@img/sharp-libvips-linux-arm": "1.3.3", + "@img/sharp-libvips-linux-arm64": "1.3.3", + "@img/sharp-libvips-linux-ppc64": "1.3.3", + "@img/sharp-libvips-linux-riscv64": "1.3.3", + "@img/sharp-libvips-linux-s390x": "1.3.3", + "@img/sharp-libvips-linux-x64": "1.3.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", + "@img/sharp-libvips-linuxmusl-x64": "1.3.3", + "@img/sharp-linux-arm": "0.35.4", + "@img/sharp-linux-arm64": "0.35.4", + "@img/sharp-linux-ppc64": "0.35.4", + "@img/sharp-linux-riscv64": "0.35.4", + "@img/sharp-linux-s390x": "0.35.4", + "@img/sharp-linux-x64": "0.35.4", + "@img/sharp-linuxmusl-arm64": "0.35.4", + "@img/sharp-linuxmusl-x64": "0.35.4", + "@img/sharp-webcontainers-wasm32": "0.35.4", + "@img/sharp-win32-arm64": "0.35.4", + "@img/sharp-win32-ia32": "0.35.4", + "@img/sharp-win32-x64": "0.35.4" }, "peerDependenciesMeta": { "@types/node": { @@ -14262,113 +14369,6 @@ } } }, - "node_modules/sharp/node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", - "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", - "cpu": [ - "ppc64" - ], - "libc": [ - "glibc" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/sharp/node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", - "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", - "cpu": [ - "riscv64" - ], - "libc": [ - "glibc" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/sharp/node_modules/@img/sharp-linux-ppc64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", - "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", - "cpu": [ - "ppc64" - ], - "libc": [ - "glibc" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.3.2" - } - }, - "node_modules/sharp/node_modules/@img/sharp-linux-riscv64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", - "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", - "cpu": [ - "riscv64" - ], - "libc": [ - "glibc" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.3.2" - } - }, - "node_modules/sharp/node_modules/@img/sharp-win32-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", - "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "dev": true, diff --git a/package.json b/package.json index 3fc6618ceceb..95c12830688a 100644 --- a/package.json +++ b/package.json @@ -244,7 +244,7 @@ "mdast-util-to-markdown": "2.1.2", "mdast-util-to-string": "^4.0.0", "micromark-extension-gfm": "^3.0.0", - "next": "^16.2.6", + "next": "^16.3.3", "ora": "^9.3.0", "parse5": "8.0.1", "quick-lru": "7.0.1", @@ -263,7 +263,7 @@ "remark-remove-comments": "^1.1.1", "remark-stringify": "^11.0.0", "semver": "^7.7.4", - "sharp": "0.35.3", + "sharp": "0.35.4", "slash": "^5.1.0", "strip-ansi": "7.1.0", "swr": "^2.4.0", @@ -369,7 +369,7 @@ "brace-expansion": "^5.0.8" }, "sharp": "$sharp", - "fast-uri": "^3.1.5" + "fast-uri": "^3.1.7" }, "optionalDependencies": { "esm": "^3.2.25" diff --git a/src/languages/lib/correct-translation-content.ts b/src/languages/lib/correct-translation-content.ts index 01dd773c882b..414d1dfdf90a 100644 --- a/src/languages/lib/correct-translation-content.ts +++ b/src/languages/lib/correct-translation-content.ts @@ -628,6 +628,12 @@ export function correctTranslatedContentStrings( 'これには、パブリック リポジトリ、プライベート リポジトリ、および内部{% elsif fpt %}both パブリック リポジトリとプライベート リポジトリ{% endif %}{% ifversion ghec %}が含まれます。', 'これには、{% ifversion ghec %}パブリック リポジトリ、プライベート リポジトリ、および内部{% elsif fpt %}パブリック リポジトリとプライベート リポジトリの両方{% endif %}が含まれます。', ) + + // `{%- roleColumns = X | split: ... -%}` — the `assign` keyword was + // dropped entirely (repository-roles-for-an-organization.md), leaving + // `roleColumns` interpreted as an unknown tag name (`tag "roleColumns" + // not found`). + content = content.replace(/\{%(-?)\s*roleColumns\s*=\s*/g, '{%$1 assign roleColumns = ') } if (context.code === 'pt') { @@ -695,6 +701,7 @@ export function correctTranslatedContentStrings( content = content.replaceAll('{%- mais %}', '{%- else %}') content = content.replaceAll('{% se ', '{% if ') content = content.replaceAll('{% atribuir ', '{% assign ') + content = content.replaceAll('{%- atribuir ', '{%- assign ') content = content.replaceAll('{% %} bruto', '{% raw %}') content = content.replaceAll('{% %de dados reusables.', '{% data reusables.') content = content.replaceAll('{% %de dados variables.', '{% data variables.') @@ -916,6 +923,9 @@ export function correctTranslatedContentStrings( // `{%数据变量.` — same but no space between `{%` and 数据变量 (e.g. `{%数据变量.enterprise.management_console%}`) content = content.replaceAll('{%数据变量.', '{% data variables.') content = content.replaceAll('{%-数据变量.', '{%- data variables.') + // `{% 分配 X = Y %}` — Chinese "assign" (repository-roles-for-an-organization.md) + content = content.replaceAll('{% 分配 ', '{% assign ') + content = content.replaceAll('{%- 分配 ', '{%- assign ') // `{% Windows 操作系统 %}` — "Windows OS" = windows platform tag content = content.replaceAll('{% Windows 操作系统 %}', '{% windows %}') content = content.replaceAll('{%- Windows 操作系统 %}', '{%- windows %}') @@ -1523,6 +1533,17 @@ export function correctTranslatedContentStrings( '{% data variables.product.prodname_GH_code_security %}и доступны для аккаунтов и {% data variables.product.prodname_team %}{% data variables.product.prodname_ghe_cloud %}{% elsif ghes %}аккаунтов на {% data variables.product.prodname_ghe_server %}{% endif %}.{% ifversion fpt or ghec %}{% data variables.product.prodname_GH_secret_protection %}', '{% data variables.product.prodname_GH_code_security %} и {% data variables.product.prodname_GH_secret_protection %} доступны для {% ifversion fpt or ghec %}аккаунтов на {% data variables.product.prodname_team %} и {% data variables.product.prodname_ghe_cloud %}{% elsif ghes %}аккаунтов на {% data variables.product.prodname_ghe_server %}{% endif %}.', ) + + // `{%. Назначение roleColumns = "read,triage,write,maintain", admin" | split: "," -%}` + // (repository-roles-for-an-organization.md): the translator mangled the + // tag opener (`{%.` instead of `{%-`), translated `assign` to + // "Назначение", and misplaced a closing quote before `admin` — splitting + // the string value early and leaving `admin"` as trailing garbage + // (`illegal tag syntax, tag name expected`). Reconstruct the original tag. + content = content.replaceAll( + '{%. Назначение roleColumns = "read,triage,write,maintain", admin" | split: "," -%}', + '{%- assign roleColumns = "read,triage,write,maintain,admin" | split: "," -%}', + ) } if (context.code === 'fr') { diff --git a/src/languages/tests/correct-translation-content.ts b/src/languages/tests/correct-translation-content.ts index 05acc59e38c1..a3fd49603fd4 100644 --- a/src/languages/tests/correct-translation-content.ts +++ b/src/languages/tests/correct-translation-content.ts @@ -3037,6 +3037,41 @@ Para más información, consulta "[AUTOTITLE](/path)". }) }) + describe('ja: repository-roles-for-an-organization.md missing assign keyword', () => { + test('restores the dropped `assign` keyword before roleColumns', () => { + const broken = '{%- roleColumns = "read,triage,write,maintain,admin" | split: "," -%}' + const fixed = '{%- assign roleColumns = "read,triage,write,maintain,admin" | split: "," -%}' + expect(fix(broken, 'ja')).toBe(fixed) + expect(fix(fixed, 'ja')).toBe(fixed) + }) + }) + + describe('pt: repository-roles-for-an-organization.md translated assign keyword', () => { + test('translates `atribuir` (assign) back to `assign`, with and without a trim dash', () => { + expect(fix('{% atribuir roleColumns = X %}', 'pt')).toBe('{% assign roleColumns = X %}') + expect(fix('{%- atribuir roleColumns = X -%}', 'pt')).toBe('{%- assign roleColumns = X -%}') + expect(fix('{% assign roleColumns = X %}', 'pt')).toBe('{% assign roleColumns = X %}') + }) + }) + + describe('zh: repository-roles-for-an-organization.md translated assign keyword', () => { + test('translates `分配` (assign) back to `assign`, with and without a trim dash', () => { + expect(fix('{% 分配 roleColumns = X %}', 'zh')).toBe('{% assign roleColumns = X %}') + expect(fix('{%- 分配 roleColumns = X -%}', 'zh')).toBe('{%- assign roleColumns = X -%}') + expect(fix('{% assign roleColumns = X %}', 'zh')).toBe('{% assign roleColumns = X %}') + }) + }) + + describe('ru: repository-roles-for-an-organization.md per-file fix', () => { + test('reconstructs the mangled tag opener, translated `assign` keyword, and misplaced quote', () => { + const broken = + '{%. Назначение roleColumns = "read,triage,write,maintain", admin" | split: "," -%}' + const fixed = '{%- assign roleColumns = "read,triage,write,maintain,admin" | split: "," -%}' + expect(fix(broken, 'ru')).toBe(fixed) + expect(fix(fixed, 'ru')).toBe(fixed) + }) + }) + describe('universal: strips legacy {% note/warning/tip/danger %} tags', () => { test('strips a simple flush-left {% note %} block', () => { const broken = '{% note %}\n\n**Note:** Some note text.\n\n{% endnote %}\n' diff --git a/src/workflows/sync-sdk-docs/normalize-sdk-docs.ts b/src/workflows/sync-sdk-docs/normalize-sdk-docs.ts index 37bf35d3af3c..a4a1ec29566f 100644 --- a/src/workflows/sync-sdk-docs/normalize-sdk-docs.ts +++ b/src/workflows/sync-sdk-docs/normalize-sdk-docs.ts @@ -4,6 +4,8 @@ * Normalizes Copilot SDK docs for publishing on docs.github.com. * * For every .md file in the SDK docs directory, this script: + * - Removes pages that have been relocated out of the synced tree + * (see RELOCATED_PAGES) and repoints inbound links at their new URLs * - Renames README.md files to index.md (the SDK repo uses README.md as the * landing page for each docs directory; docs-internal requires index.md) * - Adds YAML frontmatter (title, intro, shortTitle, versions, contentType) @@ -41,6 +43,35 @@ const { values: args } = parseArgs({ const CONTENT_DIR = path.resolve(args['content-dir'] as string) const SDK_DOCS_DIR = path.resolve(args['sdk-docs-dir'] as string) +/** + * Pages that have been relocated OUT of the synced SDK docs tree into + * hand-authored content elsewhere in docs-internal. + * + * Keys are paths relative to the SDK docs root, exactly as they appear upstream + * in github/copilot-sdk's `docs/` directory. Values are the docs.github.com URL + * the page now lives at. + * + * Each entry does two inseparable things on every sync: + * 1. Deletes the upstream copy after it is rsynced in (Step 0a), so the page + * is not republished at its old URL — that URL is now a `redirect_from` on + * the hand-authored page and must stay vacant. + * 2. Teaches the internal-link rewriter (Step 3) to point inbound relative + * links at the new URL, instead of logging "target missing" and leaving a + * raw `../getting-started.md` link in published content. + * + * Both halves must stay together, which is why this lives here rather than as an + * rsync `--exclude` in .github/workflows/sync-sdk-docs.yml: excluding the file + * at copy time without remapping its links would ship ~17 broken links. + * + * Destinations are validated on every run; see validateRelocatedDestinations(). + */ +const RELOCATED_PAGES: Record = { + 'getting-started.md': '/copilot/get-started/sdk-quickstart', +} + +/** Relocated pages whose upstream source file was not found during this sync. */ +const missingRelocatedSources: string[] = [] + if (!fs.existsSync(CONTENT_DIR)) { console.error(`Content directory not found: ${CONTENT_DIR}`) process.exit(1) @@ -142,6 +173,98 @@ function convertReadmesToIndex(): void { } } +/** + * Return the new URL for a relocated page, given an absolute path inside the + * SDK docs tree. Returns undefined for pages that have not been relocated. + */ +function relocatedUrlFor(absPath: string): string | undefined { + return RELOCATED_PAGES[path.relative(SDK_DOCS_DIR, absPath)] +} + +/** + * Step 0a: Delete pages that have been relocated out of the synced tree. + * + * The sync `rm -rf`s and re-rsyncs this whole directory every run, so a page + * moved into hand-authored content elsewhere in docs-internal would otherwise + * reappear at its old URL on the next sync and collide with the `redirect_from` + * that now claims it. (Redirect compilation resolves that collision by dropping + * the redirect, so the deletion is a hard invariant, not a tidiness measure.) + * + * This runs before every other step, so keys stay expressed in upstream terms: + * before Step 0 renames `README.md` to `index.md`, and before Step 1 so that + * `getChildren()` never sees the file and the parent index.md's `children` + * array is free of dangling entries. + * + * A missing source is reported rather than ignored: it usually means upstream + * renamed the file, in which case the page silently republishes under a new URL + * and the vacated URL may be reclaimed. It does not fail the sync, because + * github/copilot-sdk is a separate repo that may legitimately delete the page + * once docs-internal is canonical. + */ +function removeRelocatedPages(): void { + for (const [relPath, newUrl] of Object.entries(RELOCATED_PAGES)) { + const absPath = path.join(SDK_DOCS_DIR, relPath) + if (!fs.existsSync(absPath)) { + missingRelocatedSources.push(relPath) + console.log(` WARN (relocated source missing upstream): ${relPath}`) + continue + } + fs.rmSync(absPath) + console.log(` RELOCATED: ${relPath} -> ${newUrl}`) + } +} + +/** + * Validate that every relocated page's destination actually exists in the + * hand-authored content tree. A typo or an unrelated rename would otherwise + * silently repoint every inbound link at a 404. + * + * Unlike a missing upstream source, this is entirely within docs-internal's + * control, so it fails the sync. It runs before anything mutates the tree. + */ +function validateRelocatedDestinations(): void { + const broken: string[] = [] + + for (const [relPath, newUrl] of Object.entries(RELOCATED_PAGES)) { + const base = path.join(CONTENT_DIR, newUrl) + if (!fs.existsSync(`${base}.md`) && !fs.existsSync(path.join(base, 'index.md'))) { + broken.push(`${relPath} -> ${newUrl}`) + } + } + + if (broken.length === 0) return + + console.error('RELOCATED_PAGES points at destinations that do not exist in the content tree:') + for (const entry of broken) console.error(` ${entry}`) + console.error('Update RELOCATED_PAGES in src/workflows/sync-sdk-docs/normalize-sdk-docs.ts.') + process.exit(1) +} + +/** + * Report relocated pages whose upstream source vanished, to the Actions job + * summary linked from the generated PR. Mirrors reportUnbalancedMarkers(): the + * run log alone is not something a PR reviewer will see. + */ +function reportMissingRelocatedSources(): void { + const summaryPath = process.env.GITHUB_STEP_SUMMARY + if (missingRelocatedSources.length === 0 || !summaryPath) return + + const lines = [ + '### ⚠️ Relocated page missing from upstream', + '', + 'These pages are listed in `RELOCATED_PAGES` but no longer exist in', + '[copilot-sdk docs](https://github.com/github/copilot-sdk/tree/main/docs).', + 'If upstream **renamed** the file, it is now republishing under a new URL and may have', + 'reclaimed the URL this move vacated — update `RELOCATED_PAGES`. If upstream', + '**deleted** it deliberately, remove the entry instead.', + '', + ...missingRelocatedSources.map((source) => `* \`${source}\``), + '', + ] + + fs.appendFileSync(summaryPath, lines.join('\n')) +} + /** Convert a filename slug to a title-case short title. */ function slugToTitle(slug: string): string { const ACRONYMS: Record = { @@ -303,6 +426,16 @@ function rewriteInternalLinks(filePath: string): void { const resolved = path.resolve(dir, rawPath) if (!resolved.startsWith(CONTENT_DIR)) return _match + + // Pages relocated out of the synced tree no longer exist on disk, so the + // existence check below would leave a raw relative link. Repoint them at + // their new home instead. + const relocatedUrl = relocatedUrlFor(resolved) + if (relocatedUrl) { + changed = true + return `[AUTOTITLE](${relocatedUrl}${anchor ? `#${anchor}` : ''})` + } + if (!fs.existsSync(resolved)) { console.log(` WARN (target missing): ${href} in ${path.relative(SDK_DOCS_DIR, filePath)}`) return _match @@ -896,9 +1029,17 @@ function suppressSdkLintRules(filePath: string): void { console.log(`Normalizing SDK docs in: ${SDK_DOCS_DIR}`) console.log(`Content directory: ${CONTENT_DIR}\n`) +// Step 0a: Remove pages relocated out of the synced tree (see RELOCATED_PAGES). +// Runs first so keys stay expressed in upstream terms (before README->index +// renaming) and so getChildren() never lists a relocated page. +validateRelocatedDestinations() +console.log('--- Removing relocated pages ---\n') +removeRelocatedPages() +reportMissingRelocatedSources() + // Step 0: Rename README.md files to index.md (copilot-sdk uses README.md as // directory landing pages; docs-internal requires index.md). -console.log('--- Renaming README.md files to index.md ---\n') +console.log('\n--- Renaming README.md files to index.md ---\n') convertReadmesToIndex() // Step 1: Add frontmatter