贡献内置项目模板
GitLab 提供了一些 内置项目模板 ,您可以在创建新项目时使用。
内置模板来源于以下组:
前置条件:
- 您必须有一个可用的 GitLab Development Kit (GDK) 环境。
特别是 PostgreSQL、Praefect 和
sshd必须正常工作。 wget应该已安装。
添加新的内置项目模板
如果您想贡献一个新的内置项目模板并随 GitLab 一起分发,需要遵循几个步骤。
创建项目
- 在您选择的命名空间中创建一个新的公开项目,包含您想要贡献的项目内容。您可以查看一个工作示例。
- 项目应避免任何不必要的资源或依赖。
- 当项目准备好进行审查时,创建一个新 issue,并附上您项目的链接。
- 在您的 issue 中,
@提及 Create:Source Code 组 的相关后端工程经理和产品经理。
- 在您的 issue 中,
在 gitlab-svgs 中添加 logo
所有模板都从 gitlab-svgs 库中获取图标,因此如果您添加的模板图标不存在,您必须提交一个。
请参阅如何添加第三方 logo。
当 logo 添加到 main 分支后,机器人 会获取新版本并在 gitlab-org/gitlab 中创建一个 MR。现在您可以进入下一步。
添加模板详情
GitLab 中有两种类型的内置模板:
- 标准模板:在所有 GitLab 版本中都可用。
- 企业模板:仅在 GitLab Premium 和 Ultimate 中可用。
要使项目模板在创建新项目时可用,您必须遵循供应商流程来创建一个可用的模板。
标准模板
请参阅合并请求 25318 获取示例。
要贡献一个标准模板:
-
使用以下方案在
lib/gitlab/project_template.rb的localized_templates_table方法中添加模板详情:ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'), -
在
app/assets/javascripts/projects/default_project_templates.js中添加模板详情。 -
将模板名称添加到
spec/support/helpers/project_template_test_helper.rb。
企业模板
请参阅合并请求 28187 获取示例。
要贡献一个企业模板:
-
使用以下方案在
ee/lib/ee/gitlab/project_template.rb的localized_ee_templates_table方法中添加模板详情:ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'), -
在
ee/spec/lib/gitlab/project_template_spec.rb的let(:enterprise_templates)列表中添加模板名称。 -
在
ee/app/assets/javascripts/projects/default_project_templates.js中添加模板详情。
填充模板详情
-
启动 GDK:
gdk start -
在
gitlab项目中运行以下命令,其中<template_name>是您在gitlab/project_template.rb中给模板的名称:bin/rake "gitlab:update_project_templates[<template_name>]" -
在
gitlab项目中重新生成本地化文件并提交新的.pot文件:bin/rake gettext:regenerate -
在提交消息中添加变更日志条目(例如,
Changelog: added)。有关更多信息,请参阅变更日志条目。
更新现有的内置项目模板
要贡献更改:
-
在相关项目中打开一个合并请求,并在准备好进行审查时留下以下评论:
@gitlab-org/manage/import/backend this is a contribution to update the project template and is ready for review! @gitlab-bot ready -
如果您的合并请求被接受:
-
或者 打开一个 issue 请求更新。
-
或者更新供应商模板并打开合并请求:
bin/rake "gitlab:update_project_templates[<template_name>]"
-
使用 GitLab Development Kit 测试您的内置项目
使用 GitLab Development Kit 测试您的内置项目:
-
启动 GDK:
gdk start -
运行以下 Rake 任务,其中
<template_name>是lib/gitlab/project_template.rb中模板的名称:bin/rake "gitlab:update_project_templates[<template_name>]" -
在浏览器中访问 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该脚本输出与默认分支的文件更改差异,并验证模板仓库是否与源模板项目匹配。