document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #!/home/hdiwan/.virtualenvs/gitcomments/bin/python
  2.  
  3. import argparse
  4. import datetime
  5. import dateutil.parser
  6. import logging
  7. import re
  8. import requests
  9. from requests.auth import HTTPBasicAuth
  10.  
  11. logging.basicConfig(level=logging.DEBUG, format=\'%(asctime)s, %(levelname)s, %(lineno)d, %(message)s\')
  12. def iso(datestring):
  13.     if datestring == \'now\':
  14.         return datetime.datetime.now().isoformat()
  15.     else:
  16.         date = dateutil.parser.parse(datestring)
  17.         return date.isoformat()
  18.  
  19. if __name__ == \'__main__\':
  20.     parser = argparse.ArgumentParser(description=\'List git commit messages for a given date range on a repository\')
  21.     parser.add_argument(\'--start\', type=str, help=\'Last date for commits\', default=\'now\')
  22.     parser.add_argument(\'--end\', type=str, help=\'Start date for commits\')
  23.     parser.add_argument(\'--project\', type=str, help=\'git project url\')
  24.     parser.add_argument(\'--user\', type=str, help=\'github username\')
  25.     parser.add_argument(\'--password\', type=str, help=\'github password\')
  26.  
  27.     parsed = parser.parse_args()
  28.     # todo default to crawling all the users projects so get their names
  29.     URL = "https://api.github.com/repos/{0}/commits?since={1}&until={2}".format(parsed.project, iso(parsed.end), iso(parsed.start))
  30.     auth = HTTPBasicAuth(parsed.user, parsed.password)
  31.     response = requests.get(URL, auth=auth)
  32.     for stanza in response.json():
  33.         print(stanza[\'commit\'][\'message\'])
');