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

PyPI API

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

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

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

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

Twine 3.4.2以降は、FIPSモードが有効な場合に推奨されます。

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

指定されたPyPIパッケージファイルをグループ用にダウンロードします。このURLは通常、シンプルなAPIが提供します。

GET groups/:id/-/packages/pypi/files/:sha256/:file_identifier
属性必須説明
id文字列はいグループのIDまたは完全なパス。
sha256文字列はいPyPIパッケージファイルのsha256チェックサム。
file_identifier文字列はいPyPIパッケージファイル名。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "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に書き込まれます。

グループのすべてのパッケージを一覧表示

指定されたグループのすべてのパッケージをHTMLファイルで一覧表示します。

GET groups/:id/-/packages/pypi/simple
属性必須説明
id文字列はいグループのIDまたは完全なパス。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple" >> simple_index.html

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

グループのパッケージディスクリプタを取得する

指定されたグループ内のパッケージのパッケージディスクリプタをHTMLファイルとして取得します。

GET groups/:id/-/packages/pypi/simple/:package_name
属性必須説明
id文字列はいグループのIDまたは完全なパス。
package_name文字列はいパッケージ名。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple/my.pypi.package" >> simple.html

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

プロジェクト用のパッケージファイルをダウンロードする

指定されたPyPIパッケージファイルをプロジェクト用にダウンロードします。このURLは通常、シンプルなAPIが提供します。

GET projects/:id/packages/pypi/files/:sha256/:file_identifier
属性必須説明
id文字列はいプロジェクトのIDまたは完全なパス。
sha256文字列はいPyPIパッケージファイルのsha256チェックサム。
file_identifier文字列はいPyPIパッケージファイル名。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "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に書き込まれます。

プロジェクトのすべてのパッケージを一覧表示

指定されたプロジェクトのすべてのパッケージをHTMLファイルで一覧表示します。

GET projects/:id/packages/pypi/simple
属性必須説明
id文字列はいプロジェクトのIDまたは完全なパス。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple" >> simple_index.html

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

プロジェクトのパッケージディスクリプタを取得する

指定されたプロジェクト内のパッケージのパッケージディスクリプタをHTMLファイルとして取得します。

GET projects/:id/packages/pypi/simple/:package_name
属性必須説明
id文字列はいプロジェクトのIDまたは完全なパス。
package_name文字列はいパッケージ名。
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple/my.pypi.package" >> simple.html

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

パッケージをアップロードする

指定されたプロジェクトのPyPIパッケージをアップロードします。

POST projects/:id/packages/pypi
属性必須説明
id文字列はいプロジェクトのIDまたは完全なパス。
requires_python文字列いいえPyPIの必須バージョン。
sha256_digest文字列いいえパッケージファイルのSHA256チェックサム。アップロードには不要ですが、この属性がないと、パッケージインデックスURLに必要なチェックサムがないため、pip installは失敗します。
curl --request POST \
     --form 'content=@path/to/my.pypi.package-0.0.1.tar.gz' \
     --form "sha256_digest=$(shasum -a 256 < path/to/my.pypi.package-0.0.1.tar.gz | cut -d' ' -f1)" \
     --form 'name=my.pypi.package' \
     --form 'version=1.3.7' \
     --user <username>:<personal_access_token> \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/pypi"