Skip to content

Commit 0b4e9ea

Browse files
committed
feat(workflows): enhance Dependabot PR review process 2
1 parent b6a023d commit 0b4e9ea

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

.github/workflows/dependabot-reviewer.yml

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,49 @@ permissions:
77
contents: write
88

99
jobs:
10-
1110
review-dependabot-pr:
1211
runs-on: ubuntu-latest
1312
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
13+
env:
14+
PR_URL: ${{ github.event.pull_request.html_url }}
15+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16+
1417
steps:
18+
- name: Check out repository
19+
uses: actions/checkout@v3
20+
with:
21+
token: ${{ secrets.GITHUB_TOKEN }}
22+
1523
- name: Dependabot metadata
1624
id: dependabot-metadata
1725
uses: dependabot/fetch-metadata@v2.1.0
26+
27+
- name: Fetch all branches
28+
run: git fetch --all
29+
30+
- name: Attempt fast-forward merge
31+
run: |
32+
BASE_BRANCH="${{ github.event.pull_request.base.ref }}"
33+
HEAD_BRANCH="${{ github.event.pull_request.head.ref }}"
34+
git checkout $BASE_BRANCH
35+
git merge --ff-only $HEAD_BRANCH || exit 0
36+
env:
37+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38+
1839
- name: Enable auto-merge for Dependabot PRs
40+
if: ${{ github.event.pull_request.merged == false }}
1941
run: gh pr merge --auto --merge "$PR_URL"
20-
env:
21-
PR_URL: ${{github.event.pull_request.html_url}}
22-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
42+
2343
- name: Approve patch and minor updates
24-
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
25-
run: |
26-
git rebase origin/${{github.base_ref}}
27-
gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
28-
env:
29-
PR_URL: ${{github.event.pull_request.html_url}}
30-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
44+
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor' }}
45+
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because it includes a ${{ steps.dependabot-metadata.outputs.update-type }} update"
46+
3147
- name: Approve major updates of development dependencies
32-
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development'}}
48+
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development' }}
3349
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a major update of a dependency used only in development**"
34-
env:
35-
PR_URL: ${{github.event.pull_request.html_url}}
36-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
50+
3751
- name: Comment on major updates of non-development dependencies
38-
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production'}}
52+
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production' }}
3953
run: |
4054
gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency used in production**"
4155
gh pr edit $PR_URL --add-label "requires-manual-qa"
42-
env:
43-
PR_URL: ${{github.event.pull_request.html_url}}
44-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

0 commit comments

Comments
 (0)