Debian API

これはDebian 用の API ドキュメントです。

caution
この API はdputapt-get のような Debian 関連のパッケージクライアントによって使用され、 一般に手動で使用することは意図されていません。この API は開発中であり、機能が限定されているため実運用には適していません。

GitLab パッケージレジストリから Debian パッケージをアップロードしてインストールする方法については、Debian レジストリのドキュメントをご覧ください。

note
これらのエンドポイントは、標準 API の認証方式には準拠していません。サポートしているヘッダやトークンの型についての詳細はDebian レジストリドキュメント を参照ください。文書化されていない認証方法は、将来削除されるかもしれません。

Debian API を有効化

Debian APIは機能フラグの後ろにあり、デフォルトでは無効になっています。GitLab Rails コンソールにアクセスできる GitLab 管理者は、これを有効にすることができます。有効にするには、Enable the Debian API の指示に従ってください。

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

DebianグループAPIは機能フラグの後ろにあり、デフォルトでは無効になっています。GitLab Rails コンソールにアクセスできる GitLab 管理者は、これを有効にすることができます。有効にするには、Enable the Debian group API の指示に従ってください。

Debian パッケージリポジトリへの認証

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

パッケージファイルのアップロード

  • GitLab 14.0 で導入されました
  • GitLab 15.9で導入された、明示的ディストリビューションとコンポーネントによるアップロード。

Debian パッケージファイルをアップロードします:

PUT projects/:id/packages/debian/:file_name
属性種類必須説明
id文字列です。yesプロジェクトのIDまたはフルパス。
file_name文字列です。yesDebian パッケージファイルの名前。
distribution文字列です。いいえディストリビューションのコードネームまたはスイート。ディストリビューションとコンポーネントを明示的に指定してアップロードする場合に、component とともに使用します。
component文字列です。いいえパッケージファイルコンポーネント。distribution と共に、ディストリビューションとコンポーネントを明示的に指定してアップロードする場合に使用します。
curl --request PUT \
     --user "<username>:<personal_access_token>" \
     --upload-file path/to/mypkg.deb \
     "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 \
  "https://gitlab.example.com/api/v4/projects/1/packages/debian/myother.deb?distribution=sid&component=main"

パッケージのダウンロード

GitLab 14.2で導入されました

パッケージファイルをダウンロード

GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
letter文字列です。yesDebian の分類 (first-letter または lib-first-letter).
package_name文字列です。yesソースパッケージ名。
package_version文字列です。yesソースパッケージのバージョン。
file_name文字列です。yesファイル名。
curl --header "Private-Token: <personal_access_token>" "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>" \
     "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文字列です。yesプロジェクトIDまたはプロジェクトのフルパス。

グループレベル

 /groups/:id/-/packages/debian`
属性種類必須説明
id文字列です。yesプロジェクトIDまたはグループのフルパス。

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

GitLab 14.1 で導入されました

Debian ディストリビューションファイルをダウンロードしてください。

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

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

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

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

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

GitLab 14.1 で導入されました

署名された Debian ディストリビューションファイルをダウンロードしてください。

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

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

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

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

リリースファイル署名のダウンロード

GitLab 14.2で導入されました

Debian リリースファイル署名をダウンロードしてください。

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

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

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

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

パッケージインデックスのダウンロード

GitLab 14.2で導入されました

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

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
architecture文字列です。yesディストリビューションのアーキテクチャタイプ。
curl --header "Private-Token: <personal_access_token>" "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

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

ハッシュによるパッケージインデックスのダウンロード

GitLab 15.4で導入されました

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

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/by-hash/SHA256/:file_sha256

属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
architecture文字列です。yesディストリビューションのアーキテクチャタイプ。
curl --header "Private-Token: <personal_access_token>" "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>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

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

GitLab 15.4で導入されました

Debian インストーラパッケージのインデックスをダウンロードしてください。

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
architecture文字列です。yesディストリビューションのアーキテクチャタイプ。
curl --header "Private-Token: <personal_access_token>" "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>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages" \
     --remote-name

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

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

GitLab 15.4で導入されました

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

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha256
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
architecture文字列です。yesディストリビューションのアーキテクチャタイプ。
curl --header "Private-Token: <personal_access_token>" "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>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

ソース・パッケージ・インデックスのダウンロード

GitLab 15.4で導入されました

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

GET <route-prefix>/dists/*distribution/:component/source/Sources
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
curl --header "Private-Token: <personal_access_token>" "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

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。

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

GitLab 15.4で導入されました

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

GET <route-prefix>/dists/*distribution/:component/source/by-hash/SHA256/:file_sha256
属性種類必須説明
distribution文字列です。yesDebian ディストリビューションのコードネームまたはスイート。
component文字列です。yesディストリビューション・コンポーネント名。
curl --header "Private-Token: <personal_access_token>" "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>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

ダウンロードしたファイルをカレントディレクトリにリモートファイル名で書き込みます。