Instance-level project templates
Problem to solve
Especially in larger projects, setting up new GitLab projects from scratch can be a repetitive task. Often, there is a lot of configuration files and boilerplate required.
We already have project templates, but these are GitLab-owned and cannot be customized (refered to as "vendor templates"). A solution to set up project templates based on actual GitLab projects is needed.
Further details
Relevant use cases for project templates on instance-level:
- Unchanged, default templates only (you have vendored templates only)
- As an admin, add your own templates based on a selected group (have both vendored and custom)
- Add additional custom templates
Disable vendored templates (same effect as disable templates)
Proposal
Let's add the option for Administrators to select one group in the GitLab instance that holds GitLab projects that are offered as project templates, when creating a new project.
- As an Admin I can select an (one) existing group whose projects should serve as instance-wide project templates
- Every project within this group will be available as project template when creating a new project
-
A new default_gitlab
group contains the packaged GitLab-delivered project templates- Move into separate issue
- As a users I can choose from built-in vendor templates and custom instance-level project templates (if defined) when creating a new project
- Template types are separated via individual tabs
Designs
Changing template source
Admin area → Settings → Custom project templates
Create project from a template
Built-in | Custom |
---|---|
![]() |
![]() |
Implementation details
- Projects are displayed as templates based on the default branch
What does success look like, and how can we measure that?
- If a template group is defined, projects inside this group are made available as project templates when creating a new project.
Links / references
- gitlab-ce#32420
- gitlab-ce#36886