如何从 GitHub 个包中删除旧的快照工件
How to delete old snapshot artifacts from GitHub packages
我有一个 GitHub 工作流,它构建和部署库的快照版本作为 GitHub 包,例如 mycompany.mytool.1.0.0-SNAPSHOT.jar
。每当我进行新的构建和部署时,都会创建一个新资产,例如 mycompany.mytool.1.0.0-20210723.145233-1.jar
而不是它然后以某种方式与 SNAPSHOT 标签相关联。这一切似乎都有效,我可以毫无问题地访问 mycompany.mytool.1.0.0-SNAPSHOT.jar
。
我现在的问题是,我怎样才能摆脱这个 jar 的所有这些旧版本?其实我只是想保留最新版本。我可以通过网络界面手动删除它们,但这是一项非常棘手的任务。我也想以某种方式将其自动化。
在撰写本文时这是不可能的。 GitHub 工作人员 Jamie Cansdale 在他们的社区论坛中写道:
SNAPSHOT versions are exposed as artifacts inside a regular versions. There isn’t an API for cleaning up artifacts, only whole versions.
(source)
这意味着单个 SNAPSHOT 版本(如 1.0.0-SNAPSHOT
)将累积您创建的所有构建,并且所有工件将显示在右侧的 Assets 列表中的网页。
我能想到的唯一实用的解决方案是,在发布每个构建的工件之前,您从脚本中 delete the whole version。然后,您将获得将一组工件存储为 1.0.0-SNAPSHOT
版本名称的一部分的效果。
但是这个解决方案并不理想:public 如果软件包版本足够流行则不能删除它们(可能是为了避免抢注攻击):
If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.
我有一个 GitHub 工作流,它构建和部署库的快照版本作为 GitHub 包,例如 mycompany.mytool.1.0.0-SNAPSHOT.jar
。每当我进行新的构建和部署时,都会创建一个新资产,例如 mycompany.mytool.1.0.0-20210723.145233-1.jar
而不是它然后以某种方式与 SNAPSHOT 标签相关联。这一切似乎都有效,我可以毫无问题地访问 mycompany.mytool.1.0.0-SNAPSHOT.jar
。
我现在的问题是,我怎样才能摆脱这个 jar 的所有这些旧版本?其实我只是想保留最新版本。我可以通过网络界面手动删除它们,但这是一项非常棘手的任务。我也想以某种方式将其自动化。
在撰写本文时这是不可能的。 GitHub 工作人员 Jamie Cansdale 在他们的社区论坛中写道:
SNAPSHOT versions are exposed as artifacts inside a regular versions. There isn’t an API for cleaning up artifacts, only whole versions.
(source)
这意味着单个 SNAPSHOT 版本(如 1.0.0-SNAPSHOT
)将累积您创建的所有构建,并且所有工件将显示在右侧的 Assets 列表中的网页。
我能想到的唯一实用的解决方案是,在发布每个构建的工件之前,您从脚本中 delete the whole version。然后,您将获得将一组工件存储为 1.0.0-SNAPSHOT
版本名称的一部分的效果。
但是这个解决方案并不理想:public 如果软件包版本足够流行则不能删除它们(可能是为了避免抢注攻击):
If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.