首页 > 解决方案 > 如何删除 Github 环境

问题描述

我的问题是关于清理 Github 存储库上的“环境”选项卡。

我之前通过 Heroku 部署,使用来自两个单独的 Github 分支(一个用于暂存,一个用于生产)的自动部署。

这在存储库上创建了一个“环境”选项卡,其中显示了两个 Heroku 环境 - 完全符合预期。

一旦我开始深入研究 Heroku 管道,我现在已经将应用程序配置为从 staging 升级到生产环境,因此生产环境不再从分支自动部署。

我的 Github repo 上的 Environments 选项卡无法删除我不再使用的环境。我似乎在 Github 或 Heroku 上找不到任何地方让 Github “忘记”这个部署环境。

我希望我的问题足够清楚;如果我可以详细说明任何事情,请告诉我。

标签: githubherokuheroku-pipelines

解决方案


它似乎没有 UI,但您可以使用 GitHub API 来完成。

在执行此操作之前,您可能应该断开 GitHub 和 Heroku。

首先,转到您的 GitHub 帐户设置,然后是开发人员设置,然后是个人访问令牌。创建一个允许 repo_deployments 的新令牌。生成后,保存十六进制令牌,您将需要它来处理即将到来的 API 请求。

对于这些示例,我假设您的用户名是$aaaa,您的仓库名称是$bbbb,您的访问令牌是$tttt。将这些替换为您的实际用户名和存储库名称以及访问令牌。或者只是使用 shell 变量来存储实际值,这样您就可以直接粘贴代码块。

首先,列出你的 repo 中的所有部署:

curl https://api.github.com/repos/$aaaa/$bbbb/deployments

每个部署都有一个id整数。记下它,并$iiii在即将到来的代码块中替换为该 ID。或者为它创建另一个 shell 变量。

现在您必须为该部署创建“非活动”状态:

curl https://api.github.com/repos/$aaaa/$bbbb/deployments/$iiii/statuses -X POST -d '{"state":"inactive"}' -H 'accept: application/vnd.github.ant-man-preview+json' -H "authorization: token $tttt"

现在您可以永久删除部署:

curl https://api.github.com/repos/$aaaa/$bbbb/deployments/$iiii -X DELETE -H "authorization: token $tttt"

如果您有多个部署,请发送第一个请求以查看所有剩余的部署,然后您也可以根据需要删除这些部署。

删除所有部署后,GitHub 存储库上的环境按钮将消失。

信息来自GitHub 部署文档GitHub oauth 文档。这对我有用。


推荐阅读