InfoGrab DocsInfoGrab Docs

태그 API

요약

이 API로 Git 태그를 관리합니다. 프로젝트의 모든 리포지터리 태그를 업데이트 날짜 및 시간 기준 내림차순으로 정렬해 조회합니다. 리포지터리가 공개되어 있으면 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

이 API로 Git 태그를 관리합니다. 이 API는 서명된 태그의 X.509 서명 정보도 반환합니다.

프로젝트 리포지터리 태그 전체 조회#

프로젝트의 모든 리포지터리 태그를 업데이트 날짜 및 시간 기준 내림차순으로 정렬해 조회합니다.

Note

리포지터리가 공개되어 있으면 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

GET /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by string 아니요 name, updated, version 중 하나를 기준으로 정렬한 태그를 반환합니다. version은 시맨틱 버전 번호로 정렬합니다. 기본값은 updated 입니다.
page integer 아니요 페이지네이션의 현재 페이지 번호. 기본값은 1 입니다.
page_token string 아니요 페이지네이션을 시작할 태그의 이름. 키셋 페이지네이션에 사용합니다.
search string 아니요 검색 조건에 일치하는 태그 목록을 반환합니다. ^term과 term$를 사용해 term으로 시작하거나 끝나는 태그를 찾을 수 있습니다. 그 밖의 정규 표현식은 지원하지 않습니다.
sort string 아니요 asc 또는 desc 순으로 정렬한 태그를 반환합니다. 기본값은 desc 입니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
release.description string 릴리스의 설명.
release.tag_name string 릴리스의 태그 이름.
target string 태그가 가리키는 SHA.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/projects/5/repository/tags"

응답 예시:

[
  {
    "commit": {
      "id": "2695effb5807a22ff3d138d593fd856244e155e7",
      "short_id": "2695effb",
      "title": "Initial commit",
      "created_at": "2017-07-26T11:08:53.000+02:00",
      "parent_ids": [
        "2a4b78934375d7f53875269ffd4f45fd83a84ebe"
      ],
      "message": "Initial commit",
      "author_name": "John Smith",
      "author_email": "john@example.com",
      "authored_date": "2012-05-28T04:42:42-07:00",
      "committer_name": "Jack Smith",
      "committer_email": "jack@example.com",
      "committed_date": "2012-05-28T04:42:42-07:00"
    },
    "release": {
      "tag_name": "1.0.0",
      "description": "Amazing release. Wow"
    },
    "name": "v1.0.0",
    "target": "2695effb5807a22ff3d138d593fd856244e155e7",
    "message": null,
    "protected": true,
    "created_at": "2017-07-26T11:08:53.000+02:00"
  }
]

단일 리포지터리 태그 조회#

지정한 이름의 리포지터리 태그를 조회합니다. 리포지터리가 공개되어 있으면 인증 없이 이 엔드포인트에 접근할 수 있습니다.

GET /projects/:id/repository/tags/:tag_name

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

성공하면 200 OK와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
target string 태그가 가리키는 SHA.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/repository/tags/v1.0.0"

응답 예시:

{
  "name": "v5.0.0",
  "message": null,
  "target": "60a8ff033665e1207714d6670fcd7b65304ec02f",
  "commit": {
    "id": "60a8ff033665e1207714d6670fcd7b65304ec02f",
    "short_id": "60a8ff03",
    "title": "Initial commit",
    "created_at": "2017-07-26T11:08:53.000+02:00",
    "parent_ids": [
      "f61c062ff8bcbdb00e0a1b3317a91aed6ceee06b"
    ],
    "message": "v5.0.0\n",
    "author_name": "Arthur Verschaeve",
    "author_email": "contact@arthurverschaeve.be",
    "authored_date": "2015-02-01T21:56:31.000+01:00",
    "committer_name": "Arthur Verschaeve",
    "committer_email": "contact@arthurverschaeve.be",
    "committed_date": "2015-02-01T21:56:31.000+01:00"
  },
  "release": null,
  "protected": false,
  "created_at": "2017-07-26T11:08:53.000+02:00"
}

새 태그 생성#

히스토리

지정한 참조를 가리키는 새 태그를 리포지터리에 생성합니다.

