데비안 API

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

이 문서는 데비안용 API 문서입니다.

caution
이 API는 dputapt-get과 같은 데비안 관련 패키지 클라이언트에 의해 사용되며 일반적으로 매뉴얼으로 소비하기 위한 것이 아닙니다. 이 API는 개발 중이며 제한된 기능으로 인해 제품 사용에 준비가되지 않았습니다.

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

note
이러한 엔드포인트는 표준 API 인증 방법을 준수하지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 데비안 레지스트리 문서를 참조하십시오. 문서화되지 않은 인증 방법은 향후에 제거 될 수 있습니다.

데비안 API 활성화

데비안 API는 기본적으로 비활성화된 피처 플래그 뒤에 있습니다. GitLab Rails 콘솔에 액세스할 수있는 GitLab 관리자는이를 활성화하도록 선택할 수 있습니다. 활성화하려면 [데비안 API 활성화] 지침을 따르십시오.

데비안 그룹 API 활성화

데비안 그룹 API는 기본적으로 비활성화된 피처 플래그 뒤에 있습니다. GitLab Rails 콘솔에 액세스할 수있는 GitLab 관리자는이를 활성화하도록 선택할 수 있습니다. 활성화하려면 [데비안 그룹 API 활성화] 지침을 따르십시오.

데비안 패키지 리포지터리에 인증

데비안 패키지 리포지터리에 인증을 참조하십시오.

패키지 파일 업로드

  • GitLab 14.0에서 도입되었습니다.
  • 명시적 유통 및 컴포넌트로 업로드 도입되었습니다.

데비안 패키지 파일 업로드:

PUT projects/:id/packages/debian/:file_name
속성 유형 필수 설명
id string 프로젝트의 ID 또는 전체 경로입니다.
file_name string 데비안 패키지 파일의 이름입니다.
distribution string 아니요 유통 코드 이름 또는 스위트입니다. 명시적 유통 및 컴포넌트와 함께 사용됩니다.
component string 아니요 패키지 파일의 컴포넌트입니다. 명시적 유통 및 컴포넌트와 함께 사용됩니다.
curl --request PUT \
     --user "<username>:<personal_access_token>" \
     --upload-file path/to/mypkg.deb \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/mypkg.deb"

명시적 유통 및 컴포넌트로 업로드:

curl --request PUT \
  --user "<username>:<personal_access_token>" \
  --upload-file  /path/to/myother.deb \
  "https://gitlab.example.com/api/v4/projects/1/packages/debian/myother.deb?distribution=sid&component=main"

패키지 다운로드

  • GitLab 14.2에서 도입되었습니다.

패키지 파일을 다운로드합니다.

GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
속성 유형 필수 설명
distribution string 데비안 배포의 코드 이름 또는 스위트입니다.
letter string 데비안 분류 (첫 글자 또는 lib-첫 글자)입니다.
package_name string 소스 패키지 이름입니다.
package_version string 소스 패키지 버전입니다.
file_name string 파일 이름입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb"

출력을 파일로 작성:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드 된 파일을 작성합니다.

경로 접두어

설명되어 있는 나머지 엔드포인트는 각각 다른 범위에서 요청을 수행하는 두 세트의 동일한 경로입니다.

  • 프로젝트 수준 접두어를 사용하여 프로젝트의 범위에서 요청을 수행하십시오.
  • 그룹 수준 접두어를 사용하여 단일 그룹의 범위에서 요청을 수행하십시오.

이 문서의 예는 모두 프로젝트 수준 접두어를 사용합니다.

프로젝트 수준

 /projects/:id/packages/debian`
속성 유형 필수 설명
id string 프로젝트 ID 또는 전체 프로젝트 경로입니다.

그룹 수준

 /groups/:id/-/packages/debian`
속성 유형 필수 설명
id string 프로젝트 ID 또는 전체 그룹 경로입니다.

배포 릴리스 파일 다운로드

데비안 배포 파일을 다운로드합니다.

GET <route-prefix>/dists/*distribution/Release
속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

서명된 배포 릴리스 파일 다운로드

서명된 데비안 배포 파일을 다운로드합니다.

GET <route-prefix>/dists/*distribution/InRelease
속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

릴리스 파일 서명 다운로드

데비안 릴리스 파일 서명을 다운로드합니다.

GET <route-prefix>/dists/*distribution/Release.gpg
속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

패키지 인덱스 다운로드

패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages
속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
component string yes 배포 컴포넌트 이름입니다.
architecture string yes 배포 아키텍처 유형입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/Packages" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

해시별 패키지 인덱스 다운로드

해시별 패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/binary-:architecture/by-hash/SHA256/:file_sha256

속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
component string yes 배포 컴포넌트 이름입니다.
architecture string yes 배포 아키텍처 유형입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

데비안 설치 프로그램 패키지 인덱스 다운로드

데비안 설치 프로그램 패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
속성 유형 필수 설명
distribution string yes 데비안 배포의 코드명 또는 스윗입니다.
component string yes 배포 컴포넌트 이름입니다.
architecture string yes 배포 아키텍처 유형입니다.
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages"

파일을 다운로드하여 파일로 저장합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드된 파일을 작성합니다.

해시별 Debian 설치 프로그램 패키지 인덱스 다운로드

해시별 Debian 설치 프로그램 패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha256
속성 타입 필수 설명
distribution string yes Debian 배포판의 코드명 또는 스위트
component string yes 배포판 컴포넌트명
architecture string yes 배포판 아키텍처 유형
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

출력을 파일로 작성합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드한 파일을 작성합니다.

소스 패키지 인덱스 다운로드

소스 패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/source/Sources
속성 타입 필수 설명
distribution string yes Debian 배포판의 코드명 또는 스위트
component string yes 배포판 컴포넌트명
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources"

출력을 파일로 작성합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/Sources" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드한 파일을 작성합니다.

해시별 소스 패키지 인덱스 다운로드

해시별 소스 패키지 인덱스를 다운로드합니다.

GET <route-prefix>/dists/*distribution/:component/source/by-hash/SHA256/:file_sha256
속성 타입 필수 설명
distribution string yes Debian 배포판의 코드명 또는 스위트
component string yes 배포판 컴포넌트명
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18"

출력을 파일로 작성합니다:

curl --header "Private-Token: <personal_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
     --remote-name

이 명령은 현재 디렉터리에 원격 파일 이름을 사용하여 다운로드한 파일을 작성합니다.