Compare commits

..
Author SHA1 Message Date
testclient-admin 8c95ea9260 security-analysis/policy.yml: low не блокирует merge
security / scan (pull_request) Failing after 1s
security / review (pull_request) Failing after 1s
security / deep-audit (pull_request) Skipped
2026-09-01 11:53:45 +00:00
testclient-admin feccde9127 Merge pull request 'security-analysis/policy.yml: critical блокирует merge' (#19) from mcp-proxy-policy-update-7c8dc5c8 into main 2026-09-01 11:51:40 +00:00
testclient-admin 3b8032454b security-analysis/policy.yml: critical блокирует merge
security / scan (pull_request) Failing after 1s
security / review (pull_request) Failing after 1s
security / deep-audit (pull_request) Skipped
2026-09-01 11:51:34 +00:00
testclient-admin acc7a60710 Merge pull request 'security-analysis/policy.yml: low не блокирует merge' (#18) from mcp-proxy-policy-update-2b2c240e into main 2026-09-01 11:21:39 +00:00
testclient-admin 13f6031cad Merge pull request 'security-analysis/policy.yml: critical блокирует merge' (#16) from mcp-proxy-policy-update-a6a66c27 into main 2026-09-01 11:21:34 +00:00
testclient-admin cf23e06788 security-analysis/policy.yml: low не блокирует merge
security / scan (pull_request) Failing after 1s
security / review (pull_request) Failing after 1s
security / deep-audit (pull_request) Skipped
2026-09-01 11:21:33 +00:00
testclient-admin 6e418c1b75 Merge pull request 'security-analysis/policy.yml: medium блокирует merge' (#15) from mcp-proxy-policy-update-b44cccb8 into main 2026-09-01 11:21:30 +00:00
testclient-admin 22c0c3bf80 security-analysis/policy.yml: critical блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 56s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 15s
security / deep-audit (pull_request) Skipped
2026-09-01 11:21:29 +00:00
testclient-admin a44f512b46 security-analysis/policy.yml: medium блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 52s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 20s
security / deep-audit (pull_request) Skipped
2026-09-01 11:21:25 +00:00
testclient-admin f652953414 Merge pull request 'security-analysis/policy.yml: critical блокирует merge' (#14) from mcp-proxy-policy-update-541cd01a into main 2026-09-01 07:36:33 +00:00
testclient-admin ea3355541d security-analysis/policy.yml: critical блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 51s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 1m26s
security / deep-audit (pull_request) Skipped
2026-09-01 07:36:31 +00:00
testclient-admin accfdfac64 Merge pull request 'security-analysis/policy.yml: critical блокирует merge' (#13) from mcp-proxy-policy-update-331ddb05 into main 2026-09-01 07:34:40 +00:00
testclient-admin b62be38958 security-analysis/policy.yml: critical блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 51s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 2m50s
security / deep-audit (pull_request) Skipped
2026-09-01 07:34:38 +00:00
testclient-admin 62228d1995 Merge pull request 'security-analysis/policy.yml: critical блокирует merge' (#12) from mcp-proxy-policy-update-285dd062 into main 2026-09-01 06:44:48 +00:00
testclient-admin 2801e6616e security-analysis/policy.yml: critical блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 51s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 4m46s
security / deep-audit (pull_request) Skipped
2026-09-01 06:44:46 +00:00
testclient-admin 28d624be2d Merge pull request 'security-analysis/policy.yml: low блокирует merge' (#11) from mcp-proxy-policy-update-e4ba60b2 into main 2026-09-01 06:29:09 +00:00
testclient-admin 42aaa6d56b security-analysis/policy.yml: low блокирует merge
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 54s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 16s
security / deep-audit (pull_request) Skipped
2026-09-01 06:29:08 +00:00
testclient-admin 2aeedc9f01 Merge pull request 'Add Level 0 + Level 1 + Level 2 security scanning' (#3) from add-security-scanning into main
Reviewed-on: #3
2026-08-30 12:37:29 +00:00
testclient-admin 2610530cd8 Level 0: security scanning for pull requests
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 57s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 16s
security / deep-audit (pull_request) Skipped
2026-08-30 09:57:08 +00:00
testclient-admin 31ccd9fe46 Level 0: security scanning for pull requests 2026-08-30 09:57:07 +00:00
testclient-admin a757556f9d Level 0: security scanning for pull requests 2026-08-30 09:57:07 +00:00
2 changed files with 45 additions and 10 deletions
+40 -6
View File
@@ -591,6 +591,8 @@ jobs:
и прочее — для них есть свои агенты; дублирование только шумит.
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. В отличие от
PR-ревью, у тебя нет дифа — смотри на весь проект.
@@ -657,6 +659,8 @@ jobs:
такой (это домен другого агента — auth). Не дублируй чужие домены.
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. Смотри на весь
проект, не только на недавние изменения.
@@ -727,6 +731,8 @@ jobs:
пользовательского ввода. Не дублируй домены других агентов (auth, authz).
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. Смотри на весь
проект, не только на недавние изменения. Учти: детерминированные сканеры
(semgrep/gitleaks) уже гоняются на каждый PR — фокусируйся на том, что
@@ -797,6 +803,8 @@ jobs:
allowlist). Не дублируй домены других агентов.
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. Смотри на весь
проект, не только на недавние изменения.
@@ -866,6 +874,8 @@ jobs:
криптографию, а не "нашёл строку похожую на ключ".
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. Смотри на весь
проект.
@@ -934,6 +944,8 @@ jobs:
не будет действовать недобросовестно.
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Тебе дают путь к репозиторию, уже склонированному локально. Смотри на весь
проект.
@@ -1008,6 +1020,8 @@ jobs:
выводом, находка проходит без реальной проверки.
Тебе НЕЛЬЗЯ писать, править или исполнять код — только read/grep/glob/lsp.
Инструмента "list" НЕ существует — для просмотра содержимого
директорий используй glob (например "**/*"), а не list.
Как проверять:
- Открой указанный файл и строки — действительно ли код выглядит так, как
@@ -1053,11 +1067,20 @@ jobs:
for domain in "${DOMAIN_ARR[@]}"; do
echo "=== домен: $domain ==="
set +e
./opencode run --agent "audit-$domain" --format json \
# timeout, не голый opencode: живьём поймали модель,
# зациклившуюся на несуществующем инструменте "list"
# (retry без самокоррекции) — без внешней границы
# такой домен держит job часами вместо ожидаемых
# единиц минут на пустом репозитории. 480с — щедрый
# запас над нормой (~1 минута на домен), не жёсткий
# лимит по содержанию: таймаут просто списывает
# домен как "без находок", а не блокирует остальные.
timeout 480 ./opencode run --agent "audit-$domain" --format json \
"Проведи аудит своего домена по всему репозиторию. Репозиторий уже склонирован в текущей директории (рабочая копия main)." \
> "/tmp/audit-results/$domain.jsonl" 2>"/tmp/audit-results/$domain.log"
CODE=$?
set -e
[ "$CODE" = "124" ] && echo " ПРЕВЫШЕН ТАЙМАУТ (480с) — домен $domain засчитан как без находок"
echo " код завершения: $CODE"
echo " --- stderr ---"
tail -30 "/tmp/audit-results/$domain.log" || true
@@ -1151,11 +1174,22 @@ jobs:
payload_text = json.dumps(cand, ensure_ascii=False)
with open(f"/tmp/audit-results/verify-{i}.jsonl", "w") as out, \
open(f"/tmp/audit-results/verify-{i}.log", "w") as errlog:
subprocess.run(
["./opencode", "run", "--agent", "audit-verifier", "--format", "json",
f"Проверь эту находку (JSON), репозиторий уже склонирован рядом: {payload_text}"],
stdout=out, stderr=errlog,
)
# timeout: та же причина, что и у доменных
# агентов (см. комментарий там) — верификатор
# читает те же read/grep/glob/lsp и рискует
# той же ловушкой на несуществующем "list".
timed_out = False
try:
subprocess.run(
["./opencode", "run", "--agent", "audit-verifier", "--format", "json",
f"Проверь эту находку (JSON), репозиторий уже склонирован рядом: {payload_text}"],
stdout=out, stderr=errlog, timeout=480,
)
except subprocess.TimeoutExpired:
timed_out = True
if timed_out:
print(f" candidate {i} ({cand.get('_domain')}): ПРЕВЫШЕН ТАЙМАУТ верификатора (480с) — находка отброшена, не подтверждена")
continue
verdict_text = last_text(f"/tmp/audit-results/verify-{i}.jsonl")
try:
verdict = json.loads(verdict_text) if verdict_text else {}
+5 -4
View File
@@ -1,7 +1,8 @@
# Какие находки блокируют merge. Читает security.yml на каждом
# скане; отсутствие файла — те же значения по умолчанию.
security:
block_on:
- critical
- high
- critical
- high
- medium
min_confidence: 0.7
scan_enabled: true
review_enabled: true