我们在Azure DevOps中有一个CI / CD设置,该设置是由主分支上的推送触发的。是否可以使批准触发构建触发的用户?
其背后的想法是我们团队中有许多开发人员,所以我希望推动变更的特定开发人员决定是否要部署变更,而不是专门的批准者。
答案 0 :(得分:2)
简短回答,不。
上下文: 这与良好做法相反,这就是为什么可以选择要求其他人(而不是做出更改的人)作为批准者。您不希望进行更改的人成为批准该更改的人,因为这样可以使一个人偷偷进行更改。这意味着错误可能会漏掉,甚至是故意的恶意更改。
最佳做法是要求进行更改的人以外的其他人查看并批准更改。
答案 1 :(得分:1)
虽然我与@Daniel Mann完全同意为什么不应该这样做,但我发现发生的方式是将团队指定为批准请求的接收者,并选中user requesting a release or deployment should not approve it
仍未选中。
然后,为了避免批准请求的收件箱中的杂音,请关闭团队有关未决发布批准的通知。
编辑
如果您只需要指派一个人作为有效用户来批准更改以进行部署,那么您也可以这样做,但这并不是一件很漂亮的事情。每个人可以有一个“舞台”。这些阶段将在部署前的条件下使用工件过滤器,以仅向该阶段所针对的人发送批准电子邮件。
批准后,它会转到实际部署阶段进行工作。
现在,您需要在构建中添加用户名或其他内容作为标签。我不确定是否有工具/任务可以在构建管道中做到这一点,以保持其连续性,但是我知道您可以从REST API中弄清楚如何做到这一点。也许您需要创建一个预批准阶段,该阶段运行PS脚本来访问REST api,并在构建中使用requestedBy
属性值标记提供的构建。
再次,看看这样做有多难?这可能意味着您没有遵循最佳实践。 “使正确的事情变得容易,而使错误的事情变得困难。” -未知