84 lines
2.3 KiB
Bash
Executable File
84 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 配置信息
|
||
GITEA_URL="https://gitea.tailnet-68f9.ts.net"
|
||
OWNER="ben"
|
||
REPO="modelscope"
|
||
TOKEN="8d7d70f324796be650b79415303c31f567bf459b"
|
||
|
||
# 函数:获取所有工作流运行记录
|
||
function get_workflow_runs() {
|
||
curl -s -H "Authorization: token $TOKEN" \
|
||
"$GITEA_URL/api/v1/repos/$OWNER/$REPO/actions/runs?per_page=50"
|
||
}
|
||
|
||
# 函数:删除单个工作流运行记录
|
||
function delete_workflow_run() {
|
||
local run_id=$1
|
||
|
||
response=$(curl -s -X DELETE -H "Authorization: token $TOKEN" \
|
||
"$GITEA_URL/api/v1/repos/$OWNER/$REPO/actions/runs/$run_id")
|
||
|
||
echo "删除工作流 #$run_id: $response"
|
||
}
|
||
|
||
# 主脚本
|
||
echo "=== 工作流运行记录清理工具 ==="
|
||
echo ""
|
||
|
||
# 获取当前工作流运行记录
|
||
echo "1. 获取当前工作流运行记录..."
|
||
response=$(get_workflow_runs)
|
||
|
||
# 提取所有运行记录的 ID
|
||
run_ids=$(echo $response | grep -o '"id":[0-9]*' | grep -o '[0-9]*' | head -10)
|
||
|
||
# 检查是否有运行记录
|
||
if [ -z "$run_ids" ]; then
|
||
echo "没有找到工作流运行记录"
|
||
exit 0
|
||
fi
|
||
|
||
# 显示当前运行记录 ID
|
||
echo ""
|
||
echo "2. 当前工作流运行记录 ID:"
|
||
echo "----------------------------------------"
|
||
echo "$run_ids"
|
||
echo "----------------------------------------"
|
||
|
||
# 统计要删除的记录数
|
||
count=$(echo "$run_ids" | wc -w)
|
||
echo ""
|
||
echo "3. 找到 $count 条工作流运行记录,准备删除..."
|
||
echo "----------------------------------------"
|
||
|
||
# 批量删除每个运行记录
|
||
deleted=0
|
||
for run_id in $run_ids; do
|
||
delete_workflow_run $run_id
|
||
deleted=$((deleted + 1))
|
||
|
||
# 添加短暂延迟,避免 API 速率限制
|
||
sleep 1
|
||
done
|
||
|
||
echo ""
|
||
echo "4. 删除完成!"
|
||
echo "----------------------------------------"
|
||
echo "共处理了 $deleted 条工作流运行记录"
|
||
echo ""
|
||
|
||
# 再次检查是否还有剩余记录
|
||
echo "5. 检查是否还有剩余记录..."
|
||
final_response=$(get_workflow_runs)
|
||
final_count=$(echo $final_response | grep -o '"total_count":[0-9]*' | grep -o '[0-9]*')
|
||
|
||
echo "当前剩余工作流运行记录数:$final_count"
|
||
|
||
if [ "$final_count" -gt 0 ]; then
|
||
echo "注意:仍有 $final_count 条记录未删除,可能是因为它们正在运行中或有权限问题。"
|
||
echo "请稍后再试,或通过 Gitea 网页界面手动删除。"
|
||
else
|
||
echo "所有工作流运行记录已成功删除!"
|
||
fi
|