InfoGrab DocsInfoGrab Docs

노트 API

요약

이 API로 GitLab 콘텐츠에 달린 댓글과 시스템 기록을 관리합니다. 일부 시스템 생성 노트는 별도의 리소스 이벤트로 기록됩니다. API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다.

이 API로 GitLab 콘텐츠에 달린 댓글과 시스템 기록을 관리합니다. 다음 작업을 수행할 수 있습니다.

  • 이슈, 머지 리퀘스트, 에픽, 스니펫, 커밋의 댓글을 생성하고 수정합니다.
  • 객체 변경에 대한 시스템 생성 노트를 조회합니다.
  • 결과를 정렬하고 페이지 단위로 나눕니다.
  • 비공개 플래그와 내부 플래그로 노출 범위를 제어합니다.
  • 속도 제한으로 남용을 방지합니다.

일부 시스템 생성 노트는 별도의 리소스 이벤트로 기록됩니다.

API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다. 자세한 내용은 페이지네이션을 참고합니다.

리소스 이벤트#

일부 시스템 노트는 이 API에 포함되지 않고 별도의 이벤트로 기록됩니다.

노트 페이지네이션#

API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다.

자세한 내용은 페이지네이션을 참고합니다.

속도 제한#

남용을 방지하기 위해 사용자별로 분당 Create 요청 수를 제한할 수 있습니다. 자세한 내용은 콘텐츠 생성 속도 제한을 참고합니다.

이슈#

모든 이슈 노트 조회#

지정한 이슈의 모든 노트를 조회합니다.

