Skip to content
Snippets Groups Projects
Commit 45fc6885 authored by Guillaume Chanel's avatar Guillaume Chanel
Browse files

Merge branch 'master' into repos_file_generator

parents c83c7c52 1eaa9f09
Branches
No related tags found
No related merge requests found
Pipeline #26461 failed
......@@ -62,8 +62,12 @@ def emails_to_ids(emails: List[str], headers: Dict[str, str]) -> List[int]:
for email in emails:
# Dirty and hackish way that attempts to extract the username from the email.
# It's inefficient, but currently there is now way to reliably obtain
# It's inefficient, but currently there is no way to reliably obtain
# the username from the email.
# new strategy: - stop when we reach the "." or when we get more than 1 result
# Example of tricky users:
# pierre-louis.roden@etu.hesge.ch -> login AAI: pierrelo.roden
# joel.ferreirapinto@etu.hesge.ch -> login AAI: joelfili.ferreira
username = email.split("@")[0]
#print("Email: ",email)
......@@ -71,11 +75,17 @@ def emails_to_ids(emails: List[str], headers: Dict[str, str]) -> List[int]:
#print("Guessed username: ",username)
user_requested = requests.get(BASE_API_URL + '/users', params={'search': username}, headers=headers).json()
if len(user_requested) == 0:
nb_users = len(user_requested)
if nb_users == 0:
#print('No user %s found, another try...' % email)
lastchar = username[-1]
username = username.rstrip(lastchar)
if username[-1] == '.': # stop if we reach the . -> probably at least one wrong person match the first name
break
continue
elif nb_users > 1:
print('Too many users found for email %s, aborting.' % email)
exit(1)
#print(json.dumps(user_requested, indent=4))
user_ids.append(user_requested[0]['id'])
......@@ -104,7 +114,7 @@ def create_repository(token: str, group_id: str, emails: List[str], name: str, i
project['web_url'] + "' created")
# Allow users with developer access level to push and merge on master
access_level = 30
access_level = 40
params = {'name': 'master', 'push_access_level': str(
access_level), 'merge_access_level': str(access_level)}
requests.post(BASE_API_URL + '/projects/' +
......@@ -113,7 +123,7 @@ def create_repository(token: str, group_id: str, emails: List[str], name: str, i
# Get students ids from their emails
user_ids = emails_to_ids(emails, headers)
# Add each student as project's developer (level 30)
# Add each student as maintainer (level 40)
for user_id in user_ids:
params = {'user_id': user_id, 'access_level': access_level}
if expires_at:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment