GitHub 删除 Environments 部署历史记录

1. 安装 Winget

Releases · microsoft/winget-cli

Windows 推荐使用 Winget 工具,可从 GitHub 处下载以 .msixbundle 结尾的文件。如果不能双击打开安装,可用管理员身份打开 PowerShell,运行以下命令安装(记得修改引号内容为实际文件路径):

1
Add-AppxPackage -Path "***.msixbundle"

输入 Add-AppxPackage -Path 后,直接把下载好的 .msixbundle 文件用鼠标拖拽到 PowerShell 窗口中,路径就会自动填充进去,然后回车即可。

2. 安装 GitHub CLI

打开 PowerShell,运行以下命令:

1
2
winget install GitHub.cli
winget install jqlang.jq

验证是否安装成功:

1
2
gh --version
jq --version

安装完成后重启终端,运行以下命令进行登录:

1
gh auth login

按照提示选择 GitHub.com -> HTTPS -> Y -> Paste an authentication token,随后输入你的 token 即可。

token 可在 Fine-grained Personal Access Tokens 处申请,申请时,Repository access 选择 All repositories。Permissions -> Repositories 至少添加 Deployments(Access: Read and write)。

3. 创建脚本

新建一个脚本 XXX.sh,复制以下内容进入脚本,替换仓库路径。

此脚本为删除当前仓库的所有部署记录!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

# 替换为实际的仓库路径
REPO="username/repo"

gh api --paginate "repos/$REPO/deployments?per_page=100" --jq ".[].id" | while read -r ID; do
ID=$(echo "$ID" | tr -d '\r')

if [ -n "$ID" ]; then
# 活跃/成功状态的部署需要先设为 inactive 才能删除
gh api --method POST "repos/$REPO/deployments/$ID/statuses" -f state=inactive >/dev/null 2>&1

# 执行删除
gh api --method DELETE "repos/$REPO/deployments/$ID" >/dev/null 2>&1
echo "已删除部署记录: $ID"
fi
done

echo "所有部署记录清理完成!"

然后打开 Git Bash,运行此脚本,即可删除指定仓库的所有部署历史记录。


GitHub 删除 Environments 部署历史记录
https://flowerdown.org/posts/20261011-100430
作者
Unrealfeathers
发布于
2026年10月11日
许可协议