Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

此版本的 GitHub Enterprise 已停止服务 2023-01-18. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

删除和恢复包

了解如何删除或恢复包。

GitHub Packages 适用于 GitHub Free、GitHub Pro、面向组织的 GitHub Free、GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 或更高版本以及 GitHub AE。 有关升级 GitHub Enterprise Server 实例更多信息,请参阅“关于升级至新版本”和 Upgrade assistant以从你当前的发布版本中查找升级路径。

GitHub上的包删除和恢复支持

在 GitHub 上,如果您有必要的访问权限,您可以删除:

  • 整个私有包
  • 整个公共包(如果任何包版本不超过 5000 次下载)
  • 私有包的特定版本
  • 公共包的特定版本(如果包版本不超过 5,000 次下载)

注意:

  • 如果任何版本的包下载量超过 5,000 次,则无法删除公共包。 在此方案中,请联系 GitHub 支持获取进一步帮助。
  • 删除公共包时,请注意,您可能会破坏依赖于包的项目。

出现以下情况时,您也可以在 GitHub 上恢复整个包或包版本:

  • 您在删除后 30 天内恢复包。
  • 相同的包命名空间仍然可用,并且不用于新包。

包 API 支持

你可以使用 GraphQL 删除专用包的版本。

删除或恢复包所需的权限

如果具有包发布目标存储库的管理员权限,则可以删除包。

删除包版本

在 GitHub 上删除包版本

若要删除包版本,必须对拥有该包的存储库具有管理员权限。 有关详细信息,请参阅“所需的权限”。

  1. 在 your GitHub Enterprise Server instance 上,导航到存储库的主页。 1. 在文件列表右侧,单击“包”。 Packages link on repo overview page 3. 搜索并选择您的包。
  2. 在包登录页的右上角,单击“包设置”。 “包设置”按钮
  3. 在左侧,单击“管理版本”。
  4. 在要删除的版本的右侧,单击 并选择“删除版本”。 删除包版本按钮
  5. 若要确认删除,请键入包名称,并单击“我知道后果,请删除此版本”。 确认包删除按钮

使用 GraphQL 删除包版本

你可以使用 GraphQL 删除专用包的版本。

在 GraphQL API 中使用 deletePackageVersion 突变。 必须使用具有 read:packagesdelete:packagesrepo 范围的 personal access token。 有关 personal access tokens 的详细信息,请参阅“关于 GitHub Packages”。

下面的示例演示如何删除 packageVersionIdMDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg 的包版本。

curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg==\"}) { success }}"}' \
HOSTNAME/graphql

要查找已发布到 GitHub Packages 的所有私有包以及包的版本 ID,你可以通过 repository 对象使用 packages 连接。 你将需要具有 read:packagesrepo 范围的 personal access token。 有关详细信息,请参阅 packages 连接或 PackageOwner 接口。

有关 deletePackageVersion 突变的详细信息,请参阅“deletePackageVersion”。

您不能直接使用 GraphQL 删除整个包,但如果您删除包的每个版本,该包将不再显示在 GitHub Enterprise Server 上。

删除整个包

在 GitHub 上删除整个仓库范围的包

要删除整个仓库范围的包,您必须对拥有该包的仓库具有管理员权限。 有关详细信息,请参阅“所需的权限”。

  1. 在 your GitHub Enterprise Server instance 上,导航到存储库的主页。 1. 在文件列表右侧,单击“包”。 Packages link on repo overview page 3. 搜索并选择您的包。
  2. 在包登录页的右上角,单击“包设置”。 “包设置”按钮
  3. 在“危险区域”下,单击“删除此包”。
  4. 要确认,请查看确认消息,输入你的包名称,然后单击“我了解,删除此包” 确认包删除按钮

恢复包

您在以下情况下可以恢复已删除的包或版本:

  • 您在删除后 30 天内恢复包。
  • 相同的包名称空间和版本仍然可用,并且不重复用于新包。

例如,如果你有一个范围已限定为 octo-repo-owner/octo-repo 的名为 octo-package 的已删除 RubyGems 存储库,则仅当包命名空间 rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package 仍然可用且尚未过 30 天时,才能还原该包。

若要删除包,还必须对拥有已删除的包的存储库具有管理员权限。

有关详细信息,请参阅“所需的权限”。

在包恢复后,包将使用与以前相同的名称空间。 如果相同的包名称空间不可用,您将无法恢复包。 在这种情况下,要恢复已删除的包,您必须先删除使用已删除包名称空间的新包。

恢复组织中的包

可以通过组织帐户设置恢复已删除的包,只要该包位于组织。

若要查看谁可以在组织中还原包,请参阅“所需权限”。

  1. 在 your GitHub Enterprise Server instance 上,导航到组织的主页。 1. 在组织名称下,单击“设置”。 组织设置按钮
  2. 在左侧,单击“包”。
  3. 在“已删除的包”下要还原的包旁边,单击“还原”。 “还原”按钮
  4. 若要确认,请输入包名称,然后单击我明白后果,恢复此包”。 恢复包确认按钮

恢复包版本

您可以从包的登录页面恢复包版本。 若要查看谁可以还原包,请参阅“所需权限”。

  1. 导航到包的登录页。
  2. 在右侧,单击“包设置”。
  3. 在左侧,单击“管理版本”。
  4. 在右上角,使用“版本”下拉菜单并选择“已删除”。 显示已删除选项的版本下拉菜单
  5. 在要还原的已删除包版本旁边,单击“还原”。 已删除的包版本旁边的恢复选项
  6. 若要确认,请单击“我了解后果”,还原此版本” 确认包版本还原