Require git обязывает прийти с *@mydomain.com - PullRequest
0 голосов
/ 10 февраля 2020

Я задаю этот вопрос здесь, так как кажется, что именно здесь это мета-сообщение предлагает мне опубликовать его. Если это не следует публиковать в stackoverflow и вместо этого следует публиковать где-то еще, пожалуйста, дайте мне знать.

Я пытаюсь применить разрешение ветки в моем репозитории github, которое будет разрешать только новые коммиты из пользователи, для которых настроена информация об авторе с адресом электронной почты из моего домена.

т.е. "разрешать коммиты только от пользователей с адресами электронной почты, заканчивающимися на @ mydomain.com"

Это сделано для того, чтобы разработчики с потенциально неверно сконфигурированной информацией об авторах не могли совершать коммиты. Из-за этого нам пришлось исправлять историю коммитов несколько раз.

У нас нет GitHub Enterprise, поэтому, насколько я знаю, мы не можем использовать для этого хуки предварительного получения, если они также не доступны. за пределами GitHub Enterprise, и я просто не знаю об этом.

Доступна ли эта функция или есть какие-либо сторонние приложения, которые будут предоставлять эту функцию?

Я не хочу требовать от каждого разработчика чтобы настроить ловушку перед фиксацией, я бы предпочел, чтобы это было чем-то, что я могу настроить удаленно, чтобы просто отклонять коммиты, которые не соответствуют критериям.

1 Ответ

0 голосов
/ 11 февраля 2020

GitHub не предоставляет этого изначально. Однако, как и большинство пользовательских проверок, вы можете реализовать это с помощью CI-проверки против запросов на получение. Если вам требуется, чтобы проверки CI проходили перед слиянием, вы можете проверить, что каждый коммит в диапазоне соответствует вашему домену с помощью скрипта, подобного следующему:

#!/bin/sh

! git log --no-merges --format="%ae %ce" $1 | grep -vE '@mydomain.com .*@mydomain.com'

, а затем передать диапазон коммитов в качестве аргумента.

Как вы упомянули, вы можете сделать это с помощью перехвата предварительного получения, если вы используете GitHub Enterprise Server, но перехваты предварительного получения не поддерживаются в облачной версии. Если вы используете свой собственный сервер Git (который, как я подозреваю, не соответствует вашим тегам), то вы действительно можете использовать ловушку предварительного получения.

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