From 4f9939e8a6f6b6d2ecfe2e809826e4585b05d2b2 Mon Sep 17 00:00:00 2001 From: actae0n <19864268+xpcmdshell@users.noreply.github.com> Date: Sun, 5 Apr 2026 02:10:10 -0700 Subject: [PATCH] Fix Dependabot auto-merge workflow --- .github/workflows/dependabot-automerge.yml | 79 +--------------------- 1 file changed, 1 insertion(+), 78 deletions(-) diff --git a/.github/workflows/dependabot-automerge.yml b/.github/workflows/dependabot-automerge.yml index b7f69a1..e628c46 100644 --- a/.github/workflows/dependabot-automerge.yml +++ b/.github/workflows/dependabot-automerge.yml @@ -8,10 +8,6 @@ on: - opened - reopened - synchronize - push: - branches: - - main - workflow_dispatch: permissions: contents: write @@ -28,7 +24,7 @@ jobs: steps: - name: Fetch Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v3 + uses: dependabot/fetch-metadata@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -95,76 +91,3 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} PR_URL: ${{ github.event.pull_request.html_url }} - - refresh-behind-dependabot-prs: - name: Refresh behind Dependabot PRs - if: github.event_name != 'pull_request' - runs-on: ubuntu-latest - steps: - - name: Update behind safe Dependabot PRs - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPOSITORY: ${{ github.repository }} - run: | - prs_json="$(gh pr list \ - --repo "$REPOSITORY" \ - --author 'app/dependabot' \ - --state open \ - --json number,title,mergeStateStatus)" - - export PRS_JSON="$prs_json" - prs="$(python - <<'PY' - import json - import os - import re - - - def parse_release(version: str) -> tuple[int, int, int] | None: - match = re.match(r"^v?(?P\d+(?:\.\d+){0,2})", version.strip()) - if not match: - return None - parts = [int(part) for part in match.group("num").split(".")] - while len(parts) < 3: - parts.append(0) - return tuple(parts[:3]) - - - def classify_from_title(title: str) -> str: - match = re.search(r" from (?P\S+) to (?P\S+)", title) - if not match: - return "unknown" - old = parse_release(match.group("old")) - new = parse_release(match.group("new")) - if old is None or new is None or new <= old: - return "unknown" - if new[0] != old[0]: - return "major" - if new[1] != old[1]: - return "minor" - if new[2] != old[2]: - return "patch" - return "unknown" - - - for pr in json.loads(os.environ["PRS_JSON"]): - if pr["mergeStateStatus"] != "BEHIND": - continue - if classify_from_title(pr["title"]) not in {"patch", "minor"}: - continue - print(pr["number"]) - PY - )" - - if [ -z "$prs" ]; then - echo "No behind patch or minor Dependabot PRs." - exit 0 - fi - - while IFS= read -r pr; do - [ -n "$pr" ] || continue - echo "Updating branch for PR #$pr" - gh api \ - --method PUT \ - -H "Accept: application/vnd.github+json" \ - "repos/$REPOSITORY/pulls/$pr/update-branch" - done <<< "$prs"