pra*_*ish 2 azure-devops azure-repos
我们有两个 Azure DevOps 组织,1. 开发 2. 客户端
我想知道我们是否可以以安全的方式将 Azure DevOps Repos 从一个组织(开发)同步到另一个组织(客户端)?如果可能,从一个组织安全地同步到另一个组织的最佳方式是什么?
注意:我们可以在 PAT 和 GIT Auth 的帮助下第一次手动将 Repo 从一个组织克隆到另一个组织,但是当我们想要更新或重新同步代码时会出现问题。我们必须手动重新导入 repo(通过删除现有的)来进行更改。
我们需要以编程方式对另一个组织执行此操作。
组织之间的 Azure DevOps Repos 同步
抱歉,但据我所知,Azure Devops 服务中没有这样的开箱即用功能。
这里有类似的用户声音:在同一组织中的项目之间同步和Automatically Sync Azure Devops Repos with GitHub Repos。通常一个组织负责一种产品,因此 Azure Devops 不建议跨组织操作。但是,如果您确实希望在您的场景中使用这种行为,则可以使用以下两个方向:
1.试用来自Martin Hinshelwood 的免费Git Tools for Azure Devops扩展。关于如何使用它的一些步骤:
在您的Development
组织中安装它,它包含一项Publish Git Repo
任务。
创建一个名为 的新经典构建管道SyncRepos
,Publish Git Repo
在其中添加任务。
(Yaml 管道也运行良好,但由于这是一个仅存在一项任务的管道,经典管道就足够了)
配置任务。我们只需要配置git repo url,就很简单了。
假设另一个组织的同一个 repos 的名称Client
是ReposToSync
,并且这个 repos 在 ProjectA 中。因此,您应该在管道中(在组织中Development
)输入的 url应该是:
看到这个:https://anything:PAT@dev.azure.com/Client/ProjectA/_git/ReposToSync
。
(你应该使用一个具有 repos 相关权限的PAT。我用Full Access
一个来轻松测试它,但如果你创建一个在 repos 权限范围内的 PAT应该会好得多。它更安全!)
现在设置触发器,启用 CI 并将所有分支添加到过滤器中。
Yaml 管道在 step4 中更好,因为它支持使用通配符触发所有分支*
。看到这个。
现在在Development
组织中,当我在master
和qwe
分支中有任何变化时,它会自动触发管道运行。然后任务会将Development
's repos 中的更改与 'Client' 组织中的 repos同步。
Development
组织中的任何更改都将开始同步,如果您想在“客户端”中保持相同的行为,则还需要在“客户端”中使用另一个类似的管道。并且,如果您希望管道监控新创建的分支,带有通配符的 yaml 管道会更好。
另外:除了使用扩展中的任务外,如果您熟悉这些命令,我们还可以在CMD任务中使用git命令。
2.随时向我们的用户语音论坛发布新功能请求。如果您获得足够的选票,请求的优先级会增加,团队会认真考虑。
希望以上所有帮助:)
更新1:
无论是git命令还是扩展,如果我们想让它更安全(避免在任务中直接使用PAT或其他秘密),我们可以使用秘密来存储像PAT这样的重要信息。
1.参见在变量组中创建秘密变量,然后链接变量组,之后我们可以在任务中使用$(MyPat),它不会显示在日志中。
2.也可以考虑使用Azure Key Valut。相关文档:从 Azure Key Vault 链接机密。
归档时间: |
|
查看次数: |
1960 次 |
最近记录: |