name: Auto Fix Lint and Format permissions: contents: read pull-requests: write on: pull_request: 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: Set up Bun uses: oven-sh/setup-bun@v1 with: bun-version: "latest" - name: Install dependencies run: bun install - name: Run linter & formatter and fix issues run: bun run check:fix - 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.' });