From a1d1913dcc2c73a961921213c9cfe8fc2cddbdae Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 14 May 2020 20:29:11 +0100 Subject: GitlabDownstream: Create repositories with most optional features disabled It generally doesn't make sense for a pure mirror to have issues, merge requests, CI, a wiki, snippets, GitLab Pages, container images, or LFS. Disable all of these. Closes #6. --- lorrycontroller/gitlab.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'lorrycontroller') diff --git a/lorrycontroller/gitlab.py b/lorrycontroller/gitlab.py index eda9c9d..759cdb0 100644 --- a/lorrycontroller/gitlab.py +++ b/lorrycontroller/gitlab.py @@ -113,15 +113,27 @@ class GitlabDownstream(hosts.DownstreamHost): group = self.gl.groups.create(data) parent_group = group - project = { - 'name': path_comps[-1], - 'visibility': self._visibility, - 'merge_requests_enabled': False, - 'namespace_id': group.id, - 'default_branch': metadata.get('head'), - 'description': metadata.get('description'), + proj_create = { + 'name': path_comps[-1], + 'visibility': self._visibility, + 'namespace_id': group.id, + 'default_branch': metadata.get('head'), + 'description': metadata.get('description'), + 'pages_access_level': 'disabled', + 'container_registry_enabled': False, + 'autoclose_referenced_issues': False, + 'lfs_enabled': False, + 'auto_devops_enabled': False, } - self.gl.projects.create(project) + project = self.gl.projects.create(proj_create) + + # Disabling these during creation doesn't work (as of GitLab + # 12.10.1) so do it immediately after + for attr_name in ['issues_access_level', 'merge_requests_access_level', + 'builds_access_level', 'wiki_access_level', + 'snippets_access_level']: + setattr(project, attr_name, 'disabled') + project.save() logging.info('Created %s project in local GitLab.', repo_path) -- cgit v1.2.1