Skip to content

Commit 7d420b2

Browse files
authored
Merge pull request #40858 from github/repo-sync
Repo sync
2 parents 4b0f8e4 + a79730e commit 7d420b2

File tree

22 files changed

+284
-135
lines changed

22 files changed

+284
-135
lines changed

.github/workflows/test-changed-content.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ jobs:
5151
env:
5252
CHANGED_FILES: ${{ steps.changed_files.outputs.filtered_changed_files }}
5353
DELETED_FILES: ${{ steps.changed_files.outputs.filtered_deleted_files }}
54-
run: npm test -- src/content-render/tests/render-changed-and-deleted-files.js
54+
run: npm test -- src/content-render/tests/render-changed-and-deleted-files.ts

content/actions/how-tos/create-and-publish-actions/manage-custom-actions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ To use a specific action version, users can configure their {% data variables.pr
5050

5151
### Using tags for release management
5252

53-
{% ifversion immutable-releases-preview %}
53+
{% ifversion fpt or ghec %}
5454
> [!NOTE] If you have enabled immutable releases to help prevent supply chain attacks and accidental changes to your releases, instead see [AUTOTITLE](/actions/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases).
5555
{% endif %}
5656

content/actions/how-tos/create-and-publish-actions/release-and-maintain-actions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ To support the developer process in the next section, add two {% data variables.
5555
1. Add a workflow that triggers when a commit is pushed to a feature branch or to `main` or when a pull request is created. Configure the workflow to run your unit and integration tests. For an example, see [this workflow](https://github.com/actions/javascript-action/blob/main/.github/workflows/ci.yml).
5656
1. Add a workflow that triggers when a release is published or edited. Configure the workflow to ensure semantic tags are in place. You can use an action like [JasonEtco/build-and-tag-action](https://github.com/JasonEtco/build-and-tag-action) to compile and bundle the JavaScript and metadata file and force push semantic major, minor, and patch tags. For more information about semantic tags, see [About semantic versioning](https://docs.npmjs.com/about-semantic-versioning).
5757

58-
{% ifversion immutable-releases-preview %}
58+
{% ifversion fpt or ghec %}
5959
> [!NOTE]
6060
> If you enable immutable releases for your repository, you cannot use this action to force push tags tied to releases on {% data variables.product.github %}. To learn how to manage your releases with immutable releases, see [AUTOTITLE](/actions/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases).
6161
{% endif %}

content/actions/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ title: Using immutable releases and tags to manage your action's releases
33
shortTitle: Use immutable releases
44
intro: 'Learn how you can use a combination of immutable releases on {% data variables.product.github %} and Git tags to manage your action''s releases.'
55
versions:
6-
feature: immutable-releases-preview
6+
fpt: '*'
7+
ghec: '*'
78
topics:
89
- Actions
910
- Code Security
1011
- Vulnerabilities
1112
- Dependencies
1213
---
1314

14-
{% data reusables.releases.immutable-releases-preview-note %}
15-
1615
If you enable immutable releases on your action's repository, you can manage your action's releases as follows:
1716

1817
1. To start the release cycle, develop and validate a potential release for your action on a release branch.

content/code-security/supply-chain-security/end-to-end-supply-chain/securing-builds.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ How exactly you sign your build will depend on what sort of code you're writing,
5959

6060
For more information, see [AUTOTITLE](/actions/security-guides/encrypted-secrets){% ifversion fpt or ghec %}, [AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect),{% endif %} and [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
6161

62-
{% ifversion immutable-releases-preview %}
62+
{% ifversion fpt or ghec %}
6363

6464
## Use immutable releases
6565

content/code-security/supply-chain-security/understanding-your-software-supply-chain/immutable-releases.md

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,43 @@
22
title: Immutable releases
33
intro: 'Learn about immutable releases and how they can help you maintain the integrity of your software supply chain.'
44
versions:
5-
feature: immutable-releases-preview
5+
fpt: '*'
6+
ghec: '*'
67
type: overview
78
topics:
89
- Code Security
910
- Vulnerabilities
1011
- Dependencies
1112
---
1213

13-
{% data reusables.releases.immutable-releases-preview-note %}
14+
**Immutable releases** are releases where the assets and associated Git tag cannot be changed after publication. The use of this type of release increases security by blocking supply chain attacks. Attackers cannot:
15+
* Inject vulnerabilities or malware into current project releases.
16+
* Make changes to assets and tags that may break developer workflows.
1417

15-
**Immutable releases** are releases where the assets and associated Git tag cannot be changed after publication. They increase security by blocking:
16-
* Supply chain attacks where attackers inject vulnerabilities or malware into current project releases
17-
* Accidental changes to assets and tags that may break developer workflows
18+
## What immutable releases protect
19+
20+
When you enable immutable releases, the following protections are enforced:
21+
22+
* **Git tags cannot be moved or deleted**: Once an immutable release is published, its associated Git tag is locked to a specific commit and cannot be changed or removed.
23+
* **Release assets cannot be modified or deleted**: All files attached to the release (such as binaries and archives) are protected from modification or deletion.
1824

1925
Additionally, creating an immutable release automatically generates a **release attestation**, which is a cryptographically verifiable record of a release containing the release tag, commit SHA, and release assets. Consumers can use this attestation to make sure the releases and artifacts they are using exactly match the published {% data variables.product.github %} releases.
2026

27+
> [!NOTE]
28+
> Immutable releases include protection against repository resurrection attacks. Even if you delete a repository and create a new one with the same name, you cannot reuse tags that were associated with immutable releases in the original repository.
29+
2130
If a release is immutable, you will see "{% octicon "lock" aria-hidden="true" %} Immutable" below the title on the release page.
2231

32+
## Best practices for publishing immutable releases
33+
34+
We recommend you use the following workflow for publishing an immutable release.
35+
36+
1. Create the release as a draft.
37+
1. Attach all associated assets to the draft release.
38+
1. Publish the draft release.
39+
40+
This ensures that all assets are in place before the release becomes immutable, preventing the need to work around immutability restrictions.
41+
2342
## Next steps
2443

2544
To learn how to enable immutable releases for your repository or organization, see [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/preventing-changes-to-your-releases).

content/code-security/supply-chain-security/understanding-your-software-supply-chain/preventing-changes-to-your-releases.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ title: Preventing changes to your releases
33
shortTitle: Prevent release changes
44
intro: 'You can enforce immutable releases for a repository or organization to prevent potential vulnerabilities.'
55
versions:
6-
feature: immutable-releases-preview
6+
fpt: '*'
7+
ghec: '*'
78
type: overview
89
topics:
910
- Code Security
1011
- Vulnerabilities
1112
- Dependencies
1213
---
1314

14-
{% data reusables.releases.immutable-releases-preview-note %}
15-
1615
## Enforcing immutable releases for your repository
1716

1817
{% data reusables.repositories.navigate-to-repo %}

content/code-security/supply-chain-security/understanding-your-software-supply-chain/verifying-the-integrity-of-a-release.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ title: Verifying the integrity of a release
33
shortTitle: Verify release integrity
44
intro: 'You can avoid tampering and accidental changes by ensuring the releases you use have not been modified after publication.'
55
versions:
6-
feature: immutable-releases-preview
6+
fpt: '*'
7+
ghec: '*'
78
type: overview
89
topics:
910
- Code Security
@@ -12,8 +13,6 @@ topics:
1213
defaultTool: cli
1314
---
1415

15-
{% data reusables.releases.immutable-releases-preview-note %}
16-
1716
{% cli %}
1817

1918
## Prerequisites

content/copilot/concepts/auto-model-selection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ contentType: concepts
1717

1818
Experience less rate limiting and reduce the mental load of choosing a model by letting {% data variables.copilot.copilot_auto_model_selection %} automatically choose the best available model.
1919

20-
In {% data variables.product.prodname_vscode_shortname %}, {% data variables.copilot.copilot_auto_model_selection %} chooses from {% data variables.copilot.copilot_gpt_41 %}, {% data variables.copilot.copilot_gpt_5_mini %}, {% data variables.copilot.copilot_gpt_5 %}, {% data variables.copilot.copilot_claude_sonnet_35 %}, and {% data variables.copilot.copilot_claude_sonnet_40 %}, based on availability and to help reduce rate limiting. Included models may change over time.
20+
In {% data variables.product.prodname_vscode_shortname %}, {% data variables.copilot.copilot_auto_model_selection %} chooses from {% data variables.copilot.copilot_gpt_41 %}, {% data variables.copilot.copilot_gpt_5_mini %}, {% data variables.copilot.copilot_gpt_5 %}, {% data variables.copilot.copilot_claude_sonnet_35 %}, and {% data variables.copilot.copilot_claude_sonnet_45 %}, based on availability and to help reduce rate limiting. Included models may change over time.
2121

2222
Automatically selected models **won't** include these models:
2323
* Models with premium request multipliers greater than one. See [AUTOTITLE](/copilot/reference/ai-models/supported-models#model-multipliers).

content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da
3131

3232
## Creating a release
3333

34+
{% ifversion fpt or ghec %}
35+
36+
> [!TIP]
37+
> If you have enabled immutable releases for your repository, it's recommended to create releases as drafts first, attach all assets, and then publish. This ensures all assets are in place before the release becomes immutable. For more information, see [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/immutable-releases).
38+
39+
{% endif %}
40+
3441
{% webui %}
3542

3643
{% data reusables.repositories.navigate-to-repo %}
@@ -67,9 +74,11 @@ If you @mention any {% data variables.product.github %} users in the notes, the
6774

6875
## Editing a release
6976

70-
{% ifversion immutable-releases-preview %}
77+
{% ifversion fpt or ghec %}
78+
7179
> [!NOTE]
7280
> If you have enabled immutable releases for your repository, you can only edit the title and release notes after a release is published. See [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/immutable-releases).
81+
7382
{% endif %}
7483

7584
{% webui %}

0 commit comments

Comments
 (0)