当前位置:   article > 正文

python 批量拉取gitlab项目_拉取gitlab下所有项目

拉取gitlab下所有项目

一、需求

批量拉取gitlab上自己可访问的项目

二、个人token获取

路径:右上角头像 - profile settings - access tokens

三、代码测试


import json
import subprocess
import shlex

token = 'xxxx' 	 //这里是gitlab上自己的token值
api_url = 'xxx'  //贵司的gitlab地址
page = 1		 //起始页码

url = api_url + '/api/v3/projects?private_token=' + token + '&per_page=100&page='

while True:
    cur = ("%s%s") % (url, str(page)) //拼接当前页url
    r = requests.get(url)			  //请求
    data = r.json()
    if len(data) >= 0:				  //有记录则clone
        for i in data:
            pd = i['ssh_url_to_repo']
            ret = subprocess.Popen(shlex.split('git clone {}'.format(pd)), shell=False, stdout=None)

        page = page + 1				  //请求下一页
    else:
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

四、项目信息

可根据自己需要的信息选择

{
	'id': 1915186,
	'description': '这里是描述',
	'default_branch': 'main',
	'tag_list': [],
	'public': False,
	'archived': False,
	'visibility_level': 0,
	'ssh_url_to_repo': 'git@xxx.git',      //clone地址
	'http_url_to_repo': 'https://xxx.git', //下载地址
	'web_url': 'https://xxxxx',
	'name': 'abc',
	'name_with_namespace': 'prefix / abc',
	'path': 'abc',
	'path_with_namespace': 'prefix/abc',
	'container_registry_enabled': True,
	'issues_enabled': True,
	'merge_requests_enabled': True,
	'wiki_enabled': True,
	'builds_enabled': True,0
	'snippets_enabled': False,
	'created_at': '2020-11-01T11:44:57.000+08:00',
	'last_activity_at': '2020-11-01T18:03:18.000+08:00',
	'shared_runners_enabled': True,
	'lfs_enabled': True,
	'creator_id': 100001,
	'namespace': {
		'id': 5219,
		'name': 'xxxx',
		'path': 'xxxx',
		'owner_id': None,
		'created_at': '2020-11-01T11:05:06.000+08:00',
		'updated_at': '2020-11-01T11:05:06.000+08:00',
		'description': '',
		'avatar': {
			'url': None
		},
		'share_with_group_lock': False,
		'visibility_level': 0,
		'request_access_enabled': False,
		'deleted_at': None,
		'lfs_enabled': None,
		'parent_id': None
	},
	'avatar_url': None,
	'star_count': 0,
	'forks_count': 0,
	'open_issues_count': 0,
	'public_builds': True,
	'shared_with_groups': [],
	'only_allow_merge_if_build_succeeds': False,
	'request_access_enabled': False,
	'only_allow_merge_if_all_discussions_are_resolved': False,
	'permissions': {
		'project_access': None,
		'group_access': {
			'access_level': 40,
			'notification_level': 3
		}
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/976700
推荐阅读
相关标签
  

闽ICP备14008679号