InfoGrab Docs

Conan v1 API

요약

Conan v2 작업에 대해서는 Conan v2 API를 참조하세요. 이 API를 사용하여 Conan v1 패키지 매니저와 상호작용하세요. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 일반적으로 이 엔드포인트는 Conan 1 패키지 매니저 클라이언트에서 사용되며 수동 사용을 위한 것이 아닙니다.

Note

Conan v2 작업에 대해서는 Conan v2 API를 참조하세요.

이 API를 사용하여 Conan v1 패키지 매니저와 상호작용하세요. 이 엔드포인트는 프로젝트와 인스턴스 모두에서 작동합니다.

Note

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 자격 증명이 어떻게 전달되는지 각 라우트를 참조하세요. 문서화되지 않은 인증 방법은 나중에 제거될 수 있습니다.

일반적으로 이 엔드포인트는 Conan 1 패키지 매니저 클라이언트에서 사용되며 수동 사용을 위한 것이 아닙니다.

Warning

Conan 레지스트리는 FIPS 호환이 아니며 FIPS 모드가 활성화되면 비활성화됩니다. 이 엔드포인트는 모두 404 Not Found를 반환합니다.

인증 토큰 생성#

Conan 패키지 매니저 클라이언트의 다른 요청에서 Bearer 헤더로 사용하기 위한 JSON 웹 토큰(JWT)을 생성합니다.

"Authorization: Bearer <authenticate_token>"
GET /packages/conan/v1/users/authenticate
GET /projects/:id/packages/conan/v1/users/authenticate
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --user <username>:<your_access_token> \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/users/authenticate"

응답 예시:

eyJhbGciOiJIUzI1NiIiheR5cCI6IkpXVCJ9.eyJhY2Nlc3NfdG9rZW4iOjMyMTQyMzAsqaVzZXJfaWQiOjQwNTkyNTQsImp0aSI6IjdlNzBiZTNjLWFlNWQtNDEyOC1hMmIyLWZiOThhZWM0MWM2OSIsImlhd3r1MTYxNjYyMzQzNSwibmJmIjoxNjE2NjIzNDMwLCJleHAiOjE2MTY2MjcwMzV9.QF0Q3ZIB2GW5zNKyMSIe0HIFOITjEsZEioR-27Rtu7E

Conan 저장소 가용성 확인#

GitLab Conan 저장소의 가용성을 확인합니다.

GET /packages/conan/v1/ping
GET /projects/:id/packages/conan/v1/ping
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --url "https://gitlab.example.com/api/v4/packages/conan/v1/ping"

응답 예시:

""

Conan 패키지 검색#

지정된 Conan 패키지의 인스턴스를 검색합니다.

GET /packages/conan/v1/conans/search
GET /projects/:id/packages/conan/v1/conans/search
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
q string 검색 쿼리. 와일드카드로 *를 사용할 수 있습니다.
curl --user <username>:<your_access_token> \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/search?q=Hello*"

응답 예시:

{
  "results": [
    "Hello/0.1@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan_test_prod/stable",
    "Hello/0.2@foo+conan_test_prod/beta",
    "Hello/0.3@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan-reference-test/stable",
    "HelloWorld/0.1@baz+conan-reference-test/beta"
    "hello-world/0.4@buz+conan-test/alpha"
  ]
}

인증 자격 증명 확인#

기본 인증(Basic Auth) 자격 증명 또는 /authenticate 엔드포인트에서 생성된 지정된 Conan JWT의 유효성을 확인합니다.

GET /packages/conan/v1/users/check_credentials
GET /projects/:id/packages/conan/v1/users/check_credentials
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/users/check_credentials"

응답 예시:

ok

레시피 스냅샷 가져오기#

지정된 Conan 레시피의 파일 스냅샷을 가져옵니다. 스냅샷은 연관된 MD5 해시와 함께 파일 이름 목록입니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
GET /projects/:id/packages/conan/v1/conans/:package_version/:package_username/:package_channel
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable"

응답 예시:

{
  "conan_sources.tgz": "eadf19b33f4c3c7e113faabf26e76277",
  "conanfile.py": "25e55b96a28f81a14ba8e8a8c99eeace",
  "conanmanifest.txt": "5b6fd77a2ba14303ce4cdb08c87e82ab"
}

패키지 스냅샷 가져오기#

