Skip to content
Snippets Groups Projects
Commit 6159e656 authored by steven.liatti's avatar steven.liatti
Browse files

Add script to clone all repositories in a given group

parent a499fc69
No related branches found
No related tags found
No related merge requests found
[submodule "public"]
path = public
url = ssh://git@ssh.hesge.ch:10572/iti_assistants/modele-tp-etudiants-public.git
#!/usr/bin/env python3
import sys
import json
import requests
import subprocess
if len(sys.argv) < 3:
print('Usage: ' + sys.argv[0] + ' <token> <group_id>')
exit(1)
token = sys.argv[1]
group_id = sys.argv[2]
base_url = 'https://gitedu.hesge.ch/api/v4/'
params = {'simple': 'true', 'per_page': 100}
headers = {'PRIVATE-TOKEN': token}
repositories = requests.get(base_url + '/groups/' + group_id + '/projects', params=params, headers=headers).json()
if 'message' in repositories:
print('Error retrieving repositories: ' + repositories['message'])
exit(1)
for repo in repositories:
repo_url = base_url + '/projects/' + str(repo['id']) + '/members'
members = requests.get(repo_url, headers=headers).json()
if 'message' in members:
print('Error retrieving members: ' + members['message'])
exit(1)
ssh_url_to_repo = repo['ssh_url_to_repo']
web_url = repo['web_url']
members_names = ''
for member in members:
members_names += member['username'] + ', '
print('Members: ' + members_names)
print('Web url: ' + web_url)
print('Cloning in "repositories/' + repo['path'] + '"\n')
subprocess.run(["git", "clone", "-q", ssh_url_to_repo, "repositories/" + repo['path']])
Subproject commit 51f16857a239d5a0272ad969d97d1c2b726965f6
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment