InfoGrab Docs

태그 API

요약

이 API를 사용하여 Git 태그를 관리합니다. 프로젝트에서 업데이트 날짜 및 시간 기준 내림차순으로 정렬된 모든 저장소 태그를 나열합니다. 저장소가 공개적으로 접근 가능한 경우 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

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

모든 프로젝트 저장소 태그 목록 조회#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

프로젝트에서 업데이트 날짜 및 시간 기준 내림차순으로 정렬된 모든 저장소 태그를 나열합니다.

Note

저장소가 공개적으로 접근 가능한 경우 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

GET /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by 문자열 아니오 name, updated 또는 version 기준으로 태그 정렬. version은 시맨틱 버전 번호로 정렬합니다. 기본값은 updated.
page 정수 아니오 페이지네이션의 현재 페이지 번호. 기본값은 1.
page_token 문자열 아니오 페이지네이션을 시작할 태그 이름. 키셋(keyset) 페이지네이션에 사용됩니다.
search 문자열 아니오 검색 기준과 일치하는 태그 목록 반환. ^termterm$을 사용하여 term으로 시작하고 끝나는 태그를 찾을 수 있습니다. 다른 정규식은 지원되지 않습니다.
sort 문자열 아니오 asc 또는 desc 순서로 태그 정렬. 기본값은 desc.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
release.description 문자열 릴리스의 설명.
release.tag_name 문자열 릴리스의 태그 이름.
target 문자열 태그가 가리키는 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"
  }
]

단일 저장소 태그 조회#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

지정된 이름의 저장소 태그를 조회합니다. 이 엔드포인트는 저장소가 공개적으로 접근 가능한 경우 인증 없이 접근할 수 있습니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
target 문자열 태그가 가리키는 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"
}

새 태그 생성#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

제공된 참조(reference)를 가리키는 새 태그를 저장소에 생성합니다.

POST /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
ref 문자열 커밋 SHA, 다른 태그 이름 또는 브랜치 이름으로 태그를 생성합니다.
tag_name 문자열 태그의 이름.
message 문자열 아니오 주석이 달린(annotated) 태그를 생성합니다.

성공 시 201 Created와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
target 문자열 태그가 가리키는 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, targetmessage의 내용이 결정됩니다:

  • 주석이 달린(annotated) 태그의 경우:
    • created_at에는 태그 생성 타임스탬프가 포함됩니다.
    • message에는 주석이 포함됩니다.
    • target에는 태그 객체의 ID가 포함됩니다.
  • 경량(lightweight) 태그의 경우:
    • created_at은 null입니다.
    • message는 null입니다.
    • target에는 커밋 ID가 포함됩니다.

오류는 설명적인 오류 메시지와 함께 상태 코드 405를 반환합니다.

태그 삭제#

지정된 이름의 저장소 태그를 삭제합니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

태그의 X.509 서명 조회#

지정된 이름을 가진 태그의 X.509 서명을 조회합니다. 서명되지 않은 태그는 404 Not Found 응답을 반환합니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
signature_type 문자열 서명 유형 (X509).
verification_status 문자열 서명의 검증 상태.
x509_certificate 객체 X.509 인증서 정보.
x509_certificate.certificate_status 문자열 인증서의 상태.
x509_certificate.email 문자열 인증서의 이메일 주소.
x509_certificate.id 정수 인증서의 ID.
x509_certificate.serial_number 정수 인증서의 일련 번호.
x509_certificate.subject 문자열 인증서의 주체.
x509_certificate.subject_key_identifier 문자열 인증서의 주체 키 식별자.
x509_certificate.x509_issuer 객체 인증서의 발급자 정보.
x509_certificate.x509_issuer.crl_url 문자열 인증서 해지 목록 URL.
x509_certificate.x509_issuer.id 정수 발급자의 ID.
x509_certificate.x509_issuer.subject 문자열 발급자의 주체.
x509_certificate.x509_issuer.subject_key_identifier 문자열 발급자의 주체 키 식별자.

요청 예시:

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

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 서명 정보도 반환합니다.

모든 프로젝트 저장소 태그 목록 조회#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

프로젝트에서 업데이트 날짜 및 시간 기준 내림차순으로 정렬된 모든 저장소 태그를 나열합니다.

Note

저장소가 공개적으로 접근 가능한 경우 인증 (--header "PRIVATE-TOKEN: <your_access_token>")이 필요하지 않습니다.

