merge-dependabot-pr.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. name: Merge Dependabot PR
  2. on:
  3. pull_request:
  4. run-name: Merge Dependabot PR ${{ github.ref_name }}
  5. env:
  6. GH_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
  7. jobs:
  8. merge-dependabot-pr:
  9. runs-on: ubuntu-latest
  10. if: github.actor == 'dependabot[bot]'
  11. steps:
  12. - uses: actions/checkout@v4
  13. with:
  14. show-progress: false
  15. - uses: actions/setup-java@v4
  16. with:
  17. distribution: temurin
  18. java-version: 17
  19. - name: Set Milestone to Dependabot Pull Request
  20. id: set-milestone
  21. run: |
  22. if test -f pom.xml
  23. then
  24. CURRENT_VERSION=$(mvn help:evaluate -Dexpression="project.version" -q -DforceStdout)
  25. else
  26. CURRENT_VERSION=$(cat gradle.properties | sed -n '/^version=/ { s/^version=//;p }')
  27. fi
  28. export CANDIDATE_VERSION=${CURRENT_VERSION/-SNAPSHOT}
  29. MILESTONE=$(gh api repos/$GITHUB_REPOSITORY/milestones --jq 'map(select(.due_on != null and (.title | startswith(env.CANDIDATE_VERSION)))) | .[0] | .title')
  30. if [ -z $MILESTONE ]
  31. then
  32. gh run cancel ${{ github.run_id }}
  33. echo "::warning title=Cannot merge::No scheduled milestone for $CURRENT_VERSION version"
  34. else
  35. gh pr edit ${{ github.event.pull_request.number }} --milestone $MILESTONE
  36. echo mergeEnabled=true >> $GITHUB_OUTPUT
  37. fi
  38. - name: Merge Dependabot pull request
  39. if: steps.set-milestone.outputs.mergeEnabled
  40. run: gh pr merge ${{ github.event.pull_request.number }} --auto --rebase