# React Doctor — finds security, performance, correctness, accessibility,
# bundle-size, and architecture issues in React codebases.
#
# Docs: https://www.react.doctor/ci
# Source: https://github.com/millionco/react-doctor

name: React Doctor

on:
  # Scans the PR's changed files and posts a sticky summary comment listing only the new issues introduced relative to the merge base of the target branch.
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]
  # Scans `main` on every push to track the health-score trend and catch regressions that slipped past PR review.
  push:
    branches: [main]

permissions:
  contents: read
  pull-requests: write
  issues: write
  statuses: write

# Cancels any in-flight scan for the same PR (or branch, on push) the moment a new commit arrives, so reviewers only ever see the latest run.
concurrency:
  group: react-doctor-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  react-doctor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - uses: millionco/react-doctor@v2
        # Common configuration knobs — uncomment any to override the default.
        # Full reference: https://www.react.doctor/ci
        # with:
        #   blocking: warning        # Gate level: "error" (default) | "warning" | "none" (advisory)
        #   scope: full              # On PRs, scan the whole project instead of just changed files
        #   comment: false           # Disable the sticky PR summary comment
        #   review-comments: false   # Disable inline review comments on changed lines
        #   commit-status: false     # Disable the commit status (score + counts, links to the run)
        #   version: "0.4.0"         # Pin to a specific react-doctor version instead of "latest"
        #   directory: apps/web      # Scan a sub-directory (default: ".")
        #   project: "web,admin"     # In a monorepo, scan specific workspace project(s)
