50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
name: Auto-merge sync PRs
|
|
on:
|
|
pull_request:
|
|
types: [labeled, opened, synchronize, reopened]
|
|
jobs:
|
|
auto-merge:
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.pull_request.labels.*.name, 'sync')
|
|
steps:
|
|
- 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
|
|
;;
|
|
"LawyZheng")
|
|
echo "token_name=LAWY_GH_PAT" >> $GITHUB_OUTPUT
|
|
;;
|
|
"suchintan")
|
|
echo "token_name=SUCHINTAN_GH_PAT" >> $GITHUB_OUTPUT
|
|
;;
|
|
"pedrohsdb")
|
|
echo "token_name=PEDRO_GH_PAT" >> $GITHUB_OUTPUT
|
|
;;
|
|
"marcmuon")
|
|
echo "token_name=MARC_GH_PAT" >> $GITHUB_OUTPUT
|
|
;;
|
|
"celalzamanoglu")
|
|
echo "token_name=CELAL_GH_PAT" >> $GITHUB_OUTPUT
|
|
;;
|
|
*)
|
|
echo "token_name=" >> $GITHUB_OUTPUT
|
|
echo "Author $PR_AUTHOR is not in the approved list"
|
|
;;
|
|
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] }}
|