GitLab MCP 서버 도구
GitLab v19.4Offering: GitLab.com, GitLab Self-Managed
요약
이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다. GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. GitLab MCP 서버의 현재 버전을 반환합니다. 단일 GitLab 프로젝트의 메타데이터(숫자 ID, 전체 경로, 기본 브랜치, 공개 범위, 웹 URL)를 반환합니다.
이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다.
GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. 이 도구를 사용하여 GitLab과 직접 상호 작용하고 일반적인 GitLab 작업을 수행할 수 있습니다.
get_mcp_server_version#
히스토리
- GitLab 18.3에서 도입.
GitLab MCP 서버의 현재 버전을 반환합니다.
예시:
What version of the GitLab MCP server am I connected to?
get_project#
히스토리
- GitLab 19.4에서 도입.
단일 GitLab 프로젝트의 메타데이터(숫자 ID, 전체 경로, 기본 브랜치, 공개 범위, 웹 URL)를 반환합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 URL. url 또는 project_id 중 정확히 하나를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url 또는 project_id 중 정확히 하나를 제공합니다. |
프로젝트에 아직 리포지터리가 없으면 default_branch는 null입니다.
아직 이름을 알 수 없는 프로젝트를 찾으려면 projects 범위로 search를 사용합니다.
예시:
What is the default branch of gitlab-org/gitlab?
add_commit#
한 번의 호출로 하나 이상의 파일 작업을 포함한 커밋을 브랜치에 추가합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
commit_message |
string | 예 | 커밋 메시지. |
actions |
array of objects | 예 | 하나의 배치로 커밋할 파일 작업. |
branch |
string | 예 | 커밋할 브랜치 이름. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url을 제공하지 않으면 필수입니다. |
url |
string | 아니요 | 프로젝트의 GitLab URL. project_id를 제공하지 않으면 필수입니다. |
start_branch |
string | 아니요 | 새 브랜치를 시작할 브랜치 이름. branch가 존재하지 않으면 필수입니다. |
start_sha |
string | 아니요 | 새 브랜치를 시작할 커밋의 SHA. start_branch와 함께 사용할 수 없습니다. |
start_project |
string | 아니요 | 커밋을 시작할 프로젝트의 전체 경로. 해당 프로젝트 자신이거나 그 프로젝트가 포크된 원본 프로젝트여야 합니다. |
actions의 각 객체는 다음 필드를 허용합니다.
| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
action |
string | 예 | 수행할 작업: create, update, delete, move, chmod 중 하나. |
file_path |
string | 예 | 파일의 전체 경로. |
content |
string | 아니요 | 파일 콘텐츠. create, update, move에서 사용합니다. old_str 및 new_str과 함께 사용할 수 없습니다. |
old_str |
string | 아니요 | update 작업에서 교체할 기존 텍스트. new_str이 필요합니다. |
new_str |
string | 아니요 | update 작업에서 old_str을 대체할 텍스트. |
previous_path |
string | 아니요 | 원래 파일 경로. move에서 필수입니다. |
encoding |
string | 아니요 | content의 인코딩: text 또는 base64. 기본값은 text입니다. |
last_commit_id |
string | 아니요 | 낙관적 동시성 제어에 사용하는, 파일의 마지막으로 알려진 커밋 ID. |
execute_filemode |
boolean | 아니요 | 파일이 실행 가능한지 여부. chmod에서 필수입니다. |
부분 편집은 old_str이 정확히 한 번 나타나는 위치만 교체합니다. 두 번 이상 나타나면 주변 컨텍스트를 더 많이 제공해야 합니다.
부분 편집은 서버에서 전체 파일을 읽으므로 10 MiB보다 큰 파일에서는 지원되지 않습니다.
더 큰 파일은 전체 파일 콘텐츠를 커밋합니다.
부분 편집은 바이너리 파일이나 LFS에 저장된 파일에서는 지원되지 않습니다.
예시:
In project gitlab-org/gitlab, create README.md on branch "docs-update"
with the content "# New title" and commit message "Add README"
create_issue#
히스토리
- GitLab 18.4에서 도입.
- GitLab 19.4에서 목록 제외.
save_work_item으로 대체되었습니다.
save_work_item으로 대체되었습니다. save_work_item은 마일스톤 제목과
레이블 이름을 같은 위치(프로젝트와 그 상위 그룹)에서 확인하지만, 찾을 수 없는 이름에는
더 엄격합니다. create_issue는 아직 없는 레이블 이름을 새로 만들고 알 수 없는 마일스톤 제목은
조용히 버리지만, save_work_item은 찾을 수 없는 항목을 명시한 오류를 반환합니다.
이 도구는 더 이상 tools/list에 나타나지 않지만,
호출자가 마이그레이션하는 동안에는 계속 호출할 수 있습니다.
GitLab 프로젝트에 새 이슈를 만듭니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
title |
string | 예 | 이슈 제목. |
description |
string | 아니요 | 이슈 설명. |
assignee_ids |
array of integers | 아니요 | 배정된 사용자 ID 배열. |
milestone_id |
integer | 아니요 | 마일스톤 ID. |
labels |
array of strings | 아니요 | 레이블 이름 배열. |
confidential |
boolean | 아니요 | 이슈를 기밀로 설정합니다. 기본값은 false. |
epic_id |
integer | 아니요 | 연결된 에픽의 ID. |
예시:
Create a new issue titled "Fix login bug" in project 123 with description
"Users cannot log in with special characters in password"
get_issue#
히스토리
- GitLab 18.4에서 도입.
특정 GitLab 이슈에 대한 자세한 정보를 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
issue_iid |
integer | 예 | 이슈의 내부 ID. |
예시:
Get details for issue 42 in project 123
save_merge_request#
히스토리
GitLab 프로젝트에서 머지 리퀘스트를 만들거나 업데이트합니다.
merge_request_iid의 유무로 작업이 결정됩니다. 생략하면 머지 리퀘스트를 만들고, 제공하면 기존 머지 리퀘스트를 업데이트합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
project_id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. 기존 머지 리퀘스트를 업데이트하려면 제공하고, 만들려면 생략합니다. |
title |
string | 아니요 | 머지 리퀘스트 제목. 만들 때 필수입니다. |
source_branch |
string | 아니요 | 소스 브랜치 이름. 만들 때 필수입니다. |
target_branch |
string | 아니요 | 대상 브랜치 이름. 만들 때 필수입니다. |
target_project_id |
integer | 아니요 | 대상 프로젝트의 ID. 만들 때 적용됩니다. |
description |
string | 아니요 | 머지 리퀘스트 설명. |
labels |
array of strings | 아니요 | 레이블 이름. 기존 레이블을 모두 교체합니다. 모든 레이블을 제거하려면 빈 배열을 전달합니다. |
add_labels |
array of strings | 아니요 | 추가할 레이블 이름. 업데이트할 때 적용됩니다. |
remove_labels |
array of strings | 아니요 | 제거할 레이블 이름. 업데이트할 때 적용됩니다. |
assignees |
array of strings | 아니요 | 배정할 사용자 이름. assignee_ids의 대안이며 둘 중 하나만 제공합니다. 모든 담당자를 제거하려면 빈 배열을 전달합니다. |
assignee_ids |
array of integers | 아니요 | 배정할 사용자 ID. assignees의 대안이며 둘 중 하나만 제공합니다. 모든 담당자를 제거하려면 빈 배열을 전달합니다. |
reviewers |
array of strings | 아니요 | 리뷰를 요청할 사용자 이름. reviewer_ids의 대안이며 둘 중 하나만 제공합니다. 모든 리뷰어를 제거하려면 빈 배열을 전달합니다. |
reviewer_ids |
array of integers | 아니요 | 리뷰를 요청할 사용자 ID. reviewers의 대안이며 둘 중 하나만 제공합니다. 모든 리뷰어를 제거하려면 빈 배열을 전달합니다. |
milestone_id |
integer | 아니요 | 마일스톤 ID. |
milestone |
string | 아니요 | 배정할 프로젝트 또는 상위 그룹 마일스톤의 제목. milestone_id와 함께 사용할 수 없습니다. |
remove_source_branch |
boolean | 아니요 | 머지 리퀘스트가 머지될 때 소스 브랜치를 제거합니다. |
squash |
boolean | 아니요 | 머지할 때 커밋을 하나의 커밋으로 스쿼시합니다. |
state_event |
string | 아니요 | 수행할 상태 전환. close 또는 reopen 중 하나. 업데이트할 때 적용됩니다. |
discussion_locked |
boolean | 아니요 | 머지 리퀘스트 토론을 잠급니다. 업데이트할 때 적용됩니다. |
allow_collaboration |
boolean | 아니요 | 대상 브랜치에 머지할 수 있는 멤버의 커밋을 허용합니다. 업데이트할 때 적용됩니다. |
예시:
Create a merge request in project gitlab-org/gitlab titled "Bug fix broken specs"
from branch "fix/specs-broken" into "master" and enable squash
Update merge request 42 in project gitlab-org/gitlab to add the "bug" label and close it
get_merge_request#
머지 리퀘스트를 가져오며, 선택적으로 diff, 커밋, 노트, 파이프라인, 토론, 충돌도 가져옵니다.
include 파라미터로 연관 데이터를 요청하지 않으면 기본 머지 리퀘스트만 반환됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 머지 리퀘스트의 GitLab URL. 이것을 제공하거나 project_id와 merge_request_iid를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 URL 인코딩된 경로. url이 없으면 필수입니다. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. url이 없으면 필수입니다. |
include |
array | 아니요 | 머지 리퀘스트와 함께 반환할 연관 패싯. diffs, commits, notes, pipelines, discussions, conflicts 중 하나. 호출당 하나의 패싯으로 제한됩니다. |
notes_after |
string | 아니요 | 노트의 정방향 페이지네이션용 커서. include가 ["notes"] 일 때만 적용됩니다. |
notes_first |
integer | 아니요 | 커서 이후로 반환할 노트 수(최대 100). include가 ["notes"] 일 때만 적용됩니다. |
diffs 패싯은 변경 통계만 반환합니다. 전체 합계와 파일별 추가 및
삭제 수입니다. 패치 텍스트를 가져오려면 get_merge_request_diffs를 사용합니다.
conflicts 패싯은 Git 충돌 마커를 포함한 원시 충돌 파일 콘텐츠를 반환합니다. 머지 리퀘스트를
머지할 수 없고 소스 브랜치에 푸시할 수 있는 경우에만 사용할 수 있으며,
머지 가능 여부를 확인하기 전에는 null입니다. 상태를 확인하려면 기본 conflicts 필드를 읽습니다.
예시:
Get merge request 15 in project gitlab-org/gitlab with its commits
list_duo_sessions#
히스토리
- GitLab 19.3에서 도입.
Duo Chat 세션을 제외한 GitLab Duo Agent Platform 세션을 나열합니다. 각 세션에는 개별 상태, 목표 미리보기, 플로 정의, 생성 타임스탬프가 포함됩니다. 프로젝트 세션에는 세션 URL도 포함됩니다. 목표 미리보기는 잘릴 수 있습니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 세션을 필터링할 프로젝트의 GitLab URL. project_id와 함께 사용하지 않습니다. |
project_id |
string | 아니요 | 세션을 필터링할 프로젝트의 숫자 ID 또는 전체 경로. url과 함께 사용하지 않습니다. |
status_group |
string | 아니요 | 세션 상태 그룹. active, paused, awaiting_input, completed, failed, canceled 중 하나. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 세션 수. 기본값은 20, 최댓값은 100입니다. |
status_group 필터는 여러 개별 상태의 세션을 반환할 수 있습니다.
각 호출은 결과의 한 페이지를 반환합니다.
페이지가 더 있으면 응답에 pageInfo.endCursor가 포함되며, 이를 after로 전달할 수 있습니다.
예시:
List my active Duo Agent Platform sessions in gitlab-org/gitlab
get_duo_session#
히스토리
- GitLab 19.4에서 도입.
get_duo_workflow_status도 별칭으로 사용할 수 있습니다.
GitLab Duo Agent Platform 세션의 상태를 확인합니다. 실행 중인 세션에는 권장 폴링 지연 시간이 포함됩니다. 완료된 세션과 완료된 채팅 턴에는 에이전트의 최신 답변이 포함됩니다. 승인을 기다리는 세션에는 세션을 계속하는 방법에 대한 안내가 포함됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
workflow_id |
integer | 예 | trigger_duo_flow 또는 ask_duo_agent가 반환한 워크플로 ID. |
예시:
Check the status of Duo session 42
list_merge_requests#
GitLab 프로젝트 또는 그룹의 머지 리퀘스트를 나열하거나 검색하며, 간략한 머지 리퀘스트 메타데이터를 반환합니다.
그룹 범위는 항상 그룹과 그 하위 그룹에 속한 모든 프로젝트의 머지 리퀘스트를 포함하지만,
보관된 프로젝트의 머지 리퀘스트는 제외합니다.
그룹 결과에는 get_merge_request에서 사용할 수 있도록 각 머지 리퀘스트를 소유한 프로젝트 경로도 포함됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트 또는 그룹의 GitLab URL. url, project_id, group_id 중 정확히 하나를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url, project_id, group_id 중 정확히 하나를 제공합니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 전체 경로. url, project_id, group_id 중 정확히 하나를 제공합니다. |
author_username |
string | 아니요 | 머지 리퀘스트 작성자의 사용자 이름으로 필터링합니다. |
assignee_username |
string | 아니요 | 담당자의 사용자 이름으로 필터링합니다. |
reviewer_username |
string | 아니요 | 리뷰어의 사용자 이름으로 필터링합니다. |
state |
string | 아니요 | 상태로 필터링합니다. opened, closed, merged, locked, all 중 하나. 생략하면 모든 상태를 포함합니다. |
scope |
string | 아니요 | 인증된 사용자를 기준으로 필터링합니다. created_by_me, assigned_to_me, review_requested 중 하나. 명시적으로 지정한 사용자 이름이 해당 필드에서 우선합니다. |
milestone |
string | 아니요 | 마일스톤 제목으로 필터링합니다. |
labels |
string | 아니요 | 쉼표로 구분한 레이블 이름 목록. 이 레이블을 모두 가진 머지 리퀘스트만 반환됩니다. |
search |
string | 아니요 | 머지 리퀘스트 제목과 설명에서 일치를 찾는 검색어. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 머지 리퀘스트 수. 기본값은 20, 최댓값은 100입니다. |
단일 머지 리퀘스트의 전체 상세 정보를 가져오려면 get_merge_request를 사용합니다. diff, 커밋,
노트는 get_merge_request_diffs, get_merge_request_commits,
get_merge_request_notes에서 가져올 수 있습니다. 리소스 유형 전반에 걸친 전체 텍스트 검색에는 search를 사용합니다.
예시:
List my open merge requests in gitlab-org/gitlab
get_merge_request_commits#
히스토리
- GitLab 18.4에서 도입.
특정 GitLab 머지 리퀘스트의 커밋 목록을 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 내부 ID. |
per_page |
integer | 아니요 | 페이지당 커밋 수. |
page |
integer | 아니요 | 현재 페이지 번호. |
예시:
Show me all commits in merge request 42 from project 123
get_merge_request_diffs#
히스토리
- GitLab 18.4에서 도입.
특정 GitLab 머지 리퀘스트의 diff를 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 내부 ID. |
per_page |
integer | 아니요 | 페이지당 diff 수. |
page |
integer | 아니요 | 현재 페이지 번호. |
예시:
What files were changed in merge request 25 in the gitlab project?
get_merge_request_pipelines#
히스토리
- GitLab 18.4에서 도입.
특정 GitLab 머지 리퀘스트의 파이프라인을 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 내부 ID. |
예시:
Show me all pipelines for merge request 42 in project gitlab-org/gitlab
get_merge_request_conflicts#
히스토리
- GitLab 18.10에서 도입.
머지할 수 없는 머지 리퀘스트의 머지 충돌 콘텐츠를 가져옵니다.
충돌이 발생한 파일에 나타나는 그대로 원시 Git 충돌 마커(<<<<<<<, =======, >>>>>>>)를
반환합니다. 각 파일의 콘텐츠는 # File: 제목 아래에 그룹화됩니다.
이름이 변경된 파일은 제목에 각 브랜치의 경로가 표시됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
project_id |
string | 예 | 프로젝트의 ID 또는 전체 경로(예: gitlab-org/gitlab). |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 내부 ID. |
머지 리퀘스트의 소스 브랜치에 푸시할 수 있는 권한이 있어야 합니다. 머지 리퀘스트에 충돌이 없거나, 머지 가능 여부를 아직 확인하지 않았거나, 브랜치 또는 diff ref가 없으면 도구가 오류를 반환합니다.
예시:
Show the conflicts for merge request 42 in project gitlab-org/gitlab
save_note#
히스토리
인증된 사용자로서 GitLab 머지 리퀘스트나 작업 항목에 댓글을 추가하거나, 기존 토론 스레드에 답글을 답니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 머지 리퀘스트 또는 작업 항목의 URL. URL이 대상 유형을 결정합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. merge_request_iid와 함께, 그리고 프로젝트 수준 작업 항목에는 work_item_iid와 함께 필수입니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. 그룹 수준 작업 항목에는 work_item_iid와 함께 필수입니다. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. project_id와 함께 제공합니다. work_item_iid와 함께 사용할 수 없습니다. |
work_item_iid |
integer | 아니요 | 작업 항목의 내부 ID. project_id 또는 group_id와 함께 제공합니다. merge_request_iid와 함께 사용할 수 없습니다. |
body |
string | 예 | 노트의 콘텐츠. 퀵 액션(예: /merge)이 실행되지 않도록 줄은 /로 시작할 수 없습니다. |
internal |
boolean | 아니요 | 노트를 내부용으로 표시합니다(Reporter 권한 이상의 멤버에게만 표시됨). 기본값은 false입니다. |
discussion_id |
string | 아니요 | 답글을 달 토론의 글로벌 ID(gid://gitlab/Discussion/<id> 형식). 없으면 새 최상위 노트를 만듭니다. |
예시:
-
머지 리퀘스트에 댓글 달기:
Reply "Thanks, fixed in the latest push" to merge request 42 in project gitlab-org/gitlab -
작업 항목에 댓글 달기:
Add a comment "This looks good to me" to work item 42 in project gitlab-org/gitlab
get_merge_request_notes#
히스토리
- GitLab 19.2에서 도입.
특정 GitLab 머지 리퀘스트의 노트(댓글과 시스템 노트)를 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | GitLab 머지 리퀘스트의 URL. project_id와 merge_request_iid가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 URL 인코딩된 경로. url이 없으면 필수입니다. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. url이 없으면 필수입니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
before |
string | 아니요 | 역방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 노트 수. |
last |
integer | 아니요 | 역방향 페이지네이션으로 반환할 노트 수. |
반환되는 각 노트에는 토론 ID가 포함되므로, 관련 노트를 스레드로 그룹화할 수 있습니다.
예시:
Show me all comments on merge request 5 in project gitlab-org/gitlab
save_merge_request_review#
히스토리
- GitLab 19.4에서 도입.
인증된 사용자로서 머지 리퀘스트 리뷰 산출물을 작성합니다. 각 호출은
method 파라미터로 선택한 정확히 하나의 작업을 수행합니다.
| 메서드 | 동작 |
|---|---|
create_note |
최상위 댓글을 추가합니다. |
reply_discussion |
기존 토론에 답글을 답니다. |
create_diff_note |
특정 diff 줄에 댓글을 답니다. |
resolve_discussion |
토론을 해결하거나 해결을 취소합니다. |
submit_review |
여러 diff 댓글과 선택적 요약을 한 번의 호출로 게시합니다. |
post_duo_review |
GitLab Duo에 머지 리퀘스트 리뷰를 요청합니다. GitLab Duo Code Review가 필요합니다. |
approve |
머지 리퀘스트를 승인합니다. 이미 승인한 상태에서 호출해도 already_approved 상태로 성공합니다. |
unapprove |
본인의 승인을 제거합니다. 이전에 승인하지 않은 상태에서 호출해도 not_approved 상태로 성공합니다. |
post_duo_review, approve, unapprove의 응답에는 머지 리퀘스트의
현재 diff_head_sha가 포함되므로, 기존 승인이나 리뷰가 최신 커밋을
여전히 포함하는지 확인할 수 있습니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | GitLab 머지 리퀘스트의 URL. project_id와 merge_request_iid가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url이 없으면 필수입니다. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. url이 없으면 필수입니다. |
method |
string | 예 | 수행할 작업. 다른 메서드에 속한 파라미터는 거부됩니다. |
body |
string | 아니요 | 노트 텍스트. create_note, reply_discussion, create_diff_note에서 필수입니다. 퀵 액션(예: /merge)이 실행되지 않도록 줄은 /로 시작할 수 없습니다. |
discussion_id |
string | 아니요 | 작업할 토론. reply_discussion과 resolve_discussion에서 필수입니다. 글로벌 ID 또는 토론 ID만 사용할 수 있습니다. |
internal |
boolean | 아니요 | create_note에서 노트를 내부용으로 표시합니다. |
resolved |
boolean | 아니요 | resolve_discussion에서 true는 해결, false는 해결 취소입니다. 해당 메서드에서 필수입니다. |
old_path |
string | 아니요 | create_diff_note에서 변경 전 파일 경로. old_path 또는 new_path 중 하나 또는 둘 다 제공합니다. |
new_path |
string | 아니요 | create_diff_note에서 변경 후 파일 경로. |
old_line |
integer | 아니요 | create_diff_note에서 이전 버전의 줄 번호. old_line 또는 new_line 중 하나 또는 둘 다 제공합니다. |
new_line |
integer | 아니요 | create_diff_note에서 새 버전의 줄 번호. |
comments |
array | 아니요 | submit_review에서 1~20개의 diff 댓글. 각 항목은 file과 body(필수), old_line, new_line, suggestion(선택)을 받습니다. 해당 메서드에서 필수입니다. file은 변경 후 경로이며, 이름이 변경된 파일에는 대신 create_diff_note를 사용합니다. |
verdict |
string | 아니요 | submit_review에서 요약 노트 앞에 붙는 전체 판정. |
summary |
string | 아니요 | submit_review에서 diff 댓글 뒤에 게시되는 요약 노트. |
summary_internal |
boolean | 아니요 | submit_review에서 요약 노트를 내부용으로 표시합니다. |
sha |
string | 아니요 | approve에서 head SHA 가드. 값을 지정했는데 머지 리퀘스트 head와 더 이상 일치하지 않으면 승인이 거부됩니다. get_merge_request가 반환한 40자 전체 diff_head_sha를 전달합니다. |
예시:
Review merge request 42 in project gitlab-org/gitlab and leave your findings as diff comments with a summary
list_project_members#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트 멤버를 권한 및 액세스 수준과 함께 나열합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
project_id |
string | 예 | 프로젝트의 전체 경로 또는 숫자 ID(예: gitlab-org/gitlab 또는 278964). |
include_inherited |
boolean | 아니요 | 상위 그룹이나 프로젝트의 하위 그룹에서 권한을 상속받는 멤버도 함께 반환합니다. 기본값은 false입니다. |
query |
string | 아니요 | 이름 또는 사용자 이름에 이 텍스트가 포함된 멤버만 반환합니다. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 멤버 수(기본값 20, 최댓값 100). |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
응답은 각 멤버에 대해 사용자 ID, 사용자 이름, 이름, 숫자 access_level,
해당하는 access_level_name(예: Maintainer), 멤버십 expires_at 날짜를 반환합니다.
이메일로 초대받았지만 아직 초대를 수락하지 않은 멤버는 반환되지 않습니다.
각 호출은 결과의 한 페이지를 반환합니다.
페이지가 더 있으면 응답 metadata에 end_cursor가 포함되며, 이를 after로 전달하여 다음 페이지를 가져올 수 있습니다.
예시:
Who are the maintainers of gitlab-org/gitlab?
get_user#
히스토리
- GitLab 19.4에서 도입.
단일 GitLab 사용자를 가져옵니다. 이 도구를 사용하여 사용자 이름이나 본인 계정을 숫자 사용자 ID로 확인합니다. 예를 들어 다른 도구로 담당자나 리뷰어를 설정하기 전에 사용합니다.
username, id, me 중 정확히 하나를 제공합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
username |
string | 아니요 | 조회할 사용자의 사용자 이름. |
id |
integer | 아니요 | 조회할 사용자의 숫자 ID. |
me |
boolean | 아니요 | 인증된 사용자를 조회하려면 true로 설정합니다. 제공하는 경우 반드시 true 여야 합니다. username과 id는 생략합니다. |
응답은 사용자의 숫자 id, username, name, state, web_url을 반환합니다.
예시:
What is my GitLab user ID?
accept_merge_request#
히스토리
- GitLab 19.4에서 도입.
머지 리퀘스트를 머지하거나, 자동으로 머지되도록 예약합니다. strategy가 없으면 머지가
즉시 시작되어 비동기로 완료됩니다. strategy가 있으면 자동 머지가 설정되고
검사를 통과하면 머지 리퀘스트가 머지됩니다. 대신 머지 리퀘스트를 승인하려면
save_merge_request_review 도구를 사용합니다.
이미 머지된 머지 리퀘스트에 대한 호출은 already_merged 상태로 성공하며,
이미 예약된 머지 리퀘스트에 strategy를 지정한 호출은
already_scheduled 상태로 성공합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 머지 리퀘스트의 GitLab URL. 이것을 제공하거나 project_id와 merge_request_iid를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url이 없으면 필수입니다. |
merge_request_iid |
integer | 아니요 | 머지 리퀘스트의 내부 ID. url이 없으면 필수입니다. |
sha |
string | 예 | head SHA 가드. 머지 리퀘스트 head와 더 이상 일치하지 않으면 머지가 거부됩니다. get_merge_request가 반환한 diff_head_sha를 전달합니다. |
strategy |
string | 아니요 | 자동 머지 전략(예: merge_when_checks_pass). 지정하면 즉시 머지하는 대신 자동 머지를 설정합니다. |
squash |
boolean | 아니요 | 머지할 때 커밋을 하나의 커밋으로 스쿼시합니다. |
commit_message |
string | 아니요 | 사용자 지정 머지 커밋 메시지. |
squash_commit_message |
string | 아니요 | 사용자 지정 스쿼시 커밋 메시지. squash가 true 일 때 적용됩니다. |
should_remove_source_branch |
boolean | 아니요 | 머지 후 소스 브랜치를 제거합니다. |
예시:
Merge merge request 42 in project gitlab-org/gitlab once its checks pass, and remove the source branch
add_branch#
히스토리
- GitLab 19.3에서 도입.
create_branch도 별칭으로 사용할 수 있습니다.
소스 ref에서 GitLab 프로젝트에 브랜치를 추가합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. 이것을 제공하거나 project_id를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url을 제공하지 않으면 필수입니다. |
branch |
string | 예 | 새 브랜치의 이름. |
ref |
string | 예 | 새 브랜치를 만들 기준이 되는 브랜치 이름 또는 커밋 SHA. |
예시:
Create a branch named feature/x from main in project gitlab-org/gitlab
fork_repository#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트를 네임스페이스로 포크합니다.
포크는 비동기로 생성됩니다. 응답에는 새 프로젝트 속성이 포함되며,
포크 진행 상황을 보여 주는 import_status 필드(예: scheduled)가 들어 있습니다.
호출은 다음 상태에 따라 각각의 이유로 실패합니다.
409상태: 네임스페이스에 이미 해당 프로젝트의 포크가 있는 경우.404상태: 프로젝트나 네임스페이스가 존재하지 않거나, 프로젝트를 포크할 권한이 없는 경우.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
namespace_id |
integer | 아니요 | 프로젝트를 포크할 네임스페이스의 ID. |
namespace_path |
string | 아니요 | 프로젝트를 포크할 네임스페이스의 경로. |
name |
string | 아니요 | 포크에 지정할 이름. |
path |
string | 아니요 | 포크에 지정할 경로. |
description |
string | 아니요 | 포크에 지정할 설명. |
visibility |
string | 아니요 | 포크의 공개 범위. |
예시:
Fork gitlab-org/gitlab-test into my personal namespace
list_branches#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트의 브랜치를 나열하며, 선택적으로 이름으로 필터링합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
search |
string | 아니요 | 이름으로 브랜치를 필터링합니다. |
page |
integer | 아니요 | 현재 페이지 번호. 기본값은 1입니다. |
per_page |
integer | 아니요 | 페이지당 항목 수. 기본값은 20입니다. |
예시:
List branches in gitlab-org/gitlab whose names contain "release"
get_repository_file#
히스토리
- GitLab 19.3에서 도입.
특정 ref에서 리포지터리의 단일 파일 콘텐츠를 가져옵니다.
콘텐츠는 로컬 파일 시스템이 아니라 리포지터리에서 가져옵니다.
파일은 ref에 커밋된 상태로 반환되므로, 로컬 체크아웃의 커밋되지 않은 변경 사항은 포함되지 않습니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 파일의 URL(예: https://gitlab.example.com/my-group/my-project/-/blob/main/app/models/user.rb). 이것을 제공하거나 project_id, file_path, ref를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url을 제공하지 않으면 필수입니다. |
file_path |
string | 아니요 | 리포지터리 루트를 기준으로 한 파일 경로. url을 제공하지 않으면 필수입니다. |
ref |
string | 아니요 | 브랜치 이름, 태그 이름 또는 커밋 SHA. 기본 브랜치에는 HEAD를 사용합니다. url을 제공하지 않으면 필수입니다. |
offset |
integer | 아니요 | 읽기를 시작할 0부터 시작하는 줄 번호. 기본값은 0입니다. |
limit |
integer | 아니요 | 반환할 최대 줄 수. 기본값과 최댓값은 2000입니다. |
응답에는 total_lines, returned_lines, truncated, size_bytes를 담은 metadata 객체가 포함됩니다.
응답이 파일의 일부만 포함하면 system_instruction에 다음 호출에서 사용할 offset 이 명시됩니다.
이 도구는 텍스트만 반환합니다. 바이너리 파일과 Git LFS에 저장된 파일은 오류를 반환합니다. 프로젝트가 GitLab Duo 컨텍스트에서 제외한 파일도 오류를 반환합니다.
예시:
Show me app/models/user.rb from the main branch of my-group/my-project
list_repository_tree#
히스토리
- GitLab 19.4에서 도입.
지정한 경로와 ref에서 GitLab 리포지터리의 파일과 디렉터리를 나열합니다.
항목 메타데이터만 반환하며 파일 콘텐츠는 반환하지 않습니다. 파일의 콘텐츠를 읽으려면
get_repository_file을 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. url 또는 project_id 중 정확히 하나를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url 또는 project_id 중 정확히 하나를 제공합니다. |
path |
string | 아니요 | 리포지터리 루트를 기준으로 나열할 디렉터리의 경로. 기본값은 루트입니다. |
ref |
string | 아니요 | 브랜치 이름, 태그 이름 또는 커밋 SHA. 기본값은 기본 브랜치입니다. |
recursive |
boolean | 아니요 | 모든 하위 디렉터리의 항목을 재귀적으로 나열합니다. 기본값은 false입니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. 이전 응답의 endCursor를 사용합니다. |
각 호출은 최대 100개의 항목을 반환합니다. pageInfo.hasNextPage가 true 이면
pageInfo.endCursor를 after로 전달하여 다음 페이지를 가져옵니다.
예시:
List the files under app/services in gitlab-org/gitlab on the default branch
get_commit#
히스토리
- GitLab 19.3에서 도입.
단일 커밋의 메타데이터를 가져오며, 선택적으로 diff나 노트도 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | GitLab 커밋의 URL. project_id와 commit_sha를 제공하지 않으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 URL 인코딩된 경로. url을 제공하지 않으면 필수입니다. |
commit_sha |
string | 아니요 | 조회할 커밋. 전체 또는 짧은 SHA, 브랜치 이름, 태그 이름을 사용할 수 있습니다. url을 제공하지 않으면 필수입니다. |
include |
array | 아니요 | 인라인으로 가져올 연관 패싯. 호출당 하나(diff 또는 notes). 기본 메타데이터는 항상 반환됩니다. |
diff_detail |
string | 아니요 | 커밋 diff의 상세 수준. include에 diff가 포함된 경우에만 적용됩니다. stats 또는 full_patch 중 하나입니다. 기본값은 stats입니다. |
notes_after |
string | 아니요 | 다음 노트 페이지를 가져오는 토큰. include에 notes가 포함된 경우에만 적용됩니다. |
notes_first |
integer | 아니요 | 페이지당 반환할 노트 수(최대 100). include에 notes가 포함된 경우에만 적용됩니다. |
diff_detail을 stats로 설정하면 diff 패싯은 파일별 및 요약 줄 수를 반환합니다.
full_patch로 설정하면 패치 텍스트를 반환합니다.
예시:
Show me commit abc123 in gitlab-org/gitlab with its diff stats
list_commits#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트의 커밋을 나열하며, 선택적으로 ref, 작성자, 경로, 날짜로 필터링합니다.
간략한 커밋 메타데이터를 반환합니다. 단일 커밋의 diff나 노트를 가져오려면
get_commit을 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. url 또는 project_id 중 정확히 하나를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url 또는 project_id 중 정확히 하나를 제공합니다. |
ref_name |
string | 아니요 | 커밋을 나열할 브랜치 또는 태그. 기본값은 기본 브랜치입니다. |
author |
string | 아니요 | 커밋 작성자의 이름 또는 이메일로 필터링합니다. |
path |
string | 아니요 | 이 파일 경로를 변경한 커밋만 반환합니다. |
since |
string | 아니요 | 커밋 날짜가 이 ISO 8601 날짜 또는 시간 이후인 커밋만 반환합니다. |
until |
string | 아니요 | 커밋 날짜가 이 ISO 8601 날짜 또는 시간 이전인 커밋만 반환합니다. |
order |
string | 아니요 | 정렬 방식. topo 또는 date를 사용할 수 있습니다. 기본값은 시간 역순입니다. |
first_parent |
boolean | 아니요 | 머지 커밋의 첫 번째 부모만 따라갑니다. |
with_stats |
boolean | 아니요 | 커밋별 줄 수 통계(추가, 삭제, 변경된 파일)를 포함합니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. 이전 응답의 endCursor를 사용합니다. |
first |
integer | 아니요 | 반환할 커밋 수. 기본값은 20, 최댓값은 100입니다. |
with_stats가 true이면 각 커밋마다 Gitaly 호출이 발생하므로, first의 기본값은 10 이고
with_stats를 설정한 경우 10을 넘을 수 없습니다.
예시:
List commits to app/models in gitlab-org/gitlab since 2026-08-01 by Alex
list_releases#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트의 릴리스를 가장 최근에 릴리스된 순서로 나열합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. project_id를 제공하지 않으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url을 제공하지 않으면 필수입니다. |
page |
integer | 아니요 | 가져올 페이지 번호. 기본값은 1입니다. |
per_page |
integer | 아니요 | 페이지당 반환할 릴리스 수. 기본값은 20, 최댓값은 100입니다. |
state |
string | 아니요 | 릴리스 상태로 필터링합니다: released, upcoming, all. 기본값은 released입니다. |
url 또는 project_id 중 정확히 하나를 제공합니다.
각 항목은 릴리스 메타데이터만 반환합니다: tag_name, name, released_at, upcoming,
assets. assets 에는 릴리스 에셋 링크의 count와 그중 최대 5개의 links가 들어 있습니다.
릴리스에 에셋 링크가 5개보다 많으면 count는 실제 전체 개수를 나타냅니다. 소스 아카이브는
태그에서 파생할 수 있으므로 제외됩니다.
응답에는 page, per_page, has_more를 담은 metadata 객체도 포함됩니다.
has_more로 다음 페이지를 요청할지 결정합니다.
릴리스 노트는 의도적으로 이 응답에 반환되지 않습니다.
released_at 이 미래인 릴리스는 게시된 것이 아니라 예약된 것이며, 게시된
릴리스보다 앞에 정렬됩니다. state로 어느 쪽을 가져올지 제어합니다. 예약된 릴리스는 upcoming 이
true로 설정됩니다.
릴리스의 기반이 되는 커밋을 읽으려면 해당 tag_name을 get_commit 도구에 전달합니다.
에셋을 다운로드하려면 assets.links의 url을 사용합니다.
예시:
List the most recent releases for project gitlab-org/gitlab
list_tags#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트의 태그를 가장 최근에 업데이트된 순서로 나열합니다. search가 태그 이름과
정확히 일치하면 GitLab은 해당 태그를 가장 먼저 나열합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. project_id를 제공하지 않으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. url을 제공하지 않으면 필수입니다. |
search |
string | 아니요 | 이름으로 태그를 필터링합니다. 시작 고정에는 ^, 끝 고정에는 $, 와일드카드에는 *를 지원합니다. |
first |
integer | 아니요 | 반환할 태그 수. 기본값은 20, 최댓값은 100입니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. 이전 응답의 metadata.end_cursor를 사용합니다. |
url 또는 project_id 중 정확히 하나를 제공합니다.
각 항목은 name과 commit을 반환하며, commit 에는 태그 끝 커밋의 sha 와
title 이 들어 있습니다. 태그가 커밋이 아닌 다른 대상을 가리키면 commit은 null입니다.
태그 메시지는 의도적으로 이 응답에 반환되지 않습니다.
응답에는 has_next_page와 end_cursor를 담은 metadata 객체도 포함됩니다.
has_next_page가 true이면 end_cursor를 after로 전달하여 다음 페이지를 가져옵니다.
태그가 가리키는 전체 커밋을 읽으려면 get_commit 도구를 사용합니다.
예시:
List the most recent tags for the gitlab-org/gitlab project
get_pipeline#
히스토리
- GitLab 19.3에서 도입.
파이프라인을 가져오며, 선택적으로 job, 다운스트림 파이프라인 또는 브리지(트리거) job도 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
pipeline_id |
integer | 예 | 파이프라인의 ID. |
include |
array | 아니요 | 파이프라인과 함께 포함할 패싯. 호출당 하나: jobs, downstream_pipelines, bridge_jobs. |
job_status |
string | 아니요 | 상태로 jobs 패싯을 필터링합니다(예: failed). include가 jobs 일 때만 적용됩니다. |
first |
integer | 아니요 | 선택한 include 패싯에 대해 반환할 항목 수. 기본값은 20, 최댓값은 100입니다. |
after |
string | 아니요 | 선택한 include 패싯의 정방향 페이지네이션용 커서. 이전 응답의 page_info.end_cursor를 사용합니다. |
브리지 job의 downstream_pipeline은 트리거 job이 아직 다운스트림 파이프라인을
트리거하지 않은 경우와 해당 파이프라인에 액세스할 수 없는 경우 모두 생략됩니다(null).
다운스트림 파이프라인은 다른 프로젝트에 속할 수 있으므로, 각 다운스트림 파이프라인에는
project_full_path가 포함됩니다. 이 값을 후속 호출의 id로 사용합니다.
예시:
-
파이프라인 가져오기:
Get the status of pipeline 12345 in project gitlab-org/gitlab -
파이프라인의 실패한 job 가져오기:
Show me the failed jobs in pipeline 12345 for project gitlab-org/gitlab -
파이프라인의 다운스트림 파이프라인 가져오기:
Show me the downstream pipelines triggered by pipeline 12345 in project gitlab-org/gitlab
get_pipeline_jobs#
히스토리
- GitLab 18.4에서 도입.
특정 GitLab CI/CD 파이프라인의 job을 가져옵니다. 파이프라인의 나머지 데이터와 함께
job을 한 번의 호출로 가져오려면 대신 include: jobs와 함께 get_pipeline 도구를 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
pipeline_id |
integer | 예 | 파이프라인의 ID. |
per_page |
integer | 아니요 | 페이지당 job 수. |
page |
integer | 아니요 | 현재 페이지 번호. |
예시:
Show me all jobs in pipeline 12345 for project gitlab-org/gitlab
get_job#
히스토리
CI/CD job의 메타데이터를 가져오며, 선택적으로 트레이스/로그도 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
job_id |
integer | 예 | job의 ID. |
include |
array | 아니요 | job과 함께 포함할 패싯. 호출당 하나: log. |
byte_offset |
integer | 아니요 | job 로그를 읽기 시작할 바이트 오프셋. include가 log 일 때만 적용됩니다. 기본값은 0입니다. |
byte_limit |
integer | 아니요 | 반환할 job 로그의 최대 바이트 수. include가 log 일 때만 적용됩니다. 기본값과 최댓값은 512000입니다. |
로그가 byte_limit 보다 길면 응답이 전체 크기를 알려 주고
다음 구간에 사용할 byte_offset을 안내합니다.
예시:
-
job 메타데이터 가져오기:
Get the status of job 88 in project gitlab-org/gitlab -
job 로그 가져오기:
Show me the log output for job 88 in project gitlab-org/gitlab
list_pipelines#
히스토리
- GitLab 19.3에서 도입.
GitLab 프로젝트의 파이프라인을 나열하며, 선택적 필터를 사용할 수 있습니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
ref |
string | 아니요 | 브랜치 또는 태그 이름. ref로 파이프라인을 필터링합니다. |
status |
string | 아니요 | 상태로 파이프라인을 필터링합니다(예: running, success, failed). |
source |
string | 아니요 | 소스로 파이프라인을 필터링합니다(예: push, web, schedule). |
created_after |
string | 아니요 | 지정한 날짜와 시간(ISO 8601 형식) 이후에 생성된 파이프라인을 반환합니다. |
created_before |
string | 아니요 | 지정한 날짜와 시간(ISO 8601 형식) 이전에 생성된 파이프라인을 반환합니다. |
order_by |
string | 아니요 | id, status, ref, updated_at, user_id로 파이프라인을 정렬합니다. 기본값은 id입니다. |
sort |
string | 아니요 | 정렬 방향, asc 또는 desc. 기본값은 desc입니다. |
page |
integer | 아니요 | 현재 페이지 번호. 기본값은 1입니다. |
per_page |
integer | 아니요 | 페이지당 항목 수. 기본값은 20입니다. |
자식 파이프라인은 기본적으로 결과에서 제외됩니다. 자식 파이프라인만 반환하려면 source를 parent_pipeline으로 설정합니다.
기본 정렬(id, desc)은 ID가 가장 높은 파이프라인을 먼저 반환합니다. ID 순서는 보통 생성 순서와 일치하지만, 둘이 항상 일치한다고 보장되지는 않습니다. 명시적인 시간 경계로 필터링하려면 created_after 또는 created_before를 사용합니다. 호출자는 결과를 페이지별로 넘기다가 대상 범위를 벗어난 첫 번째 파이프라인에서 멈출 수 있습니다.
예시:
List all failed pipelines on the main branch for project gitlab-org/gitlab
save_pipeline#
GitLab 프로젝트에서 CI/CD 파이프라인을 실행, 재시도, 취소하거나 이름을 변경합니다.
파이프라인을 삭제하려면 대신 manage_pipeline 도구를 사용합니다. 파이프라인을 나열하려면
대신 list_pipelines 도구를 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트의 GitLab URL. 파이프라인을 만들 때만 사용합니다. 이것을 제공하거나 project_id를 제공합니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 전체 경로. 파이프라인을 만들 때만 사용합니다. 이것을 제공하거나 url을 제공합니다. |
pipeline_id |
integer | 아니요 | 대상으로 삼을 기존 파이프라인의 ID. 설정하면 action이 필요합니다. 새 파이프라인을 만들려면 생략합니다. |
action |
string | 아니요 | pipeline_id에 수행할 수명 주기 작업: retry, cancel, update 중 하나. pipeline_id를 설정하면 필수입니다. |
ref |
string | 아니요 | 브랜치 또는 태그 이름. 파이프라인을 만들 때(pipeline_id가 없을 때) 필수입니다. |
name |
string | 아니요 | 새 파이프라인 이름. action: "update"에서 필수입니다. |
variables |
array | 아니요 | 배열 형식의 파이프라인 변수([{key, value, variable_type}]). |
inputs |
hash | 아니요 | 키-값 쌍으로 된 파이프라인 입력 파라미터. |
예시:
-
파이프라인 만들기:
Create a pipeline on the main branch for project gitlab-org/gitlab -
파이프라인 재시도:
Retry failed jobs in pipeline 12345 for project gitlab-org/gitlab -
파이프라인 취소:
Cancel pipeline 12345 in project gitlab-org/gitlab -
파이프라인 이름 변경:
Rename pipeline 12345 to "Nightly security scan" in project gitlab-org/gitlab
manage_pipeline#
히스토리
GitLab 프로젝트에서 파이프라인 메타데이터를 업데이트하거나 파이프라인을 삭제합니다.
파이프라인을 만들거나 재시도하거나 취소하려면 대신 save_pipeline 도구를 사용합니다.
파이프라인을 나열하려면 대신 list_pipelines 도구를 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
pipeline_id |
integer | 예 | 파이프라인의 ID. 이 파라미터만 설정하면 파이프라인과 관련 데이터를 모두 삭제합니다. |
name |
string | 아니요 | 파이프라인의 이름. 이 파라미터와 pipeline_id를 함께 설정하면 파이프라인 메타데이터를 업데이트합니다. |
예시:
-
파이프라인 업데이트:
Rename pipeline 12345 to "My deploy pipeline" in project gitlab-org/gitlab -
파이프라인 삭제:
Delete pipeline 12345 in project gitlab-org/gitlab
get_work_item#
히스토리
- GitLab 19.4에서 도입.
단일 작업 항목(이슈, 에픽, 태스크, 인시던트, 목표 또는 핵심 결과)을 유형, 날짜, 담당자, 레이블, 마일스톤, 부모와 함께 가져옵니다. 선택적으로 해당 노트나 관련된 머지 리퀘스트도 포함합니다. 작업 항목 유형이 지원하지 않는 위젯은 생략됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 작업 항목의 GitLab URL(/-/work_items/, /-/issues/, /-/epics/ URL). 이것을 제공하거나 group_id 또는 project_id와 함께 work_item_iid를 제공합니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
work_item_iid |
integer | 아니요 | 작업 항목의 내부 ID. url이 없으면 필수입니다. |
include |
array | 아니요 | 반환할 연관 데이터. notes 또는 related_merge_requests 중 하나이며, 호출당 하나의 패싯입니다. 최신 노트를 가져오려면 notes_first 나 notes_after 없이 notes_last를 사용합니다. |
notes_first |
integer | 아니요 | 커서 이후로 반환할 노트 수(정방향 페이지네이션). 기본값 100, 최댓값 100. |
notes_after |
string | 아니요 | 노트의 정방향 페이지네이션용 커서. 이전 응답의 pageInfo.endCursor를 사용합니다. |
notes_last |
integer | 아니요 | 커서 이전으로 반환할 노트 수(역방향 페이지네이션). 기본값 100, 최댓값 100. |
notes_before |
string | 아니요 | 노트의 역방향 페이지네이션용 커서. 이전 응답의 pageInfo.startCursor를 사용합니다. |
related_merge_requests_first |
integer | 아니요 | 반환할 관련 머지 리퀘스트 수. 기본값 20, 최댓값 100. |
related_merge_requests_after |
string | 아니요 | 관련 머지 리퀘스트의 정방향 페이지네이션용 커서. |
mr_page_size |
integer | 아니요 | 더 이상 사용되지 않음: 대신 related_merge_requests_first를 사용합니다. |
mr_pagination_cursor |
string | 아니요 | 더 이상 사용되지 않음: 대신 related_merge_requests_after를 사용합니다. |
notes 패싯은 호출당 최대 100개의 노트를 반환하며 notes_* 파라미터로
양방향 페이지네이션을 지원합니다. related_merge_requests 패싯은 에픽과 같은 그룹 수준 작업
항목에서는 비어 있습니다.
예시:
Get issue 42 in project gitlab-org/gitlab with its related merge requests
get_workitem_notes#
히스토리
- GitLab 18.7에서 도입.
- GitLab 19.4에서 목록 제외.
get_work_item의notes패싯으로 대체되었습니다.
양방향으로 노트를 페이지네이션하는 include: ["notes"]와 함께 사용하는 get_work_item으로
대체되었습니다. 이 도구는 더 이상 tools/list에 나타나지 않지만,
호출자가 마이그레이션하는 동안에는 계속 호출할 수 있습니다.
특정 GitLab 작업 항목의 모든 노트(댓글)를 가져옵니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 작업 항목의 URL. group_id 또는 project_id와 work_item_iid가 없으면 필수입니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
work_item_iid |
integer | 아니요 | 작업 항목의 내부 ID. url이 없으면 필수입니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
before |
string | 아니요 | 역방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 노트 수. |
last |
integer | 아니요 | 역방향 페이지네이션으로 반환할 노트 수. |
예시:
Show me all comments on work item 42 in project gitlab-org/gitlab
link_work_items#
작업 항목을 관계 유형과 함께 하나 이상의 다른 작업 항목에 연결합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
work_items_ids |
array | 예 | 연결할 작업 항목: 원본과 같은 프로젝트 또는 그룹에서 확인되는 일반 iid, 또는 다른 프로젝트나 그룹의 작업 항목에 대한 글로벌 ID(gid://gitlab/WorkItem/<id>). 최대 10개 항목. |
url |
string | 아니요 | 원본 작업 항목의 URL. group_id 또는 project_id와 work_item_iid가 없으면 필수입니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
work_item_iid |
integer | 아니요 | 원본 작업 항목의 내부 ID. url이 없으면 필수입니다. |
link_type |
string | 아니요 | 관계 유형. relates_to, blocks, blocked_by 중 하나. 기본값은 relates_to입니다. blocks와 blocked_by 유형에는 GitLab Premium 또는 Ultimate가 필요합니다. |
예시:
Mark work item 42 in project gitlab-org/gitlab as blocked by work item 40
get_saved_view_work_items#
히스토리
- GitLab 18.11에서 도입.
네임스페이스에서 저장된 뷰와 해당 작업 항목 목록을 가져옵니다. 이 도구는 저장된 뷰의 필터와 정렬 순서를 반환되는 작업 항목에 적용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
saved_view_id |
string | 예 | 저장된 뷰의 글로벌 ID(gid://gitlab/WorkItems::SavedViews::SavedView/<id> 형식). |
url |
string | 아니요 | 네임스페이스(프로젝트 또는 그룹)의 URL. group_id 또는 project_id가 없으면 필수입니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
first |
integer | 아니요 | 반환할 작업 항목 수. 최댓값 100. |
예시:
Show me the work items in this saved view:
save_vulnerability#
히스토리
- GitLab 19.4에서 도입.
GitLab 프로젝트의 취약점에 대해 쓰기 작업을 수행합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
action |
string | 예 | 수행할 작업. dismiss, confirm, revert_to_detected, update_severity, create_issue 중 하나. |
vulnerability_id |
string | 예 | 취약점의 숫자 ID(예: 567). |
comment |
string | 아니요 | 작업에 대한 설명. action 이 update_severity 일 때 필수입니다. |
dismissal_reason |
string | 아니요 | 무시 사유. ACCEPTABLE_RISK, FALSE_POSITIVE, MITIGATING_CONTROL, USED_IN_TESTS, NOT_APPLICABLE 중 하나. action 이 dismiss 일 때만 사용합니다. |
severity |
string | 아니요 | 새 심각도 수준. INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL 중 하나. action 이 update_severity 일 때 필수입니다. |
project_full_path |
string | 아니요 | 프로젝트의 전체 경로(예: namespace/project). action 이 create_issue 일 때 필수입니다. |
예시:
-
취약점 무시:
Dismiss vulnerability 123 with reason FALSE_POSITIVE -
취약점 확인:
Mark vulnerability 456 as confirmed -
탐지됨 상태로 되돌리기:
Revert vulnerability 789 back to detected state -
심각도 업데이트:
Change severity of vulnerability 321 to CRITICAL with comment "Reassessed based on new intel" -
이슈 만들기:
Create an issue for vulnerability 654 in project gitlab-org/gitlab
save_work_item#
히스토리
이슈, 태스크, 에픽과 같은 GitLab 작업 항목을 만들거나 업데이트합니다. 새 작업 항목을 만들려면
work_item_iid를 생략합니다. 기존 작업 항목을 업데이트하려면 work_item_iid 또는
작업 항목 URL을 제공합니다. 설정하려는 필드만 보내고 나머지는 생략합니다. 도구 이름
create_work_item과 update_work_item은 이 도구의 별칭입니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트, 그룹 또는 작업 항목의 GitLab URL. url, project_id, group_id 중 정확히 하나를 제공합니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
work_item_iid |
integer | 아니요 | 업데이트할 작업 항목의 양수 내부 ID. 새 작업 항목을 만들려면 생략합니다. |
title |
string | 아니요 | 작업 항목의 제목. 작업 항목을 만들 때 필수입니다. |
type_name |
string | 아니요 | 작업 항목 유형 이름(예: Issue, Task, Epic). 작업 항목을 만들 때 필수입니다. 유효한 유형은 네임스페이스와 라이선스에 따라 달라집니다. |
description |
string | 아니요 | GitLab Flavored Markdown으로 작성한 설명. 최대 1,048,576자. |
assignee_ids |
array of integers | 아니요 | 작업 항목에 배정할 사용자 ID. 최대 100개 항목. |
label_ids |
array of strings | 아니요 | 레이블 ID 또는 글로벌 ID. 만들 때만 사용하며, 업데이트할 때는 add_label_ids 또는 remove_label_ids를 사용합니다. 최대 100개 항목. |
labels |
array of strings | 아니요 | 설정할 레이블 이름. 프로젝트 또는 그룹과 그 상위 그룹에서 확인됩니다. 만들 때만 사용하며, 업데이트할 때는 add_labels 또는 remove_labels를 사용합니다. 최대 100개 항목. |
add_label_ids |
array of strings | 아니요 | 업데이트 전용. 추가할 레이블 ID 또는 글로벌 ID. 최대 100개 항목. |
add_labels |
array of strings | 아니요 | 업데이트 전용. 추가할 레이블 이름. 최대 100개 항목. |
remove_label_ids |
array of strings | 아니요 | 업데이트 전용. 제거할 레이블 ID 또는 글로벌 ID. 최대 100개 항목. |
remove_labels |
array of strings | 아니요 | 업데이트 전용. 제거할 레이블 이름. 최대 100개 항목. |
milestone_id |
string | 아니요 | 배정할 마일스톤의 ID 또는 글로벌 ID. 프로젝트 또는 그룹과 그 상위 그룹을 기준으로 검증됩니다. 둘 다 지정하면 milestone 보다 우선합니다. |
milestone |
string | 아니요 | 배정할 마일스톤의 제목. 프로젝트 또는 그룹과 그 상위 그룹의 마일스톤 중에서 확인됩니다. |
confidential |
boolean | 아니요 | 작업 항목의 기밀 여부를 설정합니다. |
start_date |
string | 아니요 | 시작일. YYYY-MM-DD 형식. |
due_date |
string | 아니요 | 기한. YYYY-MM-DD 형식. |
state |
string | 아니요 | 업데이트 전용. closed는 작업 항목을 닫고, opened는 다시 엽니다. |
parent_id |
string | 아니요 | 부모 작업 항목의 글로벌 ID 또는 숫자 ID. |
todo_action |
string | 아니요 | 업데이트 전용. add는 현재 사용자의 할 일을 추가하고, mark_as_done은 할 일을 완료로 표시합니다. |
todo_id |
string | 아니요 | 업데이트 전용. 할 일의 글로벌 ID 또는 숫자 ID. 작업 항목의 모든 할 일을 업데이트하려면 생략합니다. |
health_status |
string | 아니요 | 상태(health status). onTrack, needsAttention, atRisk 중 하나. Ultimate 전용. |
weight |
integer | 아니요 | 작업 항목의 가중치. 0 이상이어야 합니다. Premium 및 Ultimate 전용. |
clear_weight |
boolean | 아니요 | 업데이트 전용. 가중치를 제거합니다. weight 보다 우선합니다. Premium 및 Ultimate 전용. |
status_id |
string | 아니요 | 설정할 상태의 글로벌 ID. Premium 및 Ultimate 전용. |
is_fixed |
boolean | 아니요 | 시작일과 기한이 고정인지 여부. false이면 날짜가 하위 항목에서 집계되며 start_date와 due_date는 무시됩니다. Premium 및 Ultimate 전용. |
agent_plan |
string | 아니요 | 에이전트 계획의 Markdown 콘텐츠. Ultimate 전용. workplan 기능이 필요합니다. |
readiness_score |
integer | 아니요 | 에이전트 계획의 준비도 점수, 0~100. Ultimate 전용. workplan_score 기능 플래그가 필요합니다. 플래그가 비활성화되어 있으면 오류를 반환합니다. |
예시:
Create a task "Update the onboarding guide" in project gitlab-org/gitlab and assign it to me
list_work_items#
히스토리
- GitLab 19.4에서 도입.
그룹 또는 프로젝트의 작업 항목(이슈, 인시던트, 테스트 케이스, 요구 사항, 태스크, 티켓,
목표, 핵심 결과, 에픽)을 나열하거나 검색합니다. 그룹 범위에는 하위 프로젝트와 하위 그룹의 작업 항목이
포함됩니다. 각 결과에는 ID, IID, 제목, 상태, 웹 URL,
전체 참조, 생성 및 업데이트 타임스탬프, 작업 항목 유형만 포함되며 커서 페이지네이션을 사용합니다.
작업 항목 하나를 자세히 읽으려면 get_work_item을 사용합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 프로젝트 또는 그룹의 GitLab URL. url, group_id, project_id 중 정확히 하나를 제공합니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
state |
string | 아니요 | 상태로 필터링합니다: opened, closed, all(기본값). |
search |
string | 아니요 | 제목과 설명에서 자유 텍스트로 검색합니다. |
author_username |
string | 아니요 | 작성자의 사용자 이름. |
assignee_usernames |
array | 아니요 | 담당자의 사용자 이름. 작업 항목이 모두와 일치해야 합니다. 최대 100개 값. |
label_name |
array | 아니요 | 레이블 이름. 작업 항목이 모두 가지고 있어야 합니다. 최대 100개 값. |
milestone_title |
array | 아니요 | 마일스톤 제목. milestone_wildcard_id와 함께 사용할 수 없습니다. 최대 100개 값. |
milestone_wildcard_id |
string | 아니요 | NONE, ANY, STARTED, UPCOMING. milestone_title과 함께 사용할 수 없습니다. |
types |
array | 아니요 | 포함할 작업 항목 유형(예: ["ISSUE", "TASK"]). |
created_after |
string | 아니요 | 이 시간 이후에 생성됨(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
created_before |
string | 아니요 | 이 시간 이전에 생성됨(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
updated_after |
string | 아니요 | 이 시간 이후에 업데이트됨(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
updated_before |
string | 아니요 | 이 시간 이전에 업데이트됨(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
due_after |
string | 아니요 | 기한이 이 시간 이후임(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
due_before |
string | 아니요 | 기한이 이 시간 이전임(ISO 8601. 날짜만 지정하면 해당 날짜의 시작, 오프셋 적용). |
sort |
string | 아니요 | 정렬 순서(예: UPDATED_DESC). 기본값 CREATED_DESC. |
first |
integer | 아니요 | 반환할 작업 항목 수. 기본값 20, 최댓값 100. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
health_status_filter |
string | 아니요 | Ultimate 전용. onTrack, needsAttention, atRisk. |
status |
object | 아니요 | Ultimate 전용. 사용자 지정 상태 이름으로 필터링합니다(예: {"name": "In progress"}). |
예시:
List my open tasks in the gitlab-org group updated this month.
get_work_item_types#
히스토리
- GitLab 19.1에서 도입.
네임스페이스(그룹 또는 프로젝트)에서 사용할 수 있는 작업 항목 유형을 나열합니다. 여기에는 시스템 정의 유형(예: Issue, Epic, Task)과 사용자 지정 유형이 포함됩니다. 반환되는 각 유형에는 글로벌 ID, 이름, 아이콘, 해당 유형에서 활성화된 위젯 유형이 포함되므로, 해당 유형이 지원하지 않는 필드를 설정하지 않도록 할 수 있습니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
url |
string | 아니요 | 네임스페이스(프로젝트 또는 그룹)의 GitLab URL. group_id와 project_id가 없으면 필수입니다. |
group_id |
string | 아니요 | 그룹의 ID 또는 경로. url과 project_id가 없으면 필수입니다. |
project_id |
string | 아니요 | 프로젝트의 ID 또는 경로. url과 group_id가 없으면 필수입니다. |
예시:
List the work item types available in the gitlab-org group
list_projects#
히스토리
- GitLab 19.4에서 도입.
group_id가 없으면 기본적으로 Guest 권한 이상을 가진 프로젝트를 나열하며,
기준을 높이려면 min_access_level을 전달합니다. group_id가 있으면 액세스 수준과 관계없이
해당 그룹과 그 하위 그룹의 모든 프로젝트를 나열합니다.
min_access_level 이나
visibility를 추가하면 GitLab이 그룹의 프로젝트를 나열할 때 하위 그룹 탐색과
이러한 필터를 함께 사용하는 것을 지원하지 않으므로, 목록이 하위 그룹을 제외한 해당 그룹으로만 좁혀집니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
group_id |
string | 아니요 | 그룹의 ID 또는 전체 경로. 생략하면 인스턴스 전체에서 나열하며, 기본적으로 Guest 권한 이상을 가진 프로젝트를 대상으로 합니다. |
min_access_level |
string | 아니요 | 프로젝트가 포함되려면 본인에게 부여해야 하는 최소 액세스 수준. guest, planner, reporter, developer, maintainer, owner 중 하나. |
search |
string | 아니요 | 이름, 경로 또는 설명으로 프로젝트를 검색합니다. |
visibility |
string | 아니요 | 공개 범위 수준으로 필터링합니다: public, internal, private. |
archived |
string | 아니요 | 보관 상태로 필터링합니다: only, include, exclude(기본값). |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 프로젝트 수. 기본값은 20, 최댓값은 100입니다. |
group_id를 제공하면 응답에 subgroupsIncluded가 포함됩니다. 목록이 그룹의 하위 그룹을
포함하면 true, min_access_level 또는 visibility로 목록이 해당 그룹으로만 좁혀졌으면
false입니다.
예시:
List my projects
list_groups#
히스토리
- GitLab 19.4에서 도입.
그룹 계층을 탐색하고 다른 도구에서 사용할 그룹 ID와 전체
경로를 찾기 위해 그룹을 나열합니다. group_id가 없으면 이 도구는 본인이 멤버인
최상위 그룹을 나열합니다. group_id가 있으면 멤버십과 관계없이 해당 그룹의 직접 하위 그룹을 나열합니다.
include_subgroups를 true로 설정하면 모든
하위 그룹으로 재귀합니다. group_id가 없을 때는 본인의 그룹을 모든 깊이에서 나열합니다.
보관된 그룹과 삭제 예정인 그룹은 제외됩니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
group_id |
string | 아니요 | 하위 그룹을 나열할 상위 그룹의 ID 또는 전체 경로. 생략하면 본인이 멤버인 최상위 그룹을 나열합니다. |
search |
string | 아니요 | 이름 또는 전체 경로로 그룹을 검색합니다. |
visibility |
string | 아니요 | 공개 범위 수준으로 필터링합니다: public, internal, private. |
include_subgroups |
boolean | 아니요 | 직접 하위 그룹만이 아니라 모든 하위 그룹을 재귀적으로 포함합니다. |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 그룹 수. 기본값은 20, 최댓값은 100입니다. |
예시:
List the subgroups of gitlab-org
search#
히스토리
검색 API로 전체 GitLab 인스턴스에서 검색어를 검색합니다. 이 도구는 전역, 그룹, 프로젝트 검색에서 사용할 수 있습니다. 사용 가능한 범위는 검색 유형에 따라 다릅니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
scope |
string | 예 | 검색 범위(예: work_items, merge_requests, projects). |
search |
string | 예 | 검색어. |
group_id |
string | 아니요 | 검색할 그룹의 ID 또는 URL 인코딩된 경로. |
project_id |
string | 아니요 | 검색할 프로젝트의 ID 또는 URL 인코딩된 경로. |
state |
string | 아니요 | 검색 결과의 상태(work_items 및 merge_requests 용). |
confidential |
boolean | 아니요 | 기밀 여부로 결과를 필터링합니다(work_items 용). 기본값은 false입니다. |
fields |
array of strings | 아니요 | 검색할 필드 배열(work_items 및 merge_requests 용). |
order_by |
string | 아니요 | 결과를 정렬할 속성. 기본값은 기본 검색에서는 created_at, 고급 검색에서는 관련도입니다. |
sort |
string | 아니요 | 결과의 정렬 방향. 기본값은 desc입니다. |
per_page |
integer | 아니요 | 페이지당 결과 수. 기본값은 20입니다. |
page |
integer | 아니요 | 현재 페이지 번호. 기본값은 1입니다. |
예시:
Search issues for "flaky test" across GitLab
search_labels#
히스토리
- GitLab 18.9에서 도입.
GitLab 프로젝트 또는 그룹에서 레이블을 검색합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
full_path |
string | 예 | 프로젝트 또는 그룹의 전체 경로(예: group/project). |
is_project |
boolean | 예 | 프로젝트(true)에서 검색할지 그룹(false)에서 검색할지 여부. |
search |
string | 아니요 | 제목으로 레이블을 필터링하는 검색어. |
그룹 레이블을 검색하면 결과에 상위 그룹과 하위 그룹의 레이블이 포함됩니다.
예시:
Show me all labels in project gitlab-org/gitlab
list_wiki_pages#
히스토리
- GitLab 19.3에서 도입.
GitLab 프로젝트 또는 그룹의 위키 페이지를 나열합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
project_id |
string | 아니요 | 프로젝트의 전체 경로 또는 숫자 ID(예: gitlab-org/gitlab 또는 278964). |
group_id |
string | 아니요 | 그룹의 전체 경로 또는 숫자 ID(예: gitlab-org 또는 9970). |
first |
integer | 아니요 | 정방향 페이지네이션으로 반환할 위키 페이지 수(최댓값 100). |
after |
string | 아니요 | 정방향 페이지네이션용 커서. |
project_id 또는 group_id 중 하나만 제공합니다.
각 호출은 결과의 한 페이지를 반환합니다.
페이지가 더 있으면 응답에 end_cursor가 포함되며, 이를 after로 전달하여 다음 페이지를 가져올 수 있습니다.
예시:
List the wiki pages in gitlab-org/gitlab
semantic_search#
히스토리
- GitLab 18.5에서
code_snippet_search_graphqlapi라는 기능 플래그와 함께 실험 기능으로 도입. 기본적으로 비활성화되어 있습니다. - GitLab 18.6에서 프로젝트 경로로 검색이 추가.
- GitLab 18.7에서 실험 기능에서 베타로 변경. 기능 플래그
code_snippet_search_graphqlapi제거. - GitLab 18.7에서
mcp_client라는 기능 플래그와 함께 GitLab UI에 추가. 기본적으로 비활성화되어 있습니다. - GitLab 18.11에서
mcp_semantic_code_search_use_rest_api라는 기능 플래그와 함께 REST API를 사용하도록 업데이트. 기본적으로 비활성화되어 있습니다. - GitLab 19.1에서 REST API 사용이 정식 출시. 기능 플래그
mcp_semantic_code_search_use_rest_api제거. - GitLab 19.4에서
semantic_code_search에서 이름 변경.semantic_code_search는 별칭으로 계속 작동합니다. - GitLab 19.4에서
scope파라미터가 추가. - GitLab 19.4에서
semantic_query파라미터가q로 이름 변경.
이 기능의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.
키워드가 아니라 의미를 기준으로 GitLab 프로젝트에서 관련 콘텐츠를 검색합니다. 정확한 심볼이나 파일 이름을 모르거나, 코드베이스 전반에서 특정 동작이 어떻게 구현되어 있는지 파악할 때 이 도구를 사용합니다. 설정 및 활성화를 포함한 자세한 내용은 시맨틱 코드 검색을 참고합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
scope |
string | 예 | 검색할 콘텐츠 유형. code만 지원됩니다. |
q |
string | 예 | 자연어 검색 쿼리. |
project_id |
string | 예 | 프로젝트의 ID 또는 전체 경로. |
directory_path |
string | 아니요 | 이 디렉터리 경로 아래의 파일로 검색을 제한합니다(예: app/services/). 앞에 슬래시나 .. 세그먼트가 없는 상대 경로여야 합니다. scope가 code 일 때만 적용됩니다. |
knn |
integer | 아니요 | 내부적으로 조회하는 최근접 이웃 수. 기본값은 64, 최댓값은 100입니다. 값이 높을수록 지연 시간을 대가로 재현율이 향상됩니다. scope가 code 일 때만 적용됩니다. |
limit |
integer | 아니요 | 반환할 최대 결과 수. 기본값은 20, 최댓값은 100입니다. scope가 code 일 때만 적용됩니다. |
결과는 파일별로 그룹화됩니다. 각 파일에는 콘텐츠와 관련도 점수가 있는 병합된 줄 범위가 포함됩니다. 최상의 결과를 얻으려면 일반적인 키워드나 특정 함수 또는 변수 이름을 사용하지 말고, 알고 싶은 기능이나 동작을 설명합니다.
예시:
How are authorizations managed in this project?
attach_scan_profile#
히스토리
- GitLab 19.2에서 도입.
지정한 보안 스캔 프로파일을 지정한 프로젝트 또는 지정한 그룹 아래의 모든 프로젝트에 연결합니다.
| 파라미터 | 유형 | 필수 | 설명 |
|---|---|---|---|
security_scan_profile_id |
string | 예 | 보안 스캔 프로파일의 글로벌 ID(예: gid://gitlab/Security::ScanProfile/1). |
project_ids |
array of strings | 아니요 | 프로젝트의 글로벌 ID 배열(예: [gid://gitlab/Project/1]). group_ids를 제공하지 않으면 필수입니다. |
group_ids |
array of strings | 아니요 | 그룹의 글로벌 ID 배열(예: [gid://gitlab/Group/1]). project_ids를 제공하지 않으면 필수입니다. |
예시:
Attach `gid://gitlab/Security::ScanProfile/1` to all projects under `gid://gitlab/Group/1`.