Skip to content
Snippets Groups Projects
Select Git revision
  • 8841a7dc5c173c84cf90a0e920404bacae11025f
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • interactive-mode-preference
  • bedran_exercise-list
  • add_route_user
  • Jw_sonar_backup
  • exercise_list_filter
  • assignment_filter
  • add_route_assignments
  • move-to-esm-only
  • 6.0.0-dev
  • Pre-alpha
  • 5.0.0
  • Latest
  • 4.2.0
  • 4.1.1
  • 4.1.0
  • 4.0.1
  • 4.0.0
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.3.0
  • 3.2.3
  • 3.2.2
  • 3.2.0
  • 3.1.2
  • 3.1.1
  • 3.1.0
  • 3.0.1
32 results

SessionManager.ts

Blame
  • clone_all.py 1.06 KiB
    import sys
    import json
    import requests
    import subprocess
    
    if len(sys.argv) < 3:
        print('Usage: ' + sys.argv[0] + ' <token> <project_id>')
        exit(1)
    
    token = sys.argv[1]
    project_id = sys.argv[2]
    
    base_url = 'https://gitedu.hesge.ch/api/v4/projects/'
    params = {'simple': 'true'}
    headers = {'PRIVATE-TOKEN': token}
    
    repositories = requests.get(base_url + project_id + '/forks', params=params, headers=headers).json()
    
    for repo in repositories:
        repo_url = base_url + str(repo['id']) + '/members'
        members = requests.get(repo_url, headers=headers).json()
        
        ssh_url_to_repo = repo['ssh_url_to_repo']
        web_url = repo['web_url']
        members_names = ''
    
        for member in members:
            if member['access_level'] > 20: # Access level greater than "Reporter"
                members_names += member['username'] + ', '
    
        print('Members: ' + members_names)
        print('Web url: ' + web_url)
        print('Cloning in "repositories/' + repo['namespace']['name'] + '"\n')
        subprocess.run(["git", "clone", "-q", ssh_url_to_repo, "repositories/" + repo['namespace']['name']])