我想放弃使用PowerShell的REST API在TFS中的拉取请求。此外,我也需要删除源分支。根据官方文档,这是可能的,示例 REST 请求可能如下所示:
网址为:
http://tfs.server/tfs/DefaultCollection/_apis/git/repositories/{repo_ID}/pullrequests/{PR_ID}?api-version=3.0-preview
正文是:
{
"status": "abandoned",
"completionOptions": {
"deleteSourceBranch": "true"
}
}
拉取请求按预期被放弃,但源分支不会被删除。
当通过 REST API 放弃 PR 时,是否可以删除源分支?是这样,怎么回事?也许,completionOptions
只是为了完成公关,而不是放弃?..
我正在使用 TFS 2015 更新-3(版本 14.102.25423.0(。
尽管文档在这一点上不清楚,但除非您实际完成 PR,否则似乎确实会忽略completionOptions
。 (由于没有创建任何选项,它将如何处理影响合并提交的选项? 另请注意,git 本身会拒绝删除尚未合并的分支的请求......
看起来你需要发送一个删除分支的后续请求;但是git的REST API并不是我所说的全面,据我所知,没有这样做的选择。
因此,IMO 您最好的选择是在发送放弃拉取请求的请求后,让 git cli 强制推送删除分支。 请注意,这将删除引用,但提交将保留。 据我所知,TFS 不进行垃圾回收,更不用说公开强制 gc 运行的选项了,所以如果你还需要清理提交(以及其中的树/blob 版本(,我知道没有实用的解决方案。