您的位置:首页 > 其它

GIT的API主要应用示例

2016-06-16 15:00 357 查看
这几个简单的API应用,主要是通过TOKEN来获取GIT内空的例子。

但在获取GIT的文件列表时,要注意区分目录和文件的MODE差别(

100644 普通文件

040000 普通目录

)。

import requests

class GitHub:
def __init__(self):
self.__url = 'http://1。2.3.4/api/v3/'
self.__private_token = 'sdtrwr324sdfsdf'

def get_project_id(self, project_name):
project_name = str(project_name).lower()
url = self.__url + 'projects/search/' + project_name + '?private_token=' + self.__private_token
req = requests.get(url)
data = req.json()
return str(data[0]['id'])

def get_project_files(self, project_name, version):
project_name = str(project_name).lower()
project_id = self.get_project_id(project_name)
url = self.__url + 'projects/' + project_id + '/repository/tree?private_token=' + self.__private_token + '&path=' + version
req = requests.get(url)
data = req.json()
return data

def get_file_content(self, project_name, version, file_name):
project_name = str(project_name).lower()
project_id = self.get_project_id(project_name)
url = self.__url + 'projects/' + project_id + '/repository/files?private_token=' + self.__private_token + '&ref=master&file_path=' + version + '/' + file_name
req = requests.get(url)
data = req.json()
return data

def get_file_url(self, project_name, version, file_name):
project_name = str(project_name).lower()
project_id = self.get_project_id(project_name)
url = 'http://1.2.3.4/prj_sql/' + project_name + '/blob/master/' + version + '/' + file_name
return url


  

获取文件列表示例(内含子目录):

[{"id":"9cefa7fcd94d23ce6a9afa63c185ae8491580f9d","name":"25.1","type":"tree","mode":"040000"},
{"id":"bd34591bcd6d8983ea5c1ab35fd5fb9d226f3f5f","name":"25.2","type":"tree","mode":"040000"},
{"id":"f89a96f1aaafcbd16f693a9007466cfd5735636e","name":"101_u01_create_t_model_dd.sql","type":"blob","mode":"100644"},
{"id":"5f848d696dd890e4cdd3063b2b596a8921cbf873","name":"102_u01_create_syn_t_model_aa.sql","type":"blob","mode":"100644"},
{"id":"9671cef3770c0abb04065240c8edb245c78585eb","name":"103_u01_grant_t_model_cc.sql","type":"blob","mode":"100644"}]


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: