Help us learn about your current experience with the documentation. Take the survey.

组的自定义项目模板

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

当您创建项目时,可以从模板列表中选择。 这些模板(如 GitLab Pages 或 Ruby 相关的模板)会将模板中包含的文件副本填充到新项目中。这些信息与 GitLab 项目导入/导出使用的信息相同,可以帮助您更快地启动新项目。

您可以自定义可用模板列表,以便您组中的所有项目都使用相同的列表。为此,您需要将要用作模板的项目添加到一个子组中。

您还可以配置实例的自定义模板

为组设置项目模板

先决条件:

  • 您必须拥有该组的 Owner 角色。

要在组中设置自定义项目模板,请将包含项目模板的子组添加到组设置中:

  1. 在组中,创建一个子组
  2. 将项目添加到新子组作为您的模板。
  3. 在组的左侧菜单中,选择 设置 > 常规
  4. 展开 自定义项目模板 并选择该子组。

下次组成员创建项目时,他们可以选择子组中的任何项目。

嵌套子组中的项目不包含在模板列表中。

哪些项目可用作模板

  • 如果除了 GitLab Pages安全与合规之外,所有项目功能都设置为 Everyone With Access,则任何经过身份验证的用户都可以选择公共和内部项目作为新项目的模板。
  • 只有项目的成员用户才能选择私有项目。

存在一个已知问题继承成员无法选择项目模板,除非启用了 project_templates_without_min_access 功能标志。 此功能标志在 GitLab.com 上已禁用,因此用户必须被授予模板项目的直接成员资格。

示例结构

以下是 myorganization 的项目模板示例组和项目结构:

# GitLab 实例和组
gitlab.com/myorganization/
    # 子组
    internal
    tools
    # 处理项目模板的子组
    websites
        templates
            # 项目模板
            client-site-django
            client-site-gatsby
            client-site-html

        # 其他项目
        client-site-a
        client-site-b
        client-site-c
        ...

从模板中复制什么

当您从模板创建项目时,所有可导出的项目项目都会从模板复制到新项目中。这些项目包括:

  • 仓库分支、提交和标签。
  • 项目上传。
  • 项目配置。
  • 问题(Issues)和合并请求(Merge Requests)及其评论和其他元数据。
  • 标签、里程碑、代码片段(Snippets)和发布(Releases)。
  • CI/CD 管道配置。

有关复制的完整列表,请参阅导出的项目项目

权限和敏感数据

复制行为可能因您的权限而异:

  • 如果您拥有包含实例自定义模板的项目 Owner 角色,或者您是 GitLab 管理员: 所有项目设置(包括项目成员)都会被复制到新项目中。
  • 如果您没有项目的 Owner 角色,或者您不是 GitLab 管理员: 项目部署密钥和项目 Webhook 不会被复制,因为它们包含敏感数据。

模板中的用户分配

当您使用其他用户创建的模板时,模板中分配给任何用户的项目都会重新分配给您。在配置受保护分支和标签等安全功能时,理解这种重新分配很重要。例如,如果模板包含受保护的分支:

  • 在模板中,该分支允许模板所有者合并到默认分支。
  • 在从模板创建的项目中,该分支允许您合并到默认分支。

故障排除

创建项目时管理员看不到组的自定义项目模板

组的自定义项目模板仅对组成员可用。如果您使用的管理员账户不是某个组的成员,您将无法访问这些模板。