GET /projects/:id/issues/:issue_iid/notes
GET /projects/:id/issues/:issue_iid/notes?sort=asc&order_by=updated_at
GET /projects/:id/issues/:issue_iid/notes?activity_filter=only_comments
속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 이슈의 IID
activity_filter string 아니요 활동 유형으로 노트를 필터링합니다. 사용 가능한 값: all_notes, only_comments, only_activity. 기본값은 all_notes
sort string 아니요 이슈 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 이슈 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
[
  {
    "id": 302,
    "body": "closed",
    "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",
    "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes"

이슈 노트 조회#

프로젝트 이슈의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 프로젝트 이슈의 IID
note_id integer 예 이슈 노트의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/1"

이슈 노트 생성#

지정한 프로젝트 이슈에 노트를 생성합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
issue_iid integer 예 이슈의 IID 입니다.
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated: internal로 이름이 변경되었습니다. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
internal boolean 아니요 노트의 내부 플래그입니다. 두 파라미터를 함께 전달하면 confidential보다 우선합니다. 기본값은 false 입니다.
created_at string 아니요 ISO 8601 형식의 날짜 시간 문자열입니다. 1970-01-01 이후여야 합니다. 예: 2016-03-11T03:45:40Z(관리자 또는 프로젝트/그룹 소유자 권한 필요)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=note"

이슈 노트 업데이트#

이슈의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
issue_iid integer 예 이슈의 IID 입니다.
note_id integer 예 노트의 ID 입니다.
body string 아니요 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636?body=note"

이슈 노트 삭제#

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

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 이슈의 IID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 프로젝트 스니펫의 ID
sort string 아니요 스니펫 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 스니펫 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes"

스니펫 노트 조회#

스니펫의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 프로젝트 스니펫의 ID
note_id integer 예 스니펫 노트의 ID
{
  "id": 302,
  "body": "closed",
  "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"

스니펫 노트 생성#

지정한 스니펫에 새 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자 댓글입니다. 본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

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

스니펫 노트 업데이트#

스니펫의 지정한 노트를 업데이트합니다.

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

파라미터:

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

스니펫 노트 삭제#

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

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 스니펫의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
sort string 아니요 머지 리퀘스트 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 머지 리퀘스트 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes"

머지 리퀘스트 노트 조회#

머지 리퀘스트의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
note_id integer 예 머지 리퀘스트 노트의 ID
{
  "id": 301,
  "body": "Comment for MR",
  "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1"

머지 리퀘스트 노트 생성#

지정한 머지 리퀘스트에 노트를 생성합니다. 노트는 머지 리퀘스트의 특정 줄에 연결되지 않습니다. 더 세밀하게 제어하는 다른 방법은 커밋 API의 커밋에 댓글 작성과 디스커션 API의 머지 리퀘스트 diff에 새 스레드 생성을 참고합니다.

본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
created_at string 아니요 ISO 8601 형식의 날짜 시간 문자열입니다. 예: 2016-03-11T03:45:40Z(관리자 또는 프로젝트/그룹 소유자 권한 필요)
internal boolean 아니요 노트의 내부 플래그입니다. 기본값은 false 입니다.
merge_request_diff_head_sha string 아니요 /merge 퀵 액션에 필요합니다. head 커밋의 SHA로, API 요청을 보낸 뒤 머지 리퀘스트가 변경되지 않았음을 보장합니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes?body=note"

머지 리퀘스트 노트 업데이트#

머지 리퀘스트의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
note_id integer 아니요 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 머지 리퀘스트의 IID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/7/notes/1602"

에픽#

Warning

에픽 REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. GitLab 17.4부터 18.0 까지는 에픽의 새 화면이 활성화된 경우에, GitLab 18.1 이상에서는 항상 Work Items API를 대신 사용합니다. 자세한 내용은 에픽 API를 작업 항목으로 마이그레이션을 참고합니다. 이 변경은 브레이킹 체인지입니다.

모든 에픽 노트 조회#

지정한 에픽의 모든 노트를 조회합니다. 에픽 노트는 사용자가 에픽에 남기는 댓글입니다.

Note

에픽 노트 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 integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 그룹 에픽의 ID
sort string 아니요 에픽 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 에픽 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes"

에픽 노트 조회#

에픽의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
{
  "id": 302,
  "body": "Epic note",
  "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>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1"

에픽 노트 생성#

지정한 에픽에 노트를 생성합니다. 에픽 노트는 사용자가 에픽에 남기는 댓글입니다. 본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
epic_id integer 예 에픽의 ID
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
confidential boolean 아니요 Deprecated: internal로 이름이 변경되었습니다. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
internal boolean 아니요 노트의 내부 플래그입니다. 두 파라미터를 함께 전달하면 confidential보다 우선합니다. 기본값은 false 입니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"

에픽 노트 업데이트#

에픽의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1?body=note"

에픽 노트 삭제#

에픽의 기존 노트를 삭제합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"

프로젝트 위키#

모든 프로젝트 위키 노트 조회#

지정한 프로젝트 위키 페이지의 모든 노트를 조회합니다. 프로젝트 위키 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

Note

위키 페이지 노트 API는 위키 페이지 슬러그가 아니라 위키 페이지 메타 ID를 사용합니다. 페이지의 슬러그를 사용하면 GitLab은 404 오류를 반환합니다. 메타 ID는 프로젝트 위키 API에서 조회할 수 있습니다.

GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes
GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes?sort=asc&order_by=updated_at

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
sort string 아니요 위키 페이지 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 위키 페이지 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes"

위키 페이지 노트 조회#

지정한 위키 페이지의 노트 하나를 조회합니다.

GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
{
  "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
  },
  "body": "foobar",
  "commands_changes": {},
  "confidential": false,
  "created_at": "2025-03-11T11:36:32.222Z",
  "id": 1218,
  "imported": false,
  "imported_from": "none",
  "internal": false,
  "noteable_id": 35,
  "noteable_iid": null,
  "noteable_type": "WikiPage::Meta",
  "project_id": 5,
  "resolvable": false,
  "system": false,
  "type": null,
  "updated_at": "2025-03-11T11:36:32.222Z"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218"

위키 페이지 노트 생성#

위키 페이지 하나에 새 노트를 생성합니다. 위키 페이지 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

POST /projects/:id/wiki_pages/:wiki_page_meta_id/notes

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes?body=note"

위키 페이지 노트 업데이트#

위키 페이지의 기존 노트를 업데이트합니다.

PUT /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218?body=note"

위키 페이지 노트 삭제#

위키 페이지에서 노트를 삭제합니다.

DELETE /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218"

그룹 위키#

그룹 위키 노트 조회#

지정한 그룹 위키 페이지의 모든 노트를 조회합니다. 그룹 위키 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

Note

위키 페이지 노트 API는 위키 페이지 슬러그가 아니라 위키 페이지 메타 ID를 사용합니다. 페이지의 슬러그를 사용하면 GitLab은 404 오류를 반환합니다. 메타 ID는 그룹 위키 API에서 조회할 수 있습니다.

GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes
GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes?sort=asc&order_by=updated_at
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
sort string 아니요 위키 페이지 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 위키 페이지 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes"

위키 페이지 노트 조회#

위키 페이지의 지정한 노트를 조회합니다.

GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
{
  "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
  },
  "body": "foobar",
  "commands_changes": {},
  "confidential": false,
  "created_at": "2025-03-11T11:36:32.222Z",
  "id": 1218,
  "imported": false,
  "imported_from": "none",
  "internal": false,
  "noteable_id": 35,
  "noteable_iid": null,
  "noteable_type": "WikiPage::Meta",
  "project_id": null,
  "resolvable": false,
  "system": false,
  "type": null,
  "updated_at": "2025-03-11T11:36:32.222Z"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218"

위키 페이지 노트 생성#

지정한 위키 페이지에 노트를 생성합니다. 위키 페이지 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

POST /groups/:id/wiki_pages/:wiki_page_meta_id/notes

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes?body=note"

위키 페이지 노트 업데이트#

위키 페이지의 지정한 노트를 업데이트합니다.

PUT /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218?body=note"

위키 페이지 노트 삭제#

위키 페이지에서 노트를 삭제합니다.

DELETE /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218"

노트 API

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

요약

이 API로 GitLab 콘텐츠에 달린 댓글과 시스템 기록을 관리합니다. 일부 시스템 생성 노트는 별도의 리소스 이벤트로 기록됩니다. API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다.

이 API로 GitLab 콘텐츠에 달린 댓글과 시스템 기록을 관리합니다. 다음 작업을 수행할 수 있습니다.

  • 이슈, 머지 리퀘스트, 에픽, 스니펫, 커밋의 댓글을 생성하고 수정합니다.
  • 객체 변경에 대한 시스템 생성 노트를 조회합니다.
  • 결과를 정렬하고 페이지 단위로 나눕니다.
  • 비공개 플래그와 내부 플래그로 노출 범위를 제어합니다.
  • 속도 제한으로 남용을 방지합니다.

일부 시스템 생성 노트는 별도의 리소스 이벤트로 기록됩니다.

API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다. 자세한 내용은 페이지네이션을 참고합니다.

리소스 이벤트#

일부 시스템 노트는 이 API에 포함되지 않고 별도의 이벤트로 기록됩니다.

노트 페이지네이션#

API 결과는 페이지 단위로 나뉘므로 GET 요청은 기본적으로 한 번에 20건을 반환합니다.

자세한 내용은 페이지네이션을 참고합니다.

속도 제한#

남용을 방지하기 위해 사용자별로 분당 Create 요청 수를 제한할 수 있습니다. 자세한 내용은 콘텐츠 생성 속도 제한을 참고합니다.

이슈#

모든 이슈 노트 조회#

지정한 이슈의 모든 노트를 조회합니다.

GET /projects/:id/issues/:issue_iid/notes
GET /projects/:id/issues/:issue_iid/notes?sort=asc&order_by=updated_at
GET /projects/:id/issues/:issue_iid/notes?activity_filter=only_comments
속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 이슈의 IID
activity_filter string 아니요 활동 유형으로 노트를 필터링합니다. 사용 가능한 값: all_notes, only_comments, only_activity. 기본값은 all_notes
sort string 아니요 이슈 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 이슈 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
[
  {
    "id": 302,
    "body": "closed",
    "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",
    "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes"

이슈 노트 조회#

프로젝트 이슈의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 프로젝트 이슈의 IID
note_id integer 예 이슈 노트의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/1"

이슈 노트 생성#

지정한 프로젝트 이슈에 노트를 생성합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
issue_iid integer 예 이슈의 IID 입니다.
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated: internal로 이름이 변경되었습니다. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
internal boolean 아니요 노트의 내부 플래그입니다. 두 파라미터를 함께 전달하면 confidential보다 우선합니다. 기본값은 false 입니다.
created_at string 아니요 ISO 8601 형식의 날짜 시간 문자열입니다. 1970-01-01 이후여야 합니다. 예: 2016-03-11T03:45:40Z(관리자 또는 프로젝트/그룹 소유자 권한 필요)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=note"

이슈 노트 업데이트#

이슈의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
issue_iid integer 예 이슈의 IID 입니다.
note_id integer 예 노트의 ID 입니다.
body string 아니요 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636?body=note"

이슈 노트 삭제#

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

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 예 이슈의 IID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 프로젝트 스니펫의 ID
sort string 아니요 스니펫 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 스니펫 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes"

스니펫 노트 조회#

스니펫의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 프로젝트 스니펫의 ID
note_id integer 예 스니펫 노트의 ID
{
  "id": 302,
  "body": "closed",
  "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"

스니펫 노트 생성#

지정한 스니펫에 새 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자 댓글입니다. 본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

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

스니펫 노트 업데이트#

스니펫의 지정한 노트를 업데이트합니다.

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

파라미터:

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

스니펫 노트 삭제#

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

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
snippet_id integer 예 스니펫의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
sort string 아니요 머지 리퀘스트 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 머지 리퀘스트 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes"

머지 리퀘스트 노트 조회#

머지 리퀘스트의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
note_id integer 예 머지 리퀘스트 노트의 ID
{
  "id": 301,
  "body": "Comment for MR",
  "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>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1"

머지 리퀘스트 노트 생성#

지정한 머지 리퀘스트에 노트를 생성합니다. 노트는 머지 리퀘스트의 특정 줄에 연결되지 않습니다. 더 세밀하게 제어하는 다른 방법은 커밋 API의 커밋에 댓글 작성과 디스커션 API의 머지 리퀘스트 diff에 새 스레드 생성을 참고합니다.

본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
created_at string 아니요 ISO 8601 형식의 날짜 시간 문자열입니다. 예: 2016-03-11T03:45:40Z(관리자 또는 프로젝트/그룹 소유자 권한 필요)
internal boolean 아니요 노트의 내부 플래그입니다. 기본값은 false 입니다.
merge_request_diff_head_sha string 아니요 /merge 퀵 액션에 필요합니다. head 커밋의 SHA로, API 요청을 보낸 뒤 머지 리퀘스트가 변경되지 않았음을 보장합니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes?body=note"

머지 리퀘스트 노트 업데이트#

머지 리퀘스트의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 프로젝트 머지 리퀘스트의 IID
note_id integer 아니요 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
merge_request_iid integer 예 머지 리퀘스트의 IID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/merge_requests/7/notes/1602"

에픽#

Warning

에픽 REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. GitLab 17.4부터 18.0 까지는 에픽의 새 화면이 활성화된 경우에, GitLab 18.1 이상에서는 항상 Work Items API를 대신 사용합니다. 자세한 내용은 에픽 API를 작업 항목으로 마이그레이션을 참고합니다. 이 변경은 브레이킹 체인지입니다.

모든 에픽 노트 조회#

지정한 에픽의 모든 노트를 조회합니다. 에픽 노트는 사용자가 에픽에 남기는 댓글입니다.

Note

에픽 노트 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 integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 그룹 에픽의 ID
sort string 아니요 에픽 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 에픽 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes"

에픽 노트 조회#

에픽의 지정한 노트를 조회합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
{
  "id": 302,
  "body": "Epic note",
  "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>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1"

에픽 노트 생성#

지정한 에픽에 노트를 생성합니다. 에픽 노트는 사용자가 에픽에 남기는 댓글입니다. 본문이 이모지 반응만으로 이루어진 노트를 생성하면 GitLab은 이 객체를 반환합니다.

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

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
epic_id integer 예 에픽의 ID
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
confidential boolean 아니요 Deprecated: internal로 이름이 변경되었습니다. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
internal boolean 아니요 노트의 내부 플래그입니다. 두 파라미터를 함께 전달하면 confidential보다 우선합니다. 기본값은 false 입니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"

에픽 노트 업데이트#

에픽의 지정한 노트를 업데이트합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
confidential boolean 아니요 Deprecated. 노트의 비공개 플래그입니다. 기본값은 false 입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1?body=note"

에픽 노트 삭제#

에픽의 기존 노트를 삭제합니다.

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

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 예 에픽의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"

프로젝트 위키#

모든 프로젝트 위키 노트 조회#

지정한 프로젝트 위키 페이지의 모든 노트를 조회합니다. 프로젝트 위키 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

Note

위키 페이지 노트 API는 위키 페이지 슬러그가 아니라 위키 페이지 메타 ID를 사용합니다. 페이지의 슬러그를 사용하면 GitLab은 404 오류를 반환합니다. 메타 ID는 프로젝트 위키 API에서 조회할 수 있습니다.

GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes
GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes?sort=asc&order_by=updated_at

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
sort string 아니요 위키 페이지 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 위키 페이지 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes"

위키 페이지 노트 조회#

지정한 위키 페이지의 노트 하나를 조회합니다.

GET /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
{
  "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
  },
  "body": "foobar",
  "commands_changes": {},
  "confidential": false,
  "created_at": "2025-03-11T11:36:32.222Z",
  "id": 1218,
  "imported": false,
  "imported_from": "none",
  "internal": false,
  "noteable_id": 35,
  "noteable_iid": null,
  "noteable_type": "WikiPage::Meta",
  "project_id": 5,
  "resolvable": false,
  "system": false,
  "type": null,
  "updated_at": "2025-03-11T11:36:32.222Z"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218"

위키 페이지 노트 생성#

위키 페이지 하나에 새 노트를 생성합니다. 위키 페이지 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

POST /projects/:id/wiki_pages/:wiki_page_meta_id/notes

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes?body=note"

위키 페이지 노트 업데이트#

위키 페이지의 기존 노트를 업데이트합니다.

PUT /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218?body=note"

위키 페이지 노트 삭제#

위키 페이지에서 노트를 삭제합니다.

DELETE /projects/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 프로젝트의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/wiki_pages/35/notes/1218"

그룹 위키#

그룹 위키 노트 조회#

지정한 그룹 위키 페이지의 모든 노트를 조회합니다. 그룹 위키 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

Note

위키 페이지 노트 API는 위키 페이지 슬러그가 아니라 위키 페이지 메타 ID를 사용합니다. 페이지의 슬러그를 사용하면 GitLab은 404 오류를 반환합니다. 메타 ID는 그룹 위키 API에서 조회할 수 있습니다.

GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes
GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes?sort=asc&order_by=updated_at
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
sort string 아니요 위키 페이지 노트를 asc 또는 desc 순으로 정렬해 반환합니다. 기본값은 desc
order_by string 아니요 위키 페이지 노트를 created_at 또는 updated_at 필드 기준으로 정렬해 반환합니다. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes"

위키 페이지 노트 조회#

위키 페이지의 지정한 노트를 조회합니다.

GET /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
{
  "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
  },
  "body": "foobar",
  "commands_changes": {},
  "confidential": false,
  "created_at": "2025-03-11T11:36:32.222Z",
  "id": 1218,
  "imported": false,
  "imported_from": "none",
  "internal": false,
  "noteable_id": 35,
  "noteable_iid": null,
  "noteable_type": "WikiPage::Meta",
  "project_id": null,
  "resolvable": false,
  "system": false,
  "type": null,
  "updated_at": "2025-03-11T11:36:32.222Z"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218"

위키 페이지 노트 생성#

지정한 위키 페이지에 노트를 생성합니다. 위키 페이지 노트는 사용자가 위키 페이지에 남기는 댓글입니다.

POST /groups/:id/wiki_pages/:wiki_page_meta_id/notes

파라미터:

속성 유형 필수 여부 설명
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes?body=note"

위키 페이지 노트 업데이트#

위키 페이지의 지정한 노트를 업데이트합니다.

PUT /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
body string 예 노트의 내용입니다. 1,000,000자로 제한됩니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218?body=note"

위키 페이지 노트 삭제#

위키 페이지에서 노트를 삭제합니다.

DELETE /groups/:id/wiki_pages/:wiki_page_meta_id/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로
wiki_page_meta_id integer 예 위키 페이지 메타의 ID
note_id integer 예 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/wiki_pages/35/notes/1218"