diff options
author | Ben Hutchings <ben.hutchings@codethink.co.uk> | 2020-05-14 20:29:11 +0100 |
---|---|---|
committer | Ben Hutchings <ben.hutchings@codethink.co.uk> | 2020-06-01 17:09:15 +0100 |
commit | a1d1913dcc2c73a961921213c9cfe8fc2cddbdae (patch) | |
tree | bb8135ce9a244eca833f86ea0998ce7cf8ffb282 | |
parent | 979a37fb44a8e46978daa318c4de3fdc823d2279 (diff) | |
download | lorry-controller-a1d1913dcc2c73a961921213c9cfe8fc2cddbdae.tar.gz |
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.
-rw-r--r-- | lorrycontroller/gitlab.py | 28 |
1 files changed, 20 insertions, 8 deletions
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) |