Debian API
Offering: GitLab Self-Managed
이 API는 dput 및 apt-get과 같은 Debian 관련 패키지 클라이언트에서 사용하며, 일반적으로 수동 사용을 위한 것이 아닙니다. 이 API를 사용하여 Debian 패키지 관리자 클라이언트와 상호작용합니다.
히스토리
- 기본적으로 비활성화된 기능 플래그 뒤에 배포됩니다.
이 API는 dput 및 apt-get과 같은 Debian 관련 패키지 클라이언트에서 사용하며, 일반적으로 수동 사용을 위한 것이 아닙니다. 이 API는 개발 중이며 기능이 제한되어 프로덕션 사용에 준비되지 않았습니다.
이 API를 사용하여 Debian 패키지 관리자 클라이언트와 상호작용합니다.
이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 Debian 레지스트리 설명서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.
Debian API 활성화#
Debian API는 기본적으로 비활성화된 기능 플래그 뒤에 있습니다. GitLab Rails 콘솔에 액세스 권한이 있는 GitLab 관리자는 이를 활성화할 수 있습니다. 활성화하려면 Debian API 활성화의 지침을 따르세요.
Debian 그룹 API 활성화#
Debian 그룹 API는 기본적으로 비활성화된 기능 플래그 뒤에 있습니다. GitLab Rails 콘솔에 액세스 권한이 있는 GitLab 관리자는 이를 활성화할 수 있습니다. 활성화하려면 Debian 그룹 API 활성화의 지침을 따르세요.
Debian 패키지 저장소에 인증#
Debian 패키지 저장소에 인증을 참조하세요.
패키지 파일 업로드#
지정된 프로젝트의 Debian 패키지 파일을 업로드합니다.
PUT projects/:id/packages/debian/:file_name
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
file_name |
string | 예 | Debian 패키지 파일의 이름. |
distribution |
string | 아니요 | 배포판 codename 또는 suite. 명시적인 배포판 및 컴포넌트로 업로드하기 위해 component와 함께 사용됩니다. |
component |
string | 아니요 | 패키지 파일 컴포넌트. 명시적인 배포판 및 컴포넌트로 업로드하기 위해 distribution과 함께 사용됩니다. |
curl --request PUT \
--user "<username>:<personal_access_token>" \
--upload-file path/to/mypkg.deb \
--url "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 \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
letter |
string | 예 | Debian 분류(첫 글자 또는 lib-첫 글자). |
package_name |
string | 예 | 소스 패키지 이름. |
package_version |
string | 예 | 소스 패키지 버전. |
file_name |
string | 예 | 파일명. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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>" \
--url "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 또는 전체 그룹 경로. |
배포판 Release 파일 다운로드#
지정된 Debian 배포판 Release 파일을 다운로드합니다.
GET <route-prefix>/dists/*distribution/Release
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
distribution |
string | 예 | Debian 배포판의 codename 또는 suite. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"
출력을 파일로 저장:
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \
--remote-name
이렇게 하면 현재 디렉토리에 원격 파일명을 사용하여 다운로드된 파일이 작성됩니다.
서명된 배포판 Release 파일 다운로드#
지정된 서명된 Debian 배포판 Release 파일을 다운로드합니다.
GET <route-prefix>/dists/*distribution/InRelease
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
distribution |
string | 예 | Debian 배포판의 codename 또는 suite. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"
출력을 파일로 저장:
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release.gpg"
출력을 파일로 저장:
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
architecture |
string | 예 | 배포판 아키텍처 유형. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
architecture |
string | 예 | 배포판 아키텍처 유형. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/binary-amd64/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
--remote-name
이렇게 하면 현재 디렉토리에 원격 파일명을 사용하여 다운로드된 파일이 작성됩니다.
Debian Installer 패키지 인덱스 다운로드#
지정된 Debian Installer 패키지 인덱스를 다운로드합니다.
GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/Packages
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
distribution |
string | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
architecture |
string | 예 | 배포판 아키텍처 유형. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/debian-installer/binary-amd64/Packages" \
--remote-name
이렇게 하면 현재 디렉토리에 원격 파일명을 사용하여 다운로드된 파일이 작성됩니다.
해시로 Debian Installer 패키지 인덱스 다운로드#
해시로 지정된 Debian Installer 패키지 인덱스를 다운로드합니다.
GET <route-prefix>/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha256
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
distribution |
string | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
architecture |
string | 예 | 배포판 아키텍처 유형. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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>" \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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 | 예 | Debian 배포판의 codename 또는 suite. |
component |
string | 예 | 배포판 컴포넌트 이름. |
curl --header "PRIVATE-TOKEN: <personal_access_token>" \
--url "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>" \
--url "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/source/by-hash/SHA256/66a045b452102c59d840ec097d59d9467e13a3f34f6494e539ffd32c1bb35f18" \
--remote-name
이렇게 하면 현재 디렉토리에 원격 파일명을 사용하여 다운로드된 파일이 작성됩니다.
