パッケージ API

GitLab PackagesのAPIドキュメントです。

パッケージ一覧

プロジェクト内

GitLab 11.8 で導入されました

プロジェクトパッケージの一覧を取得します。 すべての種類のパッケージが結果に含まれます。 認証なしでアクセスした場合は、公開プロジェクトのパッケージのみが返されます。

GET /projects/:id/packages
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
order_by いいえ created_at (デフォルト)、nameversiontypeのいずれか。
sort いいえ 昇順の場合はasc (デフォルト)、降順の場合はdesc となります。
package_type いいえ 返されたパッケージをタイプでフィルタリングします。conan,maven,npm,pypi,composer,nugetのいずれかです_(GitLab 12.9 で導入_)。
package_name いいえ ファジー検索でプロジェクトパッケージを名前で絞り込みます。(_GitL_ab 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はページ分割されているため、GET リクエストは20件の結果を返します。

グループ内

GitLab 12.5で導入されました

プロジェクトパッケージの一覧をグループレベルで取得します。 認証なしでアクセスした場合は、公開プロジェクトのパッケージのみが返されます。

GET /groups/:id/packages
属性 タイプ 必須 説明
id 整数/文字列 はい グループのIDまたはURLエンコードされたパス
exclude_subgroups ブーリアン false このパラメータに true を指定すると、サブグループのプロジェクトのパッケージは表示されません。 デフォルトはfalseです。
order_by いいえ created_at (デフォルト)、nameversiontypeproject_pathのいずれか。
sort いいえ 昇順の場合はasc (デフォルト)、降順の場合はdesc となります。
package_type いいえ 返されたパッケージをタイプでフィルタリングします。conan,maven,npm,pypi,composer,nugetのいずれかです_(GitLab 12.9 で導入_)。
package_name いいえ ファジー検索でプロジェクトパッケージを名前で絞り込みます。(_GitL_ab 13.0 で導入)
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で導入されました。

回答例

[
  {
    "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はページ分割されているため、GET リクエストは20件の結果を返します。

_links オブジェクトには以下のプロパティが含まれます:

  • web_pathGitLabにアクセスし、パッケージの詳細を見ることができるパス。
  • delete_api_path: パッケージを削除するための API パス。 リクエストユーザに権限がある場合のみ利用可能です。

プロジェクトパッケージの入手

GitLab 11.9 で導入されました

単一のプロジェクトパッケージを取得します。

GET /projects/:id/packages/:package_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
package_id 整数 はい パッケージの 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で導入されました。

回答例

{
  "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_pathGitLabにアクセスし、パッケージの詳細を見ることができるパス。
  • delete_api_path: パッケージを削除するための API パス。 リクエストユーザに権限がある場合のみ利用可能です。

パッケージファイル一覧

GitLab 11.8 で導入されました

単一パッケージのパッケージファイルのリストを取得します。

GET /projects/:id/packages/:package_id/package_files
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
package_id 整数 はい パッケージの 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はページ分割されているため、GET リクエストは20件の結果を返します。

プロジェクトパッケージの削除

GitLab 11.9 で導入されました

プロジェクトパッケージを削除します。

DELETE /projects/:id/packages/:package_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
package_id 整数 はい パッケージの 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パッケージが見つからなかった場合