GET /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by 문자열 아니오 name, updated 또는 version 기준으로 태그 정렬. version은 시맨틱 버전 번호로 정렬합니다. 기본값은 updated.
page 정수 아니오 페이지네이션의 현재 페이지 번호. 기본값은 1.
page_token 문자열 아니오 페이지네이션을 시작할 태그 이름. 키셋(keyset) 페이지네이션에 사용됩니다.
search 문자열 아니오 검색 기준과 일치하는 태그 목록 반환. ^termterm$을 사용하여 term으로 시작하고 끝나는 태그를 찾을 수 있습니다. 다른 정규식은 지원되지 않습니다.
sort 문자열 아니오 asc 또는 desc 순서로 태그 정렬. 기본값은 desc.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
release.description 문자열 릴리스의 설명.
release.tag_name 문자열 릴리스의 태그 이름.
target 문자열 태그가 가리키는 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"
  }
]

단일 저장소 태그 조회#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

지정된 이름의 저장소 태그를 조회합니다. 이 엔드포인트는 저장소가 공개적으로 접근 가능한 경우 인증 없이 접근할 수 있습니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
target 문자열 태그가 가리키는 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"
}

새 태그 생성#

히스토리
  • created_at 응답 속성이 GitLab 16.11에서 도입되었습니다.

제공된 참조(reference)를 가리키는 새 태그를 저장소에 생성합니다.

POST /projects/:id/repository/tags

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
ref 문자열 커밋 SHA, 다른 태그 이름 또는 브랜치 이름으로 태그를 생성합니다.
tag_name 문자열 태그의 이름.
message 문자열 아니오 주석이 달린(annotated) 태그를 생성합니다.

성공 시 201 Created와 다음 응답 속성을 반환합니다:

속성 타입 설명
commit 객체 태그와 관련된 커밋 정보.
commit.author_email 문자열 커밋 작성자의 이메일 주소.
commit.author_name 문자열 커밋 작성자의 이름.
commit.authored_date 문자열 커밋이 작성된 날짜 (ISO 8601 형식).
commit.committed_date 문자열 커밋이 커밋된 날짜 (ISO 8601 형식).
commit.committer_email 문자열 커미터의 이메일 주소.
commit.committer_name 문자열 커미터의 이름.
commit.created_at 문자열 커밋이 생성된 날짜 (ISO 8601 형식).
commit.id 문자열 커밋의 전체 SHA.
commit.message 문자열 커밋 메시지.
commit.parent_ids 배열 부모 커밋 SHA의 배열.
commit.short_id 문자열 커밋의 짧은 SHA.
commit.title 문자열 커밋의 제목.
created_at 문자열 태그가 생성된 날짜 (ISO 8601 형식).
message 문자열 태그 메시지.
name 문자열 태그의 이름.
protected 불리언 true이면 태그가 보호됩니다.
release 객체 태그와 관련된 릴리스 정보.
target 문자열 태그가 가리키는 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, targetmessage의 내용이 결정됩니다:

  • 주석이 달린(annotated) 태그의 경우:
    • created_at에는 태그 생성 타임스탬프가 포함됩니다.
    • message에는 주석이 포함됩니다.
    • target에는 태그 객체의 ID가 포함됩니다.
  • 경량(lightweight) 태그의 경우:
    • created_at은 null입니다.
    • message는 null입니다.
    • target에는 커밋 ID가 포함됩니다.

오류는 설명적인 오류 메시지와 함께 상태 코드 405를 반환합니다.

태그 삭제#

지정된 이름의 저장소 태그를 삭제합니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

태그의 X.509 서명 조회#

지정된 이름을 가진 태그의 X.509 서명을 조회합니다. 서명되지 않은 태그는 404 Not Found 응답을 반환합니다.

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

지원하는 속성:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name 문자열 태그의 이름.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 타입 설명
signature_type 문자열 서명 유형 (X509).
verification_status 문자열 서명의 검증 상태.
x509_certificate 객체 X.509 인증서 정보.
x509_certificate.certificate_status 문자열 인증서의 상태.
x509_certificate.email 문자열 인증서의 이메일 주소.
x509_certificate.id 정수 인증서의 ID.
x509_certificate.serial_number 정수 인증서의 일련 번호.
x509_certificate.subject 문자열 인증서의 주체.
x509_certificate.subject_key_identifier 문자열 인증서의 주체 키 식별자.
x509_certificate.x509_issuer 객체 인증서의 발급자 정보.
x509_certificate.x509_issuer.crl_url 문자열 인증서 해지 목록 URL.
x509_certificate.x509_issuer.id 정수 발급자의 ID.
x509_certificate.x509_issuer.subject 문자열 발급자의 주체.
x509_certificate.x509_issuer.subject_key_identifier 문자열 발급자의 주체 키 식별자.

요청 예시:

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"
}