Skip to content

Instance and group project templates

Project templates are a useful way to get start projects quickly, skipping the need for creating lots of configuration files and boilerplate. This is particularly useful if for creating new micro-services quickly in a common style. We should allow organizations to manage their own project templates for instances and groups.

Two of the major requests to enhance Project Templates are:

  • add custom templates
  • disable templates

I think they can be addressed at the same time with the following approach: add a way to manage existing templates (add/remove), and make vendored templates the same as custom templates, but already there.

Here are some covered use cases:

  • make no changes to default installation (you have vendored templates only)
  • add your own templates (and you have both vendored and custom)
  • add your own templates and remove vendored ones (you have only what you need)
  • just remove vendored ones (same effect as disable templates)

Proposal

  • Admin may enable/disable vendor project templates
  • Admin may select a group that contains the instance projects templates
    • Every project in this group will be available as project template when creating a new project
  • Group master can select a sub group that contains project templates
  • Users when creating a new project will see group templates from every group they have permissions to create a new project in, instance templates and vendor templates
Out of date mockups
Enable/disable vendor templates Use project as custom templates
20171016_screenshot-1 20171016_screenshot-2
Previous proposal Add the ability to manage templates (add/remove) at instance level, and make it easy for admins to create their own templates.

We need at least these procedures, even just from the command line:

  • add/remove templates from the instance
  • create a project template starting from an existing project

Using what we use to create vendored templates should be a good start, then we can create a friendly interface in the UI.

Links / references

Edited by James Ramsay (ex-GitLab)