Skip to content
Apothem
Безопасность

Защита веток

Защита веток Apothem на main — гейт ревью, гейтинг через проверки статуса и ограничения push.

Ветка main Apothem защищена защитой веток GitHub после публикации единственного свежего коммита релиза. Защита обеспечивает соблюдение дисциплины набора изменений, объявленной в rules/production-ready-prs.md, и питает проверки Branch-Protection и Code-Review OpenSSF Scorecard для будущей работы.

Объявление набора правил

ПараметрЗначениеОбоснование
ЦельmainЗащищает публичную ветку по умолчанию.
Статус примененияactiveНе в режиме пробного прогона.
Требовать pull request перед слияниемПрямые push в main заблокированы.
Требуемые одобряющие ревью1Минимальный гейт человеческого ревью для нового проекта с единственным сопровождающим.
Отклонять устаревшие одобрения при новых коммитахForce-push после одобрения повторно запускает ревью.
Требовать ревью от Code OwnersОтложеноВключение этого до присоединения второго сопровождающего может заблокировать PR единственного сопровождающего.
Требовать одобрения самого недавнего проверяемого pushПоследний отправленный коммит должен нести одобрение.
Требовать разрешения обсужденийОткрытые треды ревью блокируют слияние.
Требовать прохождения проверок статусаWorkflow CI + Scorecard + CodeQL + pip-audit.
Обязательные проверки статусаТекущие основные проверкиОбязательный список обновляется из последнего зелёного коммита релиза.
Требовать актуальности ветокПредотвращает регрессии из-за устаревшего слияния.
Требовать подписанных коммитовРекомендуетсяЛокальные коммиты релиза подписаны; полное применение ждёт, пока документация по онбордингу участников не опишет настройку SSH/GPG.
Требовать линейной историиСохраняет понятность однолинейной публичной истории.
Блокировать force-pushПерезапись истории на main заблокирована.
Разрешить удалениеВетку main нельзя удалить.

Ограничение единственного сопровождающего

GitHub не позволяет файлам репозитория создавать историю человеческих ревью. Поэтому репозиторий применяет самую сильную незаблокирующую защиту веток для своей текущей модели сопровождающего: одно одобряющее ревью, отклонение устаревших ревью, одобрение последнего push, разрешение обсуждений, проверки статуса, линейная история, а также запрет удаления ветки или force-push. Когда присоединится второй сопровождающий, ревью CODEOWNERS и минимум из двух рецензентов станут более сильной настройкой.

Требования к проверкам статуса

Четыре жёстко гейтящие проверки статуса, объявленные выше:

  • ci — полная тестовая матрица + ruff + mypy + bandit + Trivy + pip-audit по разрешённому дереву зависимостей
  • Scorecard — запуск OpenSSF Scorecard без регрессии по отдельной проверке
  • CodeQL — пакеты запросов security-extended для python + actions
  • pip-audit — еженедельное + по каждому PR сканирование уязвимостей по разрешённому дереву зависимостей

Любой другой workflow может сообщать статус, но его результат не гейтит слияние, если он не повышен до списка обязательных проверок.

Ритм аудита

Этот файл пересматривается при каждом аудите безопасности и на каждой контрольной точке релиз-инженерии. Расхождение между этим файлом и фактической конфигурацией защиты веток является находкой высокой степени серьёзности.

Ссылки

On this page