diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 15c67864bc6344936657d4e9dd9dbcbed4621558..0000000000000000000000000000000000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "public"] - path = public - url = ssh://git@ssh.hesge.ch:10572/iti_assistants/modele-tp-etudiants-public.git diff --git a/clone_all_repos_in_group.py b/clone_all_repos_in_group.py new file mode 100755 index 0000000000000000000000000000000000000000..ad3d7c2714cb634db29a7a93605c45f270b1d58b --- /dev/null +++ b/clone_all_repos_in_group.py @@ -0,0 +1,41 @@ +#!/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']]) diff --git a/public b/public deleted file mode 160000 index 51f16857a239d5a0272ad969d97d1c2b726965f6..0000000000000000000000000000000000000000 --- a/public +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 51f16857a239d5a0272ad969d97d1c2b726965f6