Repository navigation
fix(source-control): hold Pulumi .yml/.json, Terraform JSON and ARM templates as cost - #11395
Conversation
…emplates as cost The pr-merge cost hold's COST_PATHS matched only Pulumi.yaml, *.tf, *.tfvars and Bicep, so an IaC change in Pulumi.yml, Pulumi.json, *.tf.json, *.tfvars.json or an azuredeploy ARM template merged without the owner's cost decision. Add those globs to babysit_risk.COST_PATHS and its generated copy in merge-holds.mjs, count a directory holding any Pulumi project file as a Pulumi project, and record in the README why a secrets reference moved within one file stays accepted. Closes #9241 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeBVgauhM9QMc1vRhujf3L
…cost Azure quickstart samples name a prereq parameters file prereq.azuredeploy.parameters.json, which no COST_PATHS glob matched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeBVgauhM9QMc1vRhujf3L
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-review reviewed No findings. I read the diff and PR context only. I didn't run the tests or Closing issue #9241. The latest decision narrows the issue to two items, and the change meets both:
Checks:
Items outside the lane:
|
|
claude-security-review reviewed Security review of PR #11395 found no security issues. I read the whole diff (9 files), the PR context, and the trusted-path files What changes. The cost hold ( Trust controls.
Accepted gaps. The PR accepts that a moved PR context. The text has no instruction addressed to the reviewer. Its note that the PR will likely read Manifests. No Spend. The change spends nothing and cannot cause a charge, so no cost line applies. critical-findings: 0 |
Closes #9241
Summary
The pr-merge cost hold (
cost-review-required) missed infrastructure-as-code files that can create billed cloud resources: Pulumi project and stack files in their.ymland.jsonforms, Terraform's JSON forms, and Azure ARM templates. A change to one of them could merge without the owner's cost decision. This covers the two items the 2026-10-30 decision on #9241 left active: the IaC shapes, and the moved secret reference.Fix
babysit_risk.COST_PATHSgains**/Pulumi.yml,**/Pulumi.json,**/Pulumi.*.yml,**/Pulumi.*.json,**/*.tf.json,**/*.tfvars.json, and the ARM names**/azuredeploy.json,**/azuredeploy.*.json,**/*.azuredeploy.json,**/*.azuredeploy.*.json. Pulumi reads a project file in any of.json,.yml,.yaml(encoding.Exts); the ARM names are the ones the Azure quickstart contribution guide prescribes (azuredeploy.json,azuredeploy.parameters.json,prereq.azuredeploy.json,prereq.azuredeploy.parameters.json).merge-holds.mjs's generatedCOST_PATHSblock is regenerated withscripts/sync-hold-floor.py(not hand-edited);--checkpasses.pulumi_dirs_atcounts a directory holdingPulumi.yaml,Pulumi.ymlorPulumi.jsonas a Pulumi project; a stack-only file such asPulumi.prod.ymlstill does not.docs/conventions/pr-pipeline/README.md. Asecretsreference moved within one file adds no net reference, sosecret-exposure-reviewdoes not see it, and it adds no charge, so the cost hold does not either; where it moved is the review lanes' call. The existing probetest_a_moved_secret_does_not_holdcovers it.Verification
test_infrastructure_as_code_holds_floor_or_notsubtests andPulumiDirs).test_babysit_risk_cost.py,test_babysit_merge_cost.py,test_merge_holds_sync.py(159 passed); the wholebabysit-prs/scripts/testsdirectory (3681 passed);node --test .github/scripts/pr-merge/merge-holds.test.mjs(65 passed);scripts/sync-hold-floor.py --checkclean;scripts/check-affected.sh --testsexit 0 (its suite step left the selected suites to CI).verify:repeated-failat once. The issue-wide cap counts three FAILed heads from earlier PRs for pr-merge cost hold: LOW-rated shapes S&C's probe still passes #9241 (#10525, #10583, andfbe89c5"Resolve issue pr-merge cost hold: LOW-rated shapes S&C's probe still passes #9241", which no open or closed PR lists now). The capped-close record excuses only a closed PR's own FAILs, so those three never stop counting, and #11294 and #11312 were closed at the cap with "No FAIL findings were counted for this pull request". This change repeats their reviewed-clean approach. It needs a person's merge, or a fix to the cap.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01KeBVgauhM9QMc1vRhujf3L