Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}?

Expand All @@ -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.

![Screenshot of an artifact page. Highlighted fields: the "Deployments" list, including tags for "Prod", "sensitive data", and "pacific-east".](/assets/images/help/security/virtual-registry-deployment-record.png)

>[!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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand All @@ -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`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -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**.

![Screenshot of the form for creating a pull request. A Copilot icon is highlighted, and a box appears with the "Summary" command.](/assets/images/help/copilot/copilot-description-suggestion.png)

1. Review the generated summary carefully. Add any additional context, then click **Create pull request** or **Update comment**.
Original file line number Diff line number Diff line change
@@ -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
---

Original file line number Diff line number Diff line change
@@ -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)
Original file line number Diff line number Diff line change
@@ -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)
Loading
Loading