Как ведутся ваши репозитории - с оценкой в одном месте.
Здоровье Git проверяет, как ведётся каждый репозиторий, а не что в нём: защищена ли основная ветка, одобряются ли merge request, есть ли в коммитах ключ задачи, есть ли безопасность в пайплайне, на месте ли нужные файлы. 29 правил и взвешенная оценка на GitHub, GitLab, Bitbucket и Azure DevOps.
Экраны работающей установки
Шесть групп, 29 правил
Каждое правило отвечает на вопрос «да или нет» о том, как ведётся репозиторий, и имеет важность и вес.
Защита веток
Основная ветка защищена, нет прямых и принудительных push, ветки релизов и теги защищены.
Правила merge request
Обязательное одобрение, минимум одобрений, без самоодобрения, обсуждения закрыты и пайплайн зелёный до слияния, исходная ветка удаляется после.
Прослеживаемость
Коммиты и заголовки MR содержат ключ задачи, имена веток следуют шаблону, трекер задач подключён.
Безопасность в CI
SAST, поиск секретов, сканирование зависимостей и контейнеров, SBOM и SonarQube с отчётами в MR - находятся в пайплайне, включая подключённые шаблоны.
Порядок в репозитории
CODEOWNERS, закоммиченный lockfile, шаблоны merge request и задач и отсутствие закоммиченных секретных файлов (сопоставление по имени; содержимое не читается). README, .gitignore и SECURITY.md проверяет модуль соответствия.
Сам AppArch
Коллектор отчитывался за последние 30 дней, значит остальные оценки актуальны.
Неизвестно - не значит ноль
Правило, на которое платформа или токен не могут ответить, помечается пропущенным и не входит в оценку. Подключение с истёкшим токеном покажет «0 из 2 оцениваемых», а не «29 провала». То же с пайплайном, который не читается целиком: нечитаемый include - это «пропущено», а не «провалено».
Без регистрации и ручных запусков
Каждый проект с Git-подключением участвует с момента добавления.
- 01
Добавьте проект
Первое сканирование ставится в очередь при создании проекта.
- 02
Сканы обновляются сами
Плановые сканы перепроверяют каждый репозиторий - изменённая на прошлой неделе настройка видна без запросов.
- 03
Исправляйте и следите за оценкой
Каждое проваленное правило говорит, что нашло; оценка проекта стоит в карточке здоровья рядом с оценками других модулей.
Что можно проверить на какой платформе
Не каждая платформа отдаёт все настройки через API. Где ответа нет, правило пропускается и не входит в оценку; провалом оно не считается.
| GitLab | GitHub | Bitbucket | Azure DevOps | |
|---|---|---|---|---|
| Защищены основная и релизные ветки | ||||
| Правила слияния: одобрения, без самоодобрения, зелёный пайплайн, закрытые обсуждения | пропуск | пропуск | ||
| Без force push и прямого пуша в основную ветку | пропуск | пропуск | ||
| Исходная ветка удаляется после слияния | пропуск | пропуск | ||
| Защищённые теги, ключ задачи в правилах веток | пропуск | пропуск | пропуск | |
| Ключи задач в коммитах и заголовках MR, именование веток | ||||
| CODEOWNERS, lockfile, шаблоны, нет закоммиченных секретов | частично | частично | ||
| Инструменты безопасности в CI: SAST, секреты, зависимости, контейнеры, SBOM, SonarQube | ||||
| Collector активен, трекер задач подключён |
Правила, проверяющие много элементов, дают частичный балл: одна незащищённая ветка из семи стоит меньше, чем семь.
Все merge request всех провайдеров в одном списке
Здоровье Git также собирает merge request рабочего пространства в одном месте, на какой бы платформе они ни были.
- Фильтры по статусу, проекту, автору и целевой ветке или поиск
- Значок ведёт от каждого проверенного MR к его отчёту ArchPilot
- Фильтр Archito «дольше обычного» показывает, что застряло
Вопросы о Здоровье Git
Какие платформы поддерживаются?
Читает ли он наш код?
Какие права нужны токену?
Влияет ли Здоровье Git на другие оценки?
Как это выглядит в продукте
Все скриншоты
Посмотрите, как на самом деле ведутся ваши репозитории
Подключите Git-провайдера в ходе PoC - первые оценки придут сразу после добавления проектов.