name: Auto Fix Lint and Format on: pull_request: types: [opened, synchronize] permissions: contents: write pull-requests: write jobs: auto-fix: if: github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v6 with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Set up pnpm uses: pnpm/action-setup@v6 - name: Set up Node.js uses: actions/setup-node@v6 with: node-version: "22" cache: "pnpm" - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run linter and fix issues run: pnpm run lint:fix - name: Run formatter run: pnpm run format - name: Check for changes id: check_changes run: | git diff --exit-code || echo "has_changes=true" >> "$GITHUB_OUTPUT" - name: Commit and push changes if: steps.check_changes.outputs.has_changes == 'true' uses: stefanzweifel/git-auto-commit-action@v7 with: commit_message: "chore: auto-fix linting and formatting issues" commit_options: "--no-verify" file_pattern: "." - name: Add PR comment if: steps.check_changes.outputs.has_changes == 'true' uses: actions/github-script@v9 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: 'Linting and formatting issues were automatically fixed. Please review the changes.' });