官方文檔
https://docs.gitlab.com/search/?q=api&idx=gitlab&p=1
示例:獲取每個項目下的用戶信息
#!/usr/bin/env python #-*-coding:utf-8-*- import requests url = 'http://x.x.x.x/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=50' #private_token為必須項,這里為獲取所有的項目信息 user_url= 'http://x.x.x.x/api/v3/projects/{}/users?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=100' #獲取每個項目下的用戶信息 #http://10.10.10.217/api/v3/projects/45/users?private_token=oMJwN5ErC8_n1QvTsyDR #獲取項目id為45的信息
#獲取項目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://10.10.10.217/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=50' 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://x.x.xx.x/api/v3/projects/%d/repository/commits/master?private_token=xxxxxxxxxxxxxxxxx' % 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])