Используйте GitHub API, чтобы отключить кнопку слияния в запросе на вытягивание и повторно включить ее с помощью REST
Я разработал свой собственный веб-сервер, который делает автоматизацию на моем приложении android. Если есть проблемы при запуске автоматизации, я хочу программно отключить кнопку "слияние" в запросе GitHub pull с помощью команды cURL REST. Я не могу выяснить, правильный способ сделать это, но кажется, что многие люди выиграют от этой функции.
api для запросов GitHub pull можно найти здесь:https://developer.github.com/v3/pulls/
I знайте, что это возможно, потому что если у вас есть конфликты слияния в вашей ветви, кнопка становится серой, и вы не можете щелкнуть/объединить ее. Это именно та функциональность, которую я ищу. Любая помощь будет высоко ценится.
2 ответов
это возможно. Есть несколько шагов, которые необходимо предпринять, чтобы включить эту функцию.
-
настроить некоторые из ваших ветвей (обычно это
master
иdevelop
, зависит от вашего документооборота) asprotected
. - используя статусы API вы можете отправить
Pending
,Success
,Error
иFailure
статусы.Pending
,Error
иFailed
статусы будут блокировать кнопку объединить.
после готово вы можете публиковать статусы на основе ваших бизнес-правил.
POST /repos/:owner/:repo/statuses/:sha
:sha
хэш последнего коммита на запрос
С полезной нагрузкой вроде этого:
{
"state": "success",
"target_url": "https://link.to/some/repotring/page",
"description": "Automation tests passed!",
"context": "continuous-integration/automation-tests"
}
одна вещь стоит упомянуть. Когда вы разнесли хотя бы один статус, значение от context
файл будет показан на странице настроек защищенной ветви. Не забудьте отметить этот статус требуется:
защита ветки, а затем блокировка слияния, если проверки состояния не проходят или обзоры не выполняются. Это очень прямое решение, и оно отлично работает. Но если вам более любопытно, попробуйте сделать это, не защищая ветку. Я не мог найти способ сделать это.