Skip to content

Commit aba407c

Browse files
authored
Merge pull request #43955 from github/repo-sync
Repo sync
2 parents 19b194b + 2e3c8fe commit aba407c

169 files changed

Lines changed: 18619 additions & 4709 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Docs changelog
22

3+
**23 April 2026**
4+
5+
We added documentation for the new `gh skill` command (public preview), which you can use to discover, install, update, and publish agent skills directly from GitHub CLI.
6+
7+
See [Adding agent skills for GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/cloud-agent/add-skills#managing-skills-with-github-cli).
8+
9+
<hr>
10+
11+
**21 April 2026**
12+
13+
We reorganized the Copilot how-tos for GitHub.com into a new [Copilot on GitHub](https://docs.github.com/en/copilot/how-tos/copilot-on-github) category, structured around five task-based map topics that follow the way people actually use Copilot on GitHub:
14+
15+
* [Set up Copilot](https://docs.github.com/en/copilot/how-tos/copilot-on-github/set-up-copilot): Enable Copilot, configure AI models, and set up code review.
16+
* [Chat with Copilot](https://docs.github.com/en/copilot/how-tos/copilot-on-github/chat-with-copilot): A streamlined [quickstart](https://docs.github.com/en/copilot/how-tos/copilot-on-github/chat-with-copilot/get-started-with-chat) with example prompts, plus focused articles for chat on GitHub and chat on GitHub Mobile.
17+
* [Customize Copilot](https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot): Add custom instructions, customize coding agents (MCP, hooks, skills, firewall), and curate context with Spaces and content exclusions. A new [quickstart](https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview) walks through a scenario that ties these features together.
18+
* [Copilot for GitHub tasks](https://docs.github.com/en/copilot/how-tos/copilot-on-github/copilot-for-github-tasks): Create issues, generate PR summaries, and use the GitHub MCP server from the web UI.
19+
* [Use Copilot agents](https://docs.github.com/en/copilot/how-tos/copilot-on-github/use-copilot-agents) — Six articles following the agent workflow end-to-end: kick off a task, research and iterate, monitor sessions, request code review, and review output. Includes a new [hands-on quickstart](https://docs.github.com/en/copilot/how-tos/copilot-on-github/use-copilot-agents/overview) you can complete in about ten minutes.
20+
21+
Every article was revised for plain language, scannable structure, and value-focused intros. Web-specific content was separated from IDE and CLI content so you see only what's relevant to GitHub.com.
22+
23+
<hr>
24+
325
**21 April 2026**
426

527
We recently published two new guides for organizations adopting Copilot cloud agent.

content/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-aws.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,6 @@ Edit the trust policy, adding the `sub` field to the validation conditions. For
7070
}
7171
```
7272

73-
For repositories created after June 18, 2026, or that have opted in to immutable subject claims, the `sub` claim includes immutable owner and repository IDs (not available on {% data variables.product.prodname_ghe_server %}). Make sure your trust policy matches the format your repository uses. For more information, see [AUTOTITLE](/actions/reference/openid-connect-reference#immutable-subject-claims).
74-
75-
```json copy
76-
"Condition": {
77-
"StringEquals": {
78-
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
79-
"token.actions.githubusercontent.com:sub": "repo:octo-org-123456/octo-repo-456789:ref:refs/heads/octo-branch"
80-
}
81-
}
82-
```
83-
8473
If you use a workflow with an environment, the `sub` field must reference the environment name: `repo:ORG-NAME/REPO-NAME:environment:ENVIRONMENT-NAME`. For more information, see [AUTOTITLE](/actions/reference/openid-connect-reference#filtering-for-a-specific-environment).
8574

8675
{% data reusables.actions.oidc-deployment-protection-rules %}

content/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-azure.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ This guide gives an overview of how to configure Azure to trust {% data variable
3232

3333
{% data reusables.actions.oidc-on-ghecom %}
3434

35-
For repositories created after June 18, 2026, and repository renames or transfers after that date, use an immutable default OIDC `sub` claim that includes owner and repository IDs (not available on {% data variables.product.prodname_ghe_server %}). Existing repositories keep the previous format unless they opt in. For more information, see [AUTOTITLE](/actions/reference/openid-connect-reference#immutable-subject-claims).
36-
3735
{% ifversion ghes %}
3836
{% data reusables.actions.oidc-endpoints %}
3937
<!-- This note is indented to align with the above reusable. -->

content/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-google-cloud-platform.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ This guide gives an overview of how to configure GCP to trust {% data variables.
3131

3232
{% data reusables.actions.oidc-on-ghecom %}
3333

34-
For repositories created after June 18, 2026, and repository renames or transfers after that date, use an immutable default OIDC `sub` claim that includes owner and repository IDs (not available on {% data variables.product.prodname_ghe_server %}). Existing repositories keep the previous format unless they opt in. For more information, see [AUTOTITLE](/actions/reference/openid-connect-reference#immutable-subject-claims).
35-
3634
{% ifversion ghes %}
3735
{% data reusables.actions.oidc-endpoints %}
3836
<!-- This note is indented to align with the above reusable. -->

content/actions/reference/security/oidc.md

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The OIDC token includes the following claims.
2626
| ----------- | -----| ---------------------- |
2727
| `aud`| Audience | By default, this is the URL of the repository owner, such as the organization that owns the repository. You can set a custom audience with a toolkit command: [`core.getIDToken(audience)`](https://www.npmjs.com/package/@actions/core/v/1.6.0) |
2828
| `iss`| Issuer | The issuer of the OIDC token: {% ifversion ghes %}`https://HOSTNAME/_services/token`{% else %}`https://token.actions.githubusercontent.com`{% endif %} |
29-
| `sub`| Subject | Defines the subject claim that is to be validated by the cloud provider. This setting is essential for making sure that access tokens are only allocated in a predictable way. For repositories using immutable subject claims, the `sub` format includes immutable owner and repository IDs (not available on {% data variables.product.prodname_ghe_server %}). |
29+
| `sub`| Subject | Defines the subject claim that is to be validated by the cloud provider. This setting is essential for making sure that access tokens are only allocated in a predictable way. |
3030

3131
### Additional standard JOSE header parameters and claims
3232

@@ -163,22 +163,6 @@ You can configure a subject that includes metadata containing colons. In this ex
163163

164164
{% endif %}
165165

166-
## Immutable subject claims
167-
168-
The OpenID Connect (OIDC) specification requires subject (`sub`) claims to be locally unique and never reassigned. Previously, the default `sub` format used only organization and repository names. If a namespace was recycled, a different owner could create the same subject value.
169-
170-
To help prevent this scenario, repositories created after June 18, 2026 now use an immutable default subject format that includes both the owner ID and repository ID. This rollout does not include {% data variables.product.prodname_ghe_server %}.
171-
172-
* Syntax: `repo:OWNER-ID/REPO-ID:ref:refs/heads/BRANCH`
173-
* Previous format example: `repo:octo-org/octo-repo:ref:refs/heads/main`
174-
* Immutable format example: `repo:octo-org-123456/octo-repo-456789:ref:refs/heads/main`
175-
176-
The `-` separator is used between names and IDs because `-` cannot appear in {% data variables.product.github %} usernames or repository names.
177-
178-
Repositories created before June 18, 2026 keep the previous format unless you opt in to immutable subject claims. You can opt in at the organization or repository level by using the OIDC settings UI or REST API.
179-
180-
Repository renames and transfers after June 18, 2026 also move to the immutable subject format.
181-
182166
## Configuring the subject in your cloud provider
183167

184168
To configure the subject in your cloud provider's trust relationship, you must add the subject string to its trust configuration. The following examples demonstrate how various cloud providers can accept the same `repo:octo-org/octo-repo:ref:refs/heads/demo-branch` subject in different ways:
@@ -190,15 +174,6 @@ To configure the subject in your cloud provider's trust relationship, you must a
190174
| Google Cloud Platform| `(assertion.sub=='repo:octo-org/octo-repo:ref:refs/heads/demo-branch')` |
191175
| HashiCorp Vault| `bound_subject="repo:octo-org/octo-repo:ref:refs/heads/demo-branch"` |
192176

193-
For repositories created after June 18, 2026, or that have opted in to immutable subject claims, the `sub` claim includes `owner_id` and `repo_id` as shown in the immutable examples. Update your trust policies to match the format your repository uses. Immutable subject claims are not available on {% data variables.product.prodname_ghe_server %}.
194-
195-
| Cloud provider | Immutable format example |
196-
| ------ | ----------- |
197-
| Amazon Web Services | `"token.actions.githubusercontent.com:sub": "repo:octo-org-123456/octo-repo-456789:ref:refs/heads/demo-branch"` |
198-
| Azure| `repo:octo-org-123456/octo-repo-456789:ref:refs/heads/demo-branch` |
199-
| Google Cloud Platform| `(assertion.sub=='repo:octo-org-123456/octo-repo#456789:ref:refs/heads/demo-branch')` |
200-
| HashiCorp Vault| `bound_subject="repo:octo-org-123456/octo-repo-456789:ref:refs/heads/demo-branch"` |
201-
202177
For more information about configuring specific cloud providers, see the guides listed in [AUTOTITLE](/actions/how-tos/security-for-github-actions/security-hardening-your-deployments).
203178

204179
## Customizing the token claims
@@ -340,7 +315,6 @@ Customizing the claims results in a new format for the entire `sub` claim, which
340315
> [!NOTE]
341316
> The `sub` claim uses the shortened form `repo` (for example, `repo:ORG-NAME/REPO-NAME`) instead of `repository` to reference the repository. {% ifversion fpt or ghec or ghes > 3.15 %}
342317
> Any `:` within the context value will be replaced with `%3A`. {% endif %}
343-
> For repositories using immutable subject claims (not available on {% data variables.product.prodname_ghe_server %}), `owner_id` and `repo_id` are always included in the `repo` segment of the `sub` claim, even when you customize claims with `include_claim_keys`. You can't remove these IDs from the immutable format.
344318
345319
The following example templates demonstrate various ways to customize the subject claim. To configure these settings on {% data variables.product.prodname_dotcom %}, admins use the REST API to specify a list of claims that must be included in the subject (`sub`) claim.
346320

content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ The following features are currently unavailable on {% data variables.enterprise
3131
| Some features currently in {% data variables.release-phases.public_preview %} or {% data variables.release-phases.private_preview %} | Certain features that are in a preview phase on {% data variables.product.prodname_dotcom_the_website %} may not be available on {% data variables.enterprise.data_residency_site %} until GA. | |
3232
| Migrations REST API | Currently unavailable. | [AUTOTITLE](/rest/migrations) |
3333
| Streaming audit logs to Amazon S3 with OpenID Connect (OIDC) | Currently unavailable. | [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise) |
34+
| Organization-level dependency insights | Currently unavailable. | [AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-dependencies-in-your-organization) |
3435

3536
## Permanently unavailable features
3637

content/code-security/concepts/supply-chain-security/dependency-graph-data.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,18 @@ To enable automatic dependency submission, see [AUTOTITLE](/code-security/supply
5454

5555
## {% data variables.product.prodname_dependabot %} graph jobs
5656

57-
This method uses a special type of {% data variables.product.prodname_dependabot %} job that builds a dependency snapshot and uploads it to the dependency submission API. This is currently only supported for **Go** dependencies.
57+
{% data variables.product.prodname_dependabot %} graph jobs use a special type of {% data variables.product.prodname_dependabot %} job to build a dependency snapshot and upload it to the dependency submission API. {% data variables.product.prodname_dependabot %} graph jobs are currently supported for **Go** and **Python** dependencies.
58+
59+
For supported ecosystems, {% data variables.product.prodname_dependabot %} graph jobs provide:
60+
61+
* Full transitive dependency coverage, which means {% data variables.product.prodname_dependabot %} can alert you to vulnerabilities in indirect dependencies that static analysis may miss.
62+
* Private registry access through {% data variables.product.prodname_dependabot %} secrets configured at the organization or repository level. For more information, see [AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot).
63+
* Private packages that are not accessible through configured {% data variables.product.prodname_dependabot %} secrets are gracefully omitted from the dependency graph without causing a failure.
5864

5965
This approach is similar to automatic dependency submission, but does not incur charges for {% data variables.product.prodname_actions %} minutes. It can also access organization-wide configurations for private registries you've set up for {% data variables.product.prodname_dependabot %}.
6066

67+
> [!NOTE] {% data variables.product.prodname_dependabot %} graph jobs take precedence over automatic dependency submission. For example, if your Python repository previously used automatic dependency submission, those jobs will no longer run once {% data variables.product.prodname_dependabot %} graph jobs are active. The only requirement is that the dependency graph is enabled for your repository.
68+
6169
{% endif %}
6270

6371
## The {% data variables.dependency-submission-api.name %}

content/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configuring-automatic-dependency-submission-for-your-repository.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ Dependency graph must be enabled for the repository for you to enable automatic
1919

2020
You must also enable {% data variables.product.prodname_actions %} for the repository in order to use automatic dependency submission. For more information, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository).
2121

22+
> [!NOTE]
23+
> For ecosystems that support {% data variables.product.prodname_dependabot %} graph jobs, you do not need to enable automatic dependency submission. {% data variables.product.prodname_dependabot %} graph jobs run automatically when the dependency graph is enabled for your repository, and they take precedence over automatic dependency submission. See [AUTOTITLE](/code-security/concepts/supply-chain-security/dependency-graph-data#dependabot-graph-jobs).
24+
2225
## Enabling automatic dependency submission
2326

2427
Repository administrators can enable or disable automatic dependency submission for a repository by following the steps outlined in this procedure.
@@ -39,14 +42,24 @@ You can view details about the automatic workflows run by viewing the **Actions*
3942

4043
> [!NOTE] After you enable automatic dependency submission, we'll automatically trigger a run of the action. Once enabled, it'll run each time a commit to the default branch updates a manifest.
4144
42-
## Accessing private registries with self-hosted runners
45+
## Accessing private registries
46+
47+
### Using {% data variables.product.prodname_dependabot %} secrets
48+
49+
For ecosystems that support {% data variables.product.prodname_dependabot %} graph jobs, you can configure access to private registries using {% data variables.product.prodname_dependabot %} secrets at the organization or repository level.
50+
51+
When {% data variables.product.prodname_dependabot %} graph jobs encounter private packages that are not accessible through configured secrets, those packages are gracefully omitted from the dependency graph without causing a failure.
52+
53+
For more information on configuring private registry access, see [AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot).
54+
55+
### Using self-hosted runners
4356

44-
You can configure self-hosted runners to run automatic dependency submission jobs, instead of using the {% data variables.product.prodname_actions %} infrastructure. This is necessary to access private Maven registries. The self-hosted runners must be running on Linux or macOS. For .NET and Python auto-submission, they must have access to the public internet in order to download the latest component-detection release.
57+
You can configure **self-hosted runners** to run automatic dependency submission jobs, instead of using the {% data variables.product.prodname_actions %} infrastructure. This is necessary to access private registries for ecosystems that do not support {% data variables.product.prodname_dependabot %} graph jobs, or when your registries are only reachable from within your network. The self-hosted runners must be running on Linux or macOS. For .NET and Python auto-submission, they must have access to the public internet in order to download the latest component-detection release.
4558

4659
1. Provision one or more self-hosted runners, at the repository or organization level. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners) and [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners).
4760
1. Assign a `dependency-submission` label to each runner you want automatic dependency submission to use. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners#assigning-a-label-to-a-self-hosted-runner).
4861
{% data reusables.repositories.navigate-to-code-security-and-analysis %}
49-
1. Under "Dependency graph", click the dropdown menu next to Automatic dependency submission, then select **Enabled for labeled runners**.
62+
1. Under "Dependency graph", click the dropdown menu next to "Automatic dependency submission", then select **Enabled for labeled runners**.
5063

5164
Once enabled, automatic dependency submission jobs will run on the self-hosted runners, unless:
5265
* The self-hosted runners are unavailable.

content/code-security/reference/supply-chain-security/automatic-dependency-submission.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ The .NET autosubmission action uses the open source [component-detection](https:
9494

9595
### Python projects
9696

97-
Python uses the open source [component-detection](https://github.com/microsoft/component-detection/) project as its underlying graph generation engine. The autosubmission action for Python will only run if there is a `requirements.txt` file in the root directory of the repository. Python autosubmission does not currently support private packages; packages referenced in `requirements.txt` which are not publicly available will cause the autosubmission action to fail.
97+
Python repositories with the dependency graph enabled use {% data variables.product.prodname_dependabot %} graph jobs to generate dependency graphs. {% data variables.product.prodname_dependabot %} graph jobs take precedence over automatic dependency submissions, and the autosubmission workflow described below will no longer run for Python projects. For more information, see [AUTOTITLE](/code-security/concepts/supply-chain-security/dependency-graph-data#dependabot-graph-jobs).
98+
99+
Automatic dependency submission for Python uses the open source [component-detection](https://github.com/microsoft/component-detection/) project as its underlying graph generation engine. The autosubmission action will only run if there is a `requirements.txt` file in the root directory of the repository. Python autosubmission does not currently support private packages; packages referenced in `requirements.txt` which are not publicly available will cause the autosubmission action to fail.
98100

99101
> [!NOTE]
100102
> This action uses [actions/setup-python](https://github.com/actions/setup-python) to install Python. You must include a .python-version file in your repository to specify the Python version to be installed.

0 commit comments

Comments
 (0)