fix auto merge when there's sync label (#4715)

Co-authored-by: Suchintan <suchintan@users.noreply.github.com>
This commit is contained in:
Shuchang Zheng
2026-02-12 07:24:13 -08:00
committed by GitHub
parent d1447b8ee1
commit a78f83e9d7

View File

@@ -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 }}"