PyPI API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 문서는 PyPI 패키지에 대한 API 문서입니다.

caution

이 API는 PyPI 패키지 관리자 클라이언트에 의해 사용되며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.

GitLab 패키지 레지스트리에서 PyPI 패키지를 업로드하고 설치하는 방법에 대한 지침은 PyPI 패키지 레지스트리 문서를 참조하십시오.

note
이 엔드포인트는 표준 API 인증 방법을 준수하지 않습니다.

어떤 헤더와 토큰 유형이 지원되는지에 대한 자세한 내용은 PyPI 패키지 레지스트리 문서를 참조하십시오.

문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

note
Twine 3.4.2 이상이 FIPS 모드가 활성화된 경우 권장됩니다.

그룹에서 패키지 파일 다운로드

PyPI 패키지 파일을 다운로드합니다. 보통 간단한 API는 이 URL을 제공합니다.

GET groups/:id/-/packages/pypi/files/:sha256/:file_identifier
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로입니다.
sha256 string PyPI 패키지 파일의 sha256 체크섬입니다.
file_identifier string PyPI 패키지 파일의 이름입니다.
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 인덱스

그룹의 패키지 목록을 HTML 파일로 반환합니다:

GET groups/:id/-/packages/pypi/simple
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로입니다.
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/groups/1/-/packages/pypi/simple"

예시 응답:

<!DOCTYPE html>
<html>
  <head>
    <title>그룹의 링크</title>
  </head>
  <body>
    <h1>그룹의 링크</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 진입점

패키지 설명자를 HTML 파일로 반환합니다:

GET groups/:id/-/packages/pypi/simple/:package_name
속성 타입 필수 설명
id string 그룹의 ID 또는 전체 경로를 나타냅니다.
package_name string 패키지의 이름을 나타냅니다.
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로 다운로드된 파일이 저장됩니다.

프로젝트에서 패키지 파일 다운로드

PyPI 패키지 파일을 다운로드합니다. 간단한 API는 일반적으로 이 URL을 제공합니다.

GET projects/:id/packages/pypi/files/:sha256/:file_identifier
속성 타입 필수 설명
id string 프로젝트의 ID 또는 전체 경로를 나타냅니다.
sha256 string PyPI 패키지 파일의 sha256 체크섬입니다.
file_identifier string PyPI 패키지 파일 이름을 나타냅니다.
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 인덱스

프로젝트의 패키지 목록을 HTML 파일로 반환합니다:

GET projects/:id/packages/pypi/simple
속성 유형 필수 설명
id 문자열 프로젝트의 ID 또는 전체 경로입니다.
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/pypi/simple"

예시 응답:

<!DOCTYPE html>
<html>
  <head>
    <title>프로젝트 링크</title>
  </head>
  <body>
    <h1>프로젝트 링크</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 진입점

패키지 설명서를 HTML 파일로 반환합니다:

GET projects/:id/packages/pypi/simple/:package_name
속성 유형 필수 설명
id 문자열 프로젝트의 ID 또는 전체 경로입니다.
package_name 문자열 패키지의 이름입니다.
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>my.pypi.package 링크</title>
  </head>
  <body>
    <h1>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 패키지를 업로드하세요:

POST projects/:id/packages/pypi
속성 유형 필수 설명
id string 프로젝트의 ID 또는 전체 경로입니다.
requires_python string 아니요 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"