- 启用 Debian API
- 启用 Debian 群组 API
- 上传包文件
- 下载包
- 路由前缀
- 下载发行版发布文件
- 下载签名发行版发布文件
- 下载发布文件签名
- 下载软件包索引
- 下载 Debian 安装包索引
- 下载源包索引
Debian API
- Debian API 引入于极狐GitLab 13.5。
- Debian 群组 API 引入于极狐GitLab 14.2。
- 部署在功能标志后,默认禁用。
本文档是 Debian 的 API 文档。
Debian 镜像库不符合 FIPS,并且在启用 FIPS 模式时被禁用。
这些端点都将返回
404 Not Found
。
这些端点不遵守标准的 API 身份验证方法。
启用 Debian API
Debian API 在默认禁用的功能标志后。 有权访问极狐GitLab Rails 控制台的极狐GitLab 管理员可以启用。
启用 Debian 群组 API
Debian 群组 API 在默认禁用的功能标志后。 有权访问极狐GitLab Rails 控制台的极狐GitLab 管理员可以启用。
上传包文件
引入于极狐GitLab 14.0。
上传 Debian 包文件:
PUT projects/:id/packages/debian/:file_name
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id
| string | yes | 项目的 ID 或完整路径 |
file_name
| string | yes | Debian 包文件的名称 |
curl --request PUT \
--user <username>:<personal_access_token> \
--upload-file path/to/mypkg.deb \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/mypkg.deb"
下载包
引入于极狐GitLab 14.2。
下载包文件。
GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代号或套件 |
letter
| string | yes | Debian 分类(首字母或库首字母) |
package_name
| string | yes | 源包的名称 |
package_version
| string | yes | 源包的版本 |
file_name
| string | yes | 文件名称 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb"
将输出写入到文件中:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" \
--remote-name
将使用当前目录中的远程文件名写入下载的文件。
路由前缀
所描述的其余端点是两组相同的路由,每个路由都在不同的范围内发出请求:
- 使用项目级前缀在单个项目范围内提出请求。
- 使用群组级前缀在单个群组的范围内发出请求。
本文档中的示例均使用项目级前缀。
项目级
/projects/:id/packages/debian`
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id
| string | yes | 项目 ID 或完整项目路径 |
群组级
/groups/:id/-/packages/debian`
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id
| string | yes | 项目 ID 或完整群组路径 |
下载发行版发布文件
引入于极狐GitLab 14.1。
下载 Debian 发行版文件。
GET <route-prefix>/dists/*distribution/Release
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代号或套件 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"
将输出写入到文件中:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \
--remote-name
将使用当前目录中的远程文件名写入下载的文件。
下载签名发行版发布文件
引入于极狐GitLab 14.1。
下载签名 Debian 发行版文件。
GET <route-prefix>/dists/*distribution/InRelease
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代号或套件 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"
将输出写入到文件:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease" \
--remote-name
将使用当前目录中的远程文件名写入下载的文件。
下载发布文件签名
引入于极狐GitLab 14.2。
下载 Debian 发布文件签名。
GET <route-prefix>/dists/*distribution/Release.gpg
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代号或套件 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg"
将输出写入文件:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg" \
--remote-name
将使用当前目录中的远程文件名写入下载的文件。
下载软件包索引
引入于极狐GitLab 14.2。
下载软件包索引。
GET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代号或套件 |
component
| string | yes | 发行版组件名称 |
architecture
| string | yes | 发行版架构类型 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages"
将输出写入文件中:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages" \
--remote-name
将使用当前目录中的远端文件名写入下载的文件中。
下载 Debian 安装包索引
引入于极狐GitLab 15.4。
下载 Debian 安装包索引。
GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代码名称或套件 |
component
| string | yes | 发行版组件名称 |
architecture
| string | yes | 发行版架构类型 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages"
将输出写入文件:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages" \
--remote-name
将使用当前目录中的远端文件名写入下载的文件中。
下载源包索引
引入于极狐GitLab 15.4。
下载源包索引。
GET <route-prefix>/dists/*distribution/:component/source/Sources
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
distribution
| string | yes | Debian 发行版的代码名称或套件 |
component
| string | yes | 发行版组件名称 |
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources"
将输出写入文件:
curl --header "Private-Token: <personal_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources" \
--remote-name
将使用当前目录中的远端文件名写入下载的文件中。