我在通过 GitHub API 执行简单的挑选时遇到问题。这一定是可能的,但我不清楚如何......
我正在用 C# 为 Slack 开发一个聊天机器人,以帮助管理 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。然而,它与我的场景不太相符,我很难理解 Git 的内部工作原理。
我的场景(从最新到最旧);
* commit E (current state of `master`)
* commit D
* commit C (deployed to environment)
* commit B
* commit A
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想将提交 E 挑选到提交 C 的新分支中,创建一个可以发布的集合(A、B、C、E)。
* commit E (current …Run Code Online (Sandbox Code Playgroud)