#!/bin/bash # 配置信息 GITEA_URL="https://gitea.tailnet-68f9.ts.net" OWNER="ben" REPO="modelscope" TOKEN="8d7d70f324796be650b79415303c31f567bf459b" # 函数:获取所有工作流运行记录 function get_workflow_runs() { local page=$1 local per_page=$2 curl -s -H "Authorization: token $TOKEN" \ "$GITEA_URL/api/v1/repos/$OWNER/$REPO/actions/runs?page=$page&per_page=$per_page" } # 函数:删除单个工作流运行记录 function delete_workflow_run() { local run_id=$1 curl -s -X DELETE -H "Authorization: token $TOKEN" \ "$GITEA_URL/api/v1/repos/$OWNER/$REPO/actions/runs/$run_id" } # 主脚本 echo "开始删除工作流运行记录..." # 获取第一页的工作流运行记录 response=$(get_workflow_runs 1 100) # 提取所有运行记录的 ID run_ids=$(echo $response | grep -o '"id":[0-9]*' | grep -o '[0-9]*') # 检查是否有运行记录 if [ -z "$run_ids" ]; then echo "没有找到工作流运行记录" exit 0 fi # 统计要删除的记录数 count=$(echo "$run_ids" | wc -w) echo "找到 $count 条工作流运行记录,开始删除..." # 批量删除每个运行记录 deleted=0 for run_id in $run_ids; do echo "删除工作流运行记录 #$run_id..." delete_workflow_run $run_id deleted=$((deleted + 1)) # 添加短暂延迟,避免 API 速率限制 sleep 0.5 done echo "删除完成!共删除了 $deleted 条工作流运行记录"