mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-05 08:07:05 +00:00
Some checks are pending
GitHub Actions Security Analysis / zizmor (push) Waiting to run
* ci: re-run absolute basedpyright budget gate on push to long-lived branches The basedpyright budget gate counts codebase-wide errors per rule against a committed ceiling, but it only ran on pull_request against each PR's own head. Two PRs that each pass in isolation can together push a per-rule count over its ceiling once both merge, and nothing re-evaluated the budget on the merge commit, so the breach only surfaced on the next PR that happened to be checked out after the count crossed the line. Add a push trigger on the long-lived branches and a post-merge-budget job that re-runs the absolute gate on the merged tree, catching the accumulation on the merge commit itself. The existing pull_request jobs are guarded so their delta-vs-base gates don't misfire on push, where no PR base SHA exists. * ci: shallow-fetch the post-merge-budget checkout The post-merge-budget job only runs basedpyright over the working tree and the committed budget file; it never inspects git history, unlike the lint job whose delta-vs-base gates need full history. Drop its checkout from fetch-depth: 0 to fetch-depth: 1 to avoid cloning the whole repo history. * ci: scope post-merge-budget push trigger to long-lived branches On a push event the branches filter matches the branch being pushed to, not the PR target. The litellm_** glob, correct for the pull_request filter where it matches the target branch, therefore fired the post-merge-budget basedpyright job on every short-lived feature branch carrying the litellm_ prefix (litellm_dev_*, litellm_add_*, and so on), duplicating the PR lint job and burning ~10 minutes of CI per push. Restrict the push trigger to the long-lived branches PRs actually merge into (main, litellm_internal_staging, litellm_oss_branch), where budget accumulation happens. The pull_request filter keeps litellm_** so PRs targeting any long-lived branch are still linted. * ci: make the basedpyright budget gate delta-vs-base The basedpyright gate counted absolute codebase-wide errors per rule against a committed ceiling and ran only on each PR's own head. Two PRs that each pass in isolation could together push a rule past its ceiling once both merged, and because the gate had no comparison against the base, the next unrelated PR branched off the now-over-ceiling tree inherited a red it did nothing to cause. Give it the same shape as the ruff strict gate: a rule fails only when its total is both over the ceiling and higher than the count on the merge-base it merges into. Drift already in the base is never blamed on a bystander, while any change that actually grows a rule past the cap still fails. Head counts come from the existing stdin pipe; the base count is a second basedpyright pass over a detached worktree at the merge-base, reusing the head environment so import resolution matches and no second uv sync is needed. This obsoletes the push-triggered post-merge-budget job (and its event guards), which only detected accumulation after the fact; the delta check blocks it on the PR instead. Slack for reportReturnType and reportUnnecessaryComparison is raised to give real headroom under the cap. * refactor(ci): give the base ref its own name in type_check_gate cmd_check cmd_check took a parameter named base that held a git ref string, then rebound the same name to the dict of base-tree error counts returned by base_counts. Rename the parameter to base_ref so the ref and the counts each keep a single name and type, matching the no-reassignment style used elsewhere; behavior is unchanged. --------- Co-authored-by: Claude <noreply@anthropic.com>
194 lines
3.4 KiB
JSON
194 lines
3.4 KiB
JSON
{
|
|
"reportAny": {
|
|
"baseline": 24989,
|
|
"slack": 2500
|
|
},
|
|
"reportArgumentType": {
|
|
"baseline": 1934,
|
|
"slack": 180
|
|
},
|
|
"reportAssignmentType": {
|
|
"baseline": 220,
|
|
"slack": 22
|
|
},
|
|
"reportAttributeAccessIssue": {
|
|
"baseline": 346,
|
|
"slack": 35
|
|
},
|
|
"reportCallIssue": {
|
|
"baseline": 87,
|
|
"slack": 10
|
|
},
|
|
"reportConstantRedefinition": {
|
|
"baseline": 39,
|
|
"slack": 4
|
|
},
|
|
"reportDeprecated": {
|
|
"baseline": 217,
|
|
"slack": 22
|
|
},
|
|
"reportDuplicateImport": {
|
|
"baseline": 28,
|
|
"slack": 3
|
|
},
|
|
"reportExplicitAny": {
|
|
"baseline": 6931,
|
|
"slack": 700
|
|
},
|
|
"reportFunctionMemberAccess": {
|
|
"baseline": 7,
|
|
"slack": 3
|
|
},
|
|
"reportGeneralTypeIssues": {
|
|
"baseline": 151,
|
|
"slack": 15
|
|
},
|
|
"reportIncompatibleMethodOverride": {
|
|
"baseline": 52,
|
|
"slack": 5
|
|
},
|
|
"reportIncompatibleVariableOverride": {
|
|
"baseline": 8,
|
|
"slack": 3
|
|
},
|
|
"reportInconsistentOverload": {
|
|
"baseline": 12,
|
|
"slack": 3
|
|
},
|
|
"reportIndexIssue": {
|
|
"baseline": 26,
|
|
"slack": 3
|
|
},
|
|
"reportInvalidTypeForm": {
|
|
"baseline": 23,
|
|
"slack": 3
|
|
},
|
|
"reportInvalidTypeVarUse": {
|
|
"baseline": 2,
|
|
"slack": 3
|
|
},
|
|
"reportMatchNotExhaustive": {
|
|
"baseline": 1,
|
|
"slack": 3
|
|
},
|
|
"reportMissingParameterType": {
|
|
"baseline": 3933,
|
|
"slack": 390
|
|
},
|
|
"reportMissingTypeArgument": {
|
|
"baseline": 10612,
|
|
"slack": 1000
|
|
},
|
|
"reportMissingTypeStubs": {
|
|
"baseline": 27,
|
|
"slack": 10
|
|
},
|
|
"reportOperatorIssue": {
|
|
"baseline": 6,
|
|
"slack": 3
|
|
},
|
|
"reportOptionalCall": {
|
|
"baseline": 4,
|
|
"slack": 3
|
|
},
|
|
"reportOptionalIterable": {
|
|
"baseline": 3,
|
|
"slack": 3
|
|
},
|
|
"reportOptionalMemberAccess": {
|
|
"baseline": 724,
|
|
"slack": 72
|
|
},
|
|
"reportOptionalOperand": {
|
|
"baseline": 3,
|
|
"slack": 3
|
|
},
|
|
"reportOptionalSubscript": {
|
|
"baseline": 11,
|
|
"slack": 3
|
|
},
|
|
"reportPossiblyUnboundVariable": {
|
|
"baseline": 52,
|
|
"slack": 10
|
|
},
|
|
"reportPrivateUsage": {
|
|
"baseline": 1625,
|
|
"slack": 160
|
|
},
|
|
"reportRedeclaration": {
|
|
"baseline": 8,
|
|
"slack": 3
|
|
},
|
|
"reportReturnType": {
|
|
"baseline": 126,
|
|
"slack": 100
|
|
},
|
|
"reportTypedDictNotRequiredAccess": {
|
|
"baseline": 20,
|
|
"slack": 3
|
|
},
|
|
"reportUndefinedVariable": {
|
|
"baseline": 2,
|
|
"slack": 3
|
|
},
|
|
"reportUnknownArgumentType": {
|
|
"baseline": 30603,
|
|
"slack": 3000
|
|
},
|
|
"reportUnknownLambdaType": {
|
|
"baseline": 75,
|
|
"slack": 10
|
|
},
|
|
"reportUnknownMemberType": {
|
|
"baseline": 27037,
|
|
"slack": 2500
|
|
},
|
|
"reportUnknownParameterType": {
|
|
"baseline": 13612,
|
|
"slack": 1000
|
|
},
|
|
"reportUnknownVariableType": {
|
|
"baseline": 21445,
|
|
"slack": 2000
|
|
},
|
|
"reportUnnecessaryCast": {
|
|
"baseline": 118,
|
|
"slack": 10
|
|
},
|
|
"reportUnnecessaryComparison": {
|
|
"baseline": 683,
|
|
"slack": 100
|
|
},
|
|
"reportUnnecessaryContains": {
|
|
"baseline": 4,
|
|
"slack": 3
|
|
},
|
|
"reportUnnecessaryIsInstance": {
|
|
"baseline": 808,
|
|
"slack": 80
|
|
},
|
|
"reportUntypedBaseClass": {
|
|
"baseline": 110,
|
|
"slack": 11
|
|
},
|
|
"reportUntypedFunctionDecorator": {
|
|
"baseline": 22,
|
|
"slack": 3
|
|
},
|
|
"reportUnusedClass": {
|
|
"baseline": 22,
|
|
"slack": 3
|
|
},
|
|
"reportUnusedFunction": {
|
|
"baseline": 137,
|
|
"slack": 10
|
|
},
|
|
"reportUnusedImport": {
|
|
"baseline": 670,
|
|
"slack": 50
|
|
},
|
|
"reportUnusedVariable": {
|
|
"baseline": 865,
|
|
"slack": 50
|
|
}
|
|
}
|