Loading src/features/gitlab.py +11 −1 Changes for src/features/gitlab.py: 11 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ from typing import cast, Dict, List, Optional, Union # Modules libraries from gitlab import Gitlab from gitlab.base import RESTObject, RESTObjectList from gitlab.const import AccessLevel as GitLabAccessLevel from gitlab.exceptions import ( GitlabDeleteError, GitlabGetError, Loading Loading @@ -139,9 +140,18 @@ class GitLabFeature: # Remove group members group = self.group(criteria) for member in group.members.list(get_all=True): for member in sorted( group.members.list(get_all=True), key=lambda item: item.access_level, ): if not self.__dry_run: try: group.members.delete(member.id) except GitlabDeleteError as exception: if member.access_level == GitLabAccessLevel.OWNER \ and len(group.members.list(get_all=True)) == 1: continue raise exception # Save group if not self.__dry_run: Loading Loading
src/features/gitlab.py +11 −1 Changes for src/features/gitlab.py: 11 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ from typing import cast, Dict, List, Optional, Union # Modules libraries from gitlab import Gitlab from gitlab.base import RESTObject, RESTObjectList from gitlab.const import AccessLevel as GitLabAccessLevel from gitlab.exceptions import ( GitlabDeleteError, GitlabGetError, Loading Loading @@ -139,9 +140,18 @@ class GitLabFeature: # Remove group members group = self.group(criteria) for member in group.members.list(get_all=True): for member in sorted( group.members.list(get_all=True), key=lambda item: item.access_level, ): if not self.__dry_run: try: group.members.delete(member.id) except GitlabDeleteError as exception: if member.access_level == GitLabAccessLevel.OWNER \ and len(group.members.list(get_all=True)) == 1: continue raise exception # Save group if not self.__dry_run: Loading