示例#1
0
 def __init__(self, base_url,auth_file,verbose=False):
     self.token    = self._get_auth(auth_file).get("token")
     self.base_url = base_url
     self.base_api = "https://%s:x-oauth-basic@%s/api/v3" % (self.token,base_url)
     self.rest     = Restful(self.base_api)
示例#2
0
class Github(object):
    def __init__(self, base_url,auth_file,verbose=False):
        self.token    = self._get_auth(auth_file).get("token")
        self.base_url = base_url
        self.base_api = "https://%s:x-oauth-basic@%s/api/v3" % (self.token,base_url)
        self.rest     = Restful(self.base_api)
        #self.roots    = self.url_roots(verbose)
#### Private Definitions ####
    def _get_auth(self,auth_file):
        try:
            with open(auth_file, 'r') as file:
                auth = json.load(file)
            self.token = auth.get('token')   
        except Exception as e:
            print "[Error] auth_file at path <%s>" % (auth_file)
            print e
            sys.exit(1)
        return auth
    def _pprint(self,data):
        if type(data) is list:
            for d in data:
                self._pprint(d)
        else:
            for key,value in data.iteritems():
                if type(value) is dict:
                    print key
                    self._pprint(value)
                else:
                    print '{:>40} : {:<50}'.format(key,str(value))
    def _prep_urls(self,_urls_dict):
        url_exts = {}
        for key,url in _urls_dict.iteritems():
            url = str(url)
            if self.base_url in url:
                url = url.split(self.base_url,1)[1].replace("/api/v3/","")
            url_exts[key]=url
        return url_exts
    def _find_replace(self,str,vars,url_dict):
        for key,token in vars.iteritems():
            if key in str:
                str = str.replace(key,token).replace('}','')
                url_dict.append(str)
        return url_dict
    def _add_vars(self,url,vars):
        print vars
        new_url = []
        if url:
            url = url.split("{")
            print url
            for value in url:
                if '}' in value:
                    self._find_replace(value, vars, new_url)
                else:
                    new_url.append(value)
            return ''.join(new_url)
        return ''
#### Public Definitions ####  
    def get(self,ext_url,verbose=False):
        print "[ext_url] "+ext_url
        output = json.loads( self.rest.send("GET",ext_url,verbose=False))
        if verbose:
            self._pprint(output)
        return output