이 엔드포인트에는 프로젝트별로 요청 수 제한이 적용됩니다. 기본값은 30분당 100회이며, tags_create_limit 애플리케이션 설정으로 조정할 수 있습니다. 제한을 0으로 설정하면 비활성화됩니다. 이 제한은 이 엔드포인트, GraphQL tagCreate 뮤테이션, UI 에서의 태그 생성, /tag 퀵 액션이 함께 공유합니다. 제한은 사용자 개인이 아니라 프로젝트에 적용됩니다. 같은 프로젝트의 다른 사용자가 제한에 도달하면 429 Too Many Requests 응답을 받을 수 있습니다.```

POST /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
ref string 예 커밋 SHA, 다른 태그 이름, 브랜치 이름 중 하나에서 태그를 생성합니다.
tag_name string 예 태그의 이름.
message string 아니요 주석 태그를 생성합니다.

성공하면 201 Created 와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA 의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
target string 태그가 가리키는 SHA.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/repository/tags?tag_name=test&ref=main"

응답 예시:

{
  "commit": {
    "id": "2695effb5807a22ff3d138d593fd856244e155e7",
    "short_id": "2695effb",
    "title": "Initial commit",
    "created_at": "2017-07-26T11:08:53.000+02:00",
    "parent_ids": [
      "2a4b78934375d7f53875269ffd4f45fd83a84ebe"
    ],
    "message": "Initial commit",
    "author_name": "John Smith",
    "author_email": "john@example.com",
    "authored_date": "2012-05-28T04:42:42-07:00",
    "committer_name": "Jack Smith",
    "committer_email": "jack@example.com",
    "committed_date": "2012-05-28T04:42:42-07:00"
  },
  "release": null,
  "name": "v1.0.0",
  "target": "2695effb5807a22ff3d138d593fd856244e155e7",
  "message": null,
  "protected": false,
  "created_at": null
}

생성한 태그의 종류에 따라 created_at, target, message 의 내용이 달라집니다.

  • 주석 태그(annotated tag)의 경우:
    • created_at 에는 태그 생성 시각이 들어갑니다.
    • message 에는 주석이 들어갑니다.
    • target 에는 태그 객체의 ID 가 들어갑니다.
  • 경량 태그(lightweight tag)의 경우:
    • created_at 은 null 입니다.
    • message 는 null 입니다.
    • target 에는 커밋 ID 가 들어갑니다.

오류가 발생하면 설명이 담긴 오류 메시지와 함께 상태 코드 405 를 반환합니다.

태그 삭제#

지정한 이름의 리포지터리 태그를 삭제합니다.

DELETE /projects/:id/repository/tags/:tag_name

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

태그의 X.509 서명 조회#

태그가 서명되어 있으면 태그의 X.509 서명을 조회합니다. 서명되지 않은 태그는 404 Not Found 응답을 반환합니다.

GET /projects/:id/repository/tags/:tag_name/signature

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

성공하면 200 OK 와 다음 응답 속성을 반환합니다.

속성 타입 설명
signature_type string 서명의 유형(X509).
verification_status string 서명의 검증 상태.
x509_certificate object X.509 인증서 정보.
x509_certificate.certificate_status string 인증서의 상태.
x509_certificate.email string 인증서에 기재된 이메일 주소.
x509_certificate.id integer 인증서의 ID.
x509_certificate.serial_number integer 인증서의 일련번호.
x509_certificate.subject string 인증서의 주체.
x509_certificate.subject_key_identifier string 인증서의 주체 키 식별자.
x509_certificate.x509_issuer object 인증서의 발급자 정보.
x509_certificate.x509_issuer.crl_url string 인증서 폐기 목록 URL.
x509_certificate.x509_issuer.id integer 발급자의 ID.
x509_certificate.x509_issuer.subject string 발급자의 주체.
x509_certificate.x509_issuer.subject_key_identifier string 발급자의 주체 키 식별자.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/repository/tags/v1.1.1/signature"

태그가 X.509 로 서명된 경우의 응답 예시:

{
  "signature_type": "X509",
  "verification_status": "unverified",
  "x509_certificate": {
    "id": 1,
    "subject": "CN=gitlab@example.org,OU=Example,O=World",
    "subject_key_identifier": "BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC",
    "email": "gitlab@example.org",
    "serial_number": 278969561018901340486471282831158785578,
    "certificate_status": "good",
    "x509_issuer": {
      "id": 1,
      "subject": "CN=PKI,OU=Example,O=World",
      "subject_key_identifier": "AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB",
      "crl_url": "http://example.com/pki.crl"
    }
  }
}

태그가 서명되지 않은 경우의 응답 예시:

{
  "message": "404 GPG Signature Not Found"
}

태그 API

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

요약

이 API로 Git 태그를 관리합니다. 프로젝트의 모든 리포지터리 태그를 업데이트 날짜 및 시간 기준 내림차순으로 정렬해 조회합니다. 리포지터리가 공개되어 있으면 인증 (--header "PRIVATE-TOKEN: &#x3C;your_access_token>")이 필요하지 않습니다.

이 API로 Git 태그를 관리합니다. 이 API는 서명된 태그의 X.509 서명 정보도 반환합니다.

프로젝트 리포지터리 태그 전체 조회#

프로젝트의 모든 리포지터리 태그를 업데이트 날짜 및 시간 기준 내림차순으로 정렬해 조회합니다.

Note

리포지터리가 공개되어 있으면 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

GET /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by string 아니요 name, updated, version 중 하나를 기준으로 정렬한 태그를 반환합니다. version은 시맨틱 버전 번호로 정렬합니다. 기본값은 updated 입니다.
page integer 아니요 페이지네이션의 현재 페이지 번호. 기본값은 1 입니다.
page_token string 아니요 페이지네이션을 시작할 태그의 이름. 키셋 페이지네이션에 사용합니다.
search string 아니요 검색 조건에 일치하는 태그 목록을 반환합니다. ^term과 term$를 사용해 term으로 시작하거나 끝나는 태그를 찾을 수 있습니다. 그 밖의 정규 표현식은 지원하지 않습니다.
sort string 아니요 asc 또는 desc 순으로 정렬한 태그를 반환합니다. 기본값은 desc 입니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
release.description string 릴리스의 설명.
release.tag_name string 릴리스의 태그 이름.
target string 태그가 가리키는 SHA.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/projects/5/repository/tags"

응답 예시:

[
  {
    "commit": {
      "id": "2695effb5807a22ff3d138d593fd856244e155e7",
      "short_id": "2695effb",
      "title": "Initial commit",
      "created_at": "2017-07-26T11:08:53.000+02:00",
      "parent_ids": [
        "2a4b78934375d7f53875269ffd4f45fd83a84ebe"
      ],
      "message": "Initial commit",
      "author_name": "John Smith",
      "author_email": "john@example.com",
      "authored_date": "2012-05-28T04:42:42-07:00",
      "committer_name": "Jack Smith",
      "committer_email": "jack@example.com",
      "committed_date": "2012-05-28T04:42:42-07:00"
    },
    "release": {
      "tag_name": "1.0.0",
      "description": "Amazing release. Wow"
    },
    "name": "v1.0.0",
    "target": "2695effb5807a22ff3d138d593fd856244e155e7",
    "message": null,
    "protected": true,
    "created_at": "2017-07-26T11:08:53.000+02:00"
  }
]

단일 리포지터리 태그 조회#

지정한 이름의 리포지터리 태그를 조회합니다. 리포지터리가 공개되어 있으면 인증 없이 이 엔드포인트에 접근할 수 있습니다.

GET /projects/:id/repository/tags/:tag_name

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

성공하면 200 OK와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
target string 태그가 가리키는 SHA.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/repository/tags/v1.0.0"

응답 예시:

{
  "name": "v5.0.0",
  "message": null,
  "target": "60a8ff033665e1207714d6670fcd7b65304ec02f",
  "commit": {
    "id": "60a8ff033665e1207714d6670fcd7b65304ec02f",
    "short_id": "60a8ff03",
    "title": "Initial commit",
    "created_at": "2017-07-26T11:08:53.000+02:00",
    "parent_ids": [
      "f61c062ff8bcbdb00e0a1b3317a91aed6ceee06b"
    ],
    "message": "v5.0.0\n",
    "author_name": "Arthur Verschaeve",
    "author_email": "contact@arthurverschaeve.be",
    "authored_date": "2015-02-01T21:56:31.000+01:00",
    "committer_name": "Arthur Verschaeve",
    "committer_email": "contact@arthurverschaeve.be",
    "committed_date": "2015-02-01T21:56:31.000+01:00"
  },
  "release": null,
  "protected": false,
  "created_at": "2017-07-26T11:08:53.000+02:00"
}

새 태그 생성#

히스토리

지정한 참조를 가리키는 새 태그를 리포지터리에 생성합니다.

이 엔드포인트에는 프로젝트별로 요청 수 제한이 적용됩니다. 기본값은 30분당 100회이며, tags_create_limit 애플리케이션 설정으로 조정할 수 있습니다. 제한을 0으로 설정하면 비활성화됩니다. 이 제한은 이 엔드포인트, GraphQL tagCreate 뮤테이션, UI 에서의 태그 생성, /tag 퀵 액션이 함께 공유합니다. 제한은 사용자 개인이 아니라 프로젝트에 적용됩니다. 같은 프로젝트의 다른 사용자가 제한에 도달하면 429 Too Many Requests 응답을 받을 수 있습니다.```

