Notes API
Notes는 다음에 대한 코멘트입니다:
이에는 시스템 노트도 포함되어 있으며, 이는 해당 객체에 대한 변경 사항에 대한 노트입니다(예: 담당자 변경 시 GitLab이 시스템 노트를 게시합니다).
리소스 이벤트
- GitLab 13.3에서 도입됨: 상태, 마일스톤 및 가중치 이벤트
- GitLab 13.4에서 도입됨: 이터레이션 이벤트
일부 시스템 노트는 이 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
모든 에픽 노트 목록
단일 에픽의 모든 노트 목록을 가져옵니다. 에픽 노트는 사용자가 에픽에 작성할 수 있는 코멘트입니다.
참고: 에픽 노트 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"