Service templates

Using a service template, GitLab administrators can:

  • Provide default values for configuring integrations when creating new projects.
  • Bulk configure all existing projects in one step.

When you enable a service template:

  • The defaults are applied to all existing projects that either:
    • Don’t already have the integration enabled.
    • Don’t have custom values stored for already enabled integrations.
  • Values are populated on each project’s configuration page for the applicable integration.
  • Settings are stored at the project level.

If you disable the template:

  • GitLab default values again become the default values for integrations on new projects.
  • Projects previously configured using the template will continue to use those settings.

If you change the template, the revised values are applied to new projects. This feature does not provide central administration of integration settings.

Central administration of project integrations

A new set of features is being introduced in GitLab to provide more control over how integrations are configured at the instance, group, and project level.

Read more about setting up project integration management (introduced in GitLab 13.3) and our plans for managing integrations.

Enable a service template

Navigate to the Admin Area > Service Templates and choose the service template you wish to create.

Recommendation:

  • Test the settings on some projects individually before enabling a template.
  • Copy the working settings from a project to the template.

There is no “Test settings” option when enabling templates. If the settings do not work, these incorrect settings will be applied to all existing projects that do not already have the integration configured. Fixing the integration then needs to be done project-by-project.

Service for external issue trackers

The following image shows an example service template for Redmine.

Redmine service template

For each project, you will still need to configure the issue tracking URLs by replacing :issues_tracker_id in the above screenshot with the ID used by your external issue tracker.