Skip to content

Commit d02cf60

Browse files
committed
fix(audit): ensure rate limit output is flushed immediately
- Add flush=True to all rate limit print statements - Require 'remaining' and 'limit' keys for GitLab rate limit (empty dict {} was passing truthy check but had no data)
1 parent d2eaf82 commit d02cf60

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

audit.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -369,21 +369,21 @@ def cmd_update(args: argparse.Namespace) -> int:
369369
auth_info = " (via GITHUB_TOKEN)"
370370

371371
if remaining < limit * 0.2: # Warn if less than 20% remaining
372-
print(f"⚠️ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
372+
print(f"⚠️ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
373373
if not authenticated:
374-
print(get_github_rate_limit_help(), file=sys.stderr)
374+
print(get_github_rate_limit_help(), file=sys.stderr, flush=True)
375375
elif not authenticated and limit == 60:
376376
# Unauthenticated with default limit - suggest authentication
377-
print(f"ℹ️ GitHub rate limit: {remaining}/{limit} remaining (unauthenticated)", file=sys.stderr)
378-
print(get_github_rate_limit_help(), file=sys.stderr)
377+
print(f"ℹ️ GitHub rate limit: {remaining}/{limit} remaining (unauthenticated)", file=sys.stderr, flush=True)
378+
print(get_github_rate_limit_help(), file=sys.stderr, flush=True)
379379
else:
380-
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
380+
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
381381

382382
# Show GitLab rate limit if we have GitLab tools
383383
gitlab_rate = get_gitlab_rate_limit()
384-
if gitlab_rate:
385-
gl_remaining = gitlab_rate.get("remaining", 0)
386-
gl_limit = gitlab_rate.get("limit", 0)
384+
if gitlab_rate and "remaining" in gitlab_rate and "limit" in gitlab_rate:
385+
gl_remaining = gitlab_rate["remaining"]
386+
gl_limit = gitlab_rate["limit"]
387387
gl_authenticated = gitlab_rate.get("authenticated", False)
388388
gl_token_source = gitlab_rate.get("token_source", "")
389389
gl_host = gitlab_rate.get("host", "gitlab.com")
@@ -396,9 +396,9 @@ def cmd_update(args: argparse.Namespace) -> int:
396396
gl_auth_info = " (via GITLAB_TOKEN)"
397397

398398
if gl_remaining < gl_limit * 0.2:
399-
print(f"⚠️ GitLab rate limit ({gl_host}): {gl_remaining}/{gl_limit} remaining{gl_auth_info}", file=sys.stderr)
399+
print(f"⚠️ GitLab rate limit ({gl_host}): {gl_remaining}/{gl_limit} remaining{gl_auth_info}", file=sys.stderr, flush=True)
400400
else:
401-
print(f"✓ GitLab rate limit ({gl_host}): {gl_remaining}/{gl_limit} remaining{gl_auth_info}", file=sys.stderr)
401+
print(f"✓ GitLab rate limit ({gl_host}): {gl_remaining}/{gl_limit} remaining{gl_auth_info}", file=sys.stderr, flush=True)
402402

403403
print(f"# Collecting fresh data for {total} tools...", file=sys.stderr)
404404
est_time = int((total / MAX_WORKERS) * 3 * 1.5)
@@ -540,9 +540,9 @@ def cmd_update(args: argparse.Namespace) -> int:
540540
auth_info = " (via GITHUB_TOKEN)"
541541

542542
if remaining < limit * 0.2:
543-
print(f"⚠️ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
543+
print(f"⚠️ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
544544
else:
545-
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
545+
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
546546

547547
# Suggest package manager upgrades
548548
from cli_audit.catalog import suggest_package_manager_upgrades
@@ -689,10 +689,10 @@ def cmd_update_baseline(args: argparse.Namespace) -> int:
689689
auth_info = " (via GITHUB_TOKEN)"
690690

691691
if not authenticated and limit == 60:
692-
print(f"ℹ️ GitHub rate limit: {remaining}/{limit} remaining (unauthenticated)", file=sys.stderr)
693-
print(get_github_rate_limit_help(), file=sys.stderr)
692+
print(f"ℹ️ GitHub rate limit: {remaining}/{limit} remaining (unauthenticated)", file=sys.stderr, flush=True)
693+
print(get_github_rate_limit_help(), file=sys.stderr, flush=True)
694694
else:
695-
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
695+
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
696696

697697
print(f"# Collecting upstream versions for {total} tools...", file=sys.stderr)
698698

@@ -747,7 +747,7 @@ def cmd_update_baseline(args: argparse.Namespace) -> int:
747747
elif token_source == "GITHUB_TOKEN":
748748
auth_info = " (via GITHUB_TOKEN)"
749749

750-
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr)
750+
print(f"✓ GitHub rate limit: {remaining}/{limit} remaining{auth_info}", file=sys.stderr, flush=True)
751751

752752
return 0
753753

0 commit comments

Comments
 (0)