Skip to content

Commit 616b36e

Browse files
committed
1 automerge to rule them all
1 parent 2fed46a commit 616b36e

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

.github/workflows/auto-merge.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Auto-merge
2+
3+
on:
4+
pull_request_target:
5+
6+
permissions:
7+
contents: write
8+
pull-requests: write
9+
10+
jobs:
11+
auto-merge:
12+
runs-on: ubuntu-latest
13+
if: github.actor == 'd2ai-bot' || github.actor == 'dependabot[bot]'
14+
steps:
15+
- name: Generate token
16+
uses: actions/create-github-app-token@v2
17+
id: app-token
18+
with:
19+
app-id: ${{ secrets.AUTOMERGE_APP_ID }}
20+
private-key: ${{ secrets.AUTOMERGE_PRIVATE_KEY }}
21+
22+
- name: Check Dependabot metadata
23+
if: github.actor == 'dependabot[bot]'
24+
id: metadata
25+
uses: dependabot/fetch-metadata@v2
26+
with:
27+
github-token: ${{ steps.app-token.outputs.token }}
28+
29+
- name: Determine if should auto-merge
30+
id: should-merge
31+
run: |
32+
if [ "${{ github.actor }}" == "d2ai-bot" ]; then
33+
echo "Auto-merge approved for d2ai-bot"
34+
echo "approved=true" >> $GITHUB_OUTPUT
35+
elif [ "${{ github.actor }}" == "dependabot[bot]" ]; then
36+
UPDATE_TYPE="${{ steps.metadata.outputs.update-type }}"
37+
if [ "$UPDATE_TYPE" == "version-update:semver-patch" ] || [ "$UPDATE_TYPE" == "version-update:semver-minor" ]; then
38+
echo "Auto-merge approved for Dependabot ($UPDATE_TYPE)"
39+
echo "approved=true" >> $GITHUB_OUTPUT
40+
else
41+
echo "Auto-merge skipped for Dependabot ($UPDATE_TYPE is major or unknown)"
42+
echo "approved=false" >> $GITHUB_OUTPUT
43+
fi
44+
fi
45+
46+
- name: Enable auto-merge
47+
if: steps.should-merge.outputs.approved == 'true'
48+
run: gh pr merge --auto --merge "${{ github.event.pull_request.html_url }}"
49+
env:
50+
GH_TOKEN: ${{ steps.app-token.outputs.token }}
File renamed without changes.

0 commit comments

Comments
 (0)