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

Composer API

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

このAPIを使用して、Composerパッケージマネージャークライアントとやり取りします。

このAPIはComposerパッケージマネージャークライアントによって使用され、通常は手動での使用を意図したものではありません。

これらのエンドポイントは、標準のAPI認証方式に準拠していません。サポートされているヘッダーとトークンの種類の詳細については、Composerパッケージレジストリのドキュメントを参照してください。記載されていない認証方法は、将来削除される可能性があります。

リポジトリベースのリクエスト

個々のパッケージをリクエストするためのリポジトリURLテンプレートを返します:

GET group/:id/-/packages/composer/packages
属性必須説明
id文字列はいグループのIDまたはフルパス。
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"

レスポンス例:

{
  "packages": [],
  "metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json",
  "provider-includes": {
    "p/%hash%.json": {
      "sha256": "082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
    }
  },
  "providers-url": "/api/v4/group/1/-/packages/composer/%package%$%hash%.json"
}

このエンドポイントは、Composer V1およびV2で使用されます。V2固有の応答を確認するには、ComposerのUser-Agentヘッダーを含めます。Composer V2はV1よりも推奨されます。

curl --user <username>:<personal_access_token> \
     --header "User-Agent: Composer/2" \
     --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"

レスポンス例:

{
  "packages": [],
  "metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json"
}

V1パッケージリスト

V1プロバイダーのSHAが指定されている場合、リポジトリ内のパッケージのリストを返します。Composer V2はV1よりも推奨されます。

GET group/:id/-/packages/composer/p/:sha
属性必須説明
id文字列はいグループのIDまたはフルパス。
sha文字列はいベースリポジトリリクエストによって提供されるプロバイダーのSHA。
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"

レスポンス例:

{
  "providers": {
    "my-org/my-composer-package": {
      "sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
    }
  }
}

V1パッケージのメタデータ

指定されたパッケージのバージョンとメタデータのリストを返します。Composer V2はV1よりも推奨されます。

GET group/:id/-/packages/composer/:package_name$:sha

URL内の$記号に注意してください。リクエストを行う場合、%24記号のURLエンコードされたバージョンが必要になる場合があります。表の後にある例を参照してください:

属性必須説明
id文字列はいグループのIDまたはフルパス。
package_name文字列はいパッケージの名前。
sha文字列はいV1パッケージリストによって提供されるパッケージのSHAダイジェスト。
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/my-org/my-composer-package%245c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"

レスポンス例:

{
  "packages": {
    "my-org/my-composer-package": {
      "1.0.0": {
        "name": "my-org/my-composer-package",
        "type": "library",
        "license": "GPL-3.0-only",
        "version": "1.0.0",
        "dist": {
          "type": "zip",
          "url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "shasum": ""
        },
        "source": {
          "type": "git",
          "url": "https://gitlab.example.com/my-org/my-composer-package.git",
          "reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
        },
        "uid": 1234567
      },
      "2.0.0": {
        "name": "my-org/my-composer-package",
        "type": "library",
        "license": "GPL-3.0-only",
        "version": "2.0.0",
        "dist": {
          "type": "zip",
          "url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "shasum": ""
        },
        "source": {
          "type": "git",
          "url": "https://gitlab.example.com/my-org/my-composer-package.git",
          "reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
        },
        "uid": 1234567
      }
    }
  }
}

V2パッケージのメタデータ

指定されたパッケージのバージョンとメタデータのリストを返します:

GET group/:id/-/packages/composer/p2/:package_name
属性必須説明
id文字列はいグループのIDまたはフルパス。
package_name文字列はいパッケージの名前。
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p2/my-org/my-composer-package"

レスポンス例:

{
  "packages": {
    "my-org/my-composer-package": {
      "1.0.0": {
        "name": "my-org/my-composer-package",
        "type": "library",
        "license": "GPL-3.0-only",
        "version": "1.0.0",
        "dist": {
          "type": "zip",
          "url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "shasum": ""
        },
        "source": {
          "type": "git",
          "url": "https://gitlab.example.com/my-org/my-composer-package.git",
          "reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
        },
        "uid": 1234567
      },
      "2.0.0": {
        "name": "my-org/my-composer-package",
        "type": "library",
        "license": "GPL-3.0-only",
        "version": "2.0.0",
        "dist": {
          "type": "zip",
          "url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
          "shasum": ""
        },
        "source": {
          "type": "git",
          "url": "https://gitlab.example.com/my-org/my-composer-package.git",
          "reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
        },
        "uid": 1234567
      }
    }
  }
}

パッケージを作成

GitタグまたはブランチからComposerパッケージを作成します:

POST projects/:id/packages/composer
属性必須説明
id文字列はいグループのIDまたはフルパス。
tag文字列いいえパッケージのターゲットにするタグの名前。
branch文字列いいえパッケージのターゲットにするブランチの名前。
curl --request POST --user <username>:<personal_access_token> \
     --data tag=v1.0.0 \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/composer"

レスポンス例:

{
  "message": "201 Created"
}

パッケージアーカイブをダウンロード

Composerパッケージをダウンロードします。このURLは、v1またはv2パッケージメタデータの応答で提供されます。.zipファイルの拡張子は、リクエストに含まれている必要があります。

GET projects/:id/packages/composer/archives/:package_name
属性必須説明
id文字列はいグループのIDまたはフルパス。
package_name文字列はいパッケージの名前。
sha文字列はいリクエストされたパッケージバージョンのターゲットSHA。
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"

ファイルへの出力を書き込みます:

curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab" >> package.tar.gz

これにより、ダウンロードしたファイルが現在のディレクトリのpackage.tar.gzに書き込まれます。