Skip to content

feat: make GitHub searches resilient - #68

Merged
techgaun merged 1 commit into
mainfrom
feat/search-reliability
Sep 7, 2026
Merged

feat: make GitHub searches resilient#68
techgaun merged 1 commit into
mainfrom
feat/search-reliability

Conversation

@techgaun

@techgaun techgaun commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • construct GitHub clients lazily and allow client injection for testing
  • replace iterator copying with bounded retries on the active search
  • respect Retry-After and search rate-limit reset metadata
  • use exponential backoff for GitHub server errors and connection timeouts
  • add --max-retries with a default of three retries per query
  • continue scanning after an individual query fails
  • keep authentication failures fatal
  • report query, match, failure, retry, and elapsed-time totals
  • return exit code 0 for complete scans, 2 for partial scans, and 1 for fatal errors
  • propagate exit codes through both Python entry points

Compatibility

Existing repository/user, dictionary, monitoring, and CSV flags remain supported. Default retry behavior is bounded and can be disabled with --max-retries 0.

Verification

  • python3 -m unittest discover -s tests -v (18 tests)
  • flake8 in Python 3.12
  • git diff --check
  • Docker image/package build
  • Docker CLI version smoke test
  • Docker missing-dictionary smoke test returned exit code 1

@techgaun
techgaun merged commit 6163fbe into main Sep 7, 2026
11 checks passed
@techgaun
techgaun deleted the feat/search-reliability branch September 7, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant