从 Cake 中的 GitHub Pull Requests 访问目标分支名称

Access target branch name from GitHub Pull Requests in Cake

我正在使用 Cake 和 Teamcity,我正在尝试访问 GitHub PR 的目标分支

一直在尝试为 Cake 找到一个 GitHub API 包装器来完成这项工作,或者为 TeamCity 寻找一个 plugin/script 来用值填充一些参数,但到目前为止没有运气.

我错过了 Cake 或 TeamCity 中 Github PR 的任何好的包装器吗?

我确定您没有遗漏任何内容。

问题是 - 在搜索如何在 Cake 中执行此操作之前 - 首先如何获取信息。

如果您是在 GitHub 操作的基础上构建的,那么 github.base_ref 会为 PR 填充 GitHub 并且会包含您正在寻找的内容。

现在,我不知道 TeamCity 如何进行结帐,所以我可能无法真正帮助您。我能做的就是给你一个指点:

AppVeyor 在构建 PR 时所做的是这样的:

git clone -q <url of repo>
cd <name-of-repo>
git fetch -q origin +refs/pull/<gh-id-of-pr>/merge:
git checkout -qf FETCH_HEAD

如果你——在那种状态下——做

 git branch --contains HEAD^1

输出(至少在我的测试中)是:

* (HEAD detached at FETCH_HEAD)
  develop

如上所述,我不确定 TC 对 PR 构建有何作用,但我想您需要上述内容。 我个人会尝试使用 git 命令获取所需的信息,然后再检查 GitHub API 可以做什么。

最后我找到并使用了 Octokit SDK for dotnet https://github.com/octokit/octokit.net

因为我对@Nils 的回答还需要对 运行 GIT 命令的回购授权,所以我采用了更原生于 Cake

的更高级别的解决方案