name: Check mergeability on: pull_request # run on pull request events permissions: # grant write permission on the pull-requests endpoint pull-requests: write jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get changed files in the .changeset folder id: changed-files uses: tj-actions/changed-files@v29 with: files: | .changeset/**/*.md - name: Check if any changesets contain minor changes id: find-blockers run: | echo "Checking for changesets marked as minor" echo '::set-output name=found::false' for file in ${{ steps.changed-files.outputs.all_changed_files }}; do if grep -q "'astro': minor" "$file"; then echo '::set-output name=found::true' echo "$file has a minor release tag" fi done - name: Add label if: steps.find-blockers.outputs.found == 'true' run: | curl --request POST \ --url https://api.github.com/repos/${{github.repository}}/pulls/${{github.event.number}}/labels --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ --header 'content-type: application/json' \ -d '{["semver minor"]}' - name: Send PR review if: steps.find-blockers.outputs.found == 'true' run: | # approve the pull request curl --request POST \ --url https://api.github.com/repos/${{github.repository}}/pulls/${{github.event.number}}/reviews \ --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ --header 'content-type: application/json' \ -d '{"event":"REQUEST_CHANGES","body":"This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved."}'