问题描述
我正在与 Cake 和 Teamcity 合作,我正在尝试访问 GitHub PR 的目标分支
一直在尝试为 Cake do 找到一个 GitHub API 包装器来完成这项工作,或者为 TeamCity 寻找一个插件/脚本来用值填充一些参数,但到目前为止没有运气。
是否有我错过的 Cake 或 TeamCity 中 Github PR 的好包装?
解决方法
我确定您没有遗漏任何东西。
问题是 - 在寻找如何在 Cake 中执行此操作之前 - 首先如何获取信息。
如果您在 GitHub Actions 上进行构建,则 GitHub 会为 PR 填充 github.base_ref
,其中包含您正在寻找的内容。
现在,我不知道 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 构建做了什么,但我想您需要上述内容。
在检查 GitHub API 可以做什么之前,我个人会尝试使用 git
命令获取所需信息。
最后我找到并使用了Octokit SDK for dotnet https://github.com/octokit/octokit.net
因为我对@Nils 的回答也需要对 repo 的授权才能运行 GIT 命令,所以我采用了更适合 Cake 的更高级别的解决方案