В Code представлен набор правил для контроля за соблюдением определённых политик при отправке кода в Git. Эти правила помогают поддерживать целостность репозитория, повышать качество кода и обеспечивать соответствие стандартам безопасности вашей организации.
Доступные правила
-
Проверять email коммитера
Адрес электронной почты коммитера должен быть подтвержден в профиле Code.
-
Запретить удаление тегов
Тег нельзя удалить через git push. Удаление через веб-интерфейс доступно.
-
Проверка зарегистрированного пользователя
Автор коммита должен быть пользователем Code.
-
Блокировать утечки секретов
Попытка закоммитить файлы, подпадающие под следующие шаблоны, будет отклонена:
aws/credentials
,ssh/personal_rsa
,ssh/personal_dsa
,ssh/personal_ed25519
,ssh/personal_ecdsa
,ssh/personal_ecdsa_sk
,ssh/personal_ed25519_sk
,ssh/server_rsa
,ssh/server_dsa
,ssh/server_ed25519
,ssh/server_ecdsa
,ssh/server_ecdsa_sk
,ssh/server_ed25519_sk
,id_rsa
,id_dsa
,id_ed25519
,id_ecdsa
,id_ecdsa_sk
,id_ed25519_sk
,- файлы с расширением
.pem
или.key
, - файлы
.history
или_history
, - файлы с расширением
.keystore
или.jks
, keystore.p12
,keystore.pfx
.
-
Коммит должен быть подписан GPG
Разрешены только коммиты, подписанные GPG-ключом. Изменения через веб-интерфейс будут отклоняться, если для веб-UI не настроена подпись GPG.
-
В сообщении коммита должен присутствовать DCO (Сертификат происхождения разработчика)
Коммиты должны включать строку «Signed-off-by» для DCO. При включении этого правила функция отмены изменений для запросов на слияние в веб-интерфейсе будет недоступна, поскольку автоматически сгенерированное сообщение о коммите не содержит sign-off.
-
Проверять имя коммитера
Имя коммитера должно совпадать с именем профиля в Code.
-
Регулярное выражение для сообщения коммита
Коммиты должны соответствовать указанному шаблону регулярного выражения. Пустое поле отключает правило.
-
Регулярное выражение для email автора коммита
Email автора должен совпадать с указанным регулярным выражением. Пустое поле отключает правило.
-
Регулярное выражение для имени файла
Имена файлов должны соответствовать указанному шаблону регулярного выражения. Пустое поле отключает правило.
-
Регулярное выражение для имени ветки
Имя ветки должно совпадать с указанным регулярным выражением. Пустое поле отключает правило.
-
Регулярное выражение для недопустимых сообщений коммитов
Если сообщение соответствует указанному шаблону регулярного выражения, коммиты будут отклонены. Пустое поле отключает правило.
-
Максимальный размер файла (МБ)
Файлы, размер которых превышает указанный предел (в мегабайтах), будут отклонены. Чтобы отключить правило, установите значение
0
.
Настройка правил отправки изменений
Чтобы настроить правила отправки изменений, откройте страницу проекта и перейдите в раздел «Настройки» → «Репозиторий» → «Правила отправки изменений».
Настройка правил доступна пользователям с ролью Maintainer
и Owner
.
Настройка правил на уровне группы или инстанса
Чтобы получить доступ к настройке правил на уровне группы, откройте страницу группы и выберите «Настройки» → «Репозиторий» → «Правила отправки изменений». Настройка на уровне группы доступна пользователям с ролью Owner
.
Для настройки на уровне инстанса нажмите «Admin» → «Настройки» → «Репозиторий» → «Правила отправки изменений». Эта настройка доступна только администраторам.
При изменении правила на уровне инстанса новые значения будут применены ко всем правилам в проектах и группах.
При изменении правила на уровне группы новые значения будут применены ко всем нижестоящим группам и их проектам.
Правила, заданные на уровне группы или инстанса, используются как настройки по умолчанию для проектов. При создании проекта будут включены те правила, которые заданы в его группе или на уровне инстанса (если проект создан в пользовательском пространстве).
Запрет на переопределение правил
Можно запретить переопределение правил в нижестоящих проектах и группах. Для этого снимите галочку «Разрешить переопределять на уровне группы/проекта». Такое правило нельзя изменять в нижестоящих группах\проектах. На уровне инстанса эта настройка применяется ко всем группам и проектам.
Примеры:
-
Если на уровне группы включить правило «Проверять email автора коммита» и запретить его переопределение, это правило будет включено во всех проектах группы и подгрупп, без возможности его отключить.
- Если на уровне группы выключить это же правило и запретить его переопределение, оно будет отключено во всех проектах группы и подгрупп, также без возможности изменения.
- Если разрешено переопределение правила, оно будет автоматически обновляться при изменениях на уровне предка, но в нижестоящих группах и проектах его можно будет изменить.
Иерархия применения выглядит так:
Инстанс → Группа → Подгруппа → Проект