From 7c91646fa3d963bf37196d787ab9b7b2be9572a0 Mon Sep 17 00:00:00 2001 From: Jaybe Date: Fri, 14 Nov 2025 21:45:15 +0900 Subject: [PATCH] =?UTF-8?q?chore(ci):=20auto-pr=20=EB=9D=BC=EB=B2=A8=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EB=B6=80=EC=97=AC=20=EC=9E=AC=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20ping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/auto-pr.yml | 21 +++++++++++++++++---- MAIN_PLAN.md | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/auto-pr.yml b/.gitea/workflows/auto-pr.yml index 99ac8f7..38afd5d 100644 --- a/.gitea/workflows/auto-pr.yml +++ b/.gitea/workflows/auto-pr.yml @@ -36,11 +36,24 @@ jobs: PR_NUMBER=$(cat /tmp/pr_resp.json | sed -n 's/.*"number":\([0-9]*\).*/\1/p' | head -n1) else echo "PR not created (possibly exists). Response:"; cat /tmp/pr_resp.json || true - # Find existing open PR for this branch + fi + + # Retry to resolve PR number by listing open PRs and matching head/base + i=0 + while [ -z "${PR_NUMBER:-}" ] && [ $i -lt 10 ]; do + i=$((i+1)) + echo "[retry $i] Resolving PR number for $HEAD_BRANCH -> $BASE_BRANCH" curl -sS -o /tmp/pr_list.json -H "Authorization: token ${CI_TOKEN}" \ "${GITEA_BASE_URL}/api/v1/repos/${OWNER}/${NAME}/pulls?state=open" || true - PR_NUMBER=$(cat /tmp/pr_list.json | awk -v b="$HEAD_BRANCH" 'BEGIN{RS="},"} {if($0~"\"head\":\{[^}]*\"ref\":\""b"\""){match($0,/\"number\":([0-9]+)/,m); if(m[1]!=""){print m[1]; exit}}}') - fi + # Extract PR number matching head.ref==HEAD_BRANCH and base.ref==BASE_BRANCH + PR_NUMBER=$(awk -v hb="$HEAD_BRANCH" -v bb="$BASE_BRANCH" 'BEGIN{RS="},"; pr=""} { + if($0 ~ /\"head\":\{[^}]*\"ref\":\"" hb "\"/ && $0 ~ /\"base\":\{[^}]*\"ref\":\"" bb "\"/){ + if (match($0, /\"number\":([0-9]+)/, m)) { print m[1]; exit } + } + }' /tmp/pr_list.json) + if [ -z "${PR_NUMBER:-}" ]; then sleep 2; fi + done + if [ -n "${PR_NUMBER:-}" ]; then echo "Adding 'automerge' label to PR #$PR_NUMBER" curl -sS -X POST \ @@ -49,5 +62,5 @@ jobs: "${GITEA_BASE_URL}/api/v1/repos/${OWNER}/${NAME}/issues/${PR_NUMBER}/labels" \ -d '["automerge"]' || true else - echo "PR number could not be determined; skipping label add" + echo "PR number could not be determined after retries; skipping label add" fi diff --git a/MAIN_PLAN.md b/MAIN_PLAN.md index 111b6c6..97fa80a 100644 --- a/MAIN_PLAN.md +++ b/MAIN_PLAN.md @@ -249,3 +249,5 @@ - [YYYY-MM-DD] 로컬 이미지 업로드 허용: 서버 저장 없이 ZIP에 `assets/`로 패키징(브라우저 JSZip 우선). - [ci] automerge 재검증용 ping (2025-11-14 21:36:38) + +- [ci] auto-pr 라벨 자동부여 재검증 ping (2025-11-14 21:45:14) -- 2.52.0