Skip to main content

不可变版本

了解不可变版本以及它们如何帮助维护软件供应链的完整性。

不可变版本是指发布后资产和关联 Git 标签无法更改的版本****。 这种版本的使用通过阻止供应链攻击来提高安全性。 攻击者无法:

  • 将漏洞或恶意软件注入当前项目版本。
  • 对可能会中断开发人员工作流的资产和标记进行更改。

不可变版本保护的内容

启用不可变版本时,将强制实施以下保护:

  •         **无法移动或删除 Git 标记**:发布不可变版本后,其关联的 Git 标记被锁定到特定提交,无法更改或删除。
    
  •         **无法修改或删除发布资产**:附加到发布的所有文件(如二进制文件和存档)均受到修改或删除的保护。
    

此外,创建不可变版本会自动生成发布证明,该证明是包含发布标签、提交 SHA 和发布资产的加密可验证发布记录****。 使用者可以使用此证明来确保其使用的版本和工件与已发布的 GitHub 版本完全匹配。

注意

不可变版本包括针对存储库复活攻击的保护。 即使删除存储库并创建具有相同名称的新存储库,也不能重复使用与原始存储库中不可变版本关联的标记。

对于不可变版本,版本页的标题下方带有“ Immutable”。

发布不可变版本的最佳做法

建议使用以下工作流发布不可变版本。

  1. 以草稿的形式创建发布。
  2. 将所有关联的资产附加到草稿发布。
  3. 发布草稿版本。

确保在发布成为不可更改的之前,所有资产都已到位,以避免需要绕过不可变性限制。

后续步骤

要了解如何为仓库或组织启用不可变版本,请参阅 阻止对版本进行更改

要了解如何确保版本和本地资产未发生更改,请参阅 验证版本的完整性