ревью: govulncheck в task setup и статус WARN в гейте

Инструмент ставится вместе с остальными (версия закреплена), гейт его больше не
пропускает.

Уязвимость почти всегда унаследована — это состояние зависимостей и тулчейна, а
не диффа, — поэтому шаг не краснит гейт, а получает статус WARN: виден в сводке,
уезжает в находки и в границы покрытия. Иначе красный гейт на каждом прогоне
перестают читать. Уязвимость, приехавшую с новой зависимостью change, агент
отличает по трассам вызовов и выводит как major.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-07-23 18:25:47 +03:00
co-authored by Claude Opus 4.8
parent 89b3285b5a
commit f21f2f9ca8
3 changed files with 27 additions and 8 deletions
+14 -4
View File
@@ -9,7 +9,10 @@
#
# Коды возврата: 0 — все обязательные шаги зелёные, 1 — есть красные.
# Пропущенные шаги (нет инструмента) НЕ красят гейт, но попадают в сводку:
# молча пропущенная проверка — это ложное ощущение проверенности.
# молча пропущенная проверка — это ложное ощущение проверенности. То же с WARN:
# отказ, который почти всегда унаследован (уязвимость в зависимости или в
# стандартной библиотеке), не должен краснить каждый прогон ревью — иначе
# красный гейт перестают читать. Разбирает такой отказ агент.
set -u
@@ -127,10 +130,17 @@ else
fi
# --- Уязвимости зависимостей ---
# Не блокирует: находка тут — состояние зависимостей и тулчейна, а не диффа.
# Исключение (уязвимость приехала с новой зависимостью в этом change) разбирает
# агент по списку вызовов.
if command -v govulncheck >/dev/null; then
step govulncheck "" govulncheck ./...
if govulncheck ./... >"$OUT_DIR/govulncheck.log" 2>&1; then
record OK govulncheck ""
else
record WARN govulncheck "достижимо из кода уязвимостей: $(grep -c '^Vulnerability #' "$OUT_DIR/govulncheck.log")$OUT_DIR/govulncheck.log"
fi
else
record SKIP govulncheck "govulncheck не установлен (go install golang.org/x/vuln/cmd/govulncheck@latest)"
record SKIP govulncheck "govulncheck не установлен (task setup)"
fi
echo
@@ -144,4 +154,4 @@ if [ "$FAILED" -eq 1 ]; then
echo "ГЕЙТ КРАСНЫЙ — опиниативные проходы не запускаются"
exit 1
fi
echo "гейт зелёный (пропущенные шаги см. в сводке — они идут в границы покрытия)"
echo "гейт зелёный (шаги WARN и SKIP см. в сводке — они идут в находки и в границы покрытия)"