diff --git a/create_group_and_repos.sh b/create_group_and_repos.sh new file mode 100755 index 0000000000000000000000000000000000000000..9556f55c58a922638c8281ec592f6c793a5b5bb3 --- /dev/null +++ b/create_group_and_repos.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +if [[ $# != 4 ]]; then + echo "Usage: $0 <token> <group_name> <import_url> <repos_students>" + exit 1 +fi + +token=$1 +group_name=$2 +import_url=$3 +repos_students=$4 + +group=$(scripts/create_group.py $token $group_name) +group_id=$(echo $group | cut -d';' -f2) +printf "$group\n\n" + +for line in $(cat $repos_students); do + project_name=$(echo $line | cut -d';' -f1) + students=$(echo $line | cut -d';' -f2) + new_repo=$(scripts/create_repo_for_students.py $token $import_url $group_id $project_name $students) + printf "$new_repo\n\n" +done diff --git a/scripts/clone_all_repos_in_group.py b/scripts/clone_all_repos_in_group.py index f30d4fc812cb5df7326beb58c10aa237da2b6319..a6bfb8d612f7806b9292d1040981e4a88eb62c13 100755 --- a/scripts/clone_all_repos_in_group.py +++ b/scripts/clone_all_repos_in_group.py @@ -41,7 +41,7 @@ for repo in repositories: members_names = '' for member in members: - members_names += member['username'] + ', ' + members_names += "'" + member['name'] + "' (" + member['username'] + '), ' print('Members: ' + members_names) print('Web url: ' + web_url) diff --git a/scripts/create_group.py b/scripts/create_group.py index 418e31c613db16873d688c30a3f5ea4cd5291533..60e5bab3a976d1bd0db485177e14e2141873892f 100755 --- a/scripts/create_group.py +++ b/scripts/create_group.py @@ -25,5 +25,4 @@ if 'message' in group: print('Error in creating group: %s' % group) exit(1) -print("Group '" + group['name'] + "' with id '" + str(group['id']) + "' and visibility '" + group['visibility'] + "' available at '" + group['web_url'] + "'") -print(str(group['id'])) \ No newline at end of file +print("Group '" + group['name'] + "' with id '" + str(group['id']) + "' and visibility '" + group['visibility'] + "' available at '" + group['web_url'] + "';" + str(group['id'])) diff --git a/scripts/create_repo_for_students.py b/scripts/create_repo_for_students.py index 76182964e2e3b9a0be4ff657eac5aca222214afa..23a0088ffbe0d011242355de07790cd0290e9d1f 100755 --- a/scripts/create_repo_for_students.py +++ b/scripts/create_repo_for_students.py @@ -35,10 +35,16 @@ project = requests.post(base_url + '/projects', params=params, headers=headers). if 'message' in project: print('Error in creating project: %s' % project) exit(1) +print("Project '" + project['name'] + "' at '" + project['web_url'] + "' created") # Add each student as project's maintainer (level 40) for user_id in users_ids: params = {'user_id': user_id, 'access_level': 40} new_user = requests.post(base_url + '/projects/' + str(project['id']) + '/members', params=params, headers=headers).json() + if 'message' in new_user: + print('Error in adding user: %s' % new_user) + else: + print("Adding '" + new_user['name'] + "' (" + new_user['username'] + ") in '" + project['name'] + "'") + # Do not forget : students have to add second remote in their local repositories for pulling last changes.