Как настроить TeamCity для поддержки модели pull-request GitHub для интеграции исходного кода?

Мы используем TeamCity и GitHub Enterprise. Мы используем рабочий процесс с открытым исходным кодом с git: существует репозиторий mainline для каждого компонента, и когда люди хотят внести изменения, они

  • fork mainline в свою учетную запись (так что может быть много вилок)
  • создать ветку в своей вилке
  • осуществить изменение
  • обновить с помощью mainline/master изменения, которые произошли за это время
  • отправить запрос на перенос fork/feature-branchmainline/master

Мы очень довольны этим документооборотом; он заставляет проверять код (ну, по крайней мере, ручной шаг, который, надеюсь, включает в себя собственно чтение кода и выполнение его тестов), прежде чем mainline увидит любые изменения, которые исторически были проблемой. Мы хотели бы использовать GH Status API (сообщение в блоге, API doc), чтобы включить кнопку слияния не зеленый, если автор является лицом, смотрящим на запрос pull-request, но для более позднего.

У нас есть TeamCity 7.1, настроенный для просмотра репозиториев mainline и сборки при изменении изменений. Тем не менее, способ, которым он в настоящее время настроен, CI строится только тогда, когда он видит изменения в mainline/master.

Как нам настроить наши корни VCS в TeamCity, чтобы мы могли иметь один и тот же рабочий процесс, но CI запускает сборку на основе ветвей в вилках ретрансляции mainline?. Желательно, чтобы мы не регистрировались каждая вилка индивидуально?

Я прочитал документацию о функциональных подразделениях TeamCity 7.1 (сообщение в блоге, примечания к выпуску, , но я не вижу, как применить его к нашей модели произвольных чисел forks, в отличие от всех - commits-to-mainline-in-feature -branches.

Ответ 2

Насколько мне известно, TeamCity не будет "искать" ваши вилки github любым автоматическим способом.

Я бы решил это, создав vcs root для каждого разворачиваемого разработчика repo и mainline repo. Затем присоедините каждый из этих корней к сборке. Документы.

К сожалению, это ручной процесс. Один раз для разработчика, для каждого репо-компонента. Если бы я действительно хотел автоматизировать это, я бы посмотрел на комбинацию Github Hooks и добавление корней vcs через TeamCity REST Api.