Поддерживает ли github предварительные итоги?

В настоящее время мы используем SVN. Я хотел бы начать использовать GitHub, но одним из абсолютных требований является то, что нам нужно иметь предварительную проверку (premerge) проверки кода, как у нас в настоящее время. Поддерживает ли GitHub предварительные задания (premergehooks)?

Мы - команда из 5 разработчиков. Мы договорились, что весь код (JavaScript) должен пройти проверку JSLint-like. Добровольная проверка доказала свою эффективность, поскольку она легко забывается. Как мы можем быть уверены, что код, доступный для других, гарантированно проверяется на JSLint (или аналогичный)?

Ответ 1

Концепция, которую я искал, - это préceive hook

Ответ 2

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

http://scottchacon.com/2011/08/31/github-flow.html

Основная идея заключается в том, что вы используете запросы на загрузку, как упомянуто выше, но вы также можете иметь службу, которая может использовать github api для извлечения или вытягивания ветки, выполняющей запрос, слияния, проверки, проверки и затем нажатия на целевую ветвь,

Ответ 3

Я не верю, что github поддерживает привязки до фиксации. Тем не менее, ядро ​​ git делает. Вы могли бы настроить привязки pre-commit локально или применять их как тест перед объединением ветвей в ваш основной github.

Ответ 4

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

Ответ 5

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

  • Размещение основного репо
  • Попросите ваших разработчиков создать собственную вилку
  • Пусть они счастливо взломают, совершают и подталкивают к своему сердцу.
  • Когда они думают, что функция готова, они отправляют вам запрос на вытягивание (сопровождающий), который вы сами проверяете сбоку, чтобы обеспечить стабильность. Затем вы объединяете/сворачиваете свои изменения в основное репо.

Естественно, есть много способов скинуть кошку. Но когда вы говорите о "реальном git" (таком, который используется сообществом с открытым исходным кодом), централизованная модель "check-it-in-and-it-dam-well-better-work-work" довольно сложна, особенно когда речь идет о крупных проектах.