Notes API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

메모는 다음과 같습니다: - 커밋 - 에픽 - 이슈 - 병합 요청 - 스니펫

이에는 시스템 메모도 포함되며, 이는 대상 객체에 대한 변경 사항에 대한 메모입니다(예: 담당자가 변경될 때 GitLab이 시스템 메모를 게시합니다).

리소스 이벤트

일부 시스템 메모는 이 API의 일부가 아니지만 별도의 이벤트로 기록됩니다: - 리소스 라벨 이벤트 - 리소스 상태 이벤트 - 리소스 마일스톤 이벤트 - 리소스 가중치 이벤트 - 리소스 반복 이벤트

메모 페이지네이션

기본적으로 GET 요청은 API 결과가 페이지별로 반환되기 때문에 한 번에 20개의 결과가 반환됩니다.

pagination에서 자세히 알아보세요.

비율 제한

남용을 방지하기 위해 사용자의 생성 요청 수를 분당 특정 수로 제한할 수 있습니다. 메모 비율 제한을 확인하세요.

이슈

프로젝트 이슈 메모 목록

단일 이슈에 대한 모든 메모 목록을 가져옵니다.

GET /projects/:id/issues/:issue_iid/notes
GET /projects/:id/issues/:issue_iid/notes?sort=asc&order_by=updated_at
속성 유형 필요 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid 정수 이슈의 IID
sort 문자열 아니오 이슈 메모를 asc 또는 desc 순서로 반환합니다. 기본값은 desc
order_by 문자열 아니오 이슈 메모를 created_at 또는 updated_at 필드로 정렬합니다. 기본값은 created_at
[
  {
    "id": 302,
    "body": "closed",
    "attachment": null,
    "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
    },
    "created_at": "2013-10-02T09:22:45Z",
    "updated_at": "2013-10-02T10:22:45Z",
    "system": true,
    "noteable_id": 377,
    "noteable_type": "Issue",
    "project_id": 5,
    "noteable_iid": 377,
    "resolvable": false,
    "confidential": false,
    "internal": false,
    "imported": false,
    "imported_from": "none"
  },
  {
    "id": 305,
    "body": "Text of the comment\r\n",
    "attachment": null,
    "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
    },
    "created_at": "2013-10-02T09:56:03Z",
    "updated_at": "2013-10-02T09:56:03Z",
    "system": true,
    "noteable_id": 121,
    "noteable_type": "Issue",
    "project_id": 5,
    "noteable_iid": 121,
    "resolvable": false,
    "confidential": true,
    "internal": true,
    "imported": false,
    "imported_from": "none"
  }
]
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes"

단일 이슈 메모 가져오기

특정 프로젝트 이슈에 대한 단일 메모를 반환합니다.

GET /projects/:id/issues/:issue_iid/notes/:note_id

파라미터:

속성 유형 필요 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid 정수 프로젝트 이슈의 IID
note_id 정수 이슈 메모의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/1"

새로운 이슈 메모 생성

단일 프로젝트 이슈에 새로운 메모를 생성합니다.

POST /projects/:id/issues/:issue_iid/notes

파라미터:

속성 유형 필요 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
issue_iid 정수 이슈의 IID.
body 문자열 메모의 내용. 1,000,000자로 제한됩니다.
confidential 부울 아니오 폐기됨: GitLab 16.0에서 제거 예정이며 내부로 이름이 변경됩니다. 메모의 기밀 플래그입니다. 기본값은 false.
internal 부울 아니오 메모의 내부 플래그. 두 매개변수가 모두 제출될 경우 confidential을 무시합니다. 기본값은 false.
created_at 문자열 아니오 날짜 및 시간 문자열, ISO 8601 형식입니다. 1970-01-01 이후여야 합니다. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한 필요)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=note"
### 기존 이슈 노트 수정

이슈의 기존 노트를 수정합니다.

