InfoGrab Docs

PyPI API

요약

이 API를 사용하여 PyPI 패키지 관리자 클라이언트와 상호작용합니다. 이 API는 PyPI 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다.

이 API를 사용하여 PyPI 패키지 관리자 클라이언트와 상호작용합니다.

Warning

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

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 PyPI 패키지 레지스트리 설명서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

Note

FIPS 모드가 활성화된 경우 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> \
  --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 string 그룹의 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 string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
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 패키지 파일을 다운로드합니다. 단순 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> \
  --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 string 프로젝트의 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 string 프로젝트의 ID 또는 전체 경로.
package_name string 패키지 이름.
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 string 프로젝트의 ID 또는 전체 경로.
requires_python string 아니요 PyPI 필수 버전.
sha256_digest string 아니요 패키지 파일의 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"

PyPI API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 PyPI 패키지 관리자 클라이언트와 상호작용합니다. 이 API는 PyPI 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다.

이 API를 사용하여 PyPI 패키지 관리자 클라이언트와 상호작용합니다.

Warning

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

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 PyPI 패키지 레지스트리 설명서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

Note

FIPS 모드가 활성화된 경우 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> \
  --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 string 그룹의 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 string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
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 패키지 파일을 다운로드합니다. 단순 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> \
  --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 string 프로젝트의 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 string 프로젝트의 ID 또는 전체 경로.
package_name string 패키지 이름.
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 string 프로젝트의 ID 또는 전체 경로.
requires_python string 아니요 PyPI 필수 버전.
sha256_digest string 아니요 패키지 파일의 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"