diff --git a/.gitea/workflows/auto-merge.yml b/.gitea/workflows/auto-merge.yml index caa762850..ac1b75ee3 100755 --- a/.gitea/workflows/auto-merge.yml +++ b/.gitea/workflows/auto-merge.yml @@ -66,7 +66,7 @@ jobs: # 405连续计数器:连续多次合并返回405才放弃 MERGE_405_COUNT=0 - MAX_405_RETRIES=6 + MAX_405_RETRIES=10 # 轮询等待,最多30分钟(180次x10秒) for attempt in $(seq 1 180); do @@ -103,6 +103,8 @@ jobs: if [ "$ALL_SUCCESS" = "true" ] && [ "$HAS_APPROVAL" = "true" ]; then echo echo "CI全绿 + 审批通过,执行自动合并" + echo "等待60秒冷却,给Gitea内部状态同步时间..." + sleep 60 # 幂等检查:PR是否还是open PR_STATE=$(curl -s -H "Authorization: token ${MERGE_TOKEN}" \ @@ -133,14 +135,16 @@ jobs: cat /tmp/merge_resp.json 2>/dev/null || true echo if [ "$MERGE_405_COUNT" -ge "$MAX_405_RETRIES" ]; then - echo "❌ 连续${MAX_405_RETRIES}次合并返回405,放弃自动合并" + echo "⚠️ 连续${MAX_405_RETRIES}次合并返回405,放弃自动合并(需人工确认,非代码问题)" curl -s -X POST \ -H "Authorization: token ${MERGE_TOKEN}" \ -H "Content-Type: application/json" \ - -d '{"body": "Auto merge failed after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually."}' \ + -d '{"body": "Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure."}' \ "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/comments" > /dev/null 2>&1 || true - exit 1 + exit 0 fi + sleep 30 + continue else echo "自动合并失败 (HTTP $HTTP_CODE)" cat /tmp/merge_resp.json 2>/dev/null || true