Composer API
Composer PackagesのAPIドキュメントです。
GitLabパッケージレジストリからComposerパッケージをアップロードしてインストールする方法については、Composerパッケージレジストリのドキュメントを参照してください。
ベースリポジトリのリクエスト
個々のパッケージをリクエストするためのリポジトリ URL テンプレートを返します:
GET group/:id/-/packages/composer/packages
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 文字列です。 | yes | グループのIDまたはフルパス。 |
curl --user <username>:<personal_access_token> "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固有のレスポンスを見るには、ComposerUser-Agent
ヘッダーを含めます。V1よりもComposer V2の使用を推奨します。
curl --user <username>:<personal_access_token> \
--header "User-Agent: Composer/2" \
"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 を指定すると、リポジトリにあるパッケージの一覧を返します。V1 よりも Composer V2 の使用を推奨します。
GET group/:id/-/packages/composer/p/:sha
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 文字列です。 | yes | グループのIDまたはフルパス。 |
sha | 文字列です。 | yes | Composerベースリクエストで提供されるプロバイダの SHA。 |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
応答例
{
"providers": {
"my-org/my-composer-package": {
"sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
}
}
}
V1 パッケージメタデータ
指定されたパッケージのバージョンとメタデータのリストを返します。V1 よりも Composer V2 の使用を推奨します。
GET group/:id/-/packages/composer/:package_name$:sha
URL の$
シンボルに注意してください。リクエストの際には、URLエンコード版のシンボル%24
が必要になるかもしれません。表の後の例を参照してください:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 文字列です。 | yes | グループのIDまたはフルパス。 |
package_name | 文字列です。 | yes | パッケージ名。 |
sha | 文字列です。 | yes | V1 packages list が提供するパッケージの SHA ダイジェスト。 |
curl --user <username>:<personal_access_token> "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 | 文字列です。 | yes | グループのIDまたはフルパス。 |
package_name | 文字列です。 | yes | パッケージ名。 |
curl --user <username>:<personal_access_token> "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 | 文字列です。 | yes | グループのIDまたはフルパス。 |
tag | 文字列です。 | いいえ | パッケージの対象となるタグの名前。 |
branch | 文字列です。 | いいえ | パッケージの対象となるブランチの名前。 |
curl --request POST --user <username>:<personal_access_token> \
--data tag=v1.0.0 "https://gitlab.example.com/api/v4/projects/1/packages/composer"
応答例
{
"message": "201 Created"
}
パッケージアーカイブのダウンロード
このエンドポイントの作成者は GitLab 14.10 で導入されました。
Composer パッケージをダウンロードしてください。このURLはv1またはv2パッケージのメタデータレスポンスで提供されます。リクエストには.zip
ファイル拡張子が必要です。
GET projects/:id/packages/composer/archives/:package_name
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 文字列です。 | yes | グループのIDまたはフルパス。 |
package_name | 文字列です。 | yes | パッケージ名。 |
sha | 文字列です。 | yes | 要求されたパッケージバージョンのターゲットSHA。 |
curl --user <username>:<personal_access_token> "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> "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
に書き込みます。