summaryrefslogtreecommitdiffstats
path: root/.github/workflows/auto-merge.yml
diff options
context:
space:
mode:
authorAnoduck <9925396+anoduck@users.noreply.github.com>2024-09-08 14:54:54 +0000
committerGitHub <noreply@github.com>2024-09-08 14:54:54 +0000
commitd2a0fd14e05ef6b0b9fca454f8996faf86f94204 (patch)
tree242f822be67c179618f1e2aabcea60c172f4f6e0 /.github/workflows/auto-merge.yml
Initial commit
Diffstat (limited to '.github/workflows/auto-merge.yml')
-rw-r--r--.github/workflows/auto-merge.yml42
1 files changed, 42 insertions, 0 deletions
diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml
new file mode 100644
index 0000000..f67b52d
--- /dev/null
+++ b/.github/workflows/auto-merge.yml
@@ -0,0 +1,42 @@
+# Source: https://nicolasiensen.github.io/2022-07-23-automating-dependency-updates-with-dependabot-github-auto-merge-and-github-actions/
+name: Dependabot auto-merge
+on: pull_request_target
+
+permissions:
+ pull-requests: write
+ contents: write
+
+jobs:
+ review-dependabot-pr:
+ runs-on: ubuntu-latest
+ # remove next line and uncomment the line after to enable auto merge
+ if: false
+ # if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@v2
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
+
+ - name: Enable auto-merge for Dependabot PRs
+ run: gh pr merge --auto --merge "$PR_URL"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+
+ - name: Approve patch and minor updates
+ if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
+ run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+
+ - name: Comment on major updates of any dependencies
+ if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major'}}
+ run: |
+ gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency**"
+ gh pr edit $PR_URL --add-label "requires-manual-qa"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}