在 TFS 中使用 REST API 放弃拉取请求时是否可以删除源分支



我想放弃使用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 版本(,我知道没有实用的解决方案。

最新更新