Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 2.86 KB

README.md

File metadata and controls

35 lines (22 loc) · 2.86 KB

gitlab-check-commiter

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

Пререквизиты

Для работы скрипта нужно:

  1. GitLab Community Edition с включенной аутентификацией через LDAP.
  2. Программы curl, jq и ldapsearch из пакета openldap-clients.

Установка

  1. Скопируйте скрипт 2-check в каталог /opt/gitlab/embedded/service/gitlab-shell/hooks/pre-receive.d/.
  2. Отредактируйте в начале скрипта переменные GITLAB_BASE, GITLAB_API, AUTH_TOKEN, LDAP_URL, BASE_DN, BIND_DN, BIND_PASSWORD, REPO_BASE, ADMIN_CONTACT.

Проверка работы скрипта

  1. Сделайте коммит от имени несуществующего пользователя git commit --author "Vasya Pupkin <[email protected]>".
  2. Выполните push git push

При правильной установке и настройке скрипта, push будет отвергнут, и с сервера GitLab придет ответ примерно такого вида:

Внимание! Скриптом pre-receive-hook обнаружены следующие ошибки:
1. В LDAP не найден email владельца коммита "[email protected]". Исправьте коммит 7e6a1cb8193cb8d2ff2273e36ae779caf0aaa57e и повторите push.
2. В LDAP не найден email автора изменений "[email protected]". Исправьте коммит 7e6a1cb8193cb8d2ff2273e36ae779caf0aaa57e и повторите push.
Push заблокирован. Выполните указанные рекомендации или обратитесь за помощью к Vasya Pupkin <[email protected]>.

Дополнительные возможности

Чтобы отключить проверки для отдельных репозиториев, добавьте значения в массивы mirrors или forks. Если путь к репозиторию соответствует одному из шаблонов в массиве forks, то допускается пуш коммитов других пользователей. Если путь к репозиторию соответствует одному из шаблонов в массиве mirrors, то допускается пуш коммитов любых авторов.

Чтобы отключить проверки для отдельных пользователей, добавьте их логины в массив superusers.