【发布时间】:2021-01-15 03:48:53
【问题描述】:
我们希望限制与主分支的产品级服务连接作为保护,因此我们只部署经过审查的代码。现在我们在“Approvals and Checks”中将生产环境的主分支控制设置为refs/heads/master。
这行得通,所以如果管道引用来自另一个存储库的任何模板,如果 ref 属性不是 master,这将失败。
现在我们还希望为自定义管道模板版本控制添加标签,以便管道可以按标签引用模板。我们可以这样做
repositories:
- repository: templates
name: RepositoryWithTemplates
type: git
ref: refs/tags/0.0.1
但是,我们不想允许所有标签,而只允许提交的标签,它们已经在 master 上。
我们尝试通过在环境的“Approvals and Checks”中使用“Invoke Azure Function”来做到这一点,以便在 azure 中执行我们的自定义分支控制功能。此函数将需要检查每个存储库引用,如果存在标签,则运行 git 命令以检查此标签是否指向 master 上的提交。
但我们还没有找到一种方法来获取管道的所有资源/存储库以作为参数传递给函数,或从 Azure DevOps API 查询它们。
有人知道是否可以从环境变量或 API 中获取管道中使用的所有资源和存储库?不知何故,标准的“分支控制”检查对所有存储库都进行了检查,但它甚至暴露给自定义控制检查吗?
【问题讨论】:
-
嗨 Andriy,这个问题有更新吗?
-
嗨。我们将在星期一尝试建议的解决方案,然后当然会在这里写更新:)
-
期待您的好消息。
-
成功了! :) 在下面发布详细信息。
标签: git azure-devops azure-pipelines