노트 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 integer or string 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid integer 이슈의 IID
sort string 아니오 ‘asc’ 또는 ‘desc’ 순서로 정렬된 이슈 노트를 반환합니다. 기본값은 desc입니다.
order_by string 아니오 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": "댓글의 텍스트\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에서 제거될 예정이며 internal로 이름이 변경됩니다. 노트의 비밀_flag. 기본값은 false입니다.
internal 부울 아니오 노트의 내부_flag. 두 매개변수가 모두 제출된 경우 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에서 제거될 예정입니다. 노트의 비밀_flag. 기본값은 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": "MR에 대한 댓글",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "활성",
    "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 빠른 작업에 필요합니다. API 요청이 전송된 후 병합 요청이 업데이트되지 않았음을 보장하는 헤드 커밋의 SHA입니다.

기존 병합 요청 노트 수정

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

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

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 URL 인코딩 경로 또는 ID
merge_request_iid 정수 프로젝트 병합 요청의 IID
note_id 정수 아니오 노트의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
confidential 불리언 아니오 Deprecated: 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 정수 또는 문자열 프로젝트의 URL 인코딩 경로 또는 ID
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에서 제거될 예정입니다.
GitLab 17.4 이상에서는 관리자가 에픽의 새 모양을 활성화한 경우
작업 항목 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 정수 또는 문자열 그룹의 URL 인코딩 경로 또는 ID
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에서 제거될 예정이며 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"

에픽 노트 삭제

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

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

매개변수:

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