[CI] Align metric units for CI rate limit (#13633)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
Liangsheng Yin
2025-11-20 16:25:57 +08:00
committed by GitHub
parent b51f9bbee7
commit 19729f723e
2 changed files with 11 additions and 11 deletions

View File

@@ -5,10 +5,10 @@ on:
description: "Whether the PR must have the run-ci label"
type: boolean
default: true
rate-limit-hours:
description: "Rate limit window size in hours; 0 disables rate limiting"
cool-down-minutes:
description: "Cooldown period in minutes for low-permission users; 0 disables rate limiting"
type: number
default: 2
default: 120
jobs:
pr-gate:
@@ -41,7 +41,7 @@ jobs:
echo "PR Draft: ${{ steps.pr.outputs.draft }}"
echo "PR User: ${{ steps.pr.outputs.user }}"
echo "Require run-ci: ${{ inputs.require-run-ci }}"
echo "Rate limit hours: ${{ inputs.rate-limit-hours }}"
echo "Cool down minutes: ${{ inputs.cool-down-minutes }}"
echo "==================="
- name: Block draft PR
@@ -60,12 +60,12 @@ jobs:
fi
- name: Enforce rate limit for low-permission actors (optional)
if: github.event_name == 'pull_request' && inputs.rate-limit-hours > 0
if: github.event_name == 'pull_request' && inputs.cool-down-minutes > 0
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const DEFAULT_HOURS = Number("${{ inputs.rate-limit-hours }}");
const DEFAULT_MINUTES = Number("${{ inputs.cool-down-minutes }}");
const owner = context.repo.owner;
const repo = context.repo.repo;
const eventName = context.eventName;
@@ -96,7 +96,7 @@ jobs:
return;
}
let effectiveCooldownMinutes = DEFAULT_HOURS * 60;
let effectiveCooldownMinutes = DEFAULT_MINUTES;
let perUserCooldownMinutes = null;
try {

View File

@@ -89,13 +89,13 @@ If you dont have permission, please ask maintainers to trigger CI for you.
We apply CI rate limits to prevent abuse and ensure fair usage of our CI resources.
Each CI workflow has a default limit defined in its workflow configuration file. For example, in [pr-gate.yml](https://github.com/sgl-project/sglang/blob/main/.github/workflows/pr-gate.yml), the default rate limit window is 2 hours, and each workflow can override it via the `rate-limit-hours` input parameter:
Each CI workflow has a default limit defined in its workflow configuration file. For example, in [pr-gate.yml](https://github.com/sgl-project/sglang/blob/main/.github/workflows/pr-gate.yml), the default cooldown period is 120 minutes, and each workflow can override it via the `cool-down-minutes` input parameter:
```yaml
rate-limit-hours:
description: "Rate limit window size in hours; 0 disables rate limiting"
cool-down-minutes:
description: "Default cooldown period in minutes; 0 disables rate limiting"
type: number
default: 2
default: 120
```
Users listed in [CI_PERMISSIONS.json](https://github.com/sgl-project/sglang/blob/main/.github/CI_PERMISSIONS.json) may have a per-user cooldown interval. In practice, we use the minimum of the workflows default window and the user-specific interval.