一次性删除所有的GitHub Action记录
一键命令
liunx命令
# 定义 GitHub Token 和仓库信息变量
GITHUB_TOKEN="xxxx"
OWNER="xxxx" # GitHub 用户名
REPO="xxxx" # GitHub 仓库名
# 循环直到所有页面都处理完
while true; do
# 请求当前页面的工作流记录
RESPONSE=$(curl -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$OWNER/$REPO/actions/runs?status=completed")
# 提取工作流 ID 并删除
WORKFLOW_IDS=$(echo "$RESPONSE" | jq -r '.workflow_runs[].id')
# 如果没有获取到 ID,退出循环
if [ -z "$WORKFLOW_IDS" ]; then
echo "没有更多的工作流记录,退出."
break
fi
# 打印删除的 ID
echo "正在删除以下工作流 ID: $WORKFLOW_IDS"
# 批量删除工作流记录
echo "$WORKFLOW_IDS" | xargs -I {} \
curl -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$OWNER/$REPO/actions/runs/{}"
done
可能会缺少jq
sudo apt update
sudo apt install jq
win命令
# 定义 GitHub Token 和仓库信息变量
$GITHUB_TOKEN = "xxxx" # 你的 GitHub Token
$OWNER = "xxxx" # GitHub 用户名
$REPO = "xxxx" # GitHub 仓库名
# 循环直到所有页面都处理完
while ($true) {
# 请求当前页面的工作流记录
$url = "https://api.github.com/repos/$OWNER/$REPO/actions/runs?status=completed"
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization="token $GITHUB_TOKEN"}
# 提取工作流 ID
$workflow_ids = $response.workflow_runs | Select-Object -ExpandProperty id
# 如果没有获取到 ID,退出循环
if ($workflow_ids.Count -eq 0) {
Write-Host "没有更多的工作流记录,退出."
break
}
# 打印删除的 ID
Write-Host "正在删除以下工作流 ID: $($workflow_ids -join ', ')"
# 批量删除工作流记录
foreach ($id in $workflow_ids) {
$delete_url = "https://api.github.com/repos/$OWNER/$REPO/actions/runs/$id"
Invoke-RestMethod -Uri $delete_url -Method Delete -Headers @{Authorization="token $GITHUB_TOKEN"}
Write-Host "已删除工作流 ID: $id"
}
}

浙公网安备 33010602011771号