Debian API
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
History
- 部署在功能标志后,默认禁用。
这是 Debian 的 API 文档。
关于如何从极狐GitLab软件包注册表上传和安装 Debian 软件包的说明,请参阅 Debian 注册表文档。
启用 Debian API
Debian API 位于默认禁用的特性标志之后。具有极狐GitLab Rails 控制台访问权限的极狐GitLab管理员 可以选择启用它。要启用它,请按照启用 Debian API中的说明进行操作。
启用 Debian 群组 API
Debian 群组 API 位于默认禁用的特性标志之后。具有极狐GitLab Rails 控制台访问权限的极狐GitLab管理员 可以选择启用它。要启用它,请按照启用 Debian 群组 API中的说明进行操作。
认证到 Debian 软件包存储库
请参阅 Authenticate to the Debian Package Repositories。
上传软件包文件
History
- 使用显式分发和组件上传引入于极狐GitLab 15.9。
上传一个 Debian 软件包文件:
plaintextPUT projects/:id/packages/debian/:file_name
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| id | string | 是 | 项目的 ID 或完整路径。 |
| file_name | string | 是 | Debian 软件包文件的名称。 |
| distribution | string | 否 | 分发代号或套件。用于显式分发和组件的上传。 |
| component | string | 否 | 软件包文件组件。用于显式分发和组件的上传。 |
shellcurl --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"
使用显式分发和组件上传:
shellcurl --request PUT \ --user "<username>:<personal_access_token>" \ --upload-file /path/to/myother.deb \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/myother.deb?distribution=sid&component=main"
下载软件包
下载一个软件包文件。
plaintextGET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| letter | string | 是 | Debian 分类(首字母或 lib 首字母)。 |
| package_name | string | 是 | 源软件包名称。 |
| package_version | string | 是 | 源软件包版本。 |
| file_name | string | 是 | 文件名。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
路由前缀
描述的其余端点是两组相同的路由,每组在不同的范围内发出请求:
- 使用项目级别前缀在单个项目的范围内发出请求。
- 使用群组级别前缀在单个群组的范围内发出请求。
本文档中的示例均使用项目级别前缀。
项目级别
plaintext/projects/:id/packages/debian
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| id | string | 是 | 项目 ID 或完整项目路径。 |
群组级别
plaintext/groups/:id/-/packages/debian
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| id | string | 是 | 项目 ID 或完整群组路径。 |
下载分发 Release 文件
下载一个 Debian 分发文件。
plaintextGET <route-prefix>/dists/*distribution/Release
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
下载签名的分发 Release 文件
下载一个签名的 Debian 分发文件。
plaintextGET <route-prefix>/dists/*distribution/InRelease
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
下载 Release 文件签名
下载一个 Debian Release 文件签名。
plaintextGET <route-prefix>/dists/*distribution/Release.gpg
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
下载软件包索引
下载软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
| architecture | string | 是 | 分发架构类型。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages"
将输出写入文件:
shellcurl --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
这会将下载的文件使用远程文件名写入当前目录。
通过哈希下载软件包索引
History
- 引入于极狐GitLab 15.4。
通过哈希下载软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/binary-:architecture/by-hash/SHA256/:file_sha256
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
| architecture | string | 是 | 分发架构类型。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
下载 Debian 安装程序软件包索引
History
- 引入于极狐GitLab 15.4。
下载 Debian 安装程序软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
| architecture | string | 是 | 分发架构类型。 |
shellcurl --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"
将输出写入文件:
shellcurl --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
这会将下载的文件使用远程文件名写入当前目录。
通过哈希下载 Debian 安装程序软件包索引
History
- 引入于极狐GitLab 15.4。
通过哈希下载 Debian 安装程序软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha256
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
| architecture | string | 是 | 分发架构类型。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
下载源软件包索引
History
- 引入于极狐GitLab 15.4。
下载源软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/source/Sources
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。
通过哈希下载源软件包索引
History
- 引入于极狐GitLab 15.4。
通过哈希下载源软件包索引。
plaintextGET <route-prefix>/dists/*distribution/:component/source/by-hash/SHA256/:file_sha256
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| distribution | string | 是 | Debian 分发的代号或套件。 |
| component | string | 是 | 分发组件名称。 |
shellcurl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"
将输出写入文件:
shellcurl --header "Private-Token: <personal_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \ --remote-name
这会将下载的文件使用远程文件名写入当前目录。