kevinjqliu opened a new pull request, #3459:
URL: https://github.com/apache/iceberg-rust/pull/3459

   ## Which issue does this PR close?
   
   - N/A. This is half of a breakglass for urgent fixes such as #3455, which is 
approved but stuck waiting for `ubuntu-latest` runners. The other half is #3458.
   
   ## What changes are included in this PR?
   
   Moves the required status checks from classic branch protection into the 
`Merge Queue` ruleset. Only admins can bypass classic branch protection, so 
checks there can't be covered by the committer bypass that #3458 adds to this 
ruleset. With both PRs, a committer can merge an approved PR without waiting 
for the checks or the queue.
   
   This PR alone doesn't change behaviour: the ruleset has no bypass actors 
yet, and the same six contexts stay required, non-strict, from any source. 
Approvals and linear history stay in classic protection. asfyaml removes the 
classic checks when the key is dropped (`remove_required_status_checks()`) and 
creates the ruleset rule in the same run.
   
   ## Are these changes tested?
   
   - Validated with 
[apache/infrastructure-asfyaml](https://redirect.github.com/apache/infrastructure-asfyaml)
 at `83d367df`: schema validation (`run_parts(validate_only=True)`) and the 
generated ruleset payload, for this PR alone and combined with #3458. Passed.
   - Tested in a throwaway repo:
     - With a required check in classic protection under `enforce_admins`, a 
ruleset bypass actor's merge was rejected (`Required status check ... is 
expected`).
     - With the check only in the ruleset, the bypass actor's merge succeeded.
     - A one-approval rule left in classic protection was still enforced.
   - apache/seatunnel already runs the merge queue and required checks in one 
ruleset ([seatunnel PR 
12289](https://redirect.github.com/apache/seatunnel/pull/12289)).
   
   ## AI Disclosure
   
   Drafted with GitHub Copilot. Please check:
   - Raw ruleset syntax requires `strict_required_status_checks_policy`, so it 
is set to `false` explicitly. The asfyaml default only applies to convenience 
syntax.
   - `integration_id` is left out on purpose: pinning it broke seatunnel's 
apply ([seatunnel PR 
12291](https://redirect.github.com/apache/seatunnel/pull/12291)).
   - While asfyaml applies this change, the classic checks may be removed 
briefly before the ruleset rule is added.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to