지정된 Conan 패키지 및 참조의 파일 스냅샷을 가져옵니다. 스냅샷은 연관된 MD5 해시와 함께 파일 이름 목록입니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f"

응답 예시:

{
  "conan_package.tgz": "749b29bdf72587081ca03ec033ee59dc",
  "conaninfo.txt": "32859d737fe84e6a7ccfa4d64dc0d1f2",
  "conanmanifest.txt": "a86b398e813bd9aa111485a9054a2301"
}

레시피 매니페스트 가져오기#

지정된 레시피에 대한 파일 목록과 연관된 다운로드 URL이 포함된 매니페스트를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/digest"

응답 예시:

{
  "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz",
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

패키지 매니페스트 가져오기#

지정된 패키지에 대한 파일 목록과 연관된 다운로드 URL이 포함된 매니페스트를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/digest"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt"
}

모든 레시피 다운로드 URL 목록 조회#

지정된 레시피에 대한 모든 파일과 연관된 다운로드 URL을 나열합니다. 레시피 매니페스트 엔드포인트와 동일한 페이로드를 반환합니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/digest"

응답 예시:

{
  "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz",
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

모든 패키지 다운로드 URL 목록 조회#

지정된 패키지에 대한 모든 파일과 연관된 다운로드 URL을 나열합니다. 패키지 매니페스트 엔드포인트와 동일한 페이로드를 반환합니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/download_urls"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt"
}

모든 레시피 업로드 URL 목록 조회#

지정된 레시피 파일 모음의 업로드 URL을 나열합니다. 요청에는 개별 파일의 이름과 크기가 포함된 JSON 객체가 포함되어야 합니다.

POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls
POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.

요청 JSON 페이로드 예시:

페이로드에는 파일의 이름과 크기가 모두 포함되어야 합니다.

{
  "conanfile.py": 410,
  "conanmanifest.txt": 130
}
curl --request POST \
     --header "Authorization: Bearer <authenticate_token>" \
     --header "Content-Type: application/json" \
     --data '{"conanfile.py":410,"conanmanifest.txt":130}' \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/upload_urls"

응답 예시:

{
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

모든 패키지 업로드 URL 목록 조회#

지정된 패키지 파일 모음의 업로드 URL을 나열합니다. 요청에는 개별 파일의 이름과 크기가 포함된 JSON 객체가 포함되어야 합니다.

POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls
POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.

요청 JSON 페이로드 예시:

페이로드에는 파일의 이름과 크기가 모두 포함되어야 합니다.

{
  "conan_package.tgz": 5412,
  "conanmanifest.txt": 130,
  "conaninfo.txt": 210
}
curl --request POST \
     --header "Authorization: Bearer <authenticate_token>" \
     --header "Content-Type: application/json" \
     --data '{"conan_package.tgz":5412,"conanmanifest.txt":130,"conaninfo.txt":210}' \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/upload_urls"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"
}

레시피 파일 가져오기#

패키지 레지스트리에서 지정된 레시피 파일을 가져옵니다. 레시피 다운로드 URL 엔드포인트에서 반환된 다운로드 URL을 사용해야 합니다.

GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py"

다음을 사용하여 파일에 출력을 쓸 수도 있습니다:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py" \
     >> conanfile.py

이 예시는 현재 디렉토리의 conanfile.py에 씁니다.

레시피 파일 업로드#

패키지 레지스트리에 지정된 레시피 파일을 업로드합니다. 레시피 업로드 URL 엔드포인트에서 반환된 업로드 URL을 사용해야 합니다.

PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.

요청 본문에 파일 컨텍스트를 제공하세요:

curl --request PUT \
     --user <username>:<personal_access_token> \
     --upload-file path/to/conanfile.py \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py"

패키지 파일 가져오기#

패키지 레지스트리에서 지정된 패키지 파일을 가져옵니다. 패키지 다운로드 URL 엔드포인트에서 반환된 다운로드 URL을 사용해야 합니다.

GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
package_revision string 패키지의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"

다음을 사용하여 파일에 출력을 쓸 수도 있습니다:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt" \
     >> conaninfo.txt

이 예시는 현재 디렉토리의 conaninfo.txt에 씁니다.

패키지 파일 업로드#

패키지 레지스트리에 지정된 패키지 파일을 업로드합니다. 패키지 업로드 URL 엔드포인트에서 반환된 업로드 URL을 사용해야 합니다.

PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
package_revision string 패키지의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.

