def gitlab(request): create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_users_in_project(USER_BASE_NAME, 4, GROUP_AND_PROJECT_NAME) create_group(GROUP_WITH_USER1_AND_USER2) add_users_to_group(GROUP_WITH_USER1_AND_USER2, ['merge_requests_user1', 'merge_requests_user2'], OWNER_ACCESS) remove_users_from_group(GROUP_WITH_USER1_AND_USER2, ['root']) create_group(GROUP_WITH_USER3) add_users_to_group(GROUP_WITH_USER3, ['merge_requests_user3'], OWNER_ACCESS) remove_users_from_group(GROUP_WITH_USER3, ['root']) create_group(GROUP_WITH_USER4) add_users_to_group(GROUP_WITH_USER4, ['merge_requests_user4'], OWNER_ACCESS) remove_users_from_group(GROUP_WITH_USER4, ['root']) gl = get_gitlab() def fin(): # remove all the approval rules and disable approvals in the project rules = gl.get_approvals_rules(GROUP_AND_PROJECT_NAME) for rule in rules: gl.delete_approvals_rule(GROUP_AND_PROJECT_NAME, rule['id']) gl.put_project_settings(GROUP_AND_PROJECT_NAME, {'merge_requests_access_level': 'disabled'}) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_readme_in_project(GROUP_AND_PROJECT_NAME) # in master branch branches = [ "protect_branch_but_allow_all", "protect_branch_and_disallow_all", "protect_branch_and_allow_merges", "protect_branch_and_allow_pushes", "protect_branch_and_allow_merges_access_levels", "protect_branch_and_allow_pushes_access_levels", "protect_branch", ] for branch in branches: gl.create_branch(GROUP_AND_PROJECT_NAME, branch, "master") def fin(): # delete all created branches for branch_to_delete in branches: gl.delete_branch(GROUP_AND_PROJECT_NAME, branch_to_delete) request.addfinalizer(fin) return gl # provide fixture value
def project(group): project_name = get_random_name() create_project(group, project_name) yield project_name gl = get_gitlab() gl.delete_project(f"{group}/{project_name}")
def group(): group_name = get_random_name() create_group(group_name) yield group_name gl = get_gitlab() gl.delete_group(group_name)
def other_group(): # TODO: deduplicate this - it's a copy and paste from the above fixture group_name = get_random_name() create_group(group_name) yield group_name gl = get_gitlab() gl.delete_group(group_name)
def other_project(group): # TODO: deduplicate this - it's a copy and paste from the above fixture project_name = get_random_name() create_project(group, project_name) yield project_name gl = get_gitlab() gl.delete_project(f"{group}/{project_name}")
def gitlab(request): create_group(GROUP_NAME) gl = get_gitlab() def fin(): delete_variables_from_group(GROUP_NAME, ["FOO", "BAR"]) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) gl = get_gitlab() def fin(): gl.delete_project(GROUP_AND_PROJECT_NAME) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) gl = get_gitlab() def fin(): # disable test integrations gl.delete_service(GROUP_AND_PROJECT_NAME, 'mattermost') request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) gl = get_gitlab() def fin(): # disable test integrations for service in ['asana', 'hipchat', 'redmine', 'jira', 'mattermost']: gl.delete_service(GROUP_AND_PROJECT_NAME, service) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_readme_in_project(GROUP_AND_PROJECT_NAME) # in main branch def fin(): gl.delete_project(GROUP_AND_PROJECT_NAME) # TODO: find some smarter way to avoid 400 when trying to create project while it is still being deleted time.sleep(15) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_readme_in_project(GROUP_AND_PROJECT_NAME) # in main branch delete_pipeline_schedules_from_project(GROUP_AND_PROJECT_NAME) another_branch = "scheduled/new-feature" gl.create_branch(GROUP_AND_PROJECT_NAME, another_branch, "main") gl.create_pipeline_schedule( GROUP_AND_PROJECT_NAME, "Existing schedule", "main", "0 * * * *", {"active": "true"}, ) gl.create_pipeline_schedule( GROUP_AND_PROJECT_NAME, "Existing schedule with vars", "main", "30 * * * *" ) gl.create_pipeline_schedule( GROUP_AND_PROJECT_NAME, "Existing schedule to replace", "main", "30 1 * * *" ) gl.create_pipeline_schedule( GROUP_AND_PROJECT_NAME, "Existing schedule to replace", another_branch, "30 2 * * *", ) redundant_schedule = gl.create_pipeline_schedule( GROUP_AND_PROJECT_NAME, "Redundant schedule", "main", "0 * * * *" ) gl.create_pipeline_schedule_variable( GROUP_AND_PROJECT_NAME, redundant_schedule["id"], "test_variable", "test_value" ) def fin(): # delete all created resources delete_pipeline_schedules_from_project(GROUP_AND_PROJECT_NAME) gl.delete_branch(GROUP_AND_PROJECT_NAME, another_branch) gl.delete_project(GROUP_AND_PROJECT_NAME) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_readme_in_project(GROUP_AND_PROJECT_NAME) # in master branch branches_to_create = [ 'protected_branch1', 'protected_branch2', 'protected_branch3', 'regular_branch1', 'regular_branch2' ] for branch in branches_to_create: gl.create_branch(GROUP_AND_PROJECT_NAME, branch, 'master') def fin(): # delete all created branches for branch_to_delete in branches_to_create: gl.delete_branch(GROUP_AND_PROJECT_NAME, branch_to_delete) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_users_in_project(USER_BASE_NAME, 4, GROUP_AND_PROJECT_NAME) create_group(GROUP_WITH_USER1_AND_USER2) add_users_to_group(GROUP_WITH_USER1_AND_USER2, ['merge_requests_user1', 'merge_requests_user2']) create_group(GROUP_WITH_USER4) add_users_to_group(GROUP_WITH_USER4, ['merge_requests_user4']) gl = get_gitlab() def fin(): # the only thing needed to clean up after below tests is disabling merge requests for the project # completely - this should reset project's MR approvers and approver groups lists gl.put_project_settings(GROUP_AND_PROJECT_NAME, {'merge_requests_access_level': 'disabled'}) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_users(USER_BASE_NAME, 4) add_users_to_group(GROUP_NAME, ['root']) remove_users_from_group(GROUP_NAME, [ 'group_member_user1', 'group_member_user2', 'group_member_user3', 'group_member_user4' ]) def fin(): # same at the end add_users_to_group(GROUP_NAME, ['root'], OWNER_ACCESS) remove_users_from_group(GROUP_NAME, [ 'group_member_user1', 'group_member_user2', 'group_member_user3', 'group_member_user4' ]) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(request): gl = get_gitlab() create_group(GROUP_NAME) create_project_in_group(GROUP_NAME, PROJECT_NAME) create_readme_in_project(GROUP_AND_PROJECT_NAME) # in master branch branches = [ "protect_branch_but_allow_all", "protect_branch_with_code_owner_approval_required", "protect_branch_and_disallow_all", "protect_branch_and_allow_merges", "protect_branch_and_allow_pushes", "protect_branch_and_allow_merges_access_levels", "protect_branch_and_allow_pushes_access_levels", "protect_branch", ] for branch in branches: gl.create_branch(GROUP_AND_PROJECT_NAME, branch, "master") # create_users(USER_BASE_NAME, 1) # add_users_to_group(GROUP_NAME, ["branches_user1"]) # create_file_in_project( # GROUP_AND_PROJECT_NAME, # "protect_branch_with_code_owner_approval_required", # "CODEOWNERS", # "README.md @branches_user1", # ) def fin(): # delete all created branches for branch_to_delete in branches: gl.delete_branch(GROUP_AND_PROJECT_NAME, branch_to_delete) request.addfinalizer(fin) return gl # provide fixture value
def gitlab(): gl = get_gitlab() yield gl # provide fixture value