Как выбрать вишню через GitHub API - PullRequest
0 голосов
/ 20 декабря 2018

У меня проблемы с выполнением простого выбора вишни через GitHub API.Это должно быть возможно, но мне не ясно, как ...

Я разрабатываю чат-бота для Slack в C #, чтобы помочь управлять средами Kubernetes и выпусками GitHub, и хочу расширить его с помощью функция исправления .Учитывая среду, он должен создать ветвь, которая соответствует текущему выпуску, и выбрать один или несколько SHA-компонентов, выбранных автором запроса через Slack.

Вся сантехника на месте.Используя POST /repos/:owner/:repo/git/refs, я могу создать ветку, соответствующую конкретному выпуску.Это означает, что у меня есть и branch name, commit SHA и tree SHA, готовые к следующему шагу;сбор вишни одного или нескольких коммитов SHA в эту ветку.Используя POST /repos/:owner/:repo/git/commits, я могу создать коммит, но я не уверен, какое дерево и / или родительский использовать - что, вероятно, вызывает проблемы, с которыми я сталкиваюсь при вызове POST /repos/:owner/:repo/merges, так как он возвращает мне статус 409 (конфликт слияния), гделокально, конечно, это не так.

Единственный реальный пример, который я, похоже, нашел, это https://github.com/tibdex/github-cherry-pick. Однако, он не совсем соответствует моему сценарию, и мне трудно понять внутреннее Gitworkings.

Мой сценарий (от последнего к старому);

* commit E (current state of `master`)
* commit D
* commit C (deployed to environment)
* commit B
* commit A

В этом сценарии я хотел бы выбрать коммит E cherry-to в новую ветвь коммита C, создав набор(A, B, C, E), который я могу выпустить.

* commit E (current state of `master`)
* commit D
|
| * commit E (new branch, to be deployed)
|/
* commit C (deployed to environment)
* commit B
* commit A

В основном мне нужна GitHub API-версия этого bash;

git checkout -b {new-branch-name} {sha}
git cherry-pick {sha}
git push main {new-branch-name}

Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...