2015-01-11 2 views
4

Я пытаюсь настроить крюк pre-receive в github, который я использовал для STASH. В STASH у меня был крюк pre-receive, который использовался для принудительного исполнения «Пользовательского сообщения о фиксации, которое должно иметь номер JIRA, включенный в него».Commit message hook on github

Теперь я пытаюсь понять, что было бы лучшим способом сделать что-то подобное на github. Если я его разложил, это будет:

  • Требуется пользовательское сообщение о фиксации.
  • Каждое обязательство должно включать существующую JIRA.
  • Принудительное выполнение этого запроса.

Например: TEST-1 Добавление первого сообщения о фиксации.

Может кто-нибудь здесь помочь мне, как это можно сделать?

ответ

2

GitHub только offers webhooks, что позволяет вам слушать и реагировать на certain events, включая push.

Но это позволяет вам реагировать на нажатие (например, крюк после приема), а не предотвращать его.

Вы могли бы построить слушатель, толкающие событие, которое будет:

  • изучить последние коммлю просто толкнул
  • сбрасываются в HEAD~1 если совершать не следует ожидаемой политике (push --force)

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


Лучшим решением было бы установить голое репо на сервере, где вы можете настроить, что предварительно получить крючок: если совершать пассы, то после приема крючок будет толкать его к предполагаемому GitHub репо.

Но в зависимости от вашей команды может быть сложно настроить репо, доступное каждому.

+0

В вашем втором решении я бы попросил разработчиков нажать на другое репо, правда? Если это случай, то я угадываю разработчиков, не хотел бы клонировать с одного репо и нажимать на другое репо, и они хотели бы, чтобы я ушел как можно скорее :). – Jason

+0

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

+0

Вот, взятие, настройка голого репо - это нормально, но что, если кто-то создает запрос на перенос из какой-либо ветки или разветвленного репо, а затем объединяет код непосредственно в основное репо? – Jason