merge-dependabot-pr.yml 1.8 KB

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