From d61dead3f1f06ce7d5b1b7af068bd545b72e615b Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 13 Mar 2026 11:24:14 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20dep=20check=20fallback=20=E2=80=94=20als?= =?UTF-8?q?o=20check=20PR=20with=20same=20number=20as=20issue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Codeberg uses shared issue/PR numbering. When a PR IS the dep issue (e.g. PR #665 fixes issue #665), the title search misses it. Fallback checks if pulls/{dep_num} is merged. --- dev/dev-poll.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dev/dev-poll.sh b/dev/dev-poll.sh index 8cd5b2c..25cb2b6 100755 --- a/dev/dev-poll.sh +++ b/dev/dev-poll.sh @@ -60,15 +60,24 @@ dep_is_merged() { return 1 fi - # Check there's a merged PR for this issue - # Search closed PRs for title containing "#NNN" or body containing "Fixes #NNN" + # Check there's a merged PR for this issue. + # Strategy: search closed PRs for title/body containing "#NNN", + # OR check if a PR with the same number exists and is merged. local has_merged has_merged=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ "${API}/pulls?state=closed&limit=30" | \ jq -r --arg num "#${dep_num}" \ '[.[] | select(.merged == true) | select((.title | contains($num)) or (.body // "" | test("ixes " + $num + "\\b"; "i")))] | length') - [ "${has_merged:-0}" -gt 0 ] + if [ "${has_merged:-0}" -gt 0 ]; then + return 0 + fi + + # Fallback: check if PR with same number is merged (Codeberg uses shared numbering) + local same_pr_merged + same_pr_merged=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ + "${API}/pulls/${dep_num}" 2>/dev/null | jq -r '.merged // false') + [ "$same_pr_merged" = "true" ] } # =============================================================================