这几个简单的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"}]

  

GIT的API主要应用示例的更多相关文章

  1. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  2. Stream API的代码示例.md

    一.代码实例: package com.TestMain; import com.alibaba.fastjson.JSON; import java.util.*; import java.util ...

  3. PHP服务器端API原理及示例讲解(接口开发)

    http://www.jb51.net/article/136816.htm 下面小编就为大家分享一篇PHP服务器端API原理及示例讲解(接口开发),具有很好的参考价值,希望对大家有所帮助 相信大家都 ...

  4. ZooKeeper(3.4.5) - 原生 API 的简单示例

    一.创建会话 1. 创建一个基本的ZooKeeper会话实例 package com.huey.dream.demo; import java.util.concurrent.CountDownLat ...

  5. openssl AES加密算法API的使用示例

    openssl为用户提供了丰富的指令,同时也提供了供编程调用的API,本文以使用128位aes算法的ecb模式进行加密和解密验证,如下所示 第一种方法,直接使用aes算法提供的api进行调用,代码如下 ...

  6. JAVA的免费天气api接口调用示例

    step1:选择本文所示例的接口"免费天气api" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参 ...

  7. 调用阿里云API 的demo示例(java/python)

    Java 示例 // 创建DefaultAcsClient实例并初始化 DefaultProfile profile = DefaultProfile.getProfile(vo.getAliRegi ...

  8. Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo)

    项目结构 dubbo-demo dubbo-api:提供api接口,一般存储实体类和接口服务 dubbo-provider:dubbo生产者提供服务,一般存储接口具体实现 dubbo-customer ...

  9. 全国天气预报数据API调用PHP示例

    本代码示例是基于PHP的聚合数据全国天气预报API服务请求的代码样例,使用前你需要: ①:通过https://www.juhe.cn/docs/api/id/39 申请一个天气预报API的appkey ...

随机推荐

  1. Coursera Algorithms week4 基础标签表 练习测验:Java autoboxing and equals

    1. Java autoboxing and equals(). Consider two double values a and b and their corresponding Double v ...

  2. 【题解】晋升者计数 Promotion Counting [USACO 17 JAN] [P3605]

    [题解]晋升者计数 Promotion Counting [USACO 17 JAN] [P3605] 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训.!牛是可怕的管理者! [题目描 ...

  3. scala控制流程语句

    直接上代码了哈. package com.test.scala.test object Kongzi { def main(args: Array[String]): Unit = { //if 语句 ...

  4. C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序

    在网上看到好多关于repeater排序的,自己动手用了,发现一些问题,贴源码后把发现的问题以及解决方法给出 repeater实现排序功能(单击升序排列,再单击降序排列).原理很简单,在<TD&g ...

  5. IIS 503 错误

    今天早上乘公交的时候,网站运维群里直接炸了,网站打不开,503错误.然后就各种@我,吓得我手机都要扔了,然后马不停蹄的赶往公司去查看错误. 我首先在IIS上浏览网页,想试图在服务器上显现出详细错误,这 ...

  6. [Java]Java分层概念

      service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问 1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能 ...

  7. html5——伸缩比例

    基本概念 1.父盒子设置了伸缩属性,子盒子设置伸缩比例 2.以上设置完之后子盒子会按照比例分布在父盒子中 3.当设置伸缩比例时默认会按照x轴方向分配,因为默认情况下伸缩布局主轴方向是x轴方向 4.设置 ...

  8. JS——事件的绑定与解绑

    1.绑定形式 ele.addEventListener(evtName, fn) ele["on" + evtName] = function () {} ele.onclick ...

  9. 使用doxmate生成文档

    主页:http://html5ify.com/doxmate/ 在windows下面使用doxmate 1. 下载node.js(msi)并安装 http://www.nodejs.org/downl ...

  10. RAID技术简单分析

    RAID技术解析 RAID:独立磁盘冗余阵列(Redundant Array of Independent Disks) RAID技术就是将许多块硬盘设备组合成一个容量更大.更安全的硬盘组,可以将数据 ...