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

贡献内置项目模板

GitLab 提供了一些 内置项目模板 ,您可以在创建新项目时使用。

内置模板来源于以下组:

前置条件:

添加新的内置项目模板

如果您想贡献一个新的内置项目模板并随 GitLab 一起分发,需要遵循几个步骤。

创建项目

  1. 在您选择的命名空间中创建一个新的公开项目,包含您想要贡献的项目内容。您可以查看一个工作示例
    • 项目应避免任何不必要的资源或依赖。
  2. 当项目准备好进行审查时,创建一个新 issue,并附上您项目的链接。

所有模板都从 gitlab-svgs 库中获取图标,因此如果您添加的模板图标不存在,您必须提交一个。

请参阅如何添加第三方 logo

当 logo 添加到 main 分支后,机器人 会获取新版本并在 gitlab-org/gitlab 中创建一个 MR。现在您可以进入下一步。

添加模板详情

GitLab 中有两种类型的内置模板:

  • 标准模板:在所有 GitLab 版本中都可用。
  • 企业模板:仅在 GitLab Premium 和 Ultimate 中可用。

要使项目模板在创建新项目时可用,您必须遵循供应商流程来创建一个可用的模板。

标准模板

请参阅合并请求 25318 获取示例。

要贡献一个标准模板:

  1. 使用以下方案在 lib/gitlab/project_template.rblocalized_templates_table 方法中添加模板详情:

    ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
  2. app/assets/javascripts/projects/default_project_templates.js 中添加模板详情。

  3. 将模板名称添加到 spec/support/helpers/project_template_test_helper.rb

企业模板

请参阅合并请求 28187 获取示例。

要贡献一个企业模板:

  1. 使用以下方案在 ee/lib/ee/gitlab/project_template.rblocalized_ee_templates_table 方法中添加模板详情:

    ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
  2. ee/spec/lib/gitlab/project_template_spec.rblet(:enterprise_templates) 列表中添加模板名称。

  3. ee/app/assets/javascripts/projects/default_project_templates.js 中添加模板详情。

填充模板详情

  1. 启动 GDK:

    gdk start
  2. gitlab 项目中运行以下命令,其中 <template_name> 是您在 gitlab/project_template.rb 中给模板的名称:

    bin/rake "gitlab:update_project_templates[<template_name>]"
  3. gitlab 项目中重新生成本地化文件并提交新的 .pot 文件:

    bin/rake gettext:regenerate
  4. 在提交消息中添加变更日志条目(例如,Changelog: added)。有关更多信息,请参阅变更日志条目

更新现有的内置项目模板

要贡献更改:

  1. 在相关项目中打开一个合并请求,并在准备好进行审查时留下以下评论:

    @gitlab-org/manage/import/backend this is a contribution to update the project
    template and is ready for review!
    
    @gitlab-bot ready
  2. 如果您的合并请求被接受:

    • 或者 打开一个 issue 请求更新。

    • 或者更新供应商模板并打开合并请求:

      bin/rake "gitlab:update_project_templates[<template_name>]"

使用 GitLab Development Kit 测试您的内置项目

使用 GitLab Development Kit 测试您的内置项目:

  1. 启动 GDK:

    gdk start
  2. 运行以下 Rake 任务,其中 <template_name>lib/gitlab/project_template.rb 中模板的名称:

    bin/rake "gitlab:update_project_templates[<template_name>]"
  3. 在浏览器中访问 GitLab,通过选择项目模板来创建一个新项目。

对于 GitLab 团队成员

确保所有合并请求在合并前都经过安全团队审查。

更新所有模板

从模板启动项目需要导出该项目。在最新的默认分支上运行:

gdk start # postgres, praefect, and sshd are required
bin/rake gitlab:update_project_templates
git checkout -b update-project-templates
git add vendor/project_templates
git commit
git push -u origin update-project-templates

现在创建一个合并请求并分配给安全团队成员进行合并。

更新单个模板

要只更新单个模板而不是所有模板,请在方括号中指定模板名称。例如,对于 jekyll 模板,运行:

bin/rake "gitlab:update_project_templates[jekyll]"

审查模板合并请求

要审查更改一个或多个供应商项目模板的合并请求,运行 check-template-changes 脚本:

scripts/check-template-changes vendor/project_templates/<template_name>.tar.gz

该脚本输出与默认分支的文件更改差异,并验证模板仓库是否与源模板项目匹配。