Невозможно определить работу моей операции проверки статуса github - PullRequest
0 голосов
/ 26 мая 2020

Это моя защищенная (основная) конфигурация ветки:

enter image description here

И вот что я пробовал:

$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 306 bytes | 306.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "build-pipeline" is expected.
To github.com:AdityaGovardhan/my-repo.git
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to 'git@github.com:AdityaGovardhan/my-repo.git'

Итак, у меня есть репозиторий github my-repo. У меня есть действие build-pipeline GitHub, которое я сохранил по мере необходимости для добавления фиксации в мастер. Вот что говорит требуемый оператор проверок:

Выберите, какие проверки статуса должны пройти, прежде чем ветви можно будет объединить в ветвь, соответствующую этому правилу. Если этот параметр включен, коммиты должны сначала быть отправлены в другую ветку, а затем объединены или отправлены непосредственно в ветвь, которая соответствует этому правилу, после прохождения проверки статуса.

Итак, вот что я ожидал, это произойдет. Я могу передать sh с моего локального мастера на удаленный мастер (который защищен) напрямую из-за последнего оператора ^ , но фиксация будет в промежуточном состоянии на удаленном компьютере, потому что build-pipeline проверка статуса еще не прошла. Я знаю, что git работает не так. Но тогда в чем смысл этого последнего оператора ^ , когда он вынуждает меня создать незащищенную ветку и поднять запрос на вытягивание для выполнения проверки состояния build-pipeline, а затем слиться с мастер.

1 Ответ

1 голос
/ 27 мая 2020

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

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

...