요청 본문에 파일 컨텍스트를 제공하세요:

curl --request PUT \
     --user <username>:<your_access_token> \
     --upload-file path/to/conaninfo.txt \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"

레시피 및 패키지 삭제#

패키지 레지스트리에서 지정된 Conan 레시피와 연관된 패키지 파일을 삭제합니다.

DELETE /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
DELETE /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --request DELETE \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable"

응답 예시:

{
  "id": 1,
  "project_id": 123,
  "created_at": "2020-08-19T13:17:28.655Z",
  "updated_at": "2020-08-19T13:17:28.655Z",
  "name": "my-package",
  "version": "1.0",
  "package_type": "conan",
  "creator_id": null,
  "status": "default"
}

패키지 참조 메타데이터 가져오기#

지정된 패키지의 모든 패키지 참조에 대한 메타데이터를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/search"

응답 예시:

{
  "103f6067a947f366ef91fc1b7da351c588d1827f": {
    "settings": {
      "arch": "x86_64",
      "build_type": "Release",
      "compiler": "gcc",
      "compiler.libcxx": "libstdc++",
      "compiler.version": "9",
      "os": "Linux"
    },
    "options": {
      "shared": "False"
    },
    "requires": {
      "zlib/1.2.11": null
    },
    "recipe_hash": "75151329520e7685dcf5da49ded2fec0"
  }
}

응답에는 각 패키지 참조에 대한 다음 메타데이터가 포함됩니다:

  • settings: 패키지에 사용된 빌드 설정.
  • options: 패키지 옵션.
  • requires: 패키지에 필요한 의존성.
  • recipe_hash: 레시피의 해시.

Conan v1 API

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

Conan v2 작업에 대해서는 Conan v2 API를 참조하세요. 이 API를 사용하여 Conan v1 패키지 매니저와 상호작용하세요. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 일반적으로 이 엔드포인트는 Conan 1 패키지 매니저 클라이언트에서 사용되며 수동 사용을 위한 것이 아닙니다.

Note

Conan v2 작업에 대해서는 Conan v2 API를 참조하세요.

이 API를 사용하여 Conan v1 패키지 매니저와 상호작용하세요. 이 엔드포인트는 프로젝트와 인스턴스 모두에서 작동합니다.

Note

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 자격 증명이 어떻게 전달되는지 각 라우트를 참조하세요. 문서화되지 않은 인증 방법은 나중에 제거될 수 있습니다.

일반적으로 이 엔드포인트는 Conan 1 패키지 매니저 클라이언트에서 사용되며 수동 사용을 위한 것이 아닙니다.

Warning

Conan 레지스트리는 FIPS 호환이 아니며 FIPS 모드가 활성화되면 비활성화됩니다. 이 엔드포인트는 모두 404 Not Found를 반환합니다.

인증 토큰 생성#

Conan 패키지 매니저 클라이언트의 다른 요청에서 Bearer 헤더로 사용하기 위한 JSON 웹 토큰(JWT)을 생성합니다.

"Authorization: Bearer <authenticate_token>"
GET /packages/conan/v1/users/authenticate
GET /projects/:id/packages/conan/v1/users/authenticate
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --user <username>:<your_access_token> \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/users/authenticate"

응답 예시:

eyJhbGciOiJIUzI1NiIiheR5cCI6IkpXVCJ9.eyJhY2Nlc3NfdG9rZW4iOjMyMTQyMzAsqaVzZXJfaWQiOjQwNTkyNTQsImp0aSI6IjdlNzBiZTNjLWFlNWQtNDEyOC1hMmIyLWZiOThhZWM0MWM2OSIsImlhd3r1MTYxNjYyMzQzNSwibmJmIjoxNjE2NjIzNDMwLCJleHAiOjE2MTY2MjcwMzV9.QF0Q3ZIB2GW5zNKyMSIe0HIFOITjEsZEioR-27Rtu7E

Conan 저장소 가용성 확인#

GitLab Conan 저장소의 가용성을 확인합니다.

GET /packages/conan/v1/ping
GET /projects/:id/packages/conan/v1/ping
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --url "https://gitlab.example.com/api/v4/packages/conan/v1/ping"

응답 예시:

""

Conan 패키지 검색#

지정된 Conan 패키지의 인스턴스를 검색합니다.