```plaintext
PUT /projects/:id/issues/:issue_iid/notes/:note_id

매개변수:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
issue_iid 정수 이슈의 IID
note_id 정수 노트의 ID
body 문자열 아니오 노트의 내용. 1,000,000자로 제한됩니다.
confidential 부울 아니오 폐기됨: GitLab 16.0에서 삭제될 예정입니다. 노트의 기밀 여부. 기본값은 false입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636?body=note"

이슈 노트 삭제

이슈의 기존 노트를 삭제합니다.

DELETE /projects/:id/issues/:issue_iid/notes/:note_id

매개변수:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
issue_iid 정수 이슈의 IID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636"

스니펫

스니펫 노트 API는 프로젝트 수준의 스니펫에 사용됩니다. 개인적인 스니펫이 아닙니다.

모든 스니펫 노트 목록

단일 스니펫에 대한 모든 노트 목록을 가져옵니다. 스니펫 노트는 사용자가 스니펫에 게시할 수 있는 코멘트입니다.

GET /projects/:id/snippets/:snippet_id/notes
GET /projects/:id/snippets/:snippet_id/notes?sort=asc&order_by=updated_at
속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
snippet_id 정수 프로젝트 스니펫의 ID
sort 문자열 아니오 asc 또는 desc 순서로 정렬된 스니펫 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니오 스니펫 노트가 created_at 또는 updated_at 필드로 정렬되어 반환됩니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes"

단일 스니펫 노트 가져오기

지정된 스니펫에 대한 단일 노트를 반환합니다.

GET /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
snippet_id 정수 프로젝트 스니펫의 ID
note_id 정수 스니펫 노트의 ID
{
  "id": 302,
  "body": "closed",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T09:22:45Z",
  "updated_at": "2013-10-02T10:22:45Z",
  "system": true,
  "noteable_id": 377,
  "noteable_type": "Issue",
  "project_id": 5,
  "noteable_iid": 377,
  "resolvable": false,
  "confidential": false,
  "internal": false,
  "imported": false,
  "imported_from": "none"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"

새로운 스니펫 노트 생성

단일 스니펫에 대한 새로운 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자의 코멘트입니다. 노트 내용이 이모지 반응만 포함하는 경우, GitLab은 객체를 반환합니다.

POST /projects/:id/snippets/:snippet_id/notes

매개변수:

속성 타입 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
snippet_id 정수 스니펫의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
created_at 문자열 아니오 날짜 및 시간 문자열, ISO 8601 형식입니다. 예시: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한이 필요합니다)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippet/11/notes?body=note"

기존 스니펫 노트 수정

기존 스니펫 노트를 수정합니다.

PUT /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id 정수 스니펫의 ID
note_id 정수 스니펫 노트의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됨.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/1659?body=note"

스니펫 노트 삭제

기존 스니펫 노트를 삭제합니다.

DELETE /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id 정수 스니펫의 ID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/52/notes/1659"

병합 요청

모든 병합 요청 노트 나열

단일 병합 요청에 대한 모든 노트 목록을 가져옵니다.

GET /projects/:id/merge_requests/:merge_request_iid/notes
GET /projects/:id/merge_requests/:merge_request_iid/notes?sort=asc&order_by=updated_at
속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid 정수 프로젝트 병합 요청의 IID
sort 문자열 아니요 asc 또는 desc 순서로 정렬된 병합 요청 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니요 created_at 또는 updated_at 필드로 정렬된 병합 요청 노트를 반환합니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes"

단일 병합 요청 노트 가져오기

특정 병합 요청에 대한 단일 노트를 반환합니다.

GET /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid 정수 프로젝트 병합 요청의 IID
note_id 정수 병합 요청 노트의 ID
{
  "id": 301,
  "body": "병합 요청에 대한 코멘트",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T08:57:14Z",
  "updated_at": "2013-10-02T08:57:14Z",
  "system": false,
  "noteable_id": 2,
  "noteable_type": "MergeRequest",
  "project_id": 5,
  "noteable_iid": 2,
  "resolvable": false,
  "confidential": false,
  "internal": false
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1"

새로운 병합 요청 노트 생성

단일 병합 요청에 대한 새로운 노트를 생성합니다. 노트는 병합 요청의 특정 라인에 첨부되지 않습니다. 더 세분화된 제어를 위한 다른 방법은 커밋 API의 커밋에 코멘트 달기 및 토론 API의 병합 요청 차이에 새로운 스레드 생성를 참조하세요.

노트의 내용이 이모지 반응만 포함하는 경우, GitLab은 이 객체를 반환합니다.

POST /projects/:id/merge_requests/:merge_request_iid/notes

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid 정수 프로젝트 병합 요청의 IID
body 문자열 노트의 내용. 1,000,000자로 제한됨.
created_at 문자열 아니요 일시 문자열, ISO 8601 형식. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한 필요)
merge_request_diff_head_sha 문자열 아니요 /merge 빠른 조치를 위해 필요합니다. 헤드 커밋의 SHA로, API 요청 전에 병합 요청이 업데이트되지 않았음을 보장합니다.

기존 병합 요청 노트 수정

기존 병합 요청 노트를 수정합니다.

PUT /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
merge_request_iid 정수 프로젝트 병합 요청의 IID
note_id 정수 아니요 노트의 ID
body 문자열 노트 내용. 1,000,000자로 제한됩니다.
confidential 부울 아니요 사용 중지됨: GitLab 16.0에서 제거 예정. 노트의 기밀 여부. 기본값은 false입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1?body=note"

병합 요청 노트 삭제

기존 병합 요청의 노트를 삭제합니다.

DELETE /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
merge_request_iid 정수 병합 요청의 IID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/7/notes/1602"

이픽스

자세한 내용: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

경고: 이픽스 REST API는 deprecated 되었으며 GitLab 17.0에서 제거 예정이며 API의 v5에서 제거될 예정입니다. GitLab 17.4 이상의 버전에서, 만약 관리자가 이픽스를 위한 새로운 룩을 활성화했다면, Work Items API를 대신 사용하세요. 이 변경 사항은 변경 사항입니다.

모든 이픽 노트 나열

단일 이픽의 모든 노트를 가져옵니다. 이픽 노트는 사용자가 이픽에 작성할 수 있는 댓글입니다.

참고: 이픽 노트 API는 이픽의 IID 대신 이픽 ID를 사용합니다. 이픽의 IID를 사용하면, GitLab이 404 오류를 반환하거나 잘못된 이픽의 노트를 반환합니다. 이것은 이슈 노트 API병합 요청 노트 API와 다릅니다.

GET /groups/:id/epics/:epic_id/notes
GET /groups/:id/epics/:epic_id/notes?sort=asc&order_by=updated_at
속성 유형 필수여부 설명
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩 된 경로
epic_id 정수 그룹 이픽의 ID
sort 문자열 아니요 asc 또는 desc 정렬된 이픽 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니요 created_at 또는 updated_at 필드로 정렬된 이픽 노트를 반환합니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes"

단일 이픽 노트 가져오기

특정 이픽에 대한 단일 노트를 반환합니다.

GET /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 유형 필수여부 설명
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩 된 경로
epic_id 정수 이픽의 ID
note_id 정수 노트의 ID
{
  "id": 302,
  "body": "이픽 노트",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T09:22:45Z",
  "updated_at": "2013-10-02T10:22:45Z",
  "system": true,
  "noteable_id": 11,
  "noteable_type": "Epic",
  "project_id": 5,
  "noteable_iid": 11,
  "resolvable": false,
  "confidential": false,
  "internal": false,
  "imported": false,
  "imported_from": "none"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1"

새로운 이픽 노트 생성

단일 이픽에 대한 새로운 노트를 만듭니다. 이픽 노트는 사용자가 이픽에 작성한 댓글입니다. 머리글만 이모지 리액션을 포함하는 노트를 만들 경우, GitLab은 이 객체를 반환합니다.

POST /groups/:id/epics/:epic_id/notes

매개변수:

속성 유형 필수여부 설명
body 문자열 노트 내용. 1,000,000자로 제한됩니다.
epic_id 정수 이픽의 ID
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩 된 경로
confidential 부울 아니요 사용 중지됨: GitLab 16.0에서 제거 예정이며 내부로 이름이 변경되었습니다. 노트의 기밀 여부. 기본값은 false입니다.
internal 부울 아니요 노트의 내부 플래그. 두 매개변수가 함께 제출될 때 기밀을 무시합니다. 기본값은 false입니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"

기존 epic 노트 수정

기존 epic 노트를 수정합니다.

PUT /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩된 경로
epic_id 정수 epic의 ID
note_id 정수 노트의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
confidential 부울 아니오 사용 중단됨: GitLab 16.0에서 삭제 예정. 노트의 기밀 플래그. 기본값은 false입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1?body=note"

epic 노트 삭제

기존 epic 노트를 삭제합니다.

DELETE /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩된 경로
epic_id 정수 epic의 ID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"