- 경로 접두어
- 핑
- 검색
- 인증
- 자격 증명 확인
- 레시피 스냅샷
- 패키지 스냅샷
- 레시피 매니페스트
- 패키지 매니페스트
- 레시피 다운로드 URL
- 패키지 다운로드 URL
- 레시피 업로드 URL
- 패키지 업로드 URL
- 레시피 파일 다운로드
- 레시피 파일 업로드
- 패키지 파일 다운로드
- 패키지 파일 업로드
- 패키지 삭제 (Conan 레시피 삭제)
Conan API
이 문서는 Conan Packages에 대한 API 문서입니다.
GitLab 패키지 레지스트리에서 Conan 패키지를 업로드하고 설치하는 방법에 대한 지침은 Conan package registry documentation을 참조하십시오.
경로 접두어
각각이 다른 범위에서 요청을 만드는 두 세트의 동일한 경로가 있습니다. - 인스턴스 수준의 접두어를 사용하여 전체 GitLab 인스턴스 범위에서 요청을 만듭니다. - 프로젝트 수준의 접두어를 사용하여 단일 프로젝트 범위에서 요청을 만듭니다.
이 문서의 예제는 모두 인스턴스 수준의 접두어를 사용합니다.
인스턴스 수준
/packages/conan/v1
인스턴스 수준 루트를 사용할 때 Conan 레시피에 대한 이름 제한이 있음을 유의하십시오.
프로젝트 수준
/projects/:id/packages/conan/v1
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 문자열 | 예 | 프로젝트 ID 또는 전체 프로젝트 경로. |
핑
GitLab Conan 레지스트리에 핑하여 가용성을 확인합니다:
GET <route-prefix>/ping
curl "https://gitlab.example.com/api/v4/packages/conan/v1/ping"
예시 응답:
""
검색
인스턴스에서 Conan 패키지를 이름별로 검색합니다:
GET <route-prefix>/conans/search
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
q
| 문자열 | 예 | 검색 쿼리. * 를 와일드카드로 사용할 수 있습니다.
|
curl --user <username>:<personal_access_token> "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"
]
}
인증
Conan 요청에 사용할 JWT를 반환하여 Bearer 헤더에서 사용합니다:
"Authorization: Bearer <token>
Conan 패키지 관리자 클라이언트는 이 토큰을 자동으로 사용합니다.
GET <route-prefix>/users/authenticate
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/packages/conan/v1/users/authenticate"
예시 응답:
eyJhbGciOiJIUzI1NiIiheR5cCI6IkpXVCJ9.eyJhY2Nlc3NfdG9rZW4iOjMyMTQyMzAsqaVzZXJfaWQiOjQwNTkyNTQsImp0aSI6IjdlNzBiZTNjLWFlNWQtNDEyOC1hMmIyLWZiOThhZWM0MWM2OSIsImlhd3r1MTYxNjYyMzQzNSwibmJmIjoxNjE2NjIzNDMwLCJleHAiOjE2MTY2MjcwMzV9.QF0Q3ZIB2GW5zNKyMSIe0HIFOITjEsZEioR-27Rtu7E
자격 증명 확인
기본 인증 자격 증명 또는 /authenticate
에서 생성된 Conan JWT의 유효성을 확인합니다.
GET <route-prefix>/users/check_credentials
curl --header "Authorization: Bearer <authenticate_token>" "https://gitlab.example.com/api/v4/packages/conan/v1/users/check_credentials
예시 응답:
ok
레시피 스냅샷
지정된 Conan 레시피의 파일 스냅샷을 반환합니다. 스냅샷은 연결된 md5 해시를 가진 파일 이름 디렉터리입니다.
GET <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| 문자열 | 예 | 패키지 이름. |
package_version
| 문자열 | 예 | 패키지 버전. |
package_username
| 문자열 | 예 | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| 문자열 | 예 | 패키지 채널. |
curl --header "Authorization: Bearer <authenticate_token>" "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 레시피와 지정된 Conan 참조를 가진 패키지 파일의 스냅샷을 반환합니다. 스냅샷은 연결된 md5 해시를 가진 파일 이름 디렉터리입니다.
GET <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| 문자열 | 예 | 패키지 이름. |
package_version
| 문자열 | 예 | 패키지 버전. |
package_username
| 문자열 | 예 | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| 문자열 | 예 | 패키지 채널. |
conan_package_reference
| 문자열 | 예 | Conan 패키지의 참조 해시. Conan이 이 값을 생성합니다. |
curl --header "Authorization: Bearer <authenticate_token>" "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 <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/digest
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름입니다. |
package_version
| string | yes | 패키지 버전입니다. |
package_username
| string | yes | 패키지의 Conan 사용자 이름입니다. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지의 채널입니다. |
curl --header "Authorization: Bearer <authenticate_token>" "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에는 /projects/:id
가 포함됩니다.
패키지 매니페스트
매니페스트는 패키지 파일 이름 및 해당 다운로드 URL의 디렉터리입니다.
GET <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름입니다. |
package_version
| string | yes | 패키지 버전입니다. |
package_username
| string | yes | 패키지의 Conan 사용자 이름입니다. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지의 채널입니다. |
conan_package_reference
| string | yes | Conan 패키지의 참조 해시입니다. Conan이 이 값을 생성합니다. |
curl --header "Authorization: Bearer <authenticate_token>" "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에는 /projects/:id
가 포함됩니다.
레시피 다운로드 URL
레시피 다운로드 URL은 레시피 파일 이름과 해당 다운로드 URL의 디렉터리을 반환합니다. 이 속성은 recipe manifest 엔드포인트와 동일한 페이로드입니다.
GET <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/download_urls
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름입니다. |
package_version
| string | yes | 패키지 버전입니다. |
package_username
| string | yes | 패키지의 Conan 사용자 이름입니다. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지의 채널입니다. |
curl --header "Authorization: Bearer <authenticate_token>" "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에는 /projects/:id
가 포함됩니다.
패키지 다운로드 URL
패키지 다운로드 URL은 패키지 파일 이름과 해당 다운로드 URL의 디렉터리을 반환합니다. 이 URL은 package manifest 엔드포인트와 동일한 페이로드입니다.
GET <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름입니다. |
package_version
| string | yes | 패키지 버전입니다. |
package_username
| string | yes | 패키지의 Conan 사용자 이름입니다. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지의 채널입니다. |
conan_package_reference
| string | yes | Conan 패키지의 참조 해시입니다. Conan이 이 값을 생성합니다. |
curl --header "Authorization: Bearer <authenticate_token>" "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에는 /projects/:id
가 포함됩니다.
레시피 업로드 URL
레시피 파일 이름과 파일 크기의 디렉터리이 주어지면 각 파일을 업로드할 URL 디렉터리이 반환됩니다.
POST <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름 |
package_version
| string | yes | 패키지 버전 |
package_username
| string | yes | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지 채널 |
예제 요청 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}' \
"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에 /projects/:id
가 포함됩니다.
패키지 업로드 URL
패키지 파일 이름과 파일 크기의 디렉터리이 주어지면 각 파일을 업로드할 URL 디렉터리이 반환됩니다.
POST <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름 |
package_version
| string | yes | 패키지 버전 |
package_username
| string | yes | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지 채널 |
conan_package_reference
| string | yes | 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}'
"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에 /projects/:id
가 포함됩니다.
레시피 파일 다운로드
레시피 파일을 패키지 레지스트리에 다운로드합니다. 레시피 다운로드 URL 엔드포인트에서 반환된 다운로드 URL을 사용해야 합니다.
GET packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름 |
package_version
| string | yes | 패키지 버전 |
package_username
| string | yes | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지 채널 |
recipe_revision
| string | yes | 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 항상 0 의 기본값을 사용합니다.
|
file_name
| string | yes | 요청한 파일의 이름과 확장자 |
curl --header "Authorization: Bearer <authenticate_token>" "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>" "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
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | yes | 패키지 이름 |
package_version
| string | yes | 패키지 버전 |
package_username
| string | yes | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | yes | 패키지 채널 |
recipe_revision
| string | yes | 레시피의 리비전. GitLab은 아직 Conan 리비전을 지원하지 않으므로 항상 0 의 기본값을 사용합니다.
|
file_name
| string | yes | 요청한 파일의 이름과 확장자 |
요청 본문에 파일 내용을 제공합니다:
curl --request PUT \
--user <username>:<personal_access_token> \
--upload-file path/to/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"
패키지 파일 다운로드
패키지 파일을 패키지 레지스트리에 다운로드하세요. 패키지 다운로드 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
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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>" "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>" "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
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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>:<personal_access_token> \
--upload-file path/to/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"
패키지 삭제 (Conan 레시피 삭제)
Conan 레시피 및 패키지 파일을 레지스트리에서 삭제하세요:
DELETE <route-prefix>/conans/:package_name/:package_version/:package_username/:package_channel
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
package_name
| string | 예 | 패키지 이름 |
package_version
| string | 예 | 패키지 버전 |
package_username
| string | 예 | 패키지의 Conan 사용자 이름. 이 속성은 프로젝트의 + 로 구분된 전체 경로입니다.
|
package_channel
| string | 예 | 패키지 채널 |
curl --request DELETE --header "Authorization: Bearer <authenticate_token>" "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"
}