GET /packages/conan/v1/conans/search
GET /projects/:id/packages/conan/v1/conans/search
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
q string 검색 쿼리. 와일드카드로 *를 사용할 수 있습니다.
curl --user <username>:<your_access_token> \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/search?q=Hello*"

응답 예시:

{
  "results": [
    "Hello/0.1@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan_test_prod/stable",
    "Hello/0.2@foo+conan_test_prod/beta",
    "Hello/0.3@foo+conan_test_prod/beta",
    "Hello/0.1@foo+conan-reference-test/stable",
    "HelloWorld/0.1@baz+conan-reference-test/beta"
    "hello-world/0.4@buz+conan-test/alpha"
  ]
}

인증 자격 증명 확인#

기본 인증(Basic Auth) 자격 증명 또는 /authenticate 엔드포인트에서 생성된 지정된 Conan JWT의 유효성을 확인합니다.

GET /packages/conan/v1/users/check_credentials
GET /projects/:id/packages/conan/v1/users/check_credentials
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/users/check_credentials"

응답 예시:

ok

레시피 스냅샷 가져오기#

지정된 Conan 레시피의 파일 스냅샷을 가져옵니다. 스냅샷은 연관된 MD5 해시와 함께 파일 이름 목록입니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
GET /projects/:id/packages/conan/v1/conans/:package_version/:package_username/:package_channel
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable"

응답 예시:

{
  "conan_sources.tgz": "eadf19b33f4c3c7e113faabf26e76277",
  "conanfile.py": "25e55b96a28f81a14ba8e8a8c99eeace",
  "conanmanifest.txt": "5b6fd77a2ba14303ce4cdb08c87e82ab"
}

패키지 스냅샷 가져오기#

지정된 Conan 패키지 및 참조의 파일 스냅샷을 가져옵니다. 스냅샷은 연관된 MD5 해시와 함께 파일 이름 목록입니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f"

응답 예시:

{
  "conan_package.tgz": "749b29bdf72587081ca03ec033ee59dc",
  "conaninfo.txt": "32859d737fe84e6a7ccfa4d64dc0d1f2",
  "conanmanifest.txt": "a86b398e813bd9aa111485a9054a2301"
}

레시피 매니페스트 가져오기#

지정된 레시피에 대한 파일 목록과 연관된 다운로드 URL이 포함된 매니페스트를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/digest"

응답 예시:

{
  "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz",
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

패키지 매니페스트 가져오기#

지정된 패키지에 대한 파일 목록과 연관된 다운로드 URL이 포함된 매니페스트를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/digest"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt"
}

모든 레시피 다운로드 URL 목록 조회#

지정된 레시피에 대한 모든 파일과 연관된 다운로드 URL을 나열합니다. 레시피 매니페스트 엔드포인트와 동일한 페이로드를 반환합니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/digest"

응답 예시:

{
  "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz",
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

모든 패키지 다운로드 URL 목록 조회#

지정된 패키지에 대한 모든 파일과 연관된 다운로드 URL을 나열합니다. 패키지 매니페스트 엔드포인트와 동일한 페이로드를 반환합니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/download_urls"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt"
}

모든 레시피 업로드 URL 목록 조회#

지정된 레시피 파일 모음의 업로드 URL을 나열합니다. 요청에는 개별 파일의 이름과 크기가 포함된 JSON 객체가 포함되어야 합니다.

POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls
POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.

요청 JSON 페이로드 예시:

페이로드에는 파일의 이름과 크기가 모두 포함되어야 합니다.

{
  "conanfile.py": 410,
  "conanmanifest.txt": 130
}
curl --request POST \
     --header "Authorization: Bearer <authenticate_token>" \
     --header "Content-Type: application/json" \
     --data '{"conanfile.py":410,"conanmanifest.txt":130}' \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/upload_urls"

응답 예시:

{
  "conanfile.py": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanmanifest.txt"
}

모든 패키지 업로드 URL 목록 조회#

지정된 패키지 파일 모음의 업로드 URL을 나열합니다. 요청에는 개별 파일의 이름과 크기가 포함된 JSON 객체가 포함되어야 합니다.

POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls
POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.

요청 JSON 페이로드 예시:

페이로드에는 파일의 이름과 크기가 모두 포함되어야 합니다.

