Skip to content

Commit f06debb

Browse files
committed
Create dependabot-automerge.yml
1 parent c6a6eab commit f06debb

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Dependabot Auto-Merge
2+
3+
# This workflow runs AFTER CI completes for Dependabot PRs.
4+
# It waits for CI to pass, then enables auto-merge.
5+
6+
on:
7+
workflow_run:
8+
workflows: ["CI"]
9+
types:
10+
- completed
11+
12+
permissions:
13+
contents: write
14+
pull-requests: write
15+
16+
jobs:
17+
auto-merge:
18+
name: Auto-Merge Dependabot PR
19+
runs-on: ubuntu-latest
20+
# Run if:
21+
# 1. CI passed
22+
# 2. It was triggered by Dependabot
23+
# 3. It was a pull request
24+
if: |
25+
github.event.workflow_run.conclusion == 'success' &&
26+
github.event.workflow_run.actor.login == 'dependabot[bot]' &&
27+
github.event.workflow_run.event == 'pull_request'
28+
29+
steps:
30+
- name: Checkout for metadata
31+
uses: actions/checkout@v4
32+
33+
- name: Fetch Dependabot metadata
34+
id: metadata
35+
uses: dependabot/fetch-metadata@v2
36+
with:
37+
github-token: "${{ secrets.GITHUB_TOKEN }}"
38+
39+
- name: Auto-merge patch/minor updates
40+
if: |
41+
steps.metadata.outputs.update-type == 'version-update:semver-patch' ||
42+
steps.metadata.outputs.update-type == 'version-update:semver-minor'
43+
run: |
44+
echo "Enabling auto-merge for ${{ steps.metadata.outputs.dependency-names }} (${{ steps.metadata.outputs.update-type }})"
45+
gh pr merge --auto --merge "${{ github.event.workflow_run.head_branch }}"
46+
env:
47+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48+
49+
- name: Skip major updates
50+
if: steps.metadata.outputs.update-type == 'version-update:semver-major'
51+
run: |
52+
echo "Major version update for ${{ steps.metadata.outputs.dependency-names }} - review required"

0 commit comments

Comments
 (0)