Debian API

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

이 문서는 Debian의 API 문서입니다.

caution
이 API는 dputapt-get과 같은 Debian 관련 패키지 클라이언트에 의해 사용되며 일반적으로 수동으로 사용하도록 고안되지 않습니다. 이 API는 개발 중이며 기능이 제한적이기 때문에 프로덕션 환경에서 사용하기에 준비되지 않았습니다.

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

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

Debian API 활성화

Debian API는 기본적으로 비활성화된 기능 플래그 뒤에 있습니다. GitLab 레일즈 콘솔에 액세스 할 수 있는 GitLab 관리자는 활성화할 수 있습니다. 활성화하려면 Debian API 활성화 안내를 따르십시오.

Debian 그룹 API 활성화

Debian 그룹 API는 기본적으로 비활성화된 기능 플래그 뒤에 있습니다. GitLab 레일즈 콘솔에 액세스 할 수 있는 GitLab 관리자는 활성화할 수 있습니다. 활성화하려면 Debian 그룹 API 활성화 안내를 따르십시오.

Debian 패키지 저장소 인증

Debian 패키지 저장소에 인증하는 방법을 참조하십시오.

패키지 파일 업로드

  • GitLab 15.9에서 명시적 배포 및 컴포넌트로 업로드가 소개됨.

Debian 패키지 파일을 업로드합니다:

PUT projects/:id/packages/debian/:file_name
속성 유형 필수 설명
id string yes 프로젝트의 ID 또는 전체 경로.
file_name string yes Debian 패키지 파일의 이름.
distribution string no 배포 코드명 또는 스위트. 명시적 배포 및 컴포넌트로 업로드할 때 사용됩니다.
component string no 패키지 파일 컴포넌트. 명시적 배포 및 컴포넌트로 업로드할 때 사용됩니다.
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"

패키지 다운로드

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

GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name
속성 유형 필수 설명
distribution string yes Debian 배포의 코드명 또는 스위트.
letter string yes Debian 분류 (첫 글자 또는 lib-첫 글자).
package_name string yes 소스 패키지 이름.
package_version string yes 소스 패키지 버전.
file_name string yes 파일 이름.
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 yes 프로젝트 ID 또는 전체 프로젝트 경로.

그룹 수준

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

배포 Release 파일 다운로드

Debian 배포 파일을 다운로드합니다.

GET <route-prefix>/dists/*distribution/Release
속성 유형 필수 설명
distribution string yes Debian 배포의 코드명 또는 스위트.
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

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

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

서명 된 Debian 배포 파일을 다운로드합니다.

GET <route-prefix>/dists/*distribution/InRelease
속성 유형 필수 여부 설명
distribution string yes Debian 배포의 코드 이름 또는 스위트입니다.
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

이렇게 하면 현재 디렉토리에 원격 파일 이름을 사용하여 다운로드 한 파일이 작성됩니다.

릴리스 파일 서명 다운로드

Debian 릴리스 파일 서명을 다운로드합니다.

GET <route-prefix>/dists/*distribution/Release.gpg
속성 유형 필수 여부 설명
distribution string yes Debian 배포의 코드 이름 또는 스위트입니다.
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 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/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 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/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

이렇게 하면 현재 디렉토리에 원격 파일 이름을 사용하여 다운로드 한 파일이 작성됩니다.

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

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

GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
속성 유형 필수 여부 설명
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/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 데비안 배포의 코드명 또는 스위트입니다.
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 데비안 배포의 코드명 또는 스위트입니다.
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

이렇게 하면 현재 디렉토리에 원격 파일 이름을 사용하여 다운로드한 파일이 작성됩니다.