POST /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
ref string 예 커밋 SHA, 다른 태그 이름, 브랜치 이름 중 하나에서 태그를 생성합니다.
tag_name string 예 태그의 이름.
message string 아니요 주석 태그를 생성합니다.

성공하면 201 Created 와 다음 응답 속성을 반환합니다.

속성 타입 설명
commit object 태그와 연결된 커밋 정보.
commit.author_email string 커밋 작성자의 이메일 주소.
commit.author_name string 커밋 작성자의 이름.
commit.authored_date string 커밋이 작성된 날짜(ISO 8601 형식).
commit.committed_date string 커밋이 커밋된 날짜(ISO 8601 형식).
commit.committer_email string 커미터의 이메일 주소.
commit.committer_name string 커미터의 이름.
commit.created_at string 커밋이 생성된 날짜(ISO 8601 형식).
commit.id string 커밋의 전체 SHA.
commit.message string 커밋 메시지.
commit.parent_ids array 부모 커밋 SHA 의 배열.
commit.short_id string 커밋의 짧은 SHA.
commit.title string 커밋의 제목.
created_at string 태그가 생성된 날짜(ISO 8601 형식).
message string 태그 메시지.
name string 태그의 이름.
protected boolean true 이면 태그가 보호됩니다.
release object 태그와 연결된 릴리스 정보.
target string 태그가 가리키는 SHA.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/repository/tags?tag_name=test&ref=main"

응답 예시:

{
  "commit": {
    "id": "2695effb5807a22ff3d138d593fd856244e155e7",
    "short_id": "2695effb",
    "title": "Initial commit",
    "created_at": "2017-07-26T11:08:53.000+02:00",
    "parent_ids": [
      "2a4b78934375d7f53875269ffd4f45fd83a84ebe"
    ],
    "message": "Initial commit",
    "author_name": "John Smith",
    "author_email": "john@example.com",
    "authored_date": "2012-05-28T04:42:42-07:00",
    "committer_name": "Jack Smith",
    "committer_email": "jack@example.com",
    "committed_date": "2012-05-28T04:42:42-07:00"
  },
  "release": null,
  "name": "v1.0.0",
  "target": "2695effb5807a22ff3d138d593fd856244e155e7",
  "message": null,
  "protected": false,
  "created_at": null
}

생성한 태그의 종류에 따라 created_at, target, message 의 내용이 달라집니다.

  • 주석 태그(annotated tag)의 경우:
    • created_at 에는 태그 생성 시각이 들어갑니다.
    • message 에는 주석이 들어갑니다.
    • target 에는 태그 객체의 ID 가 들어갑니다.
  • 경량 태그(lightweight tag)의 경우:
    • created_at 은 null 입니다.
    • message 는 null 입니다.
    • target 에는 커밋 ID 가 들어갑니다.

오류가 발생하면 설명이 담긴 오류 메시지와 함께 상태 코드 405 를 반환합니다.

태그 삭제#

지정한 이름의 리포지터리 태그를 삭제합니다.

DELETE /projects/:id/repository/tags/:tag_name

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

태그의 X.509 서명 조회#

태그가 서명되어 있으면 태그의 X.509 서명을 조회합니다. 서명되지 않은 태그는 404 Not Found 응답을 반환합니다.

GET /projects/:id/repository/tags/:tag_name/signature

지원하는 속성:

속성 타입 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 예 태그의 이름.

성공하면 200 OK 와 다음 응답 속성을 반환합니다.

속성 타입 설명
signature_type string 서명의 유형(X509).
verification_status string 서명의 검증 상태.
x509_certificate object X.509 인증서 정보.
x509_certificate.certificate_status string 인증서의 상태.
x509_certificate.email string 인증서에 기재된 이메일 주소.
x509_certificate.id integer 인증서의 ID.
x509_certificate.serial_number integer 인증서의 일련번호.
x509_certificate.subject string 인증서의 주체.
x509_certificate.subject_key_identifier string 인증서의 주체 키 식별자.
x509_certificate.x509_issuer object 인증서의 발급자 정보.
x509_certificate.x509_issuer.crl_url string 인증서 폐기 목록 URL.
x509_certificate.x509_issuer.id integer 발급자의 ID.
x509_certificate.x509_issuer.subject string 발급자의 주체.
x509_certificate.x509_issuer.subject_key_identifier string 발급자의 주체 키 식별자.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/repository/tags/v1.1.1/signature"

태그가 X.509 로 서명된 경우의 응답 예시:

{
  "signature_type": "X509",
  "verification_status": "unverified",
  "x509_certificate": {
    "id": 1,
    "subject": "CN=gitlab@example.org,OU=Example,O=World",
    "subject_key_identifier": "BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC",
    "email": "gitlab@example.org",
    "serial_number": 278969561018901340486471282831158785578,
    "certificate_status": "good",
    "x509_issuer": {
      "id": 1,
      "subject": "CN=PKI,OU=Example,O=World",
      "subject_key_identifier": "AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB",
      "crl_url": "http://example.com/pki.crl"
    }
  }
}

태그가 서명되지 않은 경우의 응답 예시:

{
  "message": "404 GPG Signature Not Found"
}