name: Enable auto-merge on: pull_request_target: types: [opened] permissions: pull-requests: write contents: write jobs: dependabot: runs-on: ubuntu-latest if: ${{ github.actor == 'dependabot[bot]'}} steps: - name: Checkout uses: actions/checkout@v4 - id: generate_token uses: tibdex/github-app-token@v2 with: app_id: ${{ secrets.BOT_APP_ID }} private_key: ${{ secrets.BOT_PRIVATE_KEY }} - name: metadata id: metadata uses: dependabot/fetch-metadata@v1.6.0 with: github-token: ${{ steps.generate_token.outputs.token }} - name: Enable auto-merge for bot PRs run: gh pr merge --auto --squash --delete-branch "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} GH_TOKEN: ${{ steps.generate_token.outputs.token }} other: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - id: generate_token uses: tibdex/github-app-token@v2 with: app_id: ${{ secrets.BOT_APP_ID }} private_key: ${{ secrets.BOT_PRIVATE_KEY }} - name: Set label for pre-commit if: ${{ github.actor == 'pre-commit-ci[bot]' }} run: | gh pr edit --add-label 'dependencies' "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GH_TOKEN: ${{ steps.generate_token.outputs.token }} - name: Set label for all-repos if: ${{ contains(github.event.pull_request.body, 'Committed via https://github.com/asottile/all-repos') }} run: | URL="/repos/${GITHUB_REPOSITORY}/collaborators/${GITHUB_ACTOR}/permission" echo "Test user permissions: $URL" PERM=$(gh api "$URL" --jq ".permission") || RET=$? echo "$RET: $PERM" if [[ -z "$RET" && ("$PERM" = 'write' || "$PERM" = 'admin') ]]; then echo "Add label 'dependencies'" gh pr edit --add-label 'dependencies' "$PR_URL" echo "AUTOMERGE=1" >> $GITHUB_ENV fi env: PR_URL: ${{github.event.pull_request.html_url}} GH_TOKEN: ${{ steps.generate_token.outputs.token }} - name: Enable auto-merge if labeled if: ${{ env.AUTOMERGE || ( github.actor != 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'dependencies') ) }} run: gh pr merge --auto --squash --delete-branch "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GH_TOKEN: ${{ steps.generate_token.outputs.token }}