Notes API

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

Notes는 다음에 대한 코멘트입니다:

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

리소스 이벤트

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

Notes 페이지네이션

기본적으로 GET 요청은 페이지별 20개의 결과를 반환합니다. 이는 API 결과가 페이지별로 표시되기 때문입니다.

자세한 내용은 페이지네이션을 참조하세요.

요금 제한

남용을 방지하기 위해 사용자를 분당 Create 요청의 특정 횟수로 제한할 수 있습니다. Notes 요금 제한을 확인하세요.

이슈

프로젝트 이슈 노트 목록

특정 이슈에 대한 모든 노트 목록을 가져옵니다.

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"
### 새 이슈 노트 생성

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

피라미터:

속성 유형 필수 여부 설명
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"

새로운 스니펫 노트 생성

단일 스니펫에 대한 새로운 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자 의견입니다. 본문에 이모지 반응만 포함된 노트를 만들면, 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 정수 프로젝트 병합 요청의 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/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": "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 빠른 액션을 위해 필요합니다. 머지 요청이 API 요청 이후에 업데이트되지 않았음을 보장하는 헤드 커밋의 SHA입니다.

기존 병합 요청 노트 수정

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

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 부울 아니오 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 정수 또는 문자열 프로젝트의 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"

Epic

Tier: 프리미엄, 얼티밋 Offering: GitLab.com, 자체 관리형, GitLab Dedicated

모든 에픽 노트 목록

단일 에픽의 모든 노트 목록을 가져옵니다. 에픽 노트는 사용자가 에픽에 작성할 수 있는 코멘트입니다.

참고: 에픽 노트 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
}
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"