正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Conan v2 API

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

Conan v1の操作については、Conan v1 APIを参照してください。

このAPIを使用して、Conan v2パッケージマネージャーとやり取りします。

通常、これらのエンドポイントはConan 2パッケージマネージャークライアントによって使用され、手動での使用は意図されていません。

  • これらのエンドポイントは、標準のAPI認証方法に準拠していません。認証情報の受け渡し方法の詳細については、各ルートを参照してください。記載されていない認証方法は、将来削除される可能性があります。

  • Conanレジストリは連邦情報処理規格に準拠しておらず、FIPSモードが有効になっている場合は無効になります。これらのエンドポイントはすべて404 Not Foundを返します。

認証トークンを作成します

他のリクエストでBearerヘッダーとして使用するJSON Webトークン(JWT)を作成します。

"Authorization: Bearer <authenticate_token>

Conan 2パッケージマネージャークライアントは、このトークンを自動的に使用します。

GET /projects/:id/packages/conan/v2/users/authenticate
属性必須説明
id文字列条件付きプロジェクトIDまたは完全なプロジェクトパス。プロジェクトエンドポイントでのみ必須。

base64でエンコードされたBasic基本認証トークンを生成します:

echo -n "<username>:<your_access_token>"|base64

base64でエンコードされたBasic基本認証トークンを使用して、JWTトークンを取得します:

curl --request GET \
     --header 'Authorization: Basic <base64_encoded_token>' \
     --url "https://gitlab.example.com/api/v4/packages/conan/v2/users/authenticate"

レスポンス例:

eyJhbGciOiJIUzI1NiIiheR5cCI6IkpXVCJ9.eyJhY2Nlc3NfdG9rZW4iOjMyMTQyMzAsqaVzZXJfaWQiOjQwNTkyNTQsImp0aSI6IjdlNzBiZTNjLWFlNWQtNDEyOC1hMmIyLWZiOThhZWM0MWM2OSIsImlhd3r1MTYxNjYyMzQzNSwibmJmIjoxNjE2NjIzNDMwLCJleHAiOjE2MTY2MjcwMzV9.QF0Q3ZIB2GW5zNKyMSIe0HIFOITjEsZEioR-27Rtu7E

認証情報を確認する

Basic基本認証認証情報、またはConan v1 /authenticateエンドポイントから生成されたConan JWTの有効性を検証します。

GET /projects/:id/packages/conan/v2/users/check_credentials
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
curl --request GET \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/<project_id>/packages/conan/v2/users/check_credentials"

レスポンス例:

ok

Conanパッケージを検索する

指定された名前のConanパッケージをプロジェクトで検索します。

GET /projects/:id/packages/conan/v2/conans/search?q=:query
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
query文字列はい検索クエリ。*をワイルドカードとして使用できます。
curl --request GET \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/search?q=Hello*"

レスポンス例:

{
  "results": [
    "Hello/0.1@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan_test_prod/stable",
    "Hello/0.2@foo+conan_test_prod/beta",
    "Hello/0.3@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan-reference-test/stable",
    "HelloWorld/0.1@baz+conan-reference-test/beta"
    "hello-world/0.4@buz+conan-test/alpha"
  ]
}

最新のレシピリビジョンを取得します

最新のパッケージレシピのリビジョンハッシュと作成日を取得します。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/latest
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/latest"

レスポンス例:

{
  "revision" : "75151329520e7685dcf5da49ded2fec0",
  "time" : "2024-12-17T09:16:40.334+0000"
}

すべてのレシピリビジョンをリストします

パッケージレシピのすべてのリビジョンをリストします。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions"

レスポンス例:

{
  "reference": "my-package/1.0@my-group+my-project/stable",
  "revisions": [
    {
      "revision": "75151329520e7685dcf5da49ded2fec0",
      "time": "2024-12-17T09:16:40.334+0000"
    },
    {
      "revision": "df28fd816be3a119de5ce4d374436b25",
      "time": "2024-12-17T09:15:30.123+0000"
    }
  ]
}

レシピリビジョンを削除します

レジストリからレシピリビジョンを削除します。パッケージにレシピリビジョンが1つしかない場合、パッケージも削除されます。

DELETE /projects/:id/packages/conan/conans/:package_name/package_version/:package_username/:package_channel/revisions/:recipe_revision
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はい削除するレシピリビジョンのリビジョンハッシュ。
curl --request DELETE \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/2be19f5a69b2cb02ab576755252319b9"

