diff options
| -rw-r--r-- | .github/workflows/commands.yml | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/.github/workflows/commands.yml b/.github/workflows/commands.yml new file mode 100644 index 000000000..b9252f728 --- /dev/null +++ b/.github/workflows/commands.yml @@ -0,0 +1,58 @@ +name: Trigger actions on PR comments + +on: + issue_comment: + types: [created] + +permissions: + contents: write + pull-requests: read + +jobs: + fix-all: + if: | + github.event.issue.pull_request != null && + github.event.comment.body == '/fix-all' && + ( + github.event.comment.author_association == 'OWNER' || + github.event.comment.author_association == 'MEMBER' || + (github.event.comment.user != null && github.event.comment.user.login == github.event.issue.user.login) + ) + runs-on: ubuntu-latest + + steps: + - name: Get PR branch + uses: actions/github-script@v8 + id: pr-branch + with: + script: | + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }); + return pr.data.head.ref; + result-encoding: string + + - name: Checkout PR branch + uses: actions/checkout@v5 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ref: ${{ steps.pr-branch.outputs.result }} + + - name: Run make fix-all + run: | + set -e + make fix-all + + - name: Commit and push changes + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + if git diff --cached --quiet; then + echo "No changes to commit." + else + git commit -m "chore: make fix-all" + git push + fi |
