ревью: govulncheck в task setup и статус WARN в гейте
Инструмент ставится вместе с остальными (версия закреплена), гейт его больше не пропускает. Уязвимость почти всегда унаследована — это состояние зависимостей и тулчейна, а не диффа, — поэтому шаг не краснит гейт, а получает статус WARN: виден в сводке, уезжает в находки и в границы покрытия. Иначе красный гейт на каждом прогоне перестают читать. Уязвимость, приехавшую с новой зависимостью change, агент отличает по трассам вызовов и выводит как major. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+14
-4
@@ -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 см. в сводке — они идут в находки и в границы покрытия)"
|
||||
|
||||
Reference in New Issue
Block a user