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

时间:2018-02-26 05:44:27

标签: git azure-devops-rest-api

有没有办法使用API​​将一个分支合并到另一个分支?

我看过这里,但它似乎没有为我提供解决方案(推送单个文件很繁琐): https://www.visualstudio.com/en-us/docs/integrate/api/git/pushes

我想如果使用其余的API没有办法做到这一点,是否可以通过私有构建代理上的powershell脚本运行git命令来完成?

2 个答案:

答案 0 :(得分:3)

不,VSTS Git或Version Control API中似乎没有公开任何合并操作。

这使您获得官方的“构建和发布步骤”:“Run Git commands in a script”,它可以让您运行Git命令,然后返回到VSTS-Git仓库。 该页面有一个带有合并示例的脚本(虽然简单的bat脚本,而不是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

答案 1 :(得分:1)

作为VonC解决方案的后续行动,您需要授予VSTS Build服务帐户权限以便为存储库做出贡献。

  1. 在VSTS项目的菜单中,选择版本控制选项卡
  2. 在所有Git存储库的安全性或特定的Git存储库中选择“项目集合构建服务”
  3. 点击'允许'代表'Contribute'和'创建分支'
  4. 注意:也需要阅读,但应该已经允许。

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

    这些步骤详见VonC提供的链接