@@ -7,38 +7,49 @@ permissions:
77 contents : write
88
99jobs :
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