diff --git a/.github/workflows/auto-merge-dependabot.yaml b/.github/workflows/auto-merge-dependabot.yaml new file mode 100644 index 000000000..a8e04dbc8 --- /dev/null +++ b/.github/workflows/auto-merge-dependabot.yaml @@ -0,0 +1,46 @@ +name: Dependabot auto-merge + +on: pull_request_target + +permissions: + pull-requests: write + contents: write + packages: read + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }} + steps: + ## Extract information about the dependencies being updated by a Dependabot-generated PR + - name: Dependabot metadata + id: dependabot-metadata + uses: dependabot/fetch-metadata@v1.6.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + ## NOTE: This step is only required if the repository has been configured to Require approval + ## Checks if update-type is patch or minor, then approve if the PR status is not approved yet. + ## Token with PR approval permission is required + - name: Approve patch and minor updates + if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}} + run: | + gh pr checkout "$PR_URL" + if [ "$(gh pr status --json reviewDecision -q .currentBranch.reviewDecision)" != "APPROVED" ]; + then + gh pr review --approve "$PR_URL" + else + echo "PR already approved."; + fi + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.PR_APPROVE_TOKEN}} + + ## NOTE: Requirements for merge has to be configured in the Branch protection rule page. + ## To do so, go to repository > Settings > Branches > Edit + - name: Enable auto-merge for Dependabot PRs + if: ${{ contains(github.event.pull_request.title, 'bump')}} + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5fa12b361..28185fb8e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -68,7 +68,6 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - name: Restore node_modules id: cached-node-modules uses: actions/cache@v3