#!/home/hdiwan/.virtualenvs/gitcomments/bin/python
import argparse
import datetime
import dateutil.parser
import logging
import re
import requests
from requests.auth import HTTPBasicAuth
logging.basicConfig(level=logging.DEBUG, format=\'%(asctime)s, %(levelname)s, %(lineno)d, %(message)s\')
def iso(datestring):
if datestring == \'now\':
return datetime.datetime.now().isoformat()
else:
date = dateutil.parser.parse(datestring)
return date.isoformat()
if __name__ == \'__main__\':
parser = argparse.ArgumentParser(description=\'List git commit messages for a given date range on a repository\')
parser.add_argument(\'--start\', type=str, help=\'Last date for commits\', default=\'now\')
parser.add_argument(\'--end\', type=str, help=\'Start date for commits\')
parser.add_argument(\'--project\', type=str, help=\'git project url\')
parser.add_argument(\'--user\', type=str, help=\'github username\')
parser.add_argument(\'--password\', type=str, help=\'github password\')
parsed = parser.parse_args()
# todo default to crawling all the users projects so get their names
URL = "https://api.github.com/repos/{0}/commits?since={1}&until={2}".format(parsed.project, iso(parsed.end), iso(parsed.start))
auth = HTTPBasicAuth(parsed.user, parsed.password)
response = requests.get(URL, auth=auth)
for stanza in response.json():
print(stanza[\'commit\'][\'message\'])