Предоставляет ли github предварительные приемные крючки?
Предоставляет ли GitHub предварительные или обновленные перехватчики?
То, что я хотел бы сделать, это не допустить, чтобы первичные ветки были перенесены (то есть мастер, исправление, разработка) и потребовали, чтобы они были объединены с помощью запроса на выбор GitHub. Это частное репо, поэтому стиль формовки GitHub не является вариантом.
Любой совет о том, как это сделать, будет очень полезен.
Ответы
Ответ 1
Только те, кому вы указали "коллаборационисты", могут нажать на репозиторий, размещенный в Github. См. Страницу "admin" в репозитории для добавления соавторов. Все остальные должны представить "запрос на тяну", чтобы получить их дополнения, принятые администратором хранилища. См. Права доступа Github. (Нет разрешений на доступ к отдельным ветким.) Таким образом, для достижения вашей цели вам не нужны перехватчики; то, что вам нужно, уже встроено.
Два примечания:
- частные хранилища Github могут иметь несколько вкладчиков.
- для Github было бы необычно поддерживать предварительные приемные крючки (или любые другие серверные перехватчики), учитывая, что на крючках содержится произвольный код.
Ответ 2
Несмотря на то, что GitHub сам не разрешает перехватывать, GitHub Enterprise версии 2.6 включает поддержку предварительного приема. Более подробную информацию об этом можно найти здесь: https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/. Это экстенты с широким охватом до приема, чтобы предотвратить пересылку любой информации в какие-либо репозитории.
То, что я хотел бы сделать, это не допустить, чтобы первичные ветки были нажаты (т.е. мастер, исправление, разработка) и потребовали, чтобы они были объединены с помощью запроса на перенос GitHub.
Однако к этому моменту вы можете настроить хранилища GitHub или GitHub Enterprise с защищенными ветвями. Это предотвращает удаление ветки, принудительное нажатие, только некоторые люди или команды могут объединиться или требуется проверка статуса, прежде чем слияние будет допустимым. Для получения дополнительной информации см. https://help.github.com/articles/about-protected-branches/!
Ответ 3
Если вы сотрудничаете с надежной командой (которая, как я полагаю, с тех пор является частным репо), и вы хотите реализовать это просто, чтобы люди случайно не нарушали ваши стандартные рабочие процедуры из чистой привычки, лучше всего do распространяет пользовательский pre-push
hook script для каждого, чтобы установить его в каталог .git/hooks
. (Я сделал что-то подобное недавно, настаивая на том, чтобы все выполняли git config branch.autosetuprebase always
, который неявно меняет git pull
на git pull --rebase
, чтобы устранить ненужные слияния, когда существуют локальные непрочитанные коммиты)
Если по какой-то причине это не сработает, я обнаружил, что угроза потери прав коммитов после факта обычно является эффективным механизмом для честного общения людей.