如何镜像Github和VS Online?

时间:2015-03-30 14:07:29

标签: git github tfs azure-devops visual-studio-2015

我的代码位于私人Github.com repo中,也存放在私有的Microsoft Visual Studio Online git repo中。现在我想自动镜像/同步它们。因此,当我向Github检查某些内容时,它也会推送到VS Online,反之亦然。

我知道如何通过在我的本地仓库中添加额外的推送遥控器来实现这一目标'客户端'但有可能做到这一点'服务器端'太?使用Github Webhooks或Microsoft的东西?

因为否则我必须指示每个想要处理代码的人,添加两个遥控器,或者我错了吗?

2 个答案:

答案 0 :(得分:1)

我们现在唯一能做的就是使用Zapier,它有一个免费的计划。就目前而言,从我所能找到的,没有办法通过Web钩子或任何其他方式将两者同步。

我会一直在寻找你,如果我发现任何不同,我会更新这个答案。

答案 1 :(得分:1)

  1. 将GitHub服务端点添加到您的VSTS(设置>服务)
  2. 使用VSTS中的GitHub存储库创建一个空构建定义
  3. 选择“存储库”选项卡并指定“连接”,“存储库”和“默认”分支。 (将Clean设置为true,清除源目录)
  4. 选择“触发器”选项卡,然后选中“持续集成,批量更改并指定分支过滤器
  5. 选择选项选项卡,然后选中允许脚本访问OAuth令牌

  6. 选择“构建”选项卡,然后使用以下脚本添加PowerShell任务以同步所有分支。

  7. git branch -r | findstr /v "\->" | ForEach-Object {$br=$_.TrimStart(); git branch --track $br.TrimStart("origin/") $br} $repoName = "$env:BUILD_REPOSITORY_NAME".split('/')[1] $repoUri = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI".Substring(8)+ "_git/$repoName" git remote add vsts "https://$env:SYSTEM_ACCESSTOKEN@$repoUri" git branch -r | findstr /v "\->" | ForEach-Object { $br=$_.TrimStart(" origin/"); git push -u vsts $br }