Skip to content

Commit 66fc2cd

Browse files
committed
ci: add Dependabot auto-merge workflow for patch and minor updates
Uses pull_request_target with dependabot/fetch-metadata to auto-approve and enable squash-merge for non-major Dependabot PRs. Major version bumps are skipped for manual review. Closes #41 Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
1 parent 4df1ef2 commit 66fc2cd

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Dependabot Auto-Merge
2+
3+
on:
4+
pull_request_target:
5+
6+
permissions:
7+
contents: write
8+
pull-requests: write
9+
10+
concurrency:
11+
group: dependabot-auto-merge-${{ github.event.pull_request.number }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
auto-merge:
16+
name: Auto-merge Dependabot PRs
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 5
19+
if: github.actor == 'dependabot[bot]'
20+
steps:
21+
- name: Fetch Dependabot metadata
22+
id: metadata
23+
uses: dependabot/fetch-metadata@v2
24+
with:
25+
github-token: ${{ secrets.GITHUB_TOKEN }}
26+
27+
- name: Approve and enable auto-merge (patch/minor only)
28+
if: steps.metadata.outputs.update-type != 'version-update:semver-major'
29+
env:
30+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31+
PR_URL: ${{ github.event.pull_request.html_url }}
32+
run: |
33+
gh pr review --approve "$PR_URL"
34+
gh pr merge --auto --squash "$PR_URL"
35+
36+
- name: Skip major updates
37+
if: steps.metadata.outputs.update-type == 'version-update:semver-major'
38+
run: echo "Skipping major version update — requires manual review"

0 commit comments

Comments
 (0)