--- # yamllint disable rule:line-length name: Dependabot auto-approval and auto-merge "on": pull_request permissions: contents: write pull-requests: write jobs: dependabot: runs-on: ubuntu-latest # limit this to PRs opened by dependabot if: ${{ github.actor == 'dependabot[bot]' }} steps: - name: Dependabot metadata id: metadata uses: dependabot/fetch-metadata@v1 with: github-token: "${{ secrets.GITHUB_TOKEN }}" alert-lookup: true compat-lookup: true - uses: actions/checkout@v3 - name: Approve a PR if not already approved run: | # sets the upstream metadata for `gh pr status` gh pr checkout "$PR_URL" if [ "$(gh pr status --json reviewDecision -q .currentBranch.reviewDecision)" != "APPROVED" ]; then gh pr review --approve "$PR_URL" else echo "PR already approved, skipping additional approvals to minimize emails/notification noise."; fi env: PR_URL: ${{github.event.pull_request.html_url}} GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - name: Enable auto-merge for Dependabot PRs run: gh pr merge --auto --squash "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}