Help us learn about your current experience with the documentation. Take the survey.
Composer API
- Tier: 免费版, 专业版, 旗舰版
- Offering: GitLab.com, GitLab 自管版, GitLab 专属版
这是 Composer 软件包 的 API 文档。
此 API 供 Composer 软件包管理器客户端 使用,通常不建议手动调用。
有关如何从 GitLab 包注册表上传和安装 Composer 软件包的说明,请参阅 Composer 包注册表文档。
这些端点不遵循标准的 API 身份验证方法。 有关支持的标头和令牌类型的详细信息,请参阅 Composer 包注册表文档。 未记录的身份验证方法将来可能会被移除。
基础仓库请求
返回用于请求单个软件包的仓库 URL 模板:
GET group/:id/-/packages/composer/packages| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"示例响应:
{
"packages": [],
"metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json",
"provider-includes": {
"p/%hash%.json": {
"sha256": "082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
}
},
"providers-url": "/api/v4/group/1/-/packages/composer/%package%$%hash%.json"
}此端点供 Composer V1 和 V2 使用。要查看 V2 特定的响应,请包含 Composer 的 User-Agent 标头。建议使用 Composer V2 而非 V1。
curl --user <username>:<personal_access_token> \
--header "User-Agent: Composer/2" \
"https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"示例响应:
{
"packages": [],
"metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json"
}V1 软件包列表
根据 V1 provider SHA,返回仓库中的软件包列表。建议使用 Composer V2 而非 V1。
GET group/:id/-/packages/composer/p/:sha| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
sha |
string | 是 | Provider SHA,由 Composer 基础请求 提供。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"示例响应:
{
"providers": {
"my-org/my-composer-package": {
"sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
}
}
}V1 软件包元数据
返回给定软件包的版本列表和元数据。建议使用 Composer V2 而非 V1。
GET group/:id/-/packages/composer/:package_name$:sha请注意 URL 中的 $ 符号。发出请求时,您可能需要使用该符号的 URL 编码版本 %24。请参阅表格后的示例:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
package_name |
string | 是 | 软件包的名称。 |
sha |
string | 是 | 软件包的 SHA 摘要,由 V1 软件包列表 提供。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/my-org/my-composer-package%245c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"示例响应:
{
"packages": {
"my-org/my-composer-package": {
"1.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "1.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
},
"2.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "2.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
}
}
}
}V2 软件包元数据
返回给定软件包的版本列表和元数据:
GET group/:id/-/packages/composer/p2/:package_name| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
package_name |
string | 是 | 软件包的名称。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p2/my-org/my-composer-package"示例响应:
{
"packages": {
"my-org/my-composer-package": {
"1.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "1.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
},
"2.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "2.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
}
}
}
}创建软件包
从 Git 标签或分支创建 Composer 软件包:
POST projects/:id/packages/composer| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
tag |
string | 否 | 软件包目标标签的名称。 |
branch |
string | 否 | 软件包目标分支的名称。 |
curl --request POST --user <username>:<personal_access_token> \
--data tag=v1.0.0 "https://gitlab.example.com/api/v4/projects/1/packages/composer"示例响应:
{
"message": "201 Created"
}下载软件包存档
下载 Composer 软件包。此 URL 在 v1 或 v2 软件包元数据 响应中提供。请求中必须包含 .zip 文件扩展名。
GET projects/:id/packages/composer/archives/:package_name| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
string | 是 | 群组的 ID 或完整路径。 |
package_name |
string | 是 | 软件包的名称。 |
sha |
string | 是 | 所请求软件包版本的目标 SHA。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"将输出写入文件:
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab" >> package.tar.gz这会将下载的文件写入当前目录下的 package.tar.gz。