关于azuredevops_check_approval的minimum_required_approvers默认值疑问
核心矛盾拆解
未显式配置minimum_required_approvers参数时,Terraform状态文件(.tfstate)中该值显示为0,但实际PR流程仍要求审批,与预期默认值1存在表面矛盾。
可能的原因解析
Terraform Provider与Azure DevOps API的默认值映射差异
azuredevops_check_approval资源本质是调用Azure DevOps的Rest API创建审批规则。可能存在Provider文档标注的默认值(预期1)与API实际返回的存储值(0)不一致的情况。Azure DevOps后端逻辑可能对minimum_required_approvers=0且存在approvers列表的场景做了特殊处理——自动将其视为需要至少1个审批人,而非完全跳过审批。Azure DevOps后端的兼容性处理
当你指定了approvers列表但未设置minimum_required_approvers时,Azure DevOps系统会默认启用"至少1人审批"的逻辑,即使API返回的存储值为0。这是为了避免出现"配置了审批人却无需审批"的不合理场景,属于平台层面的隐性规则。Terraform Provider的文档或实现缺陷
官方文档未明确说明该参数的实际默认行为,可能是Provider的文档遗漏,或是在处理API返回值时未将后端的隐性逻辑同步到状态文件中,导致状态文件显示的数值与实际执行逻辑不符。
验证建议
可以手动在Azure DevOps门户中查看该环境的审批规则配置,确认界面上显示的"所需审批者数量"是否为1。如果界面显示正确,说明状态文件的数值只是API返回的存储值,不影响实际执行逻辑;若界面显示为0但仍需审批,则属于Azure DevOps平台的特殊逻辑处理。
内容的提问来源于stack exchange,提问作者Thib_Hermes

