From a78f83e9d7a343b9644891bb4d7ca9817cf62095 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Thu, 12 Feb 2026 07:24:13 -0800 Subject: [PATCH] fix auto merge when there's sync label (#4715) Co-authored-by: Suchintan --- .github/workflows/auto-merge-sync.yml | 63 +++++++++++++++------------ 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/.github/workflows/auto-merge-sync.yml b/.github/workflows/auto-merge-sync.yml index c0180907..3947a92b 100644 --- a/.github/workflows/auto-merge-sync.yml +++ b/.github/workflows/auto-merge-sync.yml @@ -1,49 +1,56 @@ name: Auto-merge sync PRs on: pull_request: - types: [labeled, opened, synchronize, reopened] + types: [opened, reopened, ready_for_review, labeled, synchronize] +permissions: + contents: write + pull-requests: write + checks: read jobs: auto-merge: + if: > + contains(join(github.event.pull_request.labels.*.name, ','), 'sync') && contains('suchintan,wintonzheng,LawyZheng,pedrohsdb,marcmuon,celalzamanoglu', github.event.pull_request.user.login) + runs-on: ubuntu-latest - if: contains(github.event.pull_request.labels.*.name, 'sync') steps: + - name: Wait for all required checks to pass + uses: lewagon/wait-on-check-action@v1.4.1 + with: + ref: ${{ github.event.pull_request.head.sha }} + repo-token: ${{ secrets.GITHUB_TOKEN }} + wait-interval: 10 + ignore-checks: auto-merge - name: Set token for author id: set-token run: | - PR_AUTHOR="${{ github.event.pull_request.user.login }}" - echo "author=$PR_AUTHOR" >> $GITHUB_OUTPUT - - case "$PR_AUTHOR" in - "wintonzheng") - echo "token_name=WINTON_GH_PAT" >> $GITHUB_OUTPUT + case "${{ github.event.pull_request.user.login }}" in + wintonzheng) + echo "GH_PAT=${{ secrets.SKYVERN_OSS_GH_PAT }}" >> $GITHUB_OUTPUT ;; - "LawyZheng") - echo "token_name=LAWY_GH_PAT" >> $GITHUB_OUTPUT + LawyZheng) + echo "GH_PAT=${{ secrets.LAWY_GH_PAT }}" >> $GITHUB_OUTPUT ;; - "suchintan") - echo "token_name=SUCHINTAN_GH_PAT" >> $GITHUB_OUTPUT + suchintan) + echo "GH_PAT=${{ secrets.SUCHINTAN_GH_PAT }}" >> $GITHUB_OUTPUT ;; - "pedrohsdb") - echo "token_name=PEDRO_GH_PAT" >> $GITHUB_OUTPUT + pedrohsdb) + echo "GH_PAT=${{ secrets.PEDROHSDB_GH_PAT }}" >> $GITHUB_OUTPUT ;; - "marcmuon") - echo "token_name=MARC_GH_PAT" >> $GITHUB_OUTPUT + marcmuon) + echo "GH_PAT=${{ secrets.MARC_GH_PAT }}" >> $GITHUB_OUTPUT ;; - "celalzamanoglu") - echo "token_name=CELAL_GH_PAT" >> $GITHUB_OUTPUT + celalzamanoglu) + echo "GH_PAT=${{ secrets.CELAL_GH_PAT }}" >> $GITHUB_OUTPUT ;; *) - echo "token_name=" >> $GITHUB_OUTPUT - echo "Author $PR_AUTHOR is not in the approved list" + echo "GH_PAT=${{ secrets.SKYVERN_OSS_GH_PAT }}" >> $GITHUB_OUTPUT ;; esac - name: Auto-merge PR - if: steps.set-token.outputs.token_name != '' - run: | - echo "Merging PR for author ${{ steps.set-token.outputs.author }}" - gh pr merge ${{ github.event.pull_request.number }} \ - --repo ${{ github.repository }} \ - --squash \ - --admin env: - GH_TOKEN: ${{ secrets[steps.set-token.outputs.token_name] }} + GH_TOKEN: ${{ steps.set-token.outputs.GH_PAT }} + run: | + gh pr merge ${{ github.event.pull_request.number }} \ + --squash \ + --admin \ + --repo "${{ github.repository }}"