多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Packages API > 原文:[https://docs.gitlab.com/ee/api/packages.html](https://docs.gitlab.com/ee/api/packages.html) * [List packages](#list-packages) * [Within a project](#within-a-project) * [Within a group](#within-a-group) * [Get a project package](#get-a-project-package) * [List package files](#list-package-files) * [Delete a project package](#delete-a-project-package) # Packages API[](#packages-api-premium "Permalink") 这是[GitLab 软件包](../administration/packages/index.html)的 API 文档. ## List packages[](#list-packages "Permalink") ### Within a project[](#within-a-project "Permalink") 在 GitLab 11.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9259) . 获取项目包列表. 结果中包括所有包装类型. 在未经身份验证的情况下访问时,仅返回公共项目的软件包. ``` GET /projects/:id/packages ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 项目的 ID 或[URL 编码的路径](README.html#namespaced-path-encoding) | | `order_by` | string | no | 用作订单的字段. `created_at` (默认), `name` , `version`或`type` . | | `sort` | string | no | 顺序的方向, `asc` (默认)或`desc` (降序). | | `package_type` | string | no | 按类型过滤返回的软件包. `conan` , `maven` , `npm` , `pypi` , `composer`或`nuget` . ( *在 GitLab 12.9 中引入* ) | | `package_name` | string | no | 按名称用模糊搜索过滤项目包. ( *在 GitLab 12.9 中引入* ) | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages" ``` 响应示例: ``` [ { "id": 1, "name": "com/mycompany/my-app", "version": "1.0-SNAPSHOT", "package_type": "maven", "created_at": "2019-11-27T03:37:38.711Z" }, { "id": 2, "name": "@foo/bar", "version": "1.0.3", "package_type": "npm", "created_at": "2019-11-27T03:37:38.711Z" } ] ``` 默认情况下,由于 API 是[分页的](README.html#pagination) ,因此`GET`请求将返回 20 个结果. ### Within a group[](#within-a-group "Permalink") 在 GitLab 12.5 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18871) . 获取组级别的项目包列表. 在未经身份验证的情况下访问时,仅返回公共项目的软件包. ``` GET /groups/:id/packages ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | [群组的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `exclude_subgroups` | boolean | false | 如果参数包含为 true,则不列出子组中项目的软件包. 默认值为`false` . | | `order_by` | string | no | 用作订单的字段. `created_at` (默认), `name` , `version` , `type`或`project_path` . | | `sort` | string | no | 顺序的方向, `asc` (默认)或`desc` (降序). | | `package_type` | string | no | 按类型过滤返回的软件包. `conan` , `maven` , `npm` , `pypi` , `composer`或`nuget` . ( *在 GitLab 12.9 中引入* ) | | `package_name` | string | no | 按名称用模糊搜索过滤项目包. ( *在 GitLab 13.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30980)* ) | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true" ``` **弃用:>**的`build_info`在响应属性赞成不赞成`pipeline` . >引入了[GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040) . 响应示例: ``` [ { "id": 1, "name": "com/mycompany/my-app", "version": "1.0-SNAPSHOT", "package_type": "maven", "_links": { "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, "created_at": "2019-11-27T03:37:38.711Z", "pipeline": { "id": 123, "status": "pending", "ref": "new-pipeline", "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", "web_url": "https://example.com/foo/bar/pipelines/47", "created_at": "2016-08-11T11:28:34.085Z", "updated_at": "2016-08-11T11:32:35.169Z", "user": { "name": "Administrator", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon" } } }, { "id": 2, "name": "@foo/bar", "version": "1.0.3", "package_type": "npm", "_links": { "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, "created_at": "2019-11-27T03:37:38.711Z", "pipeline": { "id": 123, "status": "pending", "ref": "new-pipeline", "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", "web_url": "https://example.com/foo/bar/pipelines/47", "created_at": "2016-08-11T11:28:34.085Z", "updated_at": "2016-08-11T11:32:35.169Z", "user": { "name": "Administrator", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon" } } } ] ``` 默认情况下,由于 API 是[分页的](README.html#pagination) ,因此`GET`请求将返回 20 个结果. `_links`对象包含以下属性: * `web_path` :您可以在 GitLab 中访问并查看软件包详细信息的路径. * `delete_api_path` :删除程序包的 API 路径. 仅在请求用户有权执行此操作时可用. ## Get a project package[](#get-a-project-package "Permalink") 在 GitLab 11.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9667) . 获得一个项目包. ``` GET /projects/:id/packages/:package_id ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 项目的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `package_id` | integer | yes | 包裹的 ID. | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id" ``` **弃用:>**的`build_info`在响应属性赞成不赞成`pipeline` . >引入了[GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040) . Example response: ``` { "id": 1, "name": "com/mycompany/my-app", "version": "1.0-SNAPSHOT", "package_type": "maven", "_links": { "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, "created_at": "2019-11-27T03:37:38.711Z", "pipeline": { "id": 123, "status": "pending", "ref": "new-pipeline", "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", "web_url": "https://example.com/foo/bar/pipelines/47", "created_at": "2016-08-11T11:28:34.085Z", "updated_at": "2016-08-11T11:32:35.169Z", "user": { "name": "Administrator", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon" } }, "versions": [ { "id":2, "version":"2.0-SNAPSHOT", "created_at":"2020-04-28T04:42:11.573Z", "pipeline": { "id": 234, "status": "pending", "ref": "new-pipeline", "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", "web_url": "https://example.com/foo/bar/pipelines/58", "created_at": "2016-08-11T11:28:34.085Z", "updated_at": "2016-08-11T11:32:35.169Z", "user": { "name": "Administrator", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon" } } } ] } ``` `_links`对象包含以下属性: * `web_path` :您可以在 GitLab 中访问并查看软件包详细信息的路径. * `delete_api_path` :删除程序包的 API 路径. 仅在请求用户有权执行此操作时可用. ## List package files[](#list-package-files "Permalink") 在 GitLab 11.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9305) . 获取单个软件包的软件包文件列表. ``` GET /projects/:id/packages/:package_id/package_files ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 项目的 ID 或[URL 编码的路径](README.html#namespaced-path-encoding) | | `package_id` | integer | yes | 包裹的 ID. | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/4/package_files" ``` 响应示例: ``` [ { "id": 25, "package_id": 4, "created_at": "2018-11-07T15:25:52.199Z", "file_name": "my-app-1.5-20181107.152550-1.jar", "size": 2421, "file_md5": "58e6a45a629910c6ff99145a688971ac", "file_sha1": "ebd193463d3915d7e22219f52740056dfd26cbfe" }, { "id": 26, "package_id": 4, "created_at": "2018-11-07T15:25:56.776Z", "file_name": "my-app-1.5-20181107.152550-1.pom", "size": 1122, "file_md5": "d90f11d851e17c5513586b4a7e98f1b2", "file_sha1": "9608d068fe88aff85781811a42f32d97feb440b5" }, { "id": 27, "package_id": 4, "created_at": "2018-11-07T15:26:00.556Z", "file_name": "maven-metadata.xml", "size": 767, "file_md5": "6dfd0cce1203145a927fef5e3a1c650c", "file_sha1": "d25932de56052d320a8ac156f745ece73f6a8cd2" } ] ``` 默认情况下,由于 API 是[分页的](README.html#pagination) ,因此`GET`请求将返回 20 个结果. ## Delete a project package[](#delete-a-project-package "Permalink") 在 GitLab 11.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9623) . 删除项目包. ``` DELETE /projects/:id/packages/:package_id ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 项目的 ID 或[URL 编码的路径](README.html#namespaced-path-encoding) | | `package_id` | integer | yes | 包裹的 ID. | ``` curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id" ``` 可以返回以下状态码: * `204 No Content` ,如果软件包已成功删除. * `404 Not Found` ,如果`404 Not Found`包.