Debian API

  • Debian API 引入于极狐GitLab 13.5。
  • Debian 群组 API 引入于极狐GitLab 14.2。
  • 部署在功能标志后,默认禁用。

本文档是 Debian 的 API 文档。

caution此 API 由 Debian 相关的软件包客户端使用,例如 dputapt-get,并且通常不适合手动使用。此 API 正在开发中,由于功能有限,尚未准备好用于生产用途。
noteDebian 镜像库不符合 FIPS,并且在启用 FIPS 模式时被禁用。 这些端点都将返回 404 Not Found
note这些端点不遵守标准的 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/amd64/Packages"

将输出写入文件中:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/amd64/Packages" \
     --remote-name

将使用当前目录中的远程文件名写入下载的文件。