GitHub Source

GitHub manual browsing using the public Search API.

Respects the GITHUB_TOKEN environment variable if present to increase rate limits. Returns repository-level results ordered by stars.

class agent.browsing.manual.sources.github.GitHubRepoBrowser(*args, **kwargs)[source]

Bases: ManualSource

Manual source for GitHub repository search.

api_url: str = 'https://api.github.com/search/repositories'
iter_all(query, chunk_size=100, limit=None, **kwargs)[source]

Iterate through repository search results by fetching in chunks.

Parameters:
  • query (str) – Free-text search query.

  • chunk_size (int) – Number of repositories per request.

  • limit (Optional[int]) – Optional maximum number of items to yield.

  • kwargs (object)

Return type:

Iterator[SearchItem]

Returns:

Iterator over normalized repository items.

search(query, max_results=25, start=0, **kwargs)[source]

Search repositories by query, sorted by stars in descending order.

Pagination is mapped from start and max_results to GitHub’s page and per_page parameters.

Parameters:
  • query (str) – Free-text search query, supports qualifiers (e.g., language:Python).

  • max_results (int) – Maximum number of repositories to return.

  • start (int) – Zero-based start index across the result stream.

  • kwargs (object)

Return type:

List[SearchItem]

Returns:

List of normalized repository items.

search_all(query, chunk_size=100, limit=None, **kwargs)[source]

Collect repository search results for a query into a list.

Parameters:
  • query (str) – Free-text search query.

  • chunk_size (int) – Number of repositories per request.

  • limit (Optional[int]) – Optional maximum number of items to collect.

  • kwargs (object)

Return type:

List[SearchItem]

Returns:

List of normalized repository items.