PyPI API

PyPI PackagesのAPIドキュメントです。

caution
このAPIはPyPIパッケージマネージャクライアントによって使用され、一般的に手動で使用するためのものではありません。

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

note
これらのエンドポイントは標準の API 認証方式に準拠していません。どのヘッダやトークンの型がサポートされているかについての詳細は、PyPI パッケージレジストリのドキュメントを参照ください。文書化されていない認証方法は、将来削除されるかもしれません。
note
FIPS モードが有効な場合はTwine 3.4.2以降を推奨します。

グループからのパッケージファイルのダウンロード

GitLab 13.12 で導入されました

PyPIパッケージファイルをダウンロードします。シンプルな APIは通常この URL を提供します。

GET groups/:id/-/packages/pypi/files/:sha256/:file_identifier
属性種類必須説明
id文字列です。yesグループのIDまたはフルパス。
sha256文字列です。yesPyPI パッケージファイルの sha256 チェックサム。
file_identifier文字列です。yesPyPI パッケージファイルの名前。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1.tar.gz"

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1.tar.gz" >> my.pypi.package-0.0.1.tar.gz

ダウンロードしたファイルをカレントディレクトリのmy.pypi.package-0.0.1.tar.gz に書き込みます。

グループレベルのシンプルAPIインデックス

GitLab 15.1で導入されました

グループ内のパッケージの一覧を HTML ファイルとして返します:

GET groups/:id/-/packages/pypi/simple
属性種類必須説明
id文字列です。yesグループのIDまたはフルパス。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple"

応答例

<!DOCTYPE html>
<html>
  <head>
    <title>Links for Group</title>
  </head>
  <body>
    <h1>Links for Group</h1>
    <a href="https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple/my-pypi-package" data-requires-python="">my.pypi.package</a><br><a href="https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple/package-2" data-requires-python="3.8">package_2</a><br>
  </body>
</html>

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple" >> simple_index.html

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

グループレベルのシンプルなAPIエントリーポイント

GitLab 13.12 で導入されました

パッケージディスクリプタを HTML ファイルとして返します:

GET groups/:id/-/packages/pypi/simple/:package_name
属性種類必須説明
id文字列です。yesグループのIDまたはフルパス。
package_name文字列です。yesパッケージ名。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple/my.pypi.package"

応答例

<!DOCTYPE html>
<html>
  <head>
    <title>Links for my.pypi.package</title>
  </head>
  <body>
    <h1>Links for my.pypi.package</h1>
    <a href="https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1-py3-none-any.whl#sha256=5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff" data-requires-python="&gt;=3.6">my.pypi.package-0.0.1-py3-none-any.whl</a><br><a href="https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/files/9s9w01b0bcd52b709ec052084e33a5517ffca96f7728ddd9f8866a30cdf76f2/my.pypi.package-0.0.1.tar.gz#sha256=9s9w011b0bcd52b709ec052084e33a5517ffca96f7728ddd9f8866a30cdf76f2" data-requires-python="&gt;=3.6">my.pypi.package-0.0.1.tar.gz</a><br>
  </body>
</html>

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple/my.pypi.package" >> simple.html

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

プロジェクトからのパッケージファイルのダウンロード

GitLab 12.10で導入されました。

PyPIパッケージファイルをダウンロードします。シンプルな APIは通常この URL を提供します。

GET projects/:id/packages/pypi/files/:sha256/:file_identifier
属性種類必須説明
id文字列です。yesプロジェクトのIDまたはフルパス。
sha256文字列です。yesPyPI パッケージファイルの sha256 チェック合計。
file_identifier文字列です。yesPyPI パッケージのファイル名。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1.tar.gz"

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1.tar.gz" >> my.pypi.package-0.0.1.tar.gz

ダウンロードしたファイルをカレントディレクトリのmy.pypi.package-0.0.1.tar.gz に書き込みます。

プロジェクトレベルのシンプルAPIインデックス

GitLab 15.1で導入されました

プロジェクト内のパッケージの一覧を HTML ファイルとして返します:

GET projects/:id/packages/pypi/simple
属性種類必須説明
id文字列です。yesプロジェクトのIDまたはフルパス。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple"

応答例

<!DOCTYPE html>
<html>
  <head>
    <title>Links for Project</title>
  </head>
  <body>
    <h1>Links for Project</h1>
    <a href="https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple/my-pypi-package" data-requires-python="">my.pypi.package</a><br><a href="https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple/package-2" data-requires-python="3.8">package_2</a><br>
  </body>
</html>

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple" >> simple_index.html

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

プロジェクトレベルのシンプルAPIエントリーポイント

GitLab 12.10で導入されました。

パッケージディスクリプタを HTML ファイルとして返します:

GET projects/:id/packages/pypi/simple/:package_name
属性種類必須説明
id文字列です。yesプロジェクトのIDまたはフルパス。
package_name文字列です。yesパッケージ名。
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple/my.pypi.package"

応答例

<!DOCTYPE html>
<html>
  <head>
    <title>Links for my.pypi.package</title>
  </head>
  <body>
    <h1>Links for my.pypi.package</h1>
    <a href="https://gitlab.example.com/api/v4/projects/1/packages/pypi/files/5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff/my.pypi.package-0.0.1-py3-none-any.whl#sha256=5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff" data-requires-python="&gt;=3.6">my.pypi.package-0.0.1-py3-none-any.whl</a><br><a href="https://gitlab.example.com/api/v4/projects/1/packages/pypi/files/9s9w01b0bcd52b709ec052084e33a5517ffca96f7728ddd9f8866a30cdf76f2/my.pypi.package-0.0.1.tar.gz#sha256=9s9w011b0bcd52b709ec052084e33a5517ffca96f7728ddd9f8866a30cdf76f2" data-requires-python="&gt;=3.6">my.pypi.package-0.0.1.tar.gz</a><br>
  </body>
</html>

出力をファイルに書き出すには

curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple/my.pypi.package" >> simple.html

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

パッケージのアップロード

PyPIパッケージをアップロードします:

PUT projects/:id/packages/pypi
属性種類必須説明
id文字列です。yesプロジェクトのIDまたはフルパス。
requires_python文字列です。いいえPyPI 必須バージョン。
curl --request POST \
     --form 'content=@path/to/my.pypi.package-0.0.1.tar.gz' \
     --form 'name=my.pypi.package'
     --form 'version=1.3.7'
     --user <username>:<personal_access_token> \
     "https://gitlab.example.com/api/v4/projects/1/packages/pypi"