Lab – List Github Repositories¶
Let’s suppose we want to list all the Github repositories associated with the authenticated user.
Github defines several types of repository that can be listed:
all
owner
public
private
member
Our application should query for all
by default, but allow the user to
specify a different type.
Argparse¶
A production quality command line utility will typically require the ability to
accept arguments when it is called. While it is possible to parse these
arguments manually from sys.argv
, the recommended technique is to use the
argparse
library. Argparse is part of the Python standard library, and is
very well documented.
Note: Argparse was introduced in Python 2.7. Prior versions of Python include
an earlier library, optparse
. Argparse is intended as a full replacement
for optparse, and so usage of the latter is deprecated.
Lab¶
File labs/rest_api/list_repos.py
will get you started:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | '''
Lab - List Repositories
Write a script that queries the Github API for repositories
belonging to the authenticated user.
For each repo, print out its name, its description, and the number
of open issues.
'''
API_TOKEN = 'YOUR_TOKEN_GOES_HERE'
VALID_TYPES = ['all', 'owner', 'public', 'private', 'member']
import requests
import argparse
def main():
parser = argparse.ArgumentParser(description='List Github repositories.')
parser.add_argument('-t', '--type',
nargs = 1,
dest = 'type',
default = 'all',
metavar = 'TYPE',
choices = VALID_TYPES,
help = 'What type of repos to list',
)
args = parser.parse_args() # You can access the 'type' argument as args.type
#
# Use the authentication token we generated in the previous example
#
headers = {
'Authorization': 'token %s' % API_TOKEN
}
#
# Now, build a REST request, and parse the server's response...
#
if __name__ == '__main__':
main()
|