Files
modelscope/scripts/delete-remaining-workflows.sh
2026-02-02 03:56:12 +00:00

84 lines
2.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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