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

Debian API

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

このAPIは、Debian関連のパッケージクライアント(dputapt-getなど)で使用されるものであり、一般的に手動で使用することを想定していません。このAPIは開発中のため、機能が制限されており、本番環境での使用には適していません。

このAPIを使用して、Debianパッケージマネージャークライアントと対話します。

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

Debian APIを有効にする

Debian APIは、デフォルトで無効になっている機能フラグの背後にあります。GitLab管理者(GitLab Railsコンソールへのアクセス権を持つ)は、これを有効にすることを選択できます。有効にするには、Debian APIを有効にするの手順に従ってください。

DebianグループAPIを有効にする

DebianグループAPIは、デフォルトで無効になっている機能フラグの背後にあります。GitLab管理者(GitLab Railsコンソールへのアクセス権を持つ)は、これを有効にすることを選択できます。有効にするには、DebianグループAPIを有効にするの手順に従ってください。

Debianパッケージリポジトリに認証する

Debianパッケージリポジトリに認証するを参照してください。

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

指定されたプロジェクトにDebianパッケージファイルをアップロードします。

PUT projects/:id/packages/debian/:file_name
属性必須説明
id文字列はいプロジェクトのIDまたは完全なパス。
file_name文字列はいDebianパッケージファイルの名前。
distribution文字列いいえディストリビューションのコードネームまたはスイート。明示的なディストリビューションとコンポーネントによるアップロードの場合にcomponentと組み合わせて使用します。
component文字列いいえパッケージファイルのコンポーネント。明示的なディストリビューションとコンポーネントによるアップロードの場合にdistributionと組み合わせて使用します。
curl --request PUT \
     --user "<username>:<personal_access_token>" \
     --upload-file path/to/mypkg.deb \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/mypkg.deb"

明示的なディストリビューションとコンポーネントによるアップロード:

curl --request PUT \
  --user "<username>:<personal_access_token>" \
  --upload-file  /path/to/myother.deb \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/myother.deb?distribution=sid&component=main"

パッケージをダウンロードする

プロジェクトの指定されたパッケージファイルをダウンロードします。

GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
letter文字列はいDebian分類(先頭文字またはlib-先頭文字)。
package_name文字列はいソースパッケージ名。
package_version文字列はいソースパッケージのバージョン。
file_name文字列はいファイル名。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

ルートプレフィックス

説明されている残りのエンドポイントは、それぞれ異なるスコープでリクエストを行う2つの同一ルートのセットです:

  • 単一プロジェクトのスコープでリクエストを行うには、プロジェクトレベルのプレフィックスを使用します。
  • グループレベルのプレフィックスを使用して、単一グループのスコープでリクエストを行います。

このドキュメントの例はすべて、プロジェクトレベルのプレフィックスを使用しています。

プロジェクトレベル

/projects/:id/packages/debian
属性必須説明
id文字列はいプロジェクトIDまたは完全なプロジェクトパス。

グループレベル

/groups/:id/-/packages/debian
属性必須説明
id文字列はいプロジェクトIDまたは完全なグループパス。

ディストリビューションリリースファイルをダウンロードする

指定されたDebianディストリビューションリリースファイルをダウンロードします。

GET <route-prefix>/dists/*distribution/Release
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

署名付きディストリビューションリリースファイルをダウンロードする

指定された署名付きDebianディストリビューションリリースファイルをダウンロードします。

GET <route-prefix>/dists/*distribution/InRelease
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

リリースファイルシグネチャをダウンロードする

指定されたDebianリリースファイルシグネチャをダウンロードします。

GET <route-prefix>/dists/*distribution/Release.gpg
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

パッケージインデックスをダウンロードする

指定されたパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
architecture文字列はいディストリビューションアーキテクチャタイプ。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

ハッシュでパッケージインデックスをダウンロードする

ハッシュで指定されたパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/by-hash/SHA256/:file_sha256
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
architecture文字列はいディストリビューションアーキテクチャタイプ。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

Debianインストーラーパッケージインデックスをダウンロードする

指定されたDebianインストーラーパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
architecture文字列はいディストリビューションアーキテクチャタイプ。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

ハッシュでDebianインストーラーパッケージインデックスをダウンロードする

ハッシュで指定されたDebianインストーラーパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha256
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
architecture文字列はいディストリビューションアーキテクチャタイプ。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

ソースパッケージインデックスをダウンロードする

指定されたソースパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/source/Sources
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。

ハッシュでソースパッケージインデックスをダウンロードする

ハッシュで指定されたソースパッケージインデックスをダウンロードします。

GET <route-prefix>/dists/*distribution/:component/source/by-hash/SHA256/:file_sha256
属性必須説明
distribution文字列はいDebianディストリビューションのコードネームまたはスイート。
component文字列はいディストリビューションコンポーネント名。
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

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

curl --header "PRIVATE-TOKEN: <personal_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

これにより、ダウンロードされたファイルが現在のディレクトリにリモートファイル名で書き込まれます。