【老王公众号】

教你怎么调用Gitlab API

1、生成Personal Access Tokens

     选择右上角用户信息setting—>Access Tokens

2、常用Gitlab API

#获取所有的项目信息

#private_token来自Access Tokens

http://192.168.199.184/api/v3/projects?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

#获取项目信息

#15 为项目ID,来自所有的项目信息

http://192.168.199.184/api/v3/projects/15         

#查看用户信息

http://192.168.199.184/api/v3/projects/15/users?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

#获取commits提交信息

#15 为项目ID,来自所有的项目信息

http://192.168.199.184/api/v3/projects/15/repository/commits/master?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

3、实战案例

获取项目信息

复制代码
#!/usr/bin/env python
#-*-coding:utf-8-*-
import requests
url = 'http://192.168.199.184/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=50'    
user_url= 'http://192.168.199.184/api/v3/projects/15/users?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=10'  
#获取项目id和项目名称
def GetProject_id(project_url):  
    r = requests.get(project_url)
    data = r.json()
    ProjectId_list = []
    ProjectName_list = []
    for i in data:
        ProjectId_list.append(i['id'])
        ProjectName_list.append(i['name'])
    return ProjectId_list,ProjectName_list
#根据项目id获取项目下的用户信息
def GetProject_userlist():
    IdList = GetProject_id(url)
    project_id = IdList[0]
    project_name = IdList[1]
    for id in project_id:
        l = []
        project_user = requests.get(user_url.format(id))  
#生成完整的用于显示项目下所有user的连接 req_data
= project_user.json() for i in req_data: l.append(i['name']) print (project_name[project_id.index(id)],l) GetProject_userlist()
复制代码

获取项目提交信息

复制代码
#-*-coding:utf-8-*-
import requests
import  re
url = 'http://192.168.199.184/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=10'
r =requests.get(url)
p_group = ['HJ']
data = r.json()
print ("项目名称",' '*20,'最近提交时间')
for i in data:
    if i['ssh_url_to_repo'].split(':')[1].split('/')[0] in p_group:
        r1 = requests.get('http://192.168.199.184/api/v3/projects/15/repository/commits/master?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10'
            % i['id'])
        data2 = r1.json()
        if data2['message'].strip() == '404 Commit Not Found':
            print (i['ssh_url_to_repo'].split(':')[1],' '*11,'未提交任何代码')
        else:
            print(i['ssh_url_to_repo'].split(':')[1], ' ' * 11, data2['committed_date'][:10])
复制代码

 

posted @   CTO老王  阅读(14956)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2014-07-25 Linux Shell 小脚本经典收藏
点击右上角即可分享
微信分享提示