{
  "conan_package.tgz": 5412,
  "conanmanifest.txt": 130,
  "conaninfo.txt": 210
}
curl --request POST \
     --header "Authorization: Bearer <authenticate_token>" \
     --header "Content-Type: application/json" \
     --data '{"conan_package.tgz":5412,"conanmanifest.txt":130,"conaninfo.txt":210}' \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/upload_urls"

응답 예시:

{
  "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz",
  "conanmanifest.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conanmanifest.txt",
  "conaninfo.txt": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"
}

레시피 파일 가져오기#

패키지 레지스트리에서 지정된 레시피 파일을 가져옵니다. 레시피 다운로드 URL 엔드포인트에서 반환된 다운로드 URL을 사용해야 합니다.

GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py"

다음을 사용하여 파일에 출력을 쓸 수도 있습니다:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py" \
     >> conanfile.py

이 예시는 현재 디렉토리의 conanfile.py에 씁니다.

레시피 파일 업로드#

패키지 레지스트리에 지정된 레시피 파일을 업로드합니다. 레시피 업로드 URL 엔드포인트에서 반환된 업로드 URL을 사용해야 합니다.

PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.

요청 본문에 파일 컨텍스트를 제공하세요:

curl --request PUT \
     --user <username>:<personal_access_token> \
     --upload-file path/to/conanfile.py \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conanfile.py"

패키지 파일 가져오기#

패키지 레지스트리에서 지정된 패키지 파일을 가져옵니다. 패키지 다운로드 URL 엔드포인트에서 반환된 다운로드 URL을 사용해야 합니다.

GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
package_revision string 패키지의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"

다음을 사용하여 파일에 출력을 쓸 수도 있습니다:

curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt" \
     >> conaninfo.txt

이 예시는 현재 디렉토리의 conaninfo.txt에 씁니다.

패키지 파일 업로드#

패키지 레지스트리에 지정된 패키지 파일을 업로드합니다. 패키지 업로드 URL 엔드포인트에서 반환된 업로드 URL을 사용해야 합니다.

PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
recipe_revision string 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
conan_package_reference string Conan 패키지의 참조 해시. Conan에서 이 값을 생성합니다.
package_revision string 패키지의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 기본값인 0이 항상 사용됩니다.
file_name string 요청된 파일의 이름 및 파일 확장자.

요청 본문에 파일 컨텍스트를 제공하세요:

curl --request PUT \
     --user <username>:<your_access_token> \
     --upload-file path/to/conaninfo.txt \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conaninfo.txt"

레시피 및 패키지 삭제#

패키지 레지스트리에서 지정된 Conan 레시피와 연관된 패키지 파일을 삭제합니다.

DELETE /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
DELETE /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --request DELETE \
     --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable"

응답 예시:

{
  "id": 1,
  "project_id": 123,
  "created_at": "2020-08-19T13:17:28.655Z",
  "updated_at": "2020-08-19T13:17:28.655Z",
  "name": "my-package",
  "version": "1.0",
  "package_type": "conan",
  "creator_id": null,
  "status": "default"
}

패키지 참조 메타데이터 가져오기#

지정된 패키지의 모든 패키지 참조에 대한 메타데이터를 가져옵니다.

GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search
GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search
속성 유형 필수 여부 설명
id string 조건부 프로젝트 ID 또는 전체 프로젝트 경로. 프로젝트 엔드포인트에만 필요.
package_name string 패키지 이름.
package_version string 패키지 버전.
package_username string 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 +로 구분된 전체 경로입니다.
package_channel string 패키지 채널.
curl --header "Authorization: Bearer <authenticate_token>" \
     --url "https://gitlab.example.com/api/v4/packages/conan/v1/conans/my-package/1.0/my-group+my-project/stable/search"

응답 예시:

{
  "103f6067a947f366ef91fc1b7da351c588d1827f": {
    "settings": {
      "arch": "x86_64",
      "build_type": "Release",
      "compiler": "gcc",
      "compiler.libcxx": "libstdc++",
      "compiler.version": "9",
      "os": "Linux"
    },
    "options": {
      "shared": "False"
    },
    "requires": {
      "zlib/1.2.11": null
    },
    "recipe_hash": "75151329520e7685dcf5da49ded2fec0"
  }
}

응답에는 각 패키지 참조에 대한 다음 메타데이터가 포함됩니다:

  • settings: 패키지에 사용된 빌드 설정.
  • options: 패키지 옵션.
  • requires: 패키지에 필요한 의존성.
  • recipe_hash: 레시피의 해시.