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
Quiet-hours throttling currently applies to every PR author, leaving
operators with no selective exception short of disabling the stronger
interval.
This adds a case-insensitive bypass_users list under ci.quiet_hours. The
quiet-hours and ordinary throttle exemptions remain independent, so
bypassing the overnight layer does not weaken the base per-PR throttle
unless both policies exempt the author.
The GitHub integration guide documents the distinction, and regression
coverage pins both policy combinations.
---------
Co-authored-by: Codex <codex@openai.com>
Copy file name to clipboardExpand all lines: docs/integrations/github.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -474,9 +474,10 @@ start = "23:00" # HH:MM, 24-hour clock; both start and end are requir
474
474
end = "05:00"# start > end wraps past midnight
475
475
timezone = "US/Central"# IANA name; empty means machine local time
476
476
throttle_interval = "1h"# per-PR minimum between reviews in the window; default 1h
477
+
bypass_users = ["trusted-contributor"] # skips only the quiet-hours throttle
477
478
```
478
479
479
-
While the window is active, the effective throttle for every PR is the larger of `throttle_interval` and `quiet_hours.throttle_interval`, and it applies to **all** users — including `throttle_bypass_users`. A PR's first-ever review is never blocked, and throttled pushes get the usual pending "review deferred" status. When the window ends, the next poll reviews the latest HEAD once, so overnight pushes collapse into a single fresh review.
480
+
While the window is active, the effective throttle for every PR is the larger of `throttle_interval` and `quiet_hours.throttle_interval`. The quiet-hours interval applies to every author except those listed in `quiet_hours.bypass_users`; matching is case-insensitive. The ordinary throttle remains independent, so a quiet-hours bypass user must also appear in `[ci].throttle_bypass_users` to bypass both intervals. A PR's first-ever review is never blocked, and throttled pushes get the usual pending "review deferred" status. When the window ends, the next poll reviews the latest HEAD once, so overnight pushes collapse into a single fresh review.
480
481
481
482
A push deferred only by quiet hours (one the base throttle would have allowed) does not cancel an in-flight review — unlike ordinary throttling, where a new push supersedes the stale run. Frequent overnight pushes would otherwise kill every review before it completes; instead, the running review finishes and posts, so a busy PR gets one snapshot review per interval. Pushes deferred by the base throttle keep their existing supersede behavior, inside or outside the window.
482
483
@@ -564,7 +565,8 @@ Set under `[ci.quiet_hours]` (global config only). See [Quiet Hours](#quiet-hour
564
565
|`start`| string || Window start as `"HH:MM"` (24-hour clock). Both `start` and `end` must be set to enable quiet hours. |
565
566
|`end`| string || Window end as `"HH:MM"`. When `start > end` the window wraps past midnight. |
566
567
|`timezone`| string | machine local | IANA timezone name (e.g. `"US/Central"`) in which the window is evaluated |
567
-
|`throttle_interval`| string |`"1h"`| Per-PR minimum time between reviews while the window is active. Applies to all users, including `throttle_bypass_users`. |
568
+
|`throttle_interval`| string |`"1h"`| Per-PR minimum time between reviews while the window is active. |
569
+
|`bypass_users`| array |`[]`| GitHub usernames that bypass only the additional quiet-hours throttle (case-insensitive) |
0 commit comments