すべてのレシピファイルをリストします

パッケージレジストリからすべてのレシピファイルをリストします。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-username/stable/revisions/df28fd816be3a119de5ce4d374436b25/files"

レスポンス例:

{
  "files": {
    "conan_sources.tgz": {},
    "conanfile.py": {},
    "conanmanifest.txt": {}
  }
}

レシピファイルを取得する

パッケージレジストリからレシピファイルを取得します。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
file_name文字列はいリクエストされたファイルの名前とファイル拡張子。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-username/stable/revisions/df28fd816be3a119de5ce4d374436b25/files/conanfile.py"

次の方法で、出力をファイルに書き込むこともできます:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-username/stable/revisions/df28fd816be3a119de5ce4d374436b25/files/conanfile.py" \
     >> conanfile.py

この例では、現在のディレクトリのconanfile.pyに書き込みます。

レシピファイルをアップロードする

レシピファイルをパッケージレジストリにアップロードします。

PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
file_name文字列はいリクエストされたファイルの名前とファイル拡張子。
curl --request PUT \
     --header "Authorization: Bearer <authenticate_token>" \
     --upload-file path/to/conanfile.py \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/upload-v2-package/1.0.0/user/stable/revisions/123456789012345678901234567890ab/files/conanfile.py"

レスポンス例:

{
  "id": 38,
  "package_id": 28,
  "created_at": "2025-04-07T12:35:40.841Z",
  "updated_at": "2025-04-07T12:35:40.841Z",
  "size": 24,
  "file_store": 1,
  "file_md5": "131f806af123b497209a516f46d12ffd",
  "file_sha1": "01b992b2b1976a3f4c1e5294d0cab549cd438502",
  "file_name": "conanfile.py",
  "file": {
    "url": "/94/00/9400f1b21cb527d7fa3d3eabba93557a18ebe7a2ca4e471cfe5e4c5b4ca7f767/packages/28/files/38/conanfile.py"
  },
  "file_sha256": null,
  "verification_retry_at": null,
  "verified_at": null,
  "verification_failure": null,
  "verification_retry_count": null,
  "verification_checksum": null,
  "verification_state": 0,
  "verification_started_at": null,
  "status": "default",
  "file_final_path": null,
  "project_id": 9,
  "new_file_path": null
}

すべてのパッケージリビジョンをリストします

特定のレシピリビジョンとパッケージ参照のすべてのパッケージリビジョンをリストします。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
conan_package_reference文字列はいConanパッケージの参照ハッシュ。Conanはこの値を生成します。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/revisions"

レスポンス例:

{
  "reference": "my-package/1.0@my-group+my-project/stable#75151329520e7685dcf5da49ded2fec0:103f6067a947f366ef91fc1b7da351c588d1827f",
  "revisions": [
    {
      "revision": "2bfb52659449d84ed11356c353bfbe86",
      "time": "2024-12-17T09:16:40.334+0000"
    },
    {
      "revision": "3bdd2d8c8e76c876ebd1ac0469a4e72c",
      "time": "2024-12-17T09:15:30.123+0000"
    }
  ]
}

最新のパッケージリビジョンを取得します

特定のレシピリビジョンおよびパッケージ参照の最新のパッケージリビジョンのリビジョンハッシュと作成日を取得します。

GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/latest
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
conan_package_reference文字列はいConanパッケージの参照ハッシュ。Conanはこの値を生成します。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/latest"

レスポンス例:

{
  "revision" : "3bdd2d8c8e76c876ebd1ac0469a4e72c",
  "time" : "2024-12-17T09:16:40.334+0000"
}

パッケージリビジョンを削除します

レジストリからパッケージリビジョンを削除します。パッケージ参照にパッケージリビジョンが1つしかない場合、パッケージ参照も削除されます。

DELETE /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
conan_package_reference文字列はいConanパッケージの参照ハッシュ。Conanはこの値を生成します。
package_revision文字列はいパッケージのリビジョン。0の値は受け入れません。
curl --request DELETE \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/revisions/3bdd2d8c8e76c876ebd1ac0469a4e72c"

パッケージファイルを取得する

パッケージレジストリからパッケージファイルを取得します。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
conan_package_reference文字列はいConanパッケージの参照ハッシュ。Conanはこの値を生成します。
package_revision文字列はいパッケージのリビジョン。0の値は受け入れません。
file_name文字列はいリクエストされたファイルの名前とファイル拡張子。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/revisions/3bdd2d8c8e76c876ebd1ac0469a4e72c/files/conaninfo.txt"

次の方法で、出力をファイルに書き込むこともできます:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/revisions/3bdd2d8c8e76c876ebd1ac0469a4e72c/files/conaninfo.txt" \
     >> conaninfo.txt

この例では、現在のディレクトリのconaninfo.txtに書き込みます。

パッケージファイルをアップロードする

パッケージファイルをパッケージレジストリにアップロードします。

PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
conan_package_reference文字列はいConanパッケージの参照ハッシュ。Conanはこの値を生成します。
package_revision文字列はいパッケージのリビジョン。0の値は受け入れません。
file_name文字列はいリクエストされたファイルの名前とファイル拡張子。

リクエストの本文で、ファイルの内容を提供します:

curl --request PUT \
     --header "Authorization: Bearer <authenticate_token>" \
     --upload-file path/to/conaninfo.txt \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/packages/103f6067a947f366ef91fc1b7da351c588d1827f/revisions/3bdd2d8c8e76c876ebd1ac0469a4e72c/files/conaninfo.txt"

レスポンス例:

{
  "id": 202,
  "package_id": 48,
  "created_at": "2025-03-19T10:06:53.626Z",
  "updated_at": "2025-03-19T10:06:53.626Z",
  "size": 208,
  "file_store": 1,
  "file_md5": "bf996313bbdd75944b58f8c673661d99",
  "file_sha1": "02c8adf14c94135fb95d472f96525063efe09ee8",
  "file_name": "conaninfo.txt",
  "file": {
      "url": "/94/00/9400f1b21cb527d7fa3d3eabba93557a18ebe7a2ca4e471cfe5e4c5b4ca7f767/packages/48/files/202/conaninfo.txt"
  },
  "file_sha256": null,
  "verification_retry_at": null,
  "verified_at": null,
  "verification_failure": null,
  "verification_retry_count": null,
  "verification_checksum": null,
  "verification_state": 0,
  "verification_started_at": null,
  "status": "default",
  "file_final_path": null,
  "project_id": 9,
  "new_file_path": null
}

パッケージ参照メタデータを取得する

パッケージのすべてのパッケージ参照のメタデータを取得します。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/search
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/search"

レスポンス例:

{
  "103f6067a947f366ef91fc1b7da351c588d1827f": {
    "settings": {
      "arch": "x86_64",
      "build_type": "Release",
      "compiler": "gcc",
      "compiler.libcxx": "libstdc++",
      "compiler.version": "9",
      "os": "Linux"
    },
    "options": {
      "shared": "False"
    },
    "requires": {
      "zlib/1.2.11": null
    },
    "recipe_hash": "75151329520e7685dcf5da49ded2fec0"
  }
}

出力には、各パッケージ参照について、次のメタデータが含まれます:

  • settings: パッケージに使用されるビルド設定。
  • options: パッケージオプション。
  • requires: パッケージに必要な依存関係。
  • recipe_hash: レシピのハッシュ。

レシピリビジョンでパッケージ参照メタデータを取得します

特定のレシピリビジョンに関連付けられているすべてのパッケージ参照のメタデータを取得します。

GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/search
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。
package_name文字列はいパッケージ名。
package_version文字列はいパッケージのバージョン。
package_username文字列はいパッケージのConanユーザー名。この属性は、プロジェクトの+区切りのフルパスです。
package_channel文字列はいパッケージのチャンネル。
recipe_revision文字列はいレシピのリビジョン。0の値は受け入れません。
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/projects/9/packages/conan/v2/conans/my-package/1.0/my-group+my-project/stable/revisions/75151329520e7685dcf5da49ded2fec0/search"

レスポンス例:

{
  "103f6067a947f366ef91fc1b7da351c588d1827f": {
    "settings": {
      "arch": "x86_64",
      "build_type": "Release",
      "compiler": "gcc",
      "compiler.libcxx": "libstdc++",
      "compiler.version": "9",
      "os": "Linux"
    },
    "options": {
      "shared": "False"
    },
    "requires": {
      "zlib/1.2.11": null
    },
    "recipe_hash": "75151329520e7685dcf5da49ded2fec0"
  }
}

出力には、各パッケージ参照について、次のメタデータが含まれます:

  • settings: パッケージに使用されるビルド設定。
  • options: パッケージオプション。
  • requires: パッケージに必要な依存関係。
  • recipe_hash: レシピのハッシュ。