diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance.md
index 0ee8c29f0ee0..c2d7f7b95f22 100644
--- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance.md
+++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance.md
@@ -29,7 +29,7 @@ Rulesets allow you to flexibly target the organizations, repositories, and branc
* To target **organizations**, you can select all, choose from a list, define a dynamic pattern for organization names using `fnmatch` syntax, or use organization custom properties to dynamically target organizations based on metadata. For syntax details, see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#using-fnmatch-syntax). For information on custom properties, see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/custom-properties).
-* Within those organizations, you can target all **repositories**, or target a dynamic list by custom property. See [AUTOTITLE](/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
+* Within those organizations, you can target all **repositories**, or target a dynamic list by custom property or deployment context.
* Within the repositories, you can target certain **branches or tags**: all branches, the default branch, or a dynamic list using `fnmatch` syntax.
When you create a ruleset that targets branches in a repository, repository administrators can no longer rename branches or change the default branch in the targeted repository. They can still create and delete branches if they have the appropriate permissions.
@@ -78,7 +78,12 @@ If you set a dynamic list, you'll add one or more naming patterns using `fnmatch
### Choosing which repositories to target in your enterprise
-Within the selected organizations, you can target all repositories or target a dynamic list by custom property. See [AUTOTITLE](/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
+Within the selected organizations, you can target all repositories or target a dynamic list based on a filter:
+
+* You can filter by custom property. See [AUTOTITLE](/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
+{%- ifversion virtual-registry %}
+* {% data reusables.security.deployable-rulesets %}
+{%- endif %}
### Choosing which branches or tags to target
diff --git a/content/code-security/concepts/supply-chain-security/linked-artifacts.md b/content/code-security/concepts/supply-chain-security/linked-artifacts.md
index 54fab9ca4fe6..6c8243d67bdb 100644
--- a/content/code-security/concepts/supply-chain-security/linked-artifacts.md
+++ b/content/code-security/concepts/supply-chain-security/linked-artifacts.md
@@ -13,11 +13,12 @@ The {% data variables.product.virtual_registry %} provides a unified view of sof
The page shows you how an artifact was built, where it is stored or running, and which compliance and security metadata is associated with the artifact.
-Teams in your organization can use the {% data variables.product.virtual_registry %} to:
+Teams in your organization can use data from the {% data variables.product.virtual_registry %} to:
* Prioritize alerts from {% data variables.product.prodname_GHAS %} features based on whether the detected vulnerabilities are running in production or exposed to the internet
* Quickly connect artifacts to build details, storage locations, and owning teams
* Meet compliance by exporting auditable proof of your artifacts' provenance and integrity
+* Find repositories that are associated with a deployed artifact, and target them in branch rulesets
## Which artifacts appear on the {% data variables.product.virtual_registry %}?
@@ -43,12 +44,20 @@ For more information about attestations and SLSA levels, see [AUTOTITLE](/action
### Deployment records
-Deployment records include the environment where the artifact is deployed and any runtime risks (such as "sensitive data" or "internet exposed") associated with the artifact. You can use this data to filter security alerts based on the level of threat posed to your organization and consumers.
+Deployment records include the environment where the artifact is deployed and any runtime risks (such as "sensitive data" or "internet exposed") associated with the artifact.

>[!NOTE] Deployment records do **not** include deployment activity from a repository's deployments dashboard, which comes from a different source. See [AUTOTITLE](/repositories/viewing-activity-and-data-for-your-repository/viewing-deployment-activity-for-your-repository).
+## Where is artifact data available?
+
+As well as being available on the {% data variables.product.virtual_registry %} itself, artifact metadata is integrated into policy and security surfaces on {% data variables.product.github %}. Teams can use this data to make policy decisions or prioritize security issues. For example, they can:
+
+* Use `deployed` or `deployable` filters to search for repositories or target repositories in organization and enterprise rulesets. See [AUTOTITLE](/search-github/searching-on-github/searching-for-repositories#search-based-on-deployment-context).
+* Filter security campaigns, {% data variables.product.prodname_code_scanning %} alerts, and {% data variables.product.prodname_dependabot %} alerts by runtime risk. See [AUTOTITLE](/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code).
+* View runtime risks as attributes on individual {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} alerts.
+
## How does the {% data variables.product.virtual_registry %} fit into my processes?
This example workflow shows how the {% data variables.product.virtual_registry %} integrates with other {% data variables.product.github %} features and external systems.
diff --git a/content/code-security/reference/supply-chain-security/dependabot-options-reference.md b/content/code-security/reference/supply-chain-security/dependabot-options-reference.md
index aba16f7acd76..3d2154b0d3f5 100644
--- a/content/code-security/reference/supply-chain-security/dependabot-options-reference.md
+++ b/content/code-security/reference/supply-chain-security/dependabot-options-reference.md
@@ -682,8 +682,6 @@ Reviewers must have at least read access to the repository.
| {% endif %} |
| [`timezone`](#timezone) | Specify the timezone of the `time` value. |
-{% ifversion fpt or ghec %}
-
### `interval`
Supported values: `daily`, `weekly`, `monthly`, `quarterly`, `semiannually`, `yearly`, or `cron`
@@ -698,22 +696,12 @@ Each package manager **must** define a schedule interval.
* Use `yearly` to run on the first day of January.
* Use `cron` for cron expression based scheduling option. See [`cronjob`](#cronjob).
-{% elsif ghes %}
-
-### `interval`
-
-Supported values: `daily`, `weekly`, `monthly`{% ifversion dependabot-schedule-updates %}, or `cron`{% endif %}
-
-Each package manager **must** define a schedule interval.
+>[!NOTE]
+> The supported values `quarterly`, `semiannually`, and `yearly` are only available on {% data variables.product.prodname_ghe_server %} from version 3.19.
-* Use `daily` to run on every weekday, Monday to Friday.
-* Use `weekly` to run once a week, by default on Monday.
-* Use `monthly` to run on the first day of each month.{% ifversion dependabot-schedule-updates %}
-* Use `cron` for cron expression based scheduling option. See [`cronjob`](#cronjob).{% endif %}
+By default, {% data variables.product.prodname_dependabot %} randomly assigns a time to apply all the updates in the configuration file. You can use the `time` and `timezone` parameters to set a specific runtime for all intervals. {% ifversion dependabot-schedule-updates %}If you use a `cron` interval, you can define the update time with a `cronjob` expression.{% endif %}
-{% endif %}
-By default, {% data variables.product.prodname_dependabot %} randomly assigns a time to apply all the updates in the configuration file. You can use the `time` and `timezone` parameters to set a specific runtime for all intervals. {% ifversion dependabot-schedule-updates %}If you use a `cron` interval, you can define the update time with a `cronjob` expression.{% endif %}
### `day`
diff --git a/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md b/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md
index e3fde868a281..94652248a570 100644
--- a/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md
+++ b/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md
@@ -25,7 +25,7 @@ To provide production context, you should configure your system to:
* Update **storage records** in the {% data variables.product.virtual_registry %} whenever an artifact is promoted to a production-approved package repository.
* Update **deployment records** when an artifact is deployed to a production environment.
-{% data variables.product.github %} processes this metadata and uses it to power alert filters, such as `artifact-registry-url` and `artifact-registry` from storage records, and `has:deployment` and `runtime-risk` from deployment records.
+{% data variables.product.github %} processes this metadata and uses it to power alert filters, such as `artifact-registry-url` and `artifact-registry` from storage records, and `has:deployment` and `runtime-risk` from deployment records. Runtime risks from deployment records are also visible as properties on individual {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} alert pages.
For more information on updating records, see [AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/upload-linked-artifacts).
diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/manage-copilot-code-review.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/manage-copilot-code-review.md
index 4cc60637e7c7..29c03347c57b 100644
--- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/manage-copilot-code-review.md
+++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/manage-copilot-code-review.md
@@ -17,7 +17,7 @@ This policy controls the use of {% data variables.copilot.copilot_code-review_sh
For an introduction to {% data variables.copilot.copilot_code-review_short %}, see [AUTOTITLE](/copilot/concepts/code-review).
-For more information about {% data variables.copilot.copilot_for_prs %}, see [AUTOTITLE](/copilot/how-tos/use-copilot-for-common-tasks/create-a-pr-summary).
+For more information about {% data variables.copilot.copilot_for_prs %}, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/create-a-pr-summary).
## Enabling {% data variables.copilot.copilot_code-review_short %} for your {% data variables.product.prodname_copilot_short %} subscribers
diff --git a/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/create-a-pr-summary.md b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/create-a-pr-summary.md
new file mode 100644
index 000000000000..dec97d9b84e5
--- /dev/null
+++ b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/create-a-pr-summary.md
@@ -0,0 +1,34 @@
+---
+title: Creating a pull request summary with GitHub Copilot
+shortTitle: Create a PR summary
+intro: 'Generate an AI-powered summary of your pull request changes to help reviewers quickly understand what you changed and why.'
+versions:
+ feature: copilot
+product: '{% data reusables.gated-features.copilot-free-availability %}'
+redirect_from:
+ - /copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot
+ - /copilot/github-copilot-enterprise/copilot-pull-request-summaries/creating-a-pull-request-summary-with-github-copilot
+ - /copilot/github-copilot-enterprise/copilot-pull-request-summaries
+ - /copilot/using-github-copilot/using-github-copilot-for-pull-requests
+ - /copilot/using-github-copilot/creating-a-pull-request-summary-with-github-copilot
+ - /copilot/how-tos/github-flow/creating-a-pull-request-summary-with-github-copilot
+ - /copilot/how-tos/github-flow/create-a-pr-summary
+ - /copilot/how-tos/use-copilot-for-common-tasks/create-a-pr-summary
+contentType: how-tos
+category:
+ - Author and optimize with Copilot
+---
+
+## Generate a pull request summary
+
+{% data variables.product.prodname_copilot %} can summarize a pull request in the description field or as a comment, helping reviewers quickly understand what changed.
+
+> [!NOTE] {% data variables.product.prodname_copilot %} does not take into account any existing content in the pull request description, so start with a blank description for best results.
+
+1. On {% data variables.product.github %}, create a pull request or navigate to an existing pull request.
+1. Click in the description field (or the comment field at the bottom of the page).
+1. In the header of the text field, select {% octicon "copilot" aria-label="Copilot actions" %}, then click **Summary**.
+
+ 
+
+1. Review the generated summary carefully. Add any additional context, then click **Create pull request** or **Update comment**.
diff --git a/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/index.md b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/index.md
new file mode 100644
index 000000000000..e4c67da15cc2
--- /dev/null
+++ b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/index.md
@@ -0,0 +1,13 @@
+---
+title: '{% data variables.product.prodname_copilot_short %} for {% data variables.product.github %} tasks'
+shortTitle: '{% data variables.product.prodname_copilot_short %} for {% data variables.product.github %} tasks'
+intro: Use {% data variables.product.prodname_copilot_short %} to create issues, summarize pull requests, and perform other {% data variables.product.github %} tasks directly from chat.
+versions:
+ feature: copilot
+children:
+ - /use-copilot-to-create-or-update-issues
+ - /create-a-pr-summary
+ - /using-the-github-mcp-server-from-copilot-chat
+contentType: how-tos
+---
+
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
new file mode 100644
index 000000000000..cf4e82664d6d
--- /dev/null
+++ b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues.md
@@ -0,0 +1,94 @@
+---
+title: Using GitHub Copilot to create or update issues
+shortTitle: Use Copilot to create or update issues
+intro: Use {% data variables.product.prodname_copilot_short %} to quickly generate structured, high-quality issues from natural language or images, without filling out every field manually.
+versions:
+ feature: copilot-create-issues
+redirect_from:
+ - /copilot/using-github-copilot/using-github-copilot-to-create-issues
+ - /copilot/how-tos/github-flow/using-github-copilot-to-create-issues
+ - /copilot/how-tos/github-flow/use-copilot-to-create-issues
+ - /copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-issues
+ - /copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-or-update-issues
+contentType: how-tos
+category:
+ - Author and optimize with Copilot
+---
+
+> [!NOTE]
+> This feature is in {% data variables.release-phases.public_preview %} and subject to change.
+
+{% data variables.product.prodname_copilot_short %} can create or update issues from a natural-language prompt or a screenshot. It fills in the title, body, labels, assignees, and more—using your repository's issue forms or templates when available. Review and refine every draft before you submit.
+
+## Create an issue
+
+{% data reusables.copilot.access-chat-instructions %}
+1. In the prompt box, describe the issue you want to create. Use `repo-owner/repo-name` to target a specific repository.
+
+ For example:
+
+ * {% prompt %}In OWNER/REPOSITORY, create a feature request to add fuzzy matching to search.{% endprompt %}
+ * {% prompt %}Log a bug for a 500 error. This happens consistently when I try to log into the site.{% endprompt %}
+ * {% prompt %}Create a task to change the application logo background to red and add the label "needs design review".{% endprompt %}
+
+ > [!NOTE] You can only create issues in repositories where you already have permission to do so.
+
+1. Optionally, paste, drag, or attach an image to your prompt. Add text to describe the issue, for example: `Create an issue because this error appears when trying to reset a password.`
+
+1. {% data variables.product.prodname_copilot_short %} drafts an issue with a suggested title, body, and metadata (labels, assignees, issue type). If your repository has issue forms or templates, {% data variables.product.prodname_copilot_short %} maps your prompt to the relevant fields.
+
+1. Review the draft. Edit any field, choose a different template, or ask {% data variables.product.prodname_copilot_short %} to make changes with a follow-up prompt.
+
+1. Click **Create**.
+
+## Create multiple issues
+
+If your prompt includes multiple tasks or bugs, {% data variables.product.prodname_copilot_short %} drafts each one separately.
+
+For example: {% prompt %}In OWNER/REPOSITORY, create 3 issues: 1) DETAILS OF ONE TASK, 2) DETAILS OF ANOTHER TASK, 3) DETAILS OF A THIRD TASK{% endprompt %}
+
+Review and edit each draft individually, then click **Create** to publish.
+
+## Create sub-issues
+
+{% data variables.product.prodname_copilot_short %} can break a task into a parent issue with sub-issues.
+
+For example:
+
+`In octo-org/octo-repo, plan a new user dashboard. Break it down into an epic, and create sub-issues for each main feature and task.`
+
+{% data variables.product.prodname_copilot_short %} generates a draft issue tree with a parent issue and sub-issues beneath it. Expand or collapse sub-issues, edit details, and use follow-up prompts to add or remove sub-issues.
+
+When you're ready, click **Review and create**, then click **Create issues**.
+
+## Update an existing issue
+
+Prompt {% data variables.product.prodname_copilot_short %} to modify an issue that already exists. For example:
+
+`In octo-org/octo-repo, update issue #123 to add more details about the bug and steps to reproduce it. Also, change the label to "bug" and assign it to @username.`
+
+Review the draft in the workbench, then click **Update**.
+
+## Link to existing parent or sub-issues
+
+{% data variables.product.prodname_copilot_short %} can connect new issues to ones that already exist. For example:
+
+* `Create a sub-issue for octo-org/octo-repo issue #456.`
+* `Create a parent issue for octo-org/octo-repo issue #456.`
+* `Create a parent issue for octo-org/octo-repo issues #456, #457, and #458.`
+
+Review the draft in the workbench, then click **Review and create** > **Create issues**.
+
+## 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).
+
+* **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.
+
+{% data variables.product.prodname_copilot_short %} starts working on the issue automatically after creation.
+
+## Further reading
+
+* [AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)
+* [AUTOTITLE](/copilot/tutorials/plan-a-project)
diff --git a/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/using-the-github-mcp-server-from-copilot-chat.md b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/using-the-github-mcp-server-from-copilot-chat.md
new file mode 100644
index 000000000000..59857113ea2c
--- /dev/null
+++ b/content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/using-the-github-mcp-server-from-copilot-chat.md
@@ -0,0 +1,40 @@
+---
+title: Using the GitHub MCP Server from Copilot Chat
+shortTitle: Use the {% data variables.product.github %} MCP Server from {% data variables.copilot.copilot_chat_short %}
+intro: Perform {% data variables.product.github %} tasks—like creating branches, merging pull requests, and searching for users—directly from {% data variables.copilot.copilot_chat_dotcom_short %}, with no setup required.
+versions:
+ feature: copilot
+contentType: how-tos
+category:
+ - Integrate Copilot with your tools
+redirect_from:
+ - /copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-the-github-mcp-server
+ - /copilot/how-tos/copilot-on-github/copilot-for-github-tasks/using-the-github-mcp-server-on-github
+---
+
+The {% data variables.product.github %} MCP server is pre-configured in {% data variables.copilot.copilot_chat_dotcom_short %} with a limited set of skills, so you can use it immediately. Instruct {% data variables.copilot.copilot_chat_short %} to perform tasks like creating branches or merging pull requests on your behalf.
+
+For a full list of available skills, see [AUTOTITLE](/copilot/reference/github-copilot-chat-cheat-sheet#mcp-skills). For more about MCP, see [AUTOTITLE](/copilot/concepts/about-mcp).
+
+## Use the {% data variables.product.github %} MCP server
+
+{% data reusables.copilot.access-chat-instructions %}
+1. Type a request and press **Enter**. For example:
+
+ {% prompt %}Create a new branch called [BRANCH-NAME] in the repository [OWNER/REPO-NAME].{% endprompt %}
+
+ {% prompt %}Merge the pull request [PR-NUMBER] in the repository [OWNER/REPO-NAME].{% endprompt %}
+
+1. Click **Allow** to confirm the action.
+1. {% data variables.copilot.copilot_chat_short %} performs the action and shows the result.
+
+## Limitations
+
+The {% data variables.product.github %} MCP server in {% data variables.copilot.copilot_chat_dotcom_short %} supports a limited set of skills. If a requested action is not supported, {% data variables.copilot.copilot_chat_short %} provides guidance but cannot perform it directly.
+
+To access the full set of tools, set up the {% data variables.product.github %} MCP server in your IDE. See [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp-in-your-ide/use-the-github-mcp-server).
+
+You can also use the {% data variables.product.github %} MCP server with {% data variables.copilot.copilot_cloud_agent %}. It is enabled with read-only access by default and can be customized for wider access. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp#customizing-the-built-in-github-mcp-server).
+## Further reading
+
+* [AUTOTITLE](/copilot/tutorials/enhancing-copilot-agent-mode-with-mcp)
diff --git a/content/copilot/how-tos/copilot-on-github/index.md b/content/copilot/how-tos/copilot-on-github/index.md
index 5376112e3756..b210f18b2f11 100644
--- a/content/copilot/how-tos/copilot-on-github/index.md
+++ b/content/copilot/how-tos/copilot-on-github/index.md
@@ -6,5 +6,6 @@ versions:
feature: copilot
children:
- /chat-with-copilot
+ - /copilot-for-github-tasks
contentType: how-tos
---
diff --git a/content/copilot/how-tos/provide-context/index.md b/content/copilot/how-tos/provide-context/index.md
index d48810b3a00b..23f78002e263 100644
--- a/content/copilot/how-tos/provide-context/index.md
+++ b/content/copilot/how-tos/provide-context/index.md
@@ -1,14 +1,15 @@
---
title: Provide context to GitHub Copilot
shortTitle: Provide context
-intro: 'Learn how to give {% data variables.product.prodname_copilot %} relevant information to increase the quality of responses.'
+intro: Learn how to give {% data variables.product.prodname_copilot %} relevant information to increase the quality of responses.
versions:
feature: copilot
children:
- /use-copilot-spaces
- - /use-mcp
+ - /use-mcp-in-your-ide
redirect_from:
- /copilot/customizing-copilot
- /copilot/how-tos/context
contentType: how-tos
---
+
diff --git a/content/copilot/how-tos/provide-context/use-copilot-spaces/use-copilot-spaces.md b/content/copilot/how-tos/provide-context/use-copilot-spaces/use-copilot-spaces.md
index 088bc3070332..c314e78dfb9d 100644
--- a/content/copilot/how-tos/provide-context/use-copilot-spaces/use-copilot-spaces.md
+++ b/content/copilot/how-tos/provide-context/use-copilot-spaces/use-copilot-spaces.md
@@ -26,7 +26,7 @@ You can also access the information and context from {% data variables.copilot.c
This functionality is available in any IDE that supports the {% data variables.product.prodname_copilot %} extension and the {% data variables.product.github %} MCP server.
->[!NOTE] When using {% data variables.copilot.copilot_spaces_short %} in your IDE, repository context is not supported. You will have access to all other sources and instructions from the space.
+>[!NOTE] When using {% data variables.copilot.copilot_spaces_short %} in your IDE, repository context and uploaded files are not supported. You will have access to all other sources, including text content added via "{% octicon "paste" aria-label="Add text content" %} **Add text content**", {% data variables.product.github %} files, issues, pull requests, and instructions from the space.
Once you've accessed space context from your IDE:
diff --git a/content/copilot/how-tos/provide-context/use-mcp/change-mcp-registry.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/change-mcp-registry.md
similarity index 95%
rename from content/copilot/how-tos/provide-context/use-mcp/change-mcp-registry.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/change-mcp-registry.md
index f7e28fa5d8e0..b2e835eb5e26 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/change-mcp-registry.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/change-mcp-registry.md
@@ -2,13 +2,15 @@
title: Changing your MCP registry in your IDE
allowTitleToDifferFromFilename: true
shortTitle: Change MCP registry
-intro: 'Customize the MCP registry you can use with {% data variables.copilot.copilot_chat_short %}.'
+intro: Customize the MCP registry you can use with {% data variables.copilot.copilot_chat_short %}.
versions:
feature: copilot
defaultTool: jetbrains
contentType: how-tos
category:
- Configure Copilot
+redirect_from:
+ - /copilot/how-tos/provide-context/use-mcp/change-mcp-registry
---
MCP registries for {% data variables.product.prodname_copilot_short %} in your IDE streamline the process of discovering and setting up MCP servers. By default, {% data variables.product.prodname_copilot_short %} uses the {% data variables.product.github %} MCP Registry, but you can configure your own MCP registry to customize the list of servers available in your environment.
diff --git a/content/copilot/how-tos/provide-context/use-mcp/configure-toolsets.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/configure-toolsets.md
similarity index 93%
rename from content/copilot/how-tos/provide-context/use-mcp/configure-toolsets.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/configure-toolsets.md
index 6c20155c1d1c..6b9d0c32048f 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/configure-toolsets.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/configure-toolsets.md
@@ -1,12 +1,13 @@
---
title: Configuring toolsets for the GitHub MCP Server
-intro: 'Learn how to configure toolsets and tools for the {% data variables.product.github %} MCP server for fine-grained control and optimized performance.'
+intro: Learn how to configure toolsets and tools for the {% data variables.product.github %} MCP server for fine-grained control and optimized performance.
shortTitle: Configure toolsets
versions:
feature: copilot
defaultTool: vscode
redirect_from:
- /copilot/how-tos/context/use-mcp/configure-toolsets
+ - /copilot/how-tos/provide-context/use-mcp/configure-toolsets
contentType: how-tos
category:
- Configure Copilot
diff --git a/content/copilot/how-tos/provide-context/use-mcp/enterprise-configuration.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/enterprise-configuration.md
similarity index 98%
rename from content/copilot/how-tos/provide-context/use-mcp/enterprise-configuration.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/enterprise-configuration.md
index 6dfb72738919..4cfcd9610eb3 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/enterprise-configuration.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/enterprise-configuration.md
@@ -1,6 +1,6 @@
---
title: Configuring the GitHub MCP Server for GitHub Enterprise
-intro: 'Learn how to configure the GitHub Model Context Protocol (MCP) server to work with {% data variables.product.prodname_ghe_server %} or {% data variables.enterprise.data_residency %}.'
+intro: Learn how to configure the GitHub Model Context Protocol (MCP) server to work with {% data variables.product.prodname_ghe_server %} or {% data variables.enterprise.data_residency %}.
shortTitle: Enterprise configuration
versions:
feature: copilot
@@ -8,6 +8,8 @@ defaultTool: vscode
contentType: how-tos
category:
- Configure Copilot
+redirect_from:
+ - /copilot/how-tos/provide-context/use-mcp/enterprise-configuration
---
The {% data variables.product.github %} MCP server can be configured to work with {% data variables.product.prodname_ghe_server %} and {% data variables.enterprise.data_residency %}. The configuration steps differ depending on whether you are using the remote or local MCP server.
diff --git a/content/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/extend-copilot-chat-with-mcp.md
similarity index 98%
rename from content/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/extend-copilot-chat-with-mcp.md
index a6b5ab6fe1ac..5a317197920b 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/extend-copilot-chat-with-mcp.md
@@ -2,7 +2,7 @@
title: Extending GitHub Copilot Chat with Model Context Protocol (MCP) servers
allowTitleToDifferFromFilename: true
shortTitle: Extend Copilot Chat with MCP
-intro: 'Connect MCP servers to {% data variables.copilot.copilot_chat_short %} to share context from other applications.'
+intro: Connect MCP servers to {% data variables.copilot.copilot_chat_short %} to share context from other applications.
versions:
feature: copilot
defaultTool: vscode
@@ -12,8 +12,9 @@ redirect_from:
- /copilot/how-tos/context/model-context-protocol/extending-copilot-chat-with-mcp
- /copilot/how-tos/context/model-context-protocol/extend-copilot-chat-with-mcp
- /copilot/how-tos/context/use-mcp/extend-copilot-chat-with-mcp
+ - /copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp
contentType: how-tos
-category:
+category:
- Integrate Copilot with your tools
---
diff --git a/content/copilot/how-tos/provide-context/use-mcp/index.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/index.md
similarity index 57%
rename from content/copilot/how-tos/provide-context/use-mcp/index.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/index.md
index cc08d4230c73..4ebf5966c430 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/index.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/index.md
@@ -1,7 +1,7 @@
---
-title: Using Model Context Protocol
-shortTitle: Use MCP
-intro: 'Model Context Protocol (MCP) is a protocol that allows you to extend the capabilities of {% data variables.product.prodname_copilot %} by integrating it with other systems.'
+title: Using Model Context Protocol in your IDE
+shortTitle: Use MCP in your IDE
+intro: Model Context Protocol (MCP) is a protocol that allows you to extend the capabilities of {% data variables.product.prodname_copilot %} by integrating it with other systems.
versions:
feature: copilot
children:
@@ -15,5 +15,7 @@ redirect_from:
- /copilot/customizing-copilot/using-model-context-protocol
- /copilot/how-tos/context/model-context-protocol
- /copilot/how-tos/context/use-mcp
+ - /copilot/how-tos/provide-context/use-mcp
contentType: how-tos
---
+
diff --git a/content/copilot/how-tos/provide-context/use-mcp/set-up-the-github-mcp-server.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server.md
similarity index 99%
rename from content/copilot/how-tos/provide-context/use-mcp/set-up-the-github-mcp-server.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server.md
index 1c10e4a7e6c8..298ee4c2919f 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/set-up-the-github-mcp-server.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server.md
@@ -1,6 +1,6 @@
---
title: Setting up the GitHub MCP Server
-intro: 'Learn how to configure the GitHub Model Context Protocol (MCP) server.'
+intro: Learn how to configure the GitHub Model Context Protocol (MCP) server.
shortTitle: Set up the GitHub MCP Server
versions:
feature: copilot
@@ -13,8 +13,9 @@ redirect_from:
- /copilot/how-tos/use-copilot-extensions/set-up-copilot-extensions
- /copilot/how-tos/provide-context/install-copilot-extensions/install-extensions
- /copilot/how-tos/provide-context/install-copilot-extensions/install-personal-extensions
+ - /copilot/how-tos/provide-context/use-mcp/set-up-the-github-mcp-server
contentType: how-tos
-category:
+category:
- Integrate Copilot with your tools
---
diff --git a/content/copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server.md b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/use-the-github-mcp-server.md
similarity index 79%
rename from content/copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server.md
rename to content/copilot/how-tos/provide-context/use-mcp-in-your-ide/use-the-github-mcp-server.md
index 015977c8b737..e64403250ee6 100644
--- a/content/copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server.md
+++ b/content/copilot/how-tos/provide-context/use-mcp-in-your-ide/use-the-github-mcp-server.md
@@ -1,6 +1,6 @@
---
-title: Using the GitHub MCP Server
-intro: 'Learn how to use the GitHub Model Context Protocol (MCP) server to interact with repositories, issues, pull requests, and other GitHub features, directly from {% data variables.copilot.copilot_chat_short %}.'
+title: Using the GitHub MCP Server in your IDE
+intro: Learn how to use the GitHub Model Context Protocol (MCP) server to interact with repositories, issues, pull requests, and other GitHub features, directly from {% data variables.copilot.copilot_chat_short %} in your IDE.
shortTitle: Use the GitHub MCP Server
versions:
feature: copilot
@@ -11,8 +11,9 @@ redirect_from:
- /copilot/how-tos/context/model-context-protocol/use-the-github-mcp-server
- /copilot/how-tos/context/use-mcp/use-the-github-mcp-server
- /copilot/how-tos/provide-context/install-copilot-extensions/use-copilot-extensions
+ - /copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server
contentType: how-tos
-category:
+category:
- Integrate Copilot with your tools
---
@@ -167,40 +168,6 @@ The {% data variables.product.github %} MCP server enables you to perform a wide
{% endeclipse %}
-{% webui %}
-
-## About MCP in {% data variables.copilot.copilot_chat_dotcom_short %}
-
-The {% data variables.product.github %} MCP server is a Model Context Protocol (MCP) server provided and maintained by {% data variables.product.github %}. MCP allows you to integrate AI capabilities with other tools and services, enhancing your development experience by providing context-aware AI assistance.
-
-For more information on MCP, see [the official MCP documentation](https://modelcontextprotocol.io/introduction).
-
-Within {% data variables.copilot.copilot_chat_dotcom_short %}, the {% data variables.product.github %} MCP server is automatically configured, with a limited set of skills available. This allows you to instruct {% data variables.copilot.copilot_chat_short %} to perform tasks such as creating branches or merging pull requests on your behalf. For a full list of available skills, see [AUTOTITLE](/copilot/reference/github-copilot-chat-cheat-sheet#mcp-skills).
-
-## Using the {% data variables.product.github %} MCP server in {% data variables.copilot.copilot_chat_dotcom_short %}
-
-The {% data variables.product.github %} MCP server is automatically configured in {% data variables.copilot.copilot_chat_dotcom_short %}. You can start using it immediately without any additional setup.
-
-{% data reusables.copilot.access-chat-instructions %}
-1. In the prompt box, type a request related to the skill you want {% data variables.copilot.copilot_chat_short %} to perform, and press **Enter**.
-
- Some examples of requests you can make are:
-
- {% prompt %}Create a new branch called [BRANCH-NAME] in the repository [OWNER/REPO-NAME].{% endprompt %}
-
- {% prompt %}Search for users with the name [USER-NAME]{% endprompt %}
-
- {% prompt %}Merge the pull request [PR-NUMBER] in the repository [OWNER/REPO-NAME].{% endprompt %}
-
-1. {% data variables.copilot.copilot_chat_short %} will ask you to confirm that you want to proceed with the action. Click **Allow** to confirm.
-1. {% data variables.copilot.copilot_chat_short %} will use the relevant skill from the {% data variables.product.github %} MCP server to perform the action you requested. {% data variables.copilot.copilot_chat_short %} will show you the result of the action in the chat interface.
-
-## Limitations
-
-The {% data variables.product.github %} MCP server in {% data variables.copilot.copilot_chat_dotcom_short %} is currently limited to a set of predefined skills. If you ask {% data variables.copilot.copilot_chat_short %} to perform an action that is not supported by the MCP server, it will still attempt to provide a helpful response, but it may not be able to perform the action as expected. For example, if you ask {% data variables.copilot.copilot_chat_short %} to create a new issue, it may provide you with a draft issue template, but you will still need to manually create the issue.
-
-{% endwebui %}
-
## Further reading
* [AUTOTITLE](/copilot/tutorials/enhancing-copilot-agent-mode-with-mcp)
diff --git a/content/copilot/how-tos/use-copilot-for-common-tasks/create-a-pr-summary.md b/content/copilot/how-tos/use-copilot-for-common-tasks/create-a-pr-summary.md
deleted file mode 100644
index 9cee1172ab25..000000000000
--- a/content/copilot/how-tos/use-copilot-for-common-tasks/create-a-pr-summary.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Creating a pull request summary with GitHub Copilot
-shortTitle: Create a PR summary
-intro: 'You can generate a summary in the description of a pull request, or as a comment.'
-versions:
- feature: copilot
-product: '{% data reusables.gated-features.copilot-free-availability %}'
-redirect_from:
- - /copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot
- - /copilot/github-copilot-enterprise/copilot-pull-request-summaries/creating-a-pull-request-summary-with-github-copilot
- - /copilot/github-copilot-enterprise/copilot-pull-request-summaries
- - /copilot/using-github-copilot/using-github-copilot-for-pull-requests
- - /copilot/using-github-copilot/creating-a-pull-request-summary-with-github-copilot
- - /copilot/how-tos/github-flow/creating-a-pull-request-summary-with-github-copilot
- - /copilot/how-tos/github-flow/create-a-pr-summary
-contentType: how-tos
-category:
- - Author and optimize with Copilot
----
-
-## Creating a summary for a pull request
-
-You can use {% data variables.product.prodname_copilot %} to generate a summary of a pull request on {% data variables.product.github %}. You can use the summary to help reviewers understand your changes, or to quickly understand the changes in a pull request you're reviewing.
-
-1. On {% data variables.product.github %}, create a pull request or navigate to an existing pull request.
-
- > [!NOTE] {% data variables.product.prodname_copilot %} does not take into account any existing content in the pull request description, so it is best to start with a blank description.
-
-1. Navigate to the text field where you want to add the pull request summary.
-
- * If you're creating a new pull request, use the "Add a description" field.
- * If you're adding a description to an existing pull request, edit the opening comment.
- * If you're adding a summary as a comment, navigate to the "Add a comment" section at the bottom of the pull request page.
-
-1. In the header of the text field, select {% octicon "copilot" aria-label="Copilot actions" %}, then click **Summary**.
-
- 
-
-1. Wait for {% data variables.product.prodname_copilot %} to produce the summary, then check over the results carefully.
-1. Optionally, depending on your enterprise or organization settings, you can provide feedback about the summary by clicking one of the buttons that are displayed below the text box, next to "How did Copilot perform?"
-
- 
-
- After you rate a summary as good or bad, you can provide written feedback by clicking the link that's displayed.
-
-1. Add any additional context that will help people viewing your pull request.
-1. When you're happy with the description, click **Create pull request** on a new pull request, or **Update comment** if you're editing an existing description.
-
-## Further reading
-
-* [AUTOTITLE](/copilot/github-copilot-enterprise/copilot-pull-request-summaries/about-copilot-pull-request-summaries)
diff --git a/content/copilot/how-tos/use-copilot-for-common-tasks/index.md b/content/copilot/how-tos/use-copilot-for-common-tasks/index.md
index 53ef0d757e75..a6d2e6e6c79c 100644
--- a/content/copilot/how-tos/use-copilot-for-common-tasks/index.md
+++ b/content/copilot/how-tos/use-copilot-for-common-tasks/index.md
@@ -5,8 +5,6 @@ intro: '{% data variables.product.prodname_copilot %} enhances and integrates wi
versions:
feature: copilot
children:
- - /use-copilot-to-create-or-update-issues
- - /create-a-pr-summary
- /use-copilot-in-the-cli
redirect_from:
- /copilot/how-tos/github-flow
diff --git a/content/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-or-update-issues.md b/content/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-or-update-issues.md
deleted file mode 100644
index 6bbf7787ee12..000000000000
--- a/content/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-or-update-issues.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-title: Using GitHub Copilot to create or update issues
-shortTitle: Use Copilot to create or update issues
-intro: Use {% data variables.product.prodname_copilot_short %} to quickly generate structured, high-quality issues from natural language or images, without filling out every field manually.
-permissions: Anyone with a {% data variables.product.prodname_copilot_short %} license can use {% data variables.product.prodname_copilot_short %} to create issues or update existing issues.
Try {% data variables.product.prodname_copilot_short %} for free {% octicon "link-external" height:16 %}
-versions:
- feature: copilot-create-issues
-redirect_from:
- - /copilot/using-github-copilot/using-github-copilot-to-create-issues
- - /copilot/how-tos/github-flow/using-github-copilot-to-create-issues
- - /copilot/how-tos/github-flow/use-copilot-to-create-issues
- - /copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-issues
-contentType: how-tos
-category:
- - Author and optimize with Copilot
----
-
-> [!NOTE]
-> This feature is in {% data variables.release-phases.public_preview %} and subject to change.
-
-Creating or updating issues manually can be repetitive and time-consuming. With {% data variables.product.prodname_copilot_short %}, you can create or update issues faster by prompting in natural language, or even by uploading a screenshot. {% data variables.product.prodname_copilot_short %} fills out the title, body, labels, assignees, and more, using your repository’s issue forms or templates.
-
-You stay in control of the process. You can review and refine what {% data variables.product.prodname_copilot_short %} suggests before you submit the new or updated issue.
-
-## Creating an issue with {% data variables.product.prodname_copilot_short %}
-
-You can create issues from {% data variables.copilot.copilot_chat_short %} in {% data variables.product.github %}.
-
-1. Go to {% data variables.copilot.copilot_chat_short %} ([https://github.com/copilot](https://github.com/copilot?ref_product=copilot&ref_type=engagement&ref_style=text)).
-1. In the prompt box, describe the issue you want to create.
-
- If you contribute issues to multiple repositories, use the `repo-owner/repo-name` format to specify the target repository for this issue. If you don't specify a repository, {% data variables.product.prodname_copilot_short %} will infer the repository based on the repository you last created an issue in.
-
- For example:
-
- * {% prompt %}In OWNER/REPOSITORY, create a feature request to add fuzzy matching to search.{% endprompt %}
- * {% prompt %}Log a bug for a 500 error. This happens consistently when I try to log into the site.{% endprompt %}
- * {% prompt %}Create a task to change the application logo background to red and add the label "needs design review".{% endprompt %}
- * {% prompt %}In octo-org/octo-repo, create an issue and add relevant code snippets to improve the API response format.{% endprompt %}
-
- > [!NOTE] You can only use {% data variables.product.prodname_copilot_short %} to create issues in repositories where you already have permission to create issues. This feature doesn't change your access or bypass repository permissions.
-
-1. Alternatively, you can use one of the following methods to include an image in your prompt:
-
- * Copy an image and paste it into the prompt box at the bottom of the page.
- * Click {% octicon "paperclip" aria-label="Add attachment" %} in the prompt box, then click **Image**. Browse to the image file you want to attach, select it and click **Open**.
- * Drag and drop an image file from your operating system's file explorer into the prompt box.
-
- After you paste or upload the image, you can add text to your prompt, for example: `Create an issue because this error appears when trying to reset a password.`
-
-1. {% data variables.product.prodname_copilot_short %} drafts an issue that includes:
-
- * A suggested title.
- * Details of the required changes.
-
- If your repository has issue forms or templates, {% data variables.product.prodname_copilot_short %} will choose an appropriate form or template based on your prompt. If there are no forms or templates, {% data variables.product.prodname_copilot_short %} will create a basic issue body for the details of the issue.
-
- If {% data variables.product.prodname_copilot_short %} uses an issue form, it will break up the information in your prompt into the relevant fields of the form, without losing any data. {% data variables.product.prodname_copilot_short %} will ask you to provide additional context if there are fields it does not have enough information to fill out.
-
- Based on your prompt, {% data variables.product.prodname_copilot_short %} can also suggest metadata such as labels, assignees, and issue type.
-
-1. Review the draft. You can:
-
- * Edit any part of the issue manually.
- * Choose a different issue form or template without losing your input. {% data variables.product.prodname_copilot_short %} reformats the content according to the form or template you choose.
- * Ask {% data variables.product.prodname_copilot_short %} to make changes with a follow-up prompt.
-
-1. Once the issue looks good, click **Create**.
-
-## Creating multiple issues at once
-
-If your prompt includes multiple tasks or bugs, {% data variables.product.prodname_copilot_short %} can draft more than one issue at a time.
-
-For example: {% prompt %}In OWNER/REPOSITORY, create 3 issues: 1) DETAILS OF ONE TASK, 2) DETAILS OF ANOTHER TASK, 3) DETAILS OF A THIRD TASK{% endprompt %}
-
-Each draft appears separately, and you can review and edit them individually. To publish the issues, click **Create** on each one you want to submit.
-
-## Creating sub-issues
-
-You can use {% data variables.product.prodname_copilot_short %} to draft multiple sub-issues.
-
-For example:
-
-`In octo-org/octo-repo, plan a new user dashboard. Break it down into an epic, and create sub-issues for each main feature and task.`
-
-{% data variables.product.prodname_copilot_short %} generates a draft issue tree, with a parent issue at the top level and sub-issues beneath it.
-
-You can review the issue tree, expand or collapse sub-issues, and edit the details of each issue.
-
-Click the parent issue to view its details in the workbench. The parent issue displays a list of sub-issues, and you can click each one to view and edit its details in the workbench. From a sub-issue, use the "Parent" dropdown to navigate through the issue tree. You can also click **Review and create** at the top of the workbench to see the full issue tree and navigate directly to any issue.
-
-{% data variables.product.prodname_copilot_short %} can modify the tree, by unlinking issues or by attaching new drafts.
-
-For example, you can:
-* Remove a sub-issue from the issue tree:
- `Remove sub-issue NAME_OF_ISSUE from the issue tree`
-* Add an additional sub-issue to the issue tree:
- `Add an additional sub-issue with ISSUE_DETAILS to the issue tree`
-
-Once you've finished editing the drafts and are ready to publish the issues, click **Review and create** then click **Create issues**.
-
-## Updating an existing issue
-
-You can use {% data variables.product.prodname_copilot_short %} to update existing issues in your repository.
-
-For example:
-
-`In octo-org/octo-repo, update issue #123 to add more details about the bug and steps to reproduce it. Also, change the label to "bug" and assign it to @username.`
-
-{% data variables.product.prodname_copilot_short %} drafts the updated issue, which you can review and edit in the workbench. To publish the changes, click **Update**.
-
-## Working with existing parent issues and sub-issues
-
-You can use {% data variables.product.prodname_copilot_short %} to connect new issues with issues that already exist in your repository.
-
-For example, you can:
-* Add a sub-issue to an existing parent issue:
- `Create a sub-issue for octo-org/octo-repo issue #456.`
-* Add a parent issue to an existing issue:
- `Create a parent issue for octo-org/octo-repo issue #456.`
-* Add a parent issue to multiple existing issues:
- `Create a parent issue for octo-org/octo-repo issues #456, #457, and #458.`
-
-The draft appears in the workbench, where you can review and edit it. To publish the issue, click **Review and create**, then click **Create issues**.
-
-## Assigning issues to {% data variables.product.prodname_copilot_short %}
-
-To assign an issue to {% data variables.product.prodname_copilot_short %}, you need to have {% data variables.copilot.copilot_cloud_agent %} enabled. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management).
-
-You can assign the issue during creation in one of two ways:
-
-* **Natural language:** Prompt {% data variables.product.prodname_copilot_short %} with something like `Assign this issue to {% data variables.product.prodname_copilot_short %}.`
-* **Manually:** Select "{% data variables.product.prodname_copilot_short %}" from the assignee list.
-
-Once the issue is assigned and created, {% data variables.product.prodname_copilot_short %} will start working on it automatically. You’ll see a 👀 emoji reaction on the issue to indicate that {% data variables.product.prodname_copilot_short %} is working on it.
-
-## Further reading
-
-* [AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)
-* [AUTOTITLE](/copilot/tutorials/plan-a-project)
diff --git a/content/copilot/tutorials/cloud-agent/build-guardrails.md b/content/copilot/tutorials/cloud-agent/build-guardrails.md
new file mode 100644
index 000000000000..703b30814525
--- /dev/null
+++ b/content/copilot/tutorials/cloud-agent/build-guardrails.md
@@ -0,0 +1,78 @@
+---
+title: 'Building guardrails for GitHub Copilot cloud agent'
+shortTitle: 'Build guardrails'
+intro: 'Configure your enterprise so that {% data variables.copilot.copilot_cloud_agent %} will operate in a secure, compliant environment.'
+versions:
+ feature: copilot
+contentType: tutorials
+category:
+ - Roll Copilot out at scale
+ - Manage Copilot for a team
+---
+
+Before you enable {% data variables.copilot.copilot_cloud_agent %}, it is good practice to set up your enterprise so you can be confident {% data variables.product.prodname_copilot_short %} will operate within secure, predictable guardrails.
+
+## Learn about built-in protections
+
+{% data variables.copilot.copilot_cloud_agent %} has a strong base of built-in security protections designed to protect against common risk points of AI agents. See [AUTOTITLE](/copilot/concepts/agents/coding-agent/risks-and-mitigations).
+
+## Plan policy settings
+
+Plan your policies for {% data variables.copilot.copilot_cloud_agent %} in advance. Policies allow you to set a baseline for restrictions at the enterprise level, which organization owners can restrict further if needed.
+
+Some questions to ask are:
+
+* Which organizations and repositories will {% data variables.copilot.copilot_cloud_agent %} be enabled in? See [AUTOTITLE](/copilot/concepts/agents/coding-agent/access-management).
+* Which MCP servers will you configure to give {% data variables.copilot.copilot_cloud_agent %} access to external tools? See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp).
+
+### Which policies don't apply?
+
+The following {% data variables.product.prodname_copilot_short %} policies don't apply to {% data variables.copilot.copilot_cloud_agent %}:
+
+* Content exclusions
+* Custom models (providing your own LLM API keys)
+* Private MCP registries
+
+## Adapt rulesets
+
+{% data variables.copilot.copilot_cloud_agent %} is already restricted from actions like pushing to a default branch or merging pull requests. You can build on these default protections in branch rulesets. {% data variables.copilot.copilot_cloud_agent %} is subject to rulesets just like human developers.
+
+To adapt your rulesets for {% data variables.copilot.copilot_cloud_agent %}:
+
+* **Consider whether additional rules are required** in repositories where agents will operate, such as requiring results from {% data variables.product.prodname_code_scanning %} or {% data variables.product.prodname_code_quality_short %}. If you have identified the organizations or repositories where {% data variables.copilot.copilot_cloud_agent %} will be enabled, you can apply a custom property to them so they're easy to target in a ruleset.
+* **Consider whether {% data variables.copilot.copilot_cloud_agent %} will be blocked** by any of your existing rulesets. {% data variables.product.prodname_copilot_short %} _can_ sign its commits, but it may not be able to follow other rules that restrict commit metadata.
+* **Protect important {% data variables.product.prodname_copilot_short %} and MCP configuration files** with a `CODEOWNERS` file, and enable the "Require review from Code Owners" rule, so that edits to these files must be approved by specific teams. For filepaths to target, see [AUTOTITLE](/copilot/reference/customization-cheat-sheet).
+
+## Set up your {% data variables.product.prodname_actions %} environment
+
+{% data variables.copilot.copilot_cloud_agent %} operates on {% data variables.product.prodname_actions %} runners. Set up your runners and policies so that {% data variables.product.prodname_copilot_short %} operates securely.
+
+### Store data and secrets
+
+Continue to store data and tokens that you _don't_ want {% data variables.product.prodname_copilot_short %} to access as **{% data variables.product.prodname_actions %} variables or secrets**. {% data variables.product.prodname_copilot_short %} won't be able to access these in its sessions or environment setup steps.
+
+If you need to provide data and secrets that {% data variables.copilot.copilot_cloud_agent %} _does_ need, you'll be able to do this in a specific `copilot` environment.
+
+### Configure runners
+
+Decide which runners you will use for {% data variables.copilot.copilot_cloud_agent %}. We recommend using **{% data variables.product.github %}-hosted runners**, so that each {% data variables.copilot.copilot_cloud_agent %} runs on a fresh virtual machine. If you use self-hosted runners, we recommend using ephemeral runners.
+
+Organization owners can restrict the {% data variables.copilot.copilot_cloud_agent %}'s runners to a specific runner label, to be used automatically in all repositories. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/configure-runner-for-coding-agent).
+
+### Configure workflow policies
+
+Decide whether **{% data variables.product.prodname_actions %} workflows should be blocked from running** in pull requests that {% data variables.copilot.copilot_cloud_agent %} creates. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/configuring-agent-settings#allowing-github-actions-workflows-to-run-automatically-when-copilot-pushes).
+
+By default, workflows are blocked from running until someone with write access approves them. Repository administrators will be able to disable this feature, so communicate with them in advance about your preferred setting.
+
+### Review default permissions
+
+Review the default permissions for the `GITHUB_TOKEN` in your enterprise. See [AUTOTITLE](/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#workflow-permissions).
+
+This policy does **not** affect the token that {% data variables.product.prodname_copilot_short %} will receive for its sessions, but the `GITHUB_TOKEN` _is_ used in environment setup steps defined in `copilot-setup-steps.yml` workflow files.
+
+Bear in mind that developers will be able to set their own `permissions` in these workflow files, and you should encourage them to use the minimum required permissions in all workflows.
+
+## Next steps
+
+When you're ready to enable {% data variables.copilot.copilot_cloud_agent %}, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/manage-copilot-coding-agent).
diff --git a/content/copilot/tutorials/cloud-agent/index.md b/content/copilot/tutorials/cloud-agent/index.md
index 4822727d72c7..7b2be160db42 100644
--- a/content/copilot/tutorials/cloud-agent/index.md
+++ b/content/copilot/tutorials/cloud-agent/index.md
@@ -9,6 +9,7 @@ children:
- /get-the-best-results
- /pilot-cloud-agent
- /improve-a-project
+ - /build-guardrails
contentType: tutorials
redirect_from:
- /copilot/tutorials/coding-agent
diff --git a/content/copilot/tutorials/cloud-agent/pilot-cloud-agent.md b/content/copilot/tutorials/cloud-agent/pilot-cloud-agent.md
index 12ce12f76cd3..f7b53de4b2ec 100644
--- a/content/copilot/tutorials/cloud-agent/pilot-cloud-agent.md
+++ b/content/copilot/tutorials/cloud-agent/pilot-cloud-agent.md
@@ -30,19 +30,13 @@ category:
Before enabling {% data variables.copilot.copilot_cloud_agent %} for members, understand how {% data variables.copilot.copilot_cloud_agent %} will fit into your organization. This will help you evaluate whether {% data variables.copilot.copilot_cloud_agent %} is suitable for your needs and plan communications and training sessions for developers.
-1. Learn about {% data variables.copilot.copilot_cloud_agent %}, including the costs, built-in security features, and how it differs from other AI tools your developers may be used to. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent).
+1. Learn about {% data variables.copilot.copilot_cloud_agent %}, including the costs and how it differs from other AI tools your developers may be used to. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent).
1. Learn about the tasks that {% data variables.copilot.copilot_cloud_agent %} is best suited for. These are generally well-defined and scoped issues, such as increasing test coverage, fixing bugs or flaky tests, or updating config files or documentation. See [AUTOTITLE](/copilot/tutorials/cloud-agent/get-the-best-results).
1. Consider how {% data variables.copilot.copilot_cloud_agent %} fits alongside other tools in your organization's workflows. For an example scenario that walks through how to use {% data variables.copilot.copilot_cloud_agent %} alongside other AI features on {% data variables.product.github %}, see [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai).
## 2. Secure
-All AI models are trained to meet a request, even if they don't have all the information needed to provide a good answer, and this can lead them to make mistakes. By following best practices, you can build on the default security features of {% data variables.copilot.copilot_cloud_agent %}.
-
-1. Give {% data variables.product.prodname_copilot_short %} the information it needs to work successfully in a repository using a `copilot-instructions.md` file. See [AUTOTITLE](/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot).
-1. Set up the {% data variables.product.prodname_copilot_short %} development environment for a repository with access to the tools and package repositories approved by the organization using a `copilot-setup-steps.yml` file and local MCP servers. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment) and [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp).
-1. Follow best practices for storing secrets securely. See [AUTOTITLE](/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions).
-1. Enable code security features to further lower the risk of leaking secrets and introducing vulnerabilities into the code. See [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/creating-a-custom-security-configuration).
-1. Configure your branch rulesets to ensure that all pull requests raised by {% data variables.product.prodname_copilot_short %} are approved by a second user with write permissions (a sub-option of "Require a pull request before merging"). See {% ifversion ghec %}[AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance), {% endif %}[AUTOTITLE](/organizations/managing-organization-settings/creating-rulesets-for-repositories-in-your-organization) and [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#require-a-pull-request-before-merging).
+Build on {% data variables.copilot.copilot_cloud_agent %}'s built-in protections before enabling it in an organization. See [AUTOTITLE](/copilot/tutorials/cloud-agent/build-guardrails).
## 3. Pilot
diff --git a/content/copilot/tutorials/plan-a-project.md b/content/copilot/tutorials/plan-a-project.md
index 3c6289608572..4ddc53cd7594 100644
--- a/content/copilot/tutorials/plan-a-project.md
+++ b/content/copilot/tutorials/plan-a-project.md
@@ -108,7 +108,7 @@ Now that you’ve generated and refined your project issues, you can assign them
## Further reading
-* [AUTOTITLE](/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-or-update-issues)
+* [AUTOTITLE](/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues)
* [AUTOTITLE](/copilot/tutorials/cloud-agent/pilot-cloud-agent)
* [AUTOTITLE](/copilot/tutorials/cloud-agent/get-the-best-results)
* [AUTOTITLE](/copilot/tutorials/speed-up-development-work)
diff --git a/content/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/troubleshooting-your-migration-with-github-enterprise-importer.md b/content/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/troubleshooting-your-migration-with-github-enterprise-importer.md
index 8fe5c79b5091..4f8a9f671de4 100644
--- a/content/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/troubleshooting-your-migration-with-github-enterprise-importer.md
+++ b/content/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/troubleshooting-your-migration-with-github-enterprise-importer.md
@@ -170,6 +170,15 @@ This usually happens where commits have been removed with a force push, or a bra
In this case, the comments are not lost, but are migrated as inline pull request comments to preserve history, rather than as a review attached to a specific commit.
+### The pull request review is imported as an inline pull request comment
+
+These warnings indicate that a pull request review could not be migrated is in its original form, but as inline pull request comments:
+
+- `INVALID_REVIEW_THREAD`
+- `LINE_NOT_FOUND_IN_DIFF`
+- `REVIEW_THREAD_MISSING_BODY`
+
+
### Team references are broken after an organization migration
{% data reusables.enterprise-migration-tool.team-references %}
diff --git a/content/search-github/searching-on-github/searching-for-repositories.md b/content/search-github/searching-on-github/searching-for-repositories.md
index fa9f6ab2822e..23352725751c 100644
--- a/content/search-github/searching-on-github/searching-for-repositories.md
+++ b/content/search-github/searching-on-github/searching-for-repositories.md
@@ -216,6 +216,19 @@ You can search for repositories that have a funding file using the `has:funding-
{% endif %}
+{% ifversion virtual-registry %}
+
+## Search based on deployment context
+
+If your organization has added records to the {% data variables.product.virtual_registry %}, you can use this data to filter lists of repositories, such as the organization's "Repositories" page. For more information, see [AUTOTITLE](/code-security/concepts/supply-chain-security/linked-artifacts).
+
+| Qualifier | Description |
+| --------- | ----------- |
+| `deployable:true` | There is an active **storage record** for the repository in the {% data variables.product.virtual_registry %}. |
+| `deployed:true` | There is an active **deployment record** for the repository in the {% data variables.product.virtual_registry %}. |
+
+{% endif %}
+
## Further reading
* [AUTOTITLE](/search-github/getting-started-with-searching-on-github/sorting-search-results)
diff --git a/data/reusables/organizations/organization-rulesets-targeting-repositories-step.md b/data/reusables/organizations/organization-rulesets-targeting-repositories-step.md
index 8026e46591cd..28df884c8b61 100644
--- a/data/reusables/organizations/organization-rulesets-targeting-repositories-step.md
+++ b/data/reusables/organizations/organization-rulesets-targeting-repositories-step.md
@@ -1,4 +1,4 @@
-With your ruleset, you can choose to target all repositories in your organization, repositories in your organization that match a certain naming convention, repositories in your organization that have custom properties, or a list of manually selected repositories in your organization.
+With your ruleset, you can choose to target all repositories in your organization or a list of manually selected repositories. You can also filter by naming convention{% ifversion virtual-registry %}, deployment context,{% endif %} or custom properties.
For more information about custom properties, see [AUTOTITLE](/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
@@ -32,3 +32,16 @@ To target all repositories in your organization, in the "Target repositories" se
> You can add multiple targeting criteria to the same ruleset. For example, you could include any repositories matching the pattern `*cat*`, then specifically exclude a repository matching the pattern `not-a-cat`.
1. Optionally, on the ruleset configuration page, select **Prevent renaming of target repositories**.
+
+{% ifversion virtual-registry %}
+
+#### Targeting repositories by deployment context
+
+{% data reusables.security.deployable-rulesets %}
+
+1. In the "Target repositories" section, next to "Repository targeting criteria" select **Repositories matching a filter**.
+1. Next to "Repositories matching a filter", click the {% octicon "pencil" aria-label="Open filter dialog" %} icon.
+1. Use the `deployed:true` or `deployable:true` filters to target repositories.
+1. Click **Apply**.
+
+{% endif %}
diff --git a/data/reusables/security/deployable-rulesets.md b/data/reusables/security/deployable-rulesets.md
new file mode 100644
index 000000000000..e17a31073f82
--- /dev/null
+++ b/data/reusables/security/deployable-rulesets.md
@@ -0,0 +1 @@
+If your organization has added records to the {% data variables.product.virtual_registry %}, you can target repositories that are **deployable** (have an active storage record) or **deployed** (have an active deployment record). See [AUTOTITLE](/code-security/concepts/supply-chain-security/linked-artifacts).
diff --git a/src/content-linter/scripts/lint-content.ts b/src/content-linter/scripts/lint-content.ts
index f4a94433e51a..26997f8ec7d3 100755
--- a/src/content-linter/scripts/lint-content.ts
+++ b/src/content-linter/scripts/lint-content.ts
@@ -285,8 +285,8 @@ async function main() {
console.log('\n')
const took = end - start
if (warningFileCount > 0 || errorFileCount > 0) {
- spinner.info(
- `💡 You can disable linter rules for specific lines or blocks of text. See https://gh.io/suppress-linter-rule.\n\n`,
+ console.log(
+ `💡 You can disable linter rules for specific lines or blocks of text. See https://gh.io/suppress-linter-rule.\n`,
)
}
spinner.info(