노트 API

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

노트는 다음과 같은 항목들에 대한 코멘트입니다:

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

리소스 이벤트

일부 시스템 노트는 이 API의 일부가 아니지만 별도의 이벤트로 기록됩니다:

노트 페이징

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

페이징에 대해 자세히 알아보세요.

요율 제한

남용을 방지하기 위해 사용자의 Create 요청 수를 분당 특정 횟수로 제한할 수 있습니다. 노트 요율 제한을 참조하세요.

이슈

프로젝트 이슈 노트 디렉터리

특정 이슈에 대한 모든 노트 디렉터리을 가져옵니다.

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
  },
  {
    "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
  }
]
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에서 제거 예정이며 internal로 이름이 변경됩니다. 노트의 비밀 여부. 기본값은 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"

기존 이슈 노트 수정

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

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
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"

새로운 스니펫 노트 생성

단일 스니펫에 대한 새로운 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자 코멘트입니다. 만약 본문에 이모지 reaction만 포함된 노트를 생성하면, 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"

Merge Request

모든 Merge Request 노트 디렉터리

단일 Merge Request에 대한 모든 노트 디렉터리을 가져옵니다.

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 정수 프로젝트 Merge Request의 IID
sort 문자열 아니오 asc 또는 desc 순서로 정렬된 Merge Request 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니오 created_at 또는 updated_at 필드별로 정렬된 Merge Request 노트를 반환합니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes"

단일 Merge Request 노트 가져오기

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

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

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 경로
merge_request_iid 정수 프로젝트 Merge Request의 IID
note_id 정수 Merge Request 노트 ID
{
  "id": 301,
  "body": "Merge Request에 대한 코멘트",
  "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"

새로운 Merge Request 노트 생성

단일 Merge Request에 새로운 노트를 생성합니다. 노트는 Merge Request의 특정 라인에 첨부되지 않습니다. 더 세부적인 제어를 위해 커밋 API의 커밋에 코멘트 달기 및 토론 API의 Merge Request 차이에 스레드 생성를 참조하세요.

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

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

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 경로
merge_request_iid 정수 프로젝트 Merge Request의 IID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
created_at 문자열 아니오 날짜 및 시간 문자열, ISO 8601 형식입니다. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한이 필요함)
merge_request_diff_head_sha 문자열 아니오 /merge 빠른 동작에 필요합니다. Merge Request이 API 요청 이후에 업데이트되지 않았음을 보장하는 head 커밋의 SHA입니다.

기존 Merge Request 노트 수정

기존 Merge Request의 노트를 수정합니다.

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

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 경로
merge_request_iid 정수 프로젝트 Merge Request의 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"

Merge Request 노트 삭제

기존 Merge Request에 대한 노트를 삭제합니다.

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

매개변수:

속성 유형 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
merge_request_iid 정수 Merge Request의 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

모든 에픽 노트 디렉터리

단일 에픽의 모든 노트 디렉터리을 가져옵니다. 에픽 노트는 사용자가 에픽에 게시할 수 있는 코멘트입니다.

note
에픽 노트 API는 에픽 IID 대신 에픽 ID를 사용합니다. 에픽의 IID를 사용하면 GitLab이 404 오류를 반환하거나 잘못된 에픽의 노트를 반환합니다. 이는 이슈 노트 APIMerge Request 노트 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
}
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에서 제거 예정이며 internal로 이름이 변경됩니다. 노트의 비밀 여부. 기본값은 false입니다.
internal 부울 아니요 노트의 내부 플래그. 두 매개변수가 모두 제출되면 confidential를 무시합니다. 기본값은 false입니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"

기존 에픽 노트 수정

에픽의 기존 노트를 수정합니다.

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

매개변수:

속성 유형 필수 여부 설명
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩된 경로
epic_id 정수 에픽의 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"