Files
HealthLog/.github/workflows/no-todo-markers.yml
T

40 lines
1.3 KiB
YAML

name: No TODO markers
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
permissions:
contents: read
jobs:
# Product code is currently zero TODO / FIXME / XXX / HACK markers and
# the convention is to keep it that way — open a real follow-up issue
# instead of leaving a marker in the source. This gate fails fast if a
# future contributor reintroduces the pattern.
grep:
name: Forbidden marker grep
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Scan src/ for TODO/FIXME/XXX/HACK markers
run: |
# Tests are exempt — they can legitimately reference an outstanding
# ticket via a TODO; `src/generated/` is third-party output from
# `prisma generate` and is regenerated on every db:generate.
if grep -rEn "\b(TODO|FIXME|XXX|HACK)\b" src/ \
--include='*.ts' \
--include='*.tsx' \
--exclude-dir='__tests__' \
--exclude-dir='generated' \
--exclude='*.test.ts' \
--exclude='*.test.tsx'; then
echo "::error::TODO/FIXME/XXX/HACK markers detected in product code — open a follow-up issue instead."
exit 1
fi
echo "::notice::No forbidden markers in product code."