From 37f1cfd6014c0ea8d4735486afe8bcadd0bff04e Mon Sep 17 00:00:00 2001 From: rldyourmnd Date: Sun, 4 Oct 2026 08:11:01 +0500 Subject: [PATCH] fix(ci): treat an up-to-date dependabot branch as update success update-branch answers 422 'no new commits on the base branch' when the bound pull request is already current. That string matched neither the 'already up to date' success pattern nor a real failure, so the step exited 1 and the convergence job never ran the catalog sync -- leaving setup-uv v10.2.0 workflows with a v10.1.0 catalog on #145. Signed-off-by: rldyourmnd --- .github/workflows/dependabot-catalog-convergence.yml | 6 +++++- CHANGELOG.md | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-catalog-convergence.yml b/.github/workflows/dependabot-catalog-convergence.yml index b6c928d..1a2a84b 100644 --- a/.github/workflows/dependabot-catalog-convergence.yml +++ b/.github/workflows/dependabot-catalog-convergence.yml @@ -57,7 +57,11 @@ jobs: exit 1 fi response="$(gh api --method PUT "repos/${GITHUB_REPOSITORY}/pulls/${pr_number}/update-branch" -f "expected_head_sha=${current_head}" 2>&1)" || { - if ! grep -Fq 'already up to date' <<<"$response"; then + if grep -Eq 'already up to date|no new commits' <<<"$response"; then + # A branch that is already current is success, not failure; + # the poll below must not wait on an update that never ran. + response="already up to date" + else printf '%s\n' "$response" >&2 exit 1 fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b8df0e..d3fd3f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ The project follows Semantic Versioning. ## [Unreleased] +- **Fix the dependabot-catalog-convergence update-branch guard.** A bound + pull request already current with the base made the API answer + `no new commits`, which matched neither the success pattern nor a real + error — the job exited before converging the catalog and left + dependabot bumps red on `tool-registry`/`catalog`. + ## [0.1.29] - 2026-09-28 - **Publishable re-cut of `0.1.28`.** Tag `0.1.28` was pushed as an unsigned