通过VSTS API将一个分支合并到另一个分支

3
有没有一种使用API将一个分支合并到另一个分支的方法?
我在这里看了一下,但似乎没有提供我想要的解决方案(逐个推送文件很麻烦): https://www.visualstudio.com/en-us/docs/integrate/api/git/pushes 我想如果没有使用REST API的方法,是否可以通过在私有构建代理上运行的powershell脚本运行git命令来完成?
3个回答

4
没有在VSTS Git或版本控制API中公开合并操作。这意味着您只能使用官方的“构建和发布步骤”:“在脚本中运行Git命令”,该步骤可以让您运行Git命令,然后将其推回到VSTS-Git存储库。
该页面有一个合并示例的脚本(简单的批处理脚本,而不是PowerShell)。
@echo off
ECHO SOURCE BRANCH IS %BUILD_SOURCEBRANCH%
IF %BUILD_SOURCEBRANCH% == refs/heads/master (
   ECHO Building master branch so no merge is needed.
   EXIT
)
SET sourceBranch=origin/%BUILD_SOURCEBRANCH:refs/heads/=%
ECHO GIT CHECKOUT MASTER
git checkout master
ECHO GIT STATUS
git status
ECHO GIT MERGE
git merge %sourceBranch% -m "Merge to master"
ECHO GIT STATUS
git status
ECHO GIT PUSH
git push origin
ECHO GIT STATUS
git status

我不能从我已经作为构建定义的一部分运行的“PowerShell脚本”任务中执行这些Git命令吗?它已经具有所有源/目标分支信息。 - Ash
@Ash 是的,你应该这样做。 - VonC

2

虽然其他答案提供了可能的解决方案,但由于我已经在使用拉取请求 REST API,并且 Git 操作可以通过 API 而不是本地执行命令来完成,因此我选择了这种实现方式。 - Ash

1
作为 VonC 解决方案的后续,您需要授予 VSTS Build 服务帐户对存储库的贡献权限。
  1. 在 VSTS 项目的菜单中,选择版本控制选项卡
  2. 在“所有 Git 存储库”的安全性或特定 Git 存储库上选择“项目集合生成服务”
  3. 为“Contribute”和“Create Branch”点击“允许”

注意: 也需要读取权限,但应该已经被允许。

您还需要创建构建变量:system.prefergit,并将该值设置为 true。

这些步骤在 VonC 提供的链接中详细说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接