Skip to content

seregaizsbera/gitlab-check-commiter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

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.

About

Hook for GitLab integration with LDAP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages