From eb44b1824e83b0e0d25ebf7054535af11131ee7a Mon Sep 17 00:00:00 2001 From: Steve Taylor Date: Mon, 28 Aug 2023 11:05:40 -0600 Subject: [PATCH] auto approve dependenabot prs (#103) * bump deps Signed-off-by: Steve Taylor * auto approve dependabot Signed-off-by: Steve Taylor --- .github/workflows/auto-approve.yml | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/auto-approve.yml diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml new file mode 100644 index 0000000..856fe2c --- /dev/null +++ b/.github/workflows/auto-approve.yml @@ -0,0 +1,44 @@ +name: Dependabot auto-merge + +on: + pull_request: + +permissions: read-all + +jobs: + dependabot: + permissions: + contents: write + pull-requests: write + + runs-on: ubuntu-latest + if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }} + + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@4de7a6c08ce727a42e0adbbdc345f761a01240ce # v1.3.6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + + - if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-patch' }} + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + + - name: Approve a PR if not already approved + if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-patch' }} + run: | + gh pr checkout "$PR_URL" # sets the upstream metadata for `gh pr status` + 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 + if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' }} + run: gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}