merge-dependabot-pr.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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.actor == 'dependabot[bot]'
  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. - name: Merge Dependabot pull request
  38. if: steps.set-milestone.outputs.mergeEnabled
  39. run: gh pr merge ${{ github.event.pull_request.number }} --auto --rebase
  40. env:
  41. GH_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}