You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pr-merge: hold a PR that could add or raise a charge for an owner decision #9221
Owner, 2026-10-22, relayed verbatim by the GitHub Security & Cost session:
anything that would increase cost or spending, or affect billing ... needs to be run through me ... Those are things that should stop and require me to approve and review if it hasn't already been part of the human in the loop (like actual decisions, like human-recorded decisions).
And on the shape: "Don't overcomplicate it. Don't overengineer it."
Problem
The unattended merge path (pr-merge and the local babysit lane, both scored by plugins/source-control/skills/babysit-prs/scripts/babysit_risk.py) has no rule for changes that
can add or raise a charge. In this repository most such files sit on the HIGH path floor
(.github/**, docs/conventions/**), but the floor is a path rule switched by merge.diff-check.high-path-floor, which is off by default in the pr-merge lane, and it has no
entry for IaC files (Pulumi, Terraform, Bicep) at all.
Rule to build
A pull request that could add or raise a charge does not merge unattended unless its body cites an
owner-recorded decision that covers it. Classes:
Pulumi or other IaC resources (SKU, tier, capacity, retention, quota live there)
runs-on labels that charge: larger runners (always billed) and macOS (billed on private repos)
new cron schedules on workflows
budgets and billing settings, new paid services, model or API spend config, as far as a
deterministic check can see them
Suggested shape
A cost-review-required HIGH reason in the scorer, applied in both lanes whatever high-path-floor says. A PR that hits it waits for a human (the reasons comment, then needs-human after merge.risk-escalation-minutes).
The hold clears only when the PR body links an owner **Decision recorded.** comment on the PR's
closing issue or the PR itself, using the same author and edit rule as .github/actions/select-trusted-text/select-trusted-text.mjs.
The S&C brief named a NEVER_FLOOR_EXEMPT constant in babysit_merge_policy.py. That constant
does not exist on main; the scorer's reason producers (_high_path_reasons, _score) are the
place to add this.
Activity
github-actions commentedon Oct 22, 2026
Proposed work class: none
Thanks for the report. Automated triage handed this issue to a maintainer.
Unconfirmed model suggestion: work-class: structural
Basis: automated intake triage; a maintainer confirms or changes it.
Automated triage. A maintainer reviews it.
feat(source-control): hold model credentials, new model legs, raised …
fix(source-control): close the cost-hold evasions from review
fix(source-control): close the cost-hold gaps Security & Cost held
fix(source-control): count a cost decision only when it postdates the PR
fix(source-control): time-check only a cost decision on the closing i…
fix(source-control): bind the Cost marker to the first line and compa…