跳至主要内容

不可变发布

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

不可变发布是指在发布后资产和关联的 Git 标记无法更改的发布。使用此类发布可通过阻止供应链攻击来提升安全性。攻击者无法

  • 向当前项目发布注入漏洞或恶意软件。
  • 对资产和标签进行更改,可能会破坏开发者工作流。

不可变发布保护的内容

当您启用不可变发布时,将强制执行以下保护措施

  • Git 标签不能被移动:一旦发布不可变发布,其关联的 Git 标签将锁定到特定提交,无法更改,也无法在发布存在期间删除。如果删除不可变发布,您可以删除该标签,但不能重新使用相同的标签名称。
  • 发布资产不可被修改或删除:所有附加到发布的文件(如二进制文件和压缩包)都受到防止修改或删除的保护。

此外,创建不可变发布会自动生成一个发布证明,这是一种可通过加密方式验证的发布记录,包含发布标签、提交 SHA 和发布资产。使用者可以利用该证明确保他们使用的发布和制品与 GitHub 上发布的完全匹配。

注意

不可变发布包括对仓库复活攻击的防护。即使您删除了仓库并使用相同名称重新创建,也无法重用原仓库中与不可变发布关联的标签。

如果发布是不可变的,您将在发布页面标题下看到“不可变” 在发布页面的标题下方。

发布不可变发布的最佳实践

我们建议使用以下工作流程来发布不可变发布。

  1. 将发布创建为草稿。
  2. 将所有关联资产附加到草稿发布。
  3. 发布草稿发布。

这确保所有资产在发布变为不可变之前已就绪,避免需要规避不可变性限制。

后续步骤

要了解如何为您的仓库或组织启用不可变发布,请参阅 防止对您的发布进行更改

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

© . This site is unofficial and not affiliated with GitHub, Inc.