在GIT Repos或管道中保护或锁定Azure YAML

fykwrbwg  于 2023-11-15  发布在  Git
关注(0)|答案(1)|浏览(123)

我有两个Azure Git Repos,两个团队,每个团队只能查看和贡献自己的Repos。
团队1/仓库1

  • Entry.yaml

团队2/仓库2

  • Extends.yaml

repo 1包含YAML文件和内容
Entry.yaml归Team 2所有,在Repo 1中

resources:
  repositories:
    - repository: repoSource
      type: git
      name: Project1/repo2
extends:
  template: extends.yaml@repoSource

字符串
repo 2中的extends.yaml也归Team 2所有。
是否有方法可以防止Entry.yaml被Team 1修改,同时仍然对同一存储库上的其他文件进行更改,原因是防止未经授权的脚本运行,因为可能会将extends.yaml中的作业定义替换为Entry.yaml。
我也试图找到方法来无效的CICD工作,当它检测到扩展模板被更改或删除。

t1qtbnec

t1qtbnec1#

你有几个选择(你也可以把它们组合在一起)。
1.使用environment,您可以强制管道仅在它们扩展模板时才运行:定义批准和检查-必需的模板:
通过所需的模板检查,您可以强制管道使用特定的YAML模板。当此检查到位时,如果管道没有从引用的模板扩展,则管道将失败。
x1c 0d1x的数据
1.在Repo 1中,您可以在主分支和版本/* 分支上设置分支策略,并在Entry.yaml文件发生更改时要求Team 2审阅更改。请参阅自动包含代码审阅者



1.然后回到环境,您可以强制管道从特定分支运行。定义审批和检查-分支控制:
使用分支控制检查,您可以确保与管道链接的所有资源都是从允许的分支生成的,并且这些分支已启用保护。这有助于控制发布就绪性和部署质量。如果多个资源与管道链接,则将验证所有资源的来源。如果已链接另一个管道,则验证所部署的特定运行的分支以进行保护。



结合这些,你应该能够实现你想要的合作方式。

相关问题