博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT的API主要应用示例
阅读量:6972 次
发布时间:2019-06-27

本文共 2151 字,大约阅读时间需要 7 分钟。

这几个简单的API应用,主要是通过TOKEN来获取GIT内空的例子。

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

100644 普通文件
040000 普通目录

)。

import requestsclass 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"}]

  

转载地址:http://fbbsl.baihongyu.com/

你可能感兴趣的文章
dedecms 的这个dede:arclist里怎么调用全局变量?
查看>>
eclipse上跑项目越来越慢的解决办法
查看>>
个人开公司的流程,以后用得着(经典)(转)
查看>>
跟踪内核启动过程CONFIG_DEBUG_LL【转自】
查看>>
系统数据文件和信息
查看>>
Laravel 程序架构设计思路:使用动作类
查看>>
Java线程池实现原理与技术(ThreadPoolExecutor、Executors)
查看>>
Linux内核读书笔记第五周链接
查看>>
工厂模式(Factory Patter)
查看>>
痛苦的 01 矩阵(和式推导)
查看>>
我的Python成长之路---第三天---Python基础(11)---2016年1月16日(雾霾)
查看>>
intellij idea 用法
查看>>
Fabric项目学习总结
查看>>
【转】sqlserver临时表操作
查看>>
计算机等级考试成绩查询系统的设计与实现vfp
查看>>
android:exported 属性详解
查看>>
AT907 心配性な富豪、ファミリーレストランに行く。
查看>>
查询窗体的制作
查看>>
正则表达式详解<一>
查看>>
dede会员中心修改
查看>>