name: Auto-fix lint and format on: pull_request: types: [opened, synchronize, reopened] branches: ["*"] permissions: contents: write concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number }} cancel-in-progress: true jobs: autofix: name: Auto-fix if: github.event.pull_request.head.repo.id == github.repository_id runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v7 with: fetch-depth: 0 ref: ${{ github.head_ref }} persist-credentials: false - name: Setup uses: ./tooling/github/setup - name: Get changed files id: changed env: BASE_REF: ${{ github.base_ref }} run: | git diff --name-only --diff-filter=ACMR "origin/${BASE_REF}...HEAD" -- '*.ts' '*.tsx' '*.js' '*.jsx' > /tmp/changed-files echo "count=$(wc -l < /tmp/changed-files | tr -d '[:space:]')" >> $GITHUB_OUTPUT - name: Auto-fix lint + format if: steps.changed.outputs.count != '0' run: | xargs -r -a /tmp/changed-files pnpm exec oxlint --fix || true xargs -r -a /tmp/changed-files pnpm exec oxfmt --write - name: Commit fixes uses: stefanzweifel/git-auto-commit-action@v7 with: commit_message: "style: auto-fix lint and format"