diff --git a/.github/workflows/auto-merged.yml b/.github/workflows/auto-merged.yml new file mode 100644 index 0000000..70bcd8f --- /dev/null +++ b/.github/workflows/auto-merged.yml @@ -0,0 +1,37 @@ +name: Dependabot automation + +# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enable-auto-merge-on-a-pull-request +on: + pull_request: + types: + - opened + +permissions: + pull-requests: write # need to approve/merge + contents: write # need to merge + issues: write # need to append label + repository-projects: write # need to change pull request title + +jobs: + dependabot-automation: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + timeout-minutes: 15 + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1.6.0 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Approve & enable auto-merge for Dependabot PR + if: | + steps.metadata.outputs.update-type == 'version-update:semver-patch' || + (steps.metadata.outputs.update-type == 'version-update:semver-minor' && steps.metadata.outputs.dependency-type == 'direct:development') + run: | + gh pr review --approve "$PR_URL" + gh pr edit "$PR_URL" -t "(auto merged) $PR_TITLE" + gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + PR_TITLE: ${{ github.event.pull_request.title }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}