极狐 GitLab

项目模板 API

Tier: 基础版,专业版,旗舰版

Offering: JihuLab.com,私有化部署

使用此 API 检索这些端点的项目特定版本:

它废弃了这些端点,这些端点计划在 API 第 5 版中移除。

除了整个实例通用的模板外,还可以从这个 API 端点获取项目特定的模板。

还支持群组文件模板

列出特定类型的所有模板#

列出项目指定类型的所有模板。

plaintext
GET /projects/:id/templates/:type

支持的属性:

属性类型必需描述
id整数或字符串项目的 ID 或 URL 编码路径
type字符串模板的类型。接受的值:dockerfilesgitignoresgitlab_ci_ymlslicensesissuesmerge_requests

如果成功,返回 200 OK 以及以下响应属性:

属性类型描述
key字符串模板的唯一标识符。
name字符串模板的人类可读名称。

示例请求:

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/1/templates/licenses"

示例响应(许可证):

json
1[ 2 { 3 "key": "epl-1.0", 4 "name": "Eclipse 公共许可证 1.0" 5 }, 6 { 7 "key": "lgpl-3.0", 8 "name": "GNU 宽通用公共许可证 v3.0" 9 }, 10 { 11 "key": "unlicense", 12 "name": "Unlicense 许可证" 13 }, 14 { 15 "key": "agpl-3.0", 16 "name": "GNU Affero 通用公共许可证 v3.0" 17 }, 18 { 19 "key": "gpl-3.0", 20 "name": "GNU 通用公共许可证 v3.0" 21 }, 22 { 23 "key": "bsd-3-clause", 24 "name": "BSD 3 条款“新”或“修订”许可证" 25 }, 26 { 27 "key": "lgpl-2.1", 28 "name": "GNU 宽通用公共许可证 v2.1" 29 }, 30 { 31 "key": "mit", 32 "name": "MIT 许可证" 33 }, 34 { 35 "key": "apache-2.0", 36 "name": "Apache 许可证 2.0" 37 }, 38 { 39 "key": "bsd-2-clause", 40 "name": "BSD 2 条款“简化”许可证" 41 }, 42 { 43 "key": "mpl-2.0", 44 "name": "Mozilla 公共许可证 2.0" 45 }, 46 { 47 "key": "gpl-2.0", 48 "name": "GNU 通用公共许可证 v2.0" 49 } 50]

检索特定类型的模板#

检索项目指定类型的一个模板。

plaintext
GET /projects/:id/templates/:type/:name

支持的属性:

属性类型必需描述
id整数或字符串项目的 ID 或 URL 编码路径
name字符串模板的键,从集合端点获取。
type字符串模板的类型。以下之一:dockerfilesgitignoresgitlab_ci_ymlslicensesissuesmerge_requests
fullname字符串用于在模板中展开占位符的版权持有者的全名。仅影响许可证。
project字符串用于在模板中展开占位符的项目名称。仅影响许可证。
source_template_project_id整数存储给定模板的项目 ID。当不同项目中有多个同名模板时很有帮助。如果多个模板同名,且未指定 source_template_project_id,则返回最近祖先的匹配项。

如果成功,返回 200 OK 以及以下响应属性:

属性类型描述
conditions数组许可证条件数组。仅适用于许可证。
content字符串模板内容。
description字符串许可证描述。仅适用于许可证。
html_url字符串许可证信息页面的 URL。仅适用于许可证。
key字符串模板的唯一标识符。仅适用于许可证。
limitations数组许可证限制数组。仅适用于许可证。
name字符串模板的人类可读名称。
nickname字符串许可证的常见别名。仅适用于许可证。
permissions数组许可证许可数组。仅适用于许可证。
popular布尔值如果为 true,表示这是一个流行的许可证。仅适用于许可证。
source_url字符串许可证源 URL。仅适用于许可证。

示例请求:

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/1/templates/dockerfiles/Binary"

示例响应(Dockerfile):

json
{ "name": "Binary", "content": "# 这是一个模板文件,可能需要编辑后才能在你的项目中使用。\n# 此 Dockerfile 将一个已编译的二进制文件安装到一个裸系统中。\n# 你必须将编译好的二进制文件提交到版本控制(不推荐)\n# 或者先作为 CI/CD 流水线的一部分构建该二进制文件。\n\nFROM buildpack-deps:buster\n\nWORKDIR /usr/local/bin\n\n# 将 `app` 更改为你的二进制文件的名称\nAdd app .\nCMD [\"./app\"]\n" }

示例请求:

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/1/templates/licenses/mit"

示例响应(许可证):

json
1{ 2 "key": "mit", 3 "name": "MIT 许可证", 4 "nickname": null, 5 "popular": true, 6 "html_url": "http://choosealicense.com/licenses/mit/", 7 "source_url": "https://opensource.org/licenses/MIT", 8 "description": "一个简短且宽松的许可证,仅要求保留版权和许可声明。许可的作品、修改和衍生作品可以在不同条款下分发,无需提供源代码。", 9 "conditions": [ 10 "包含版权说明" 11 ], 12 "permissions": [ 13 "商业用途", 14 "修改", 15 "分发", 16 "私人使用" 17 ], 18 "limitations": [ 19 "责任", 20 "保证" 21 ], 22 "content": "MIT 许可证\n\n版权所有 (c) 2018 [全名]\n\n特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许接受本软件的人这样做,但须满足以下条件:\n\n上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。\n\n本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他行为中,由软件或软件的使用或其他交易引起、产生或与之相关。\n" 23}