Create GitHub authentication module.

This commit is contained in:
Vamshi Balanaga 2016-12-23 21:41:04 -05:00 committed by Tim Abbott
parent eb983e0bbc
commit 69b324229c

View file

@ -1,25 +1,56 @@
#!/usr/bin/env python
# The purpose of this file is to handle all requests # The purpose of this file is to handle all requests
# to the Github API, which will make sure that all # to the Github API, which will make sure that all
# requests are to the same account, and that all requests # requests are to the same account, and that all requests
# authenticated correctly and securely # authenticated correctly and securely
# The sole purpose of this is to authenticate, and it will # The sole purpose of this is to authenticate, and it will
# return the requests session that is properly authenticated # return the requests session that is properly authenticated
import logging
import os import os
import requests import requests
import six.moves.configparser import six.moves.configparser
CONFIG_FILE = '~/.github-issue-bot/github-issue-bot.conf'
# This file contains the oauth token for a github user, their username, and optionally, a repository
# name and owner. All in the format:
# github_repo
# github_repo_owner
# github_username
# github_token
CONFIG_FILE = '~/.github-auth.conf'
global config
config = six.moves.configparser.ConfigParser() # Sets up the configParser to read the .conf file
config.read([os.path.expanduser(CONFIG_FILE)]) # Reads the config file
def auth(): def auth():
# Sets up the configParser to read the .conf file
config = six.moves.configparser.ConfigParser()
# Reads the config file
config.read([os.path.expanduser(CONFIG_FILE)])
# Gets the properties from the config file
oauth_token = config.get('github', 'github_token')
username = config.get('github', 'github_username')
# Creates and authorises a requests session # Creates and authorises a requests session
session = requests.session() session = requests.session()
session.auth = (username, oauth_token) session.auth = (get_username(), get_oauth_token())
# Returns the session
return session return session
def get_oauth_token():
_get_data('token')
def get_username():
_get_data('username')
def get_repo():
_get_data('repo')
def get_repo_owner():
_get_data('repo_owner')
def _get_data(key):
try:
return config.get('github', 'github_%s' % (key))
except Exception:
logging.exception('GitHub %s not supplied in ~/.github-auth.conf.' % (key))