docfy coverage
Считает, какая доля ваших эндпоинтов задокументирована. Годится и как объективная метрика качества, и как гейт в CI.
Использование
bash
npx nestjs-docfy coverage [options]Параметры
| Option | Default | Description |
|---|---|---|
--root <path> | . | Project root directory |
--tsconfig <path> | auto-detected | Path to tsconfig.json |
--pattern <glob> | **/*.controller.ts | Glob pattern to find controllers |
--format <format> | ts | Формат docs-файлов, которые нужно искать: ts или js |
--min <percent> | none | Минимально допустимое покрытие (0-100), ниже порога завершается с 1 |
--json | false | Выводить один объект JSON вместо форматированного текста: отчёт о покрытии плюс min и passed. |
--quiet | false | Suppress all output except errors |
Пример вывода
text
Controllers: 42
Endpoints: 187
Documented: 174
Missing docs: 13
Coverage: 93.0%Как задать минимум в CI
bash
npx nestjs-docfy coverage --min 95Когда покрытие опускается ниже --min, команда завершается с кодом 1 и роняет сборку.
.github/workflows/*.yml
# GitHub Actions example
- name: Enforce documentation coverage
run: npx nestjs-docfy coverage --min 95Либо в виде npm-скрипта:
json
{
"scripts": {
"docs:coverage": "nestjs-docfy coverage --min 95"
}
}Бот для PR
Живой пример есть у самого nest-docfy в .github/workflows/pr-check.yml: на каждый PR он прогоняет по проекту check --json и coverage --json --min, а затем оставляет один сводный комментарий, обновляя его вместо того, чтобы плодить новые. Всё построено на выводе --json и обычном fetch к REST API GitHub, без единой лишней зависимости.