diff --git a/pwm/pwm.py b/pwm/pwm.py index b41582b1fc63f64eed9ecbad945c7f540b6f2cee..3807fc57b7d4a7aba9df7f33913d1df76669e7ae 100755 --- a/pwm/pwm.py +++ b/pwm/pwm.py @@ -112,7 +112,13 @@ class Gitlab: print(f"Error searching user {user.user_login_aai}") print(res.text) else: - return str(res.json()[0]["id"]) + res_json = res.json() + if len(res_json) == 1: + return str(res.json()[0]["id"]) + elif len(res_json) > 1: + print(f"ERROR: More than one users found for {user.user_login_aai}") + else: + print(f"ERROR: No user found for {user.user_login_aai}") def add_users_to_repository( self, @@ -120,8 +126,8 @@ class Gitlab: project_name: str, users: list[User], expires_at: str | None, - ): - """Add users to a repo, and set their permissions""" + ) -> list[User]: + """Add users to a repo, and set their permissions, returns all user added""" headers = {"PRIVATE-TOKEN": self.token} # Allow users with developer access level to push and merge on master access_level = 40 @@ -140,12 +146,14 @@ class Gitlab: f"Error setting project ({project_name}) premissions", res.text ) + added_users = [] for user in users: user_id = self.get_user_id(user) if user_id is None: print( f"ERROR: User {user.user_login_aai} will not be added to project: {project_name}" ) + continue params = {"user_id": user_id, "access_level": access_level} if expires_at: params["expires_at"] = expires_at @@ -159,6 +167,8 @@ class Gitlab: f"ERROR: User {user.user_login_aai} will not be added to project: {project_name}" ) print(res.text) + added_users.append(user) + return added_users def create_repository( self, @@ -328,11 +338,11 @@ def command_create_group_repos(args): group.name, args.import_url, ) - gl.add_users_to_repository( + added_users = gl.add_users_to_repository( project_id, group.name, group.user_ids, args.expires_at ) print( - f"Created repo: {group.name} with the users: {[u.user_login_aai for u in group.user_ids]}" + f"Created repo: {group.name} with the users: {[u.user_login_aai for u in added_users]}" )