Commit 7f025125 authored by Adrian DC's avatar Adrian DC
Browse files

feat(gitlab): automatically wait for group and project deletions

Signed-off-by: default avatarAdrian DC <radian.dc@gmail.com>
parent 4d379bad
Loading
Loading
Loading
Loading
Loading
+19 −2
Changes for src/features/gitlab.py: 19 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@ from gitlab.v4.objects import Group, Namespace, Project, User
# GitLabFeature class
class GitLabFeature:

    # Constants
    TIMEOUT_DELETION: int = 300

    # Members
    __dry_run: bool = False
    __gitlab: Gitlab
@@ -33,7 +36,14 @@ class GitLabFeature:
        if not self.__dry_run:
            group = self.group(criteria)
            group.delete()
            sleep(10)

            # Wait for deletion
            for _ in range(GitLabFeature.TIMEOUT_DELETION):
                try:
                    self.group(criteria)
                    sleep(1)
                except GitlabGetError:
                    break

    # Group reset members
    def group_reset_members(self, criteria: str) -> None:
@@ -86,7 +96,14 @@ class GitLabFeature:
        project = self.project(criteria)
        if not self.__dry_run:
            project.delete()
            sleep(5)

            # Wait for deletion
            for _ in range(GitLabFeature.TIMEOUT_DELETION):
                try:
                    self.project(criteria)
                    sleep(1)
                except GitlabGetError:
                    break

    # Project protect branches
    def project_protect_branches(self, criteria: str) -> List[str]: