Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


The following examples show how to get a list of edx repositories containing the string "edx-drf-extensions".

Table of Contents

Github API using Python


This script has the advantage of handling paging in addition to sorting and filtering results.  Since the script pages automatically, you may get rate limited with a warning.


Code Block
from github import Github

# Set this to a personal access token.
# - Select "repo" for the oauth scopes.
# See

repositories = set()

# Note: Gets rate limited and fails if too many hits
content_files = g.search_code(query='org:edx edx-drf-extensions')
for content in content_files:
	rate_limit = g.get_rate_limit()
	if == 0:
		print('WARNING: Rate limit on searching was reached.  Results are incomplete.')

for repo in sorted(repositories):

rate_limit = g.get_rate_limit()
print('Search rate limit:')

Github API from Command Line

  1. From the command-line, use the following:

    Code Block
    # Supply username to search private repos
    # Skip username to quickly search public repos
    # check the "last" link in the headers to see how many pages of results.
    curl -sI "" | grep 'rel="last"'
    # or, just add "&page=2", etc., and see if you get results:

  2. If you have jq installed (e.g. brew install jq), you can get a sorted/filtered list using the following:

    Code Block
    # Pipe results to jq to get a filtered list of repositories
    curl -s "" 2>&1 | jq "[.items[].repository.full_name] | unique"
    # Note: Add '--user "REPLACE_WITH_GITHUB_USERNAME"' like above to search private repos.
    # Note: Remember to get additional pages of results if there are any (see above).

  3. Or, use jq-play online to filter the output:
    1. Copy the search output into the JSON field in
    2. Enter the following filter in jq-play:

      Code Block

Github API from Browser


Using the Github API from the browser is a quick and dirty approach, with some limitations. 

NOTE: This only searches public repos. You also need to remember to possible page the results.