Статусы GitHub: статус Сбой, но все еще может объединить защищенную ветку - PullRequest
0 голосов
/ 26 июня 2019

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

Я сталкиваюсь с этой проблемой, которая говорит, что у меня 5 коммитов (большинствонедавний - аренда)

  • commit1: статус- сбой
  • commit2: статус- сбой
  • commit3: статус- ошибка
  • commit4: статус- ошибка
  • commit5: статус- успех

Слияние разрешено, если у самого последнего PR-коммита есть статус «успех», когда его не должно быть.

Любая комбинация сбоев / успехов не позволит слить ASДОЛГО КАК последний коммит - тоже сбой.

1 Ответ

0 голосов
/ 28 июня 2019

Большинство систем CI применяют подход, который заключается в том, что они проверяют запрос на удаление в целом и что, пока запрос на получение, в том виде, в котором он существует, работает (то есть проходит), запрос на прием является приемлемым.

Однако есть проекты, такие как Git, где каждый коммит должен проходить тесты независимо, чтобы обеспечить возможность деления на части. Если ваш проект является одним из таких, вам необходимо явно настроить систему CI для тестирования каждого коммита в ветви. Большинство систем позволяют запрашивать базовую или целевую ветвь, а затем вы можете вызвать git rebase -x "BUILD-AND-RUN-COMMAND" $BASE_BRANCH$BASE_BRANCH, установленным в соответствии с вашей системой CI), чтобы проверить, что каждый коммит проходит независимо.

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

...