노트 API
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"