Я пытаюсь автоматизировать git, используя php, curl и GitHub API. Сначала я объединяю функциональную ветвь с веткой по умолчанию (основной), создавая запрос на извлечение, а затем объединяя этот запрос (все через API).
Все идет нормально. Ответ, который я получаю от слияния запроса на извлечение, — это значение sha, merged = true и message = ‘Запрос на извлечение успешно объединен’.
Далее я использую GitHub API для удаления моей ветки dev. Эта операция также успешна. На этом этапе выполнения ветвь dev больше не существует в GitHub при просмотре списка всех ветвей пользовательского интерфейса github.com.
Наконец, я пытаюсь использовать sha, возвращаемый запросом pull, от слияния ветви функций с веткой master для создания новой ветви dev (согласно https://developer.github.com/v3/git/refs/#create-a-reference) с конечной точкой:
/repos/{owner}/{repo}/git/refs
и разместить данные:
{"ref":"refs\/head\/{dev-branch-name}","sha":"{sha-returned-from-previous-merge"}
Я получаю ответ:
{
"message": "Reference already exists",
"documentation_url": "https://developer.github.com/v3/git/refs/#create-a-reference"}
Это оставляет меня без новой ветви разработки. Я догадываюсь, что sha, возвращенный из предыдущего слияния, не тот, который я должен использовать, но я не могу найти никакой документации, объясняющей, откуда мне взять sha для создания новой ветви. Насколько я могу судить, необходим sha, который должен использоваться для ссылки на ветвь новой ветки, поэтому я надеялся, что sha, возникший в результате слияния моей ветви функции с веткой default (master), будет правильный. Кто-нибудь знает, что я здесь пропустил?
Заранее спасибо за помощь!
-Axl
Задача ещё не решена.
Других решений пока нет …