diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md index d544003536e194a8144af93695eb5ca68318c42a..41046477b905150696187bd2cc0eada520250d80 100644 --- a/doc/user/group/custom_project_templates.md +++ b/doc/user/group/custom_project_templates.md @@ -9,25 +9,35 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6861) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.6. -Custom project templates are useful for organizations that need to create many similar types of -[projects](../project/index.md). -Projects created from these templates serve as a common starting point. +[Group owners](../permissions.md#group-members-permissions) can set a subgroup to +be the source of project templates that are selectable when a new project is created +in the group. These templates can be selected when you go to **New project > Create from template** +in the group and select the **Group** tab. -## Setting up group-level project templates +Every project in the subgroup, but not nested subgroups, can be selected by members +of the group when a new project is created. -To use a custom project template for a new project: +Repository and database information that is copied over to each new project is identical to the +data exported with the [GitLab Project Import/Export](../project/settings/import_export.md). + +To set custom project templates at the instance level, see [Custom instance-level project templates](../admin_area/custom_project_templates.md). -1. [Create a `templates` subgroup](subgroups/index.md). -1. [Add repositories (projects) to that new subgroup](index.md#add-projects-to-a-group), - as your templates. -1. Edit your group's settings to look to your _templates_ subgroup for templates: +## Set up group-level project templates - 1. In the left menu, select **Settings > General**. If you don't have access to the - group's settings, you may not have sufficient privileges (for example, you may need developer - or higher permissions). - 1. Scroll to **Custom project templates** and select **Expand**. If no **Custom project templates** - section displays, make sure you've created a subgroup and added a project (repository) to it. - 1. Select the **templates** subgroup. +To set up custom project templates in a group, add the subgroup that contains the +project templates to the group settings: + +1. In the group, create a [subgroup](subgroups/index.md). +1. [Add projects to the new subgroup](index.md#add-projects-to-a-group) as your templates. +1. In the left menu for the group, go to **Settings > General**. +1. Expand **Custom project templates** and select the subgroup. + +If all enabled [project features](../project/settings/index.md#sharing-and-permissions) +(except for GitLab Pages) are set to **Everyone With Access**, then every project +template in the subgroup is available to every member of the group. + +Any projects added to the subgroup later can be selected the next time a group member +creates a new project. ### Example structure @@ -54,25 +64,6 @@ gitlab.com/acmeco/ ... ``` -### Adjust Settings - -Users can configure a GitLab group that serves as template source under a group's -**Settings > General > Custom project templates**. - -NOTE: -GitLab administrators can [set project templates for an entire GitLab instance](../admin_area/custom_project_templates.md). - -Within this section, you can configure the group where all the custom project templates are sourced. -If all enabled [project features](../project/settings/index.md#sharing-and-permissions) -(except for GitLab Pages) are set to **Everyone With Access**, then every project template directly -under the group namespace is available to every signed-in user. However, private projects are -available only if the user is a member of the project. Also note that only direct subgroups can be -set as the template source. Projects of nested subgroups of a selected template source cannot be -used. - -Repository and database information that are copied over to each new project are identical to the -data exported with the [GitLab Project Import/Export](../project/settings/import_export.md). - <!-- ## Troubleshooting Include any troubleshooting steps that you can foresee. If you know beforehand what issues diff --git a/ee/app/views/groups/_custom_project_templates_setting.html.haml b/ee/app/views/groups/_custom_project_templates_setting.html.haml index 56360f37928c258e1d1ddd9fda2df22f74ba669a..6754919f83c35e359eeec09e3057603e550fefdb 100644 --- a/ee/app/views/groups/_custom_project_templates_setting.html.haml +++ b/ee/app/views/groups/_custom_project_templates_setting.html.haml @@ -8,8 +8,7 @@ %button.btn.gl-button.js-settings-toggle{ type: 'button' } = expanded ? _('Collapse') : _('Expand') %p - = s_('GroupSettings|Select a sub-group as the custom project template source for this group.') - = link_to s_('GroupSettings|Learn more about group-level project templates.'), help_page_path('user/group/custom_project_templates') + = s_('GroupSettings|Select a subgroup to use as the source for custom project templates for this group.') .settings-content = form_for @group, html: { multipart: true, class: 'gl-show-field-errors' }, authenticity_token: true do |f| %input{ type: 'hidden', name: 'update_section', value: 'js-custom-project-templates-settings' } @@ -18,7 +17,8 @@ %fieldset .form-group = f.label :custom_project_templates_group_id, class: 'label-bold' do - = _('Custom project templates') + = _('Select subgroup') = groups_select_tag('group[custom_project_templates_group_id]', data: { groups_filter: 'subgroups', parent_id: @group.id }, selected: @group.custom_project_templates_group_id, class: 'input-clamp allowClear qa-custom-project-template-select', multiple: false) - + - link_start = '<a href="%{url}">'.html_safe % { url: help_page_path('user/group/custom_project_templates.md') } + = s_("GroupSettings|The projects in this subgroup can be selected as templates for new projects created in the group. %{link_start}Learn more.%{link_end}").html_safe % { link_start: link_start, link_end: "</a>".html_safe } = f.submit _('Save changes'), class: 'btn gl-button btn-success qa-save-changes-button' diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 19e8465e68adb1bc0d208e73fbfb5bf7e2eda7ad..ff4b9cb8795254be92ce84012285a114af63ac5c 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -15801,9 +15801,6 @@ msgstr "" msgid "GroupSettings|If the parent group's visibility is lower than the group current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility." msgstr "" -msgid "GroupSettings|Learn more about group-level project templates." -msgstr "" - msgid "GroupSettings|New runners registration token has been generated!" msgstr "" @@ -15831,7 +15828,7 @@ msgstr "" msgid "GroupSettings|Projects will be permanently deleted after a %{waiting_period}-day delay. This delay can be %{link_start}customized by an admin%{link_end} in instance settings. Inherited by subgroups." msgstr "" -msgid "GroupSettings|Select a sub-group as the custom project template source for this group." +msgid "GroupSettings|Select a subgroup to use as the source for custom project templates for this group." msgstr "" msgid "GroupSettings|The Auto DevOps pipeline runs if no alternative CI configuration file is found." @@ -15840,6 +15837,9 @@ msgstr "" msgid "GroupSettings|The default name for the initial branch of new repositories created in the group." msgstr "" +msgid "GroupSettings|The projects in this subgroup can be selected as templates for new projects created in the group. %{link_start}Learn more.%{link_end}" +msgstr "" + msgid "GroupSettings|There was a problem updating Auto DevOps pipeline: %{error_messages}." msgstr "" @@ -29437,6 +29437,9 @@ msgstr "" msgid "Select strategy activation method" msgstr "" +msgid "Select subgroup" +msgstr "" + msgid "Select subscription" msgstr ""