Skip to content

feat: make GitHub searches resilient - #68

Open
techgaun wants to merge 1 commit into
mainfrom
feat/search-reliability
Open

feat: make GitHub searches resilient#68
techgaun wants to merge 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

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