Group Level Description Templates for Issues and Merge Requests
Problem to solve
There is no way to easily maintain consistency of issue and merge request templates across many projects. This leads to wasted time and effort.
Job Story
When I'm updating a description template, I need to make the updates across all projects where the template is being used, so that consistency and standards can be maintained.
It is highly inefficient to require users to make an update in every single project that uses a given issue or merge request template.
Intended users
- Parker (Product Manager)
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
Further details
Proposal
Group level issue and merge request templates.
- Specify which project within a group serves as the canonical source of templates across all projects and subgroups within the group. Ideally, extend File Templates to support Description Templates.
- The specified repo is inherited from the instance to groups.
- The specified repo is inherited from groups to subgroups.
- Projects look to their nearest parent group to determine which repository to get their templates from.
UX
There is no net-new UX here. This feature will leverage the File Templates UI.
- Within a given template, add the ability to set a
group: true
or similar type boolean config. - All templates that are
true
would bubble up to the group level. - Provide a list of these on the group level somewhere so that it's easier to track down the template source.
Pros:
- Pretty flexible in that various projects can all bubble up different group level templates.
- No need to "configure" anything at the group level.
Cons:
- Same as Option A
Option C - Templates Interface
Add interface for managing description templates on the group level.
The interface would support:
- Adding, editing, removing description templates.
- Changelog per template
Pros:
- First class user experience.
- Provides a good foundation for future template improvements.
Cons:
- More expensive to build and will take longer.
- Requires creating new API endpoints/functionality.
MVC Breakdown
- Add support for Description templates in the File Templates repo and ensure proper inheritance for the selected repo across instance > group > subgroup > project.
- Add support for Epic description templates the same way Issue/MR description templates work.
Permissions and Security
- They should mirror the same permissions for File Templates.
Documentation
- Yes
Testing
- Yes
What does success look like, and how can we measure that?
Success Metrics
- People get more time back by having a centralized location to manage templates across subgroups and projects (Difficult To Measure).
- Count of group level description templates created.
- Count of issues being created from group level templates.
Acceptance Criteria
- The same repo that is set for File Templates can also store description templates
- The selected repo is inherited across instance > group > subgroup > project.
- Description templates successfully populate from the specified file templates repo.
What is the type of buyer?
- According to our pricing model, solving for this use case most likely aligns with the Director or above, putting this into GitLab Premium
Links / references
/label feature
Original Description:
That said, could we perhaps have the ability to set up issue and merge request description templates per group? Using a common template for all projects in a group would create beautiful consistency, especially in Java environments where an application is made up of many modules, each of which are stored in their own repository.
Description Templates Inheritance Solution Validation
We have the File Templates
feature, that can be setup at group or instance level and be inherited by any project within given instance or group.
We also have issue and merge request description templates that currently can only be applied at the level of the project that defines these templates in its repository.
-
Example of file templates dropdown with templates repository defined at multiple group levels: file-templates-720
-
Example of description templates dropdown within same project: issue-templates-720
Although these are described as different features in our docs, both are basically templates, and more than that both sources of the templates leave within the project repository, with only difference that each lives within its own folder(s).
I think it would make sense to combine file and description templates setting at the group level by reusing already existing file templates setting to define from which (single) templates repository should all the projects within the group pull both file and description templates. If the group hierarchy has multiple subgroups each of the subgroups, would be able to define its own templates repository which would add to the list to already existing templates.
So then the description templates dropdown would look similar to file templates, but listing the issue or merge request templates instead: issue-templates2-720
Tasks
-
backend #293854 (closed) -
MR Merged(!46222 (merged))reverted due to a last minute unaccounted incompatibility with Service Desk templates - backend #293904
-
frontend #293905 (closed) -
MR Merged(!46222 (merged))reverted due to a last minute unaccounted incompatibility with Service Desk templates - frontend #293906
- documentation #293907 (closed)
Release notes
Instead of manually updating the same description template across dozens of projects, you can now centrally manage and source your templates from a single repository. We've extended the instance and group file templates to include issue and merge request description templates. When you add your .gitlab
directory to your file templates repository, description templates will be available to all projects that belong to the instance or group. Each group or subgroup can also set an additional templates repository, which will enable templates from multiple file template repositories to cascade down to your subgroups and projects.