InfoGrab Docs

패키지 API

요약

이 API를 사용하여 GitLab 패키지와 상호작용합니다. 지정된 프로젝트의 모든 패키지를 나열합니다. 기본적으로 GET 요청은 20개의 결과를 반환합니다. 상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

히스토리

이 API를 사용하여 GitLab 패키지와 상호작용합니다.

패키지 목록 조회#

히스토리
  • pipelines는 GitLab 16.1에서 폐기되었습니다.

프로젝트별#

지정된 프로젝트의 모든 패키지를 나열합니다. 모든 패키지 유형이 결과에 포함됩니다. 인증 없이 접근하면 공개 프로젝트의 패키지만 반환됩니다. 기본적으로 default, deprecated, error 상태의 패키지가 반환됩니다. status 파라미터를 사용하여 다른 패키지를 볼 수 있습니다.

GET /projects/:id/packages
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
order_by string no 정렬에 사용할 필드. created_at(기본값), name, version, type 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
package_type string no 유형별로 반환된 패키지를 필터링합니다. composer, conan, generic, golang, helm, maven, npm, nuget, pypi, terraform_module 중 하나
package_name string no 이름으로 프로젝트 패키지를 퍼지 검색하여 필터링합니다.
package_version string no 버전별로 프로젝트 패키지를 필터링합니다. include_versionless와 함께 사용하면 버전 없는 패키지는 반환되지 않습니다. GitLab 16.6에서 도입되었습니다.
include_versionless boolean no true로 설정하면 버전 없는 패키지가 응답에 포함됩니다.
status string no 상태별로 반환된 패키지를 필터링합니다. default, hidden, processing, error, pending_destruction, deprecated 중 하나
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages"

응답 예시:

[
  {
    "id": 1,
    "name": "com/mycompany/my-app",
    "version": "1.0-SNAPSHOT",
    "package_type": "maven",
    "created_at": "2019-11-27T03:37:38.711Z",
    "creator_id": 1,
    "pipeline": {
      "id": 123,
      "status": "pending",
      "ref": "new-pipeline",
      "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
      "web_url": "https://example.com/foo/bar/pipelines/47",
      "created_at": "2016-08-11T11:28:34.085Z",
      "updated_at": "2016-08-11T11:32:35.169Z",
      "user": {
        "name": "Administrator",
        "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
      }
    },
    "pipelines": [],
    "tags": []
  },
  {
    "id": 2,
    "name": "@foo/bar",
    "version": "1.0.3",
    "package_type": "npm",
    "created_at": "2019-11-27T03:37:38.711Z",
    "tags": []
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

그룹별#

지정된 그룹의 모든 패키지를 나열합니다. 인증 없이 접근하면 공개 프로젝트의 패키지만 반환됩니다. 기본적으로 default, deprecated, error 상태의 패키지가 반환됩니다. status 파라미터를 사용하여 다른 패키지를 볼 수 있습니다.

GET /groups/:id/packages
속성 유형 필수 설명
id integer or string yes 그룹의 ID 또는 URL 인코딩된 경로
exclude_subgroups boolean no 파라미터가 true로 포함되면 서브그룹 프로젝트의 패키지가 나열되지 않습니다. 기본값은 false
order_by string no 정렬에 사용할 필드. created_at(기본값), name, version, type, project_path 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
package_type string no 유형별로 반환된 패키지를 필터링합니다. composer, conan, generic, golang, helm, maven, npm, nuget, pypi, terraform_module 중 하나
package_name string no 이름으로 프로젝트 패키지를 퍼지 검색하여 필터링합니다.
package_version string no 버전별로 반환된 패키지를 필터링합니다. include_versionless와 함께 사용하면 버전 없는 패키지는 반환되지 않습니다. GitLab 16.6에서 도입되었습니다.
include_versionless boolean no true로 설정하면 버전 없는 패키지가 응답에 포함됩니다.
status string no 상태별로 반환된 패키지를 필터링합니다. default, hidden, processing, error, pending_destruction, deprecated 중 하나
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=false"

응답 예시:

[
  {
    "id": 1,
    "name": "com/mycompany/my-app",
    "version": "1.0-SNAPSHOT",
    "package_type": "maven",
    "_links": {
      "web_path": "/namespace1/project1/-/packages/1",
      "delete_api_path": "/namespace1/project1/-/packages/1"
    },
    "created_at": "2019-11-27T03:37:38.711Z",
    "creator_id": 1,
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  },
  {
    "id": 2,
    "name": "@foo/bar",
    "version": "1.0.3",
    "package_type": "npm",
    "_links": {
      "web_path": "/namespace1/project1/-/packages/1",
      "delete_api_path": "/namespace1/project1/-/packages/1"
    },
    "created_at": "2019-11-27T03:37:38.711Z",
    "tags": [],
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

creator_id 필드에는 패키지를 생성한 사용자의 ID가 포함됩니다. 패키지가 배포 토큰 또는 잡 토큰으로 생성된 경우 이 필드는 null입니다.

_links 객체에는 다음 속성이 포함됩니다:

  • web_path: GitLab에서 방문하여 패키지 세부 정보를 볼 수 있는 경로
  • delete_api_path: 패키지를 삭제하는 API 경로. 요청한 사용자가 삭제 권한이 있는 경우에만 사용 가능

상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

프로젝트 패키지 조회#

히스토리
  • pipelines는 GitLab 16.1에서 폐기되었습니다.

지정된 프로젝트 패키지를 조회합니다. default 또는 deprecated 상태의 패키지만 반환됩니다.

GET /projects/:id/packages/:package_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"

응답 예시:

{
  "id": 1,
  "name": "com/mycompany/my-app",
  "version": "1.0-SNAPSHOT",
  "package_type": "maven",
  "_links": {
    "web_path": "/namespace1/project1/-/packages/1",
    "delete_api_path": "/namespace1/project1/-/packages/1"
  },
  "created_at": "2019-11-27T03:37:38.711Z",
  "creator_id": 1,
  "last_downloaded_at": "2022-09-07T07:51:50.504Z",
  "pipelines": [
    {
      "id": 123,
      "status": "pending",
      "ref": "new-pipeline",
      "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
      "web_url": "https://example.com/foo/bar/pipelines/47",
      "created_at": "2016-08-11T11:28:34.085Z",
      "updated_at": "2016-08-11T11:32:35.169Z",
      "user": {
        "name": "Administrator",
        "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
      }
    }
  ],
  "versions": [
    {
      "id":2,
      "version":"2.0-SNAPSHOT",
      "created_at":"2020-04-28T04:42:11.573Z",
      "pipelines": [
        {
          "id": 234,
          "status": "pending",
          "ref": "new-pipeline",
          "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
          "web_url": "https://example.com/foo/bar/pipelines/58",
          "created_at": "2016-08-11T11:28:34.085Z",
          "updated_at": "2016-08-11T11:32:35.169Z",
          "user": {
            "name": "Administrator",
            "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
          }
        }
      ]
    }
  ]
}

creator_id 필드에는 패키지를 생성한 사용자의 ID가 포함됩니다. 패키지가 배포 토큰 또는 잡 토큰으로 생성된 경우 이 필드는 null입니다.

_links 객체에는 다음 속성이 포함됩니다:

  • web_path: GitLab에서 방문하여 패키지 세부 정보를 볼 수 있는 경로. 패키지 상태가 default 또는 deprecated인 경우에만 사용 가능
  • delete_api_path: 패키지를 삭제하는 API 경로. 요청한 사용자가 삭제 권한이 있는 경우에만 사용 가능

패키지 파일 목록 조회#

지정된 패키지의 모든 패키지 파일을 나열합니다.

GET /projects/:id/packages/:package_id/package_files
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
order_by string no 정렬에 사용할 필드. id(기본값), file_name, created_at 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/package_files"

응답 예시:

[
  {
    "id": 25,
    "package_id": 4,
    "created_at": "2018-11-07T15:25:52.199Z",
    "file_name": "my-app-1.5-20181107.152550-1.jar",
    "size": 2421,
    "file_md5": "58e6a45a629910c6ff99145a688971ac",
    "file_sha1": "ebd193463d3915d7e22219f52740056dfd26cbfe",
    "file_sha256": "a903393463d3915d7e22219f52740056dfd26cbfeff321b",
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  },
  {
    "id": 26,
    "package_id": 4,
    "created_at": "2018-11-07T15:25:56.776Z",
    "file_name": "my-app-1.5-20181107.152550-1.pom",
    "size": 1122,
    "file_md5": "d90f11d851e17c5513586b4a7e98f1b2",
    "file_sha1": "9608d068fe88aff85781811a42f32d97feb440b5",
    "file_sha256": "2987d068fe88aff85781811a42f32d97feb4f092a399"
  },
  {
    "id": 27,
    "package_id": 4,
    "created_at": "2018-11-07T15:26:00.556Z",
    "file_name": "maven-metadata.xml",
    "size": 767,
    "file_md5": "6dfd0cce1203145a927fef5e3a1c650c",
    "file_sha1": "d25932de56052d320a8ac156f745ece73f6a8cd2",
    "file_sha256": "ac849d002e56052d320a8ac156f745ece73f6a8cd2f3e82"
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

패키지 파이프라인 목록 조회#

히스토리
  • GitLab 16.1에서 도입되었습니다.

지정된 패키지의 모든 파이프라인을 나열합니다. 결과는 id 내림차순으로 정렬됩니다.

결과는 페이지네이션되며 페이지당 최대 20개의 레코드를 반환합니다.

GET /projects/:id/packages/:package_id/pipelines
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/pipelines"

응답 예시:

[
  {
    "id": 1,
    "iid": 1,
    "project_id": 9,
    "sha": "2b6127f6bb6f475c4e81afcc2251e3f941e554f9",
    "ref": "mytag",
    "status": "failed",
    "source": "push",
    "created_at": "2023-02-01T12:19:21.895Z",
    "updated_at": "2023-02-01T14:00:05.922Z",
    "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/1",
    "user": {
      "id": 1,
      "username": "root",
      "name": "Administrator",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
      "web_url": "http://gdk.test:3001/root"
    }
  },
  {
    "id": 2,
    "iid": 2,
    "project_id": 9,
    "sha": "e564015ac6cb3d8617647802c875b27d392f72a6",
    "ref": "main",
    "status": "canceled",
    "source": "push",
    "created_at": "2023-02-01T12:23:23.694Z",
    "updated_at": "2023-02-01T12:26:28.635Z",
    "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/2",
    "user": {
      "id": 1,
      "username": "root",
      "name": "Administrator",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
      "web_url": "http://gdk.test:3001/root"
    }
  }
]

프로젝트 패키지 삭제#

지정된 프로젝트 패키지를 삭제합니다.

DELETE /projects/:id/packages/:package_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"

다음 상태 코드를 반환할 수 있습니다:

  • 204 No Content: 패키지가 성공적으로 삭제되었습니다.
  • 403 Forbidden: 패키지가 삭제로부터 보호되어 있습니다.
  • 404 Not Found: 패키지를 찾을 수 없습니다.

요청 전달이 활성화된 경우 패키지를 삭제하면 종속성 혼동 위험이 발생할 수 있습니다.

패키지가 보호 규칙으로 보호된 경우 패키지 삭제가 금지됩니다.

패키지 파일 삭제#

Warning

패키지 파일을 삭제하면 패키지가 손상되어 패키지 매니저 클라이언트에서 사용할 수 없거나 가져올 수 없게 될 수 있습니다. 패키지 파일을 삭제할 때는 작업의 영향을 충분히 이해한 후 진행하세요.

지정된 패키지 파일을 삭제합니다.

DELETE /projects/:id/packages/:package_id/package_files/:package_file_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
package_file_id integer yes 패키지 파일의 ID
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/package_files/:package_file_id"

다음 상태 코드를 반환할 수 있습니다:

  • 204 No Content: 패키지가 성공적으로 삭제되었습니다.
  • 403 Forbidden: 사용자가 파일을 삭제할 권한이 없거나 패키지가 삭제로부터 보호되어 있습니다.
  • 404 Not Found: 패키지 또는 패키지 파일을 찾을 수 없습니다.

패키지 파일이 속한 패키지가 보호 규칙으로 보호된 경우 패키지 파일 삭제가 금지됩니다.

패키지 API

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

이 API를 사용하여 GitLab 패키지와 상호작용합니다. 지정된 프로젝트의 모든 패키지를 나열합니다. 기본적으로 GET 요청은 20개의 결과를 반환합니다. 상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

히스토리

이 API를 사용하여 GitLab 패키지와 상호작용합니다.

패키지 목록 조회#

히스토리
  • pipelines는 GitLab 16.1에서 폐기되었습니다.

프로젝트별#

지정된 프로젝트의 모든 패키지를 나열합니다. 모든 패키지 유형이 결과에 포함됩니다. 인증 없이 접근하면 공개 프로젝트의 패키지만 반환됩니다. 기본적으로 default, deprecated, error 상태의 패키지가 반환됩니다. status 파라미터를 사용하여 다른 패키지를 볼 수 있습니다.

GET /projects/:id/packages
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
order_by string no 정렬에 사용할 필드. created_at(기본값), name, version, type 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
package_type string no 유형별로 반환된 패키지를 필터링합니다. composer, conan, generic, golang, helm, maven, npm, nuget, pypi, terraform_module 중 하나
package_name string no 이름으로 프로젝트 패키지를 퍼지 검색하여 필터링합니다.
package_version string no 버전별로 프로젝트 패키지를 필터링합니다. include_versionless와 함께 사용하면 버전 없는 패키지는 반환되지 않습니다. GitLab 16.6에서 도입되었습니다.
include_versionless boolean no true로 설정하면 버전 없는 패키지가 응답에 포함됩니다.
status string no 상태별로 반환된 패키지를 필터링합니다. default, hidden, processing, error, pending_destruction, deprecated 중 하나
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages"

응답 예시:

[
  {
    "id": 1,
    "name": "com/mycompany/my-app",
    "version": "1.0-SNAPSHOT",
    "package_type": "maven",
    "created_at": "2019-11-27T03:37:38.711Z",
    "creator_id": 1,
    "pipeline": {
      "id": 123,
      "status": "pending",
      "ref": "new-pipeline",
      "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
      "web_url": "https://example.com/foo/bar/pipelines/47",
      "created_at": "2016-08-11T11:28:34.085Z",
      "updated_at": "2016-08-11T11:32:35.169Z",
      "user": {
        "name": "Administrator",
        "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
      }
    },
    "pipelines": [],
    "tags": []
  },
  {
    "id": 2,
    "name": "@foo/bar",
    "version": "1.0.3",
    "package_type": "npm",
    "created_at": "2019-11-27T03:37:38.711Z",
    "tags": []
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

그룹별#

지정된 그룹의 모든 패키지를 나열합니다. 인증 없이 접근하면 공개 프로젝트의 패키지만 반환됩니다. 기본적으로 default, deprecated, error 상태의 패키지가 반환됩니다. status 파라미터를 사용하여 다른 패키지를 볼 수 있습니다.

GET /groups/:id/packages
속성 유형 필수 설명
id integer or string yes 그룹의 ID 또는 URL 인코딩된 경로
exclude_subgroups boolean no 파라미터가 true로 포함되면 서브그룹 프로젝트의 패키지가 나열되지 않습니다. 기본값은 false
order_by string no 정렬에 사용할 필드. created_at(기본값), name, version, type, project_path 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
package_type string no 유형별로 반환된 패키지를 필터링합니다. composer, conan, generic, golang, helm, maven, npm, nuget, pypi, terraform_module 중 하나
package_name string no 이름으로 프로젝트 패키지를 퍼지 검색하여 필터링합니다.
package_version string no 버전별로 반환된 패키지를 필터링합니다. include_versionless와 함께 사용하면 버전 없는 패키지는 반환되지 않습니다. GitLab 16.6에서 도입되었습니다.
include_versionless boolean no true로 설정하면 버전 없는 패키지가 응답에 포함됩니다.
status string no 상태별로 반환된 패키지를 필터링합니다. default, hidden, processing, error, pending_destruction, deprecated 중 하나
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=false"

응답 예시:

[
  {
    "id": 1,
    "name": "com/mycompany/my-app",
    "version": "1.0-SNAPSHOT",
    "package_type": "maven",
    "_links": {
      "web_path": "/namespace1/project1/-/packages/1",
      "delete_api_path": "/namespace1/project1/-/packages/1"
    },
    "created_at": "2019-11-27T03:37:38.711Z",
    "creator_id": 1,
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  },
  {
    "id": 2,
    "name": "@foo/bar",
    "version": "1.0.3",
    "package_type": "npm",
    "_links": {
      "web_path": "/namespace1/project1/-/packages/1",
      "delete_api_path": "/namespace1/project1/-/packages/1"
    },
    "created_at": "2019-11-27T03:37:38.711Z",
    "tags": [],
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

creator_id 필드에는 패키지를 생성한 사용자의 ID가 포함됩니다. 패키지가 배포 토큰 또는 잡 토큰으로 생성된 경우 이 필드는 null입니다.

_links 객체에는 다음 속성이 포함됩니다:

  • web_path: GitLab에서 방문하여 패키지 세부 정보를 볼 수 있는 경로
  • delete_api_path: 패키지를 삭제하는 API 경로. 요청한 사용자가 삭제 권한이 있는 경우에만 사용 가능

상태별로 패키지를 필터링할 수 있지만, processing 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

프로젝트 패키지 조회#

히스토리
  • pipelines는 GitLab 16.1에서 폐기되었습니다.

지정된 프로젝트 패키지를 조회합니다. default 또는 deprecated 상태의 패키지만 반환됩니다.

GET /projects/:id/packages/:package_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"

응답 예시:

{
  "id": 1,
  "name": "com/mycompany/my-app",
  "version": "1.0-SNAPSHOT",
  "package_type": "maven",
  "_links": {
    "web_path": "/namespace1/project1/-/packages/1",
    "delete_api_path": "/namespace1/project1/-/packages/1"
  },
  "created_at": "2019-11-27T03:37:38.711Z",
  "creator_id": 1,
  "last_downloaded_at": "2022-09-07T07:51:50.504Z",
  "pipelines": [
    {
      "id": 123,
      "status": "pending",
      "ref": "new-pipeline",
      "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
      "web_url": "https://example.com/foo/bar/pipelines/47",
      "created_at": "2016-08-11T11:28:34.085Z",
      "updated_at": "2016-08-11T11:32:35.169Z",
      "user": {
        "name": "Administrator",
        "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
      }
    }
  ],
  "versions": [
    {
      "id":2,
      "version":"2.0-SNAPSHOT",
      "created_at":"2020-04-28T04:42:11.573Z",
      "pipelines": [
        {
          "id": 234,
          "status": "pending",
          "ref": "new-pipeline",
          "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
          "web_url": "https://example.com/foo/bar/pipelines/58",
          "created_at": "2016-08-11T11:28:34.085Z",
          "updated_at": "2016-08-11T11:32:35.169Z",
          "user": {
            "name": "Administrator",
            "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
          }
        }
      ]
    }
  ]
}

creator_id 필드에는 패키지를 생성한 사용자의 ID가 포함됩니다. 패키지가 배포 토큰 또는 잡 토큰으로 생성된 경우 이 필드는 null입니다.

_links 객체에는 다음 속성이 포함됩니다:

  • web_path: GitLab에서 방문하여 패키지 세부 정보를 볼 수 있는 경로. 패키지 상태가 default 또는 deprecated인 경우에만 사용 가능
  • delete_api_path: 패키지를 삭제하는 API 경로. 요청한 사용자가 삭제 권한이 있는 경우에만 사용 가능

패키지 파일 목록 조회#

지정된 패키지의 모든 패키지 파일을 나열합니다.

GET /projects/:id/packages/:package_id/package_files
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
order_by string no 정렬에 사용할 필드. id(기본값), file_name, created_at 중 하나
sort string no 정렬 방향. 오름차순의 경우 asc(기본값), 내림차순의 경우 desc
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/package_files"

응답 예시:

[
  {
    "id": 25,
    "package_id": 4,
    "created_at": "2018-11-07T15:25:52.199Z",
    "file_name": "my-app-1.5-20181107.152550-1.jar",
    "size": 2421,
    "file_md5": "58e6a45a629910c6ff99145a688971ac",
    "file_sha1": "ebd193463d3915d7e22219f52740056dfd26cbfe",
    "file_sha256": "a903393463d3915d7e22219f52740056dfd26cbfeff321b",
    "pipelines": [
      {
        "id": 123,
        "status": "pending",
        "ref": "new-pipeline",
        "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
        "web_url": "https://example.com/foo/bar/pipelines/47",
        "created_at": "2016-08-11T11:28:34.085Z",
        "updated_at": "2016-08-11T11:32:35.169Z",
        "user": {
          "name": "Administrator",
          "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
        }
      }
    ]
  },
  {
    "id": 26,
    "package_id": 4,
    "created_at": "2018-11-07T15:25:56.776Z",
    "file_name": "my-app-1.5-20181107.152550-1.pom",
    "size": 1122,
    "file_md5": "d90f11d851e17c5513586b4a7e98f1b2",
    "file_sha1": "9608d068fe88aff85781811a42f32d97feb440b5",
    "file_sha256": "2987d068fe88aff85781811a42f32d97feb4f092a399"
  },
  {
    "id": 27,
    "package_id": 4,
    "created_at": "2018-11-07T15:26:00.556Z",
    "file_name": "maven-metadata.xml",
    "size": 767,
    "file_md5": "6dfd0cce1203145a927fef5e3a1c650c",
    "file_sha1": "d25932de56052d320a8ac156f745ece73f6a8cd2",
    "file_sha256": "ac849d002e56052d320a8ac156f745ece73f6a8cd2f3e82"
  }
]

기본적으로 GET 요청은 20개의 결과를 반환합니다. API는 페이지네이션을 지원하기 때문입니다.

패키지 파이프라인 목록 조회#

히스토리
  • GitLab 16.1에서 도입되었습니다.

지정된 패키지의 모든 파이프라인을 나열합니다. 결과는 id 내림차순으로 정렬됩니다.

결과는 페이지네이션되며 페이지당 최대 20개의 레코드를 반환합니다.

GET /projects/:id/packages/:package_id/pipelines
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/pipelines"

응답 예시:

[
  {
    "id": 1,
    "iid": 1,
    "project_id": 9,
    "sha": "2b6127f6bb6f475c4e81afcc2251e3f941e554f9",
    "ref": "mytag",
    "status": "failed",
    "source": "push",
    "created_at": "2023-02-01T12:19:21.895Z",
    "updated_at": "2023-02-01T14:00:05.922Z",
    "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/1",
    "user": {
      "id": 1,
      "username": "root",
      "name": "Administrator",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
      "web_url": "http://gdk.test:3001/root"
    }
  },
  {
    "id": 2,
    "iid": 2,
    "project_id": 9,
    "sha": "e564015ac6cb3d8617647802c875b27d392f72a6",
    "ref": "main",
    "status": "canceled",
    "source": "push",
    "created_at": "2023-02-01T12:23:23.694Z",
    "updated_at": "2023-02-01T12:26:28.635Z",
    "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/2",
    "user": {
      "id": 1,
      "username": "root",
      "name": "Administrator",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
      "web_url": "http://gdk.test:3001/root"
    }
  }
]

프로젝트 패키지 삭제#

지정된 프로젝트 패키지를 삭제합니다.

DELETE /projects/:id/packages/:package_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"

다음 상태 코드를 반환할 수 있습니다:

  • 204 No Content: 패키지가 성공적으로 삭제되었습니다.
  • 403 Forbidden: 패키지가 삭제로부터 보호되어 있습니다.
  • 404 Not Found: 패키지를 찾을 수 없습니다.

요청 전달이 활성화된 경우 패키지를 삭제하면 종속성 혼동 위험이 발생할 수 있습니다.

패키지가 보호 규칙으로 보호된 경우 패키지 삭제가 금지됩니다.

패키지 파일 삭제#

Warning

패키지 파일을 삭제하면 패키지가 손상되어 패키지 매니저 클라이언트에서 사용할 수 없거나 가져올 수 없게 될 수 있습니다. 패키지 파일을 삭제할 때는 작업의 영향을 충분히 이해한 후 진행하세요.

지정된 패키지 파일을 삭제합니다.

DELETE /projects/:id/packages/:package_id/package_files/:package_file_id
속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
package_id integer yes 패키지의 ID
package_file_id integer yes 패키지 파일의 ID
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/package_files/:package_file_id"

다음 상태 코드를 반환할 수 있습니다:

  • 204 No Content: 패키지가 성공적으로 삭제되었습니다.
  • 403 Forbidden: 사용자가 파일을 삭제할 권한이 없거나 패키지가 삭제로부터 보호되어 있습니다.
  • 404 Not Found: 패키지 또는 패키지 파일을 찾을 수 없습니다.

패키지 파일이 속한 패키지가 보호 규칙으로 보호된 경우 패키지 파일 삭제가 금지됩니다.