name: Auto Fix Lint and Format on: pull_request_target: types: [opened, synchronize] jobs: auto-fix: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 ref: ${{ github.head_ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: "pnpm" - name: Install dependencies run: pnpm install - name: Run linter and fix issues run: | export NODE_OPTIONS="--max_old_space_size=16384" 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_ENV - name: Commit and push changes if: steps.check_changes.outputs.has_changes == 'true' || env.has_changes == 'true' uses: stefanzweifel/git-auto-commit-action@v5 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' || env.has_changes == 'true' uses: actions/github-script@v7 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.' });