InfoGrab DocsInfoGrab 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 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

그룹별#

필수 조건:

  • 그룹 계층 구조에서 하나 이상의 프로젝트에 대한 Reporter, Security Manager, Developer, Maintainer, 또는 Owner 권한

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

이 권한 모델은 GraphQL Group.packages 필드와 일치하므로, REST 및 GraphQL 엔드포인트는 동일한 호출자에 대해 동일한 패키지를 반환합니다.

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",
    "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가 포함됩니다. 패키지가 배포 토큰 또는 job 토큰으로 생성된 경우 이 필드는 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",
  "last_downloaded_at": "2022-09-07T07:51:50.504Z",
  "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"
      }
    }
  ],
  "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가 포함됩니다. 패키지가 배포 토큰 또는 job 토큰으로 생성된 경우 이 필드는 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&d=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&d=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

GitLab v19.2
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 상태의 패키지를 사용하면 잘못된 형식의 데이터나 손상된 패키지가 생길 수 있습니다.

그룹별#

필수 조건:

  • 그룹 계층 구조에서 하나 이상의 프로젝트에 대한 Reporter, Security Manager, Developer, Maintainer, 또는 Owner 권한

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

이 권한 모델은 GraphQL Group.packages 필드와 일치하므로, REST 및 GraphQL 엔드포인트는 동일한 호출자에 대해 동일한 패키지를 반환합니다.

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",
    "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가 포함됩니다. 패키지가 배포 토큰 또는 job 토큰으로 생성된 경우 이 필드는 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",
  "last_downloaded_at": "2022-09-07T07:51:50.504Z",
  "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"
      }
    }
  ],
  "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가 포함됩니다. 패키지가 배포 토큰 또는 job 토큰으로 생성된 경우 이 필드는 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&d=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&d=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: 패키지 또는 패키지 파일을 찾을 수 없습니다.

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