PyPI API

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

이것은 PyPI Packages에 대한 API 문서입니다.

caution
이 API는 PyPI 패키지 관리자 클라이언트에 의해 사용되며 일반적으로 매뉴얼으로 사용하려는 것이 아닙니다.

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

note
이러한 엔드포인트는 표준 API 인증 방법을 준수하지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 세부 정보는 PyPI 패키지 레지스트리 문서를 참조하십시오. 문서화되지 않은 인증 방법은 향후에 제거될 수 있습니다.
note
FIPS mode가 활성화된 경우 Twine 3.4.2 또는 그 이상이 권장됩니다.

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

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>my.pypi.package를 위한 링크</title>
  </head>
  <body>
    <h1>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 문자열 프로젝트의 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"