Custom group-level project templates
Introduced in GitLab 11.6.
When you create a project, you can choose from a list of templates. These templates, for things like GitLab Pages or Ruby, populate the new project with a copy of the files contained in the template. This information is identical to the information used by GitLab project import/export and can help you start a new project more quickly.
You can customize the list of available templates, so that all projects in your group have the same list. To do this, you populate a subgroup with the projects you want to use as templates.
You can also configure custom templates for the instance.
Set up group-level project templates
Prerequisite:
- You must have the Owner role for the group.
 
To set up custom project templates in a group, add the subgroup that contains the project templates to the group settings:
- In the group, create a subgroup.
 - Add projects to the new subgroup as your templates.
 - In the left menu for the group, select Settings > General.
 - Expand Custom project templates and select the subgroup.
 
The next time a group member creates a project, they can select any of the projects in the subgroup.
Projects in nested subgroups are not included in the template list.
Which projects are available as templates
- Public and internal projects can be selected by any authenticated user as a template for a new project, if all project features except for GitLab Pages and Security & Compliance are set to Everyone With Access.
 - Private projects can be selected only by users who are members of the projects.
 
Example structure
Here’s a sample group and project structure for project templates, for myorganization:
# GitLab instance and group
gitlab.com/myorganization/
    # Subgroups
    internal
    tools
    # Subgroup for handling project templates
    websites
        templates
            # Project templates
            client-site-django
            client-site-gatsby
            client-site-html
        # Other projects
        client-site-a
        client-site-b
        client-site-c
        ...