InfoGrab DocsInfoGrab Docs

GitLab MCP 서버 도구

요약

이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다. GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. GitLab MCP 서버의 현재 버전을 반환합니다. 단일 GitLab 프로젝트의 메타데이터(숫자 ID, 전체 경로, 기본 브랜치, 공개 범위, 웹 URL)를 반환합니다.

Warning

이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다.

GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. 이 도구를 사용하여 GitLab과 직접 상호 작용하고 일반적인 GitLab 작업을 수행할 수 있습니다.

get_mcp_server_version#

히스토리

GitLab MCP 서버의 현재 버전을 반환합니다.

예시:

What version of the GitLab MCP server am I connected to?

get_project#

히스토리

단일 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#

히스토리
  • GitLab 19.3에서 도입.
  • GitLab 19.4에서 start_sha 및 start_project 파라미터가 도입.

한 번의 호출로 하나 이상의 파일 작업을 포함한 커밋을 브랜치에 추가합니다.

파라미터 유형 필수 설명
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#

히스토리

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 이슈에 대한 자세한 정보를 가져옵니다.

파라미터 유형 필수 설명
id string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
issue_iid integer 예 이슈의 내부 ID.

예시:

Get details for issue 42 in project 123

save_merge_request#

히스토리
  • GitLab 18.5에서 create_merge_request로 도입.
  • GitLab 18.8에서 assignee_ids, reviewer_ids, description, labels, milestone_id가 추가.
  • GitLab 19.3에서 save_merge_request로 이름이 변경되고 머지 리퀘스트를 업데이트하도록 확장되었습니다. create_merge_request와 update_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#

히스토리
  • GitLab 18.4에서 도입.
  • GitLab 19.3에서 url을 받고 연관 데이터 패싯을 반환하도록 변경.

머지 리퀘스트를 가져오며, 선택적으로 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#

히스토리

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 19.3에서 도입.
  • GitLab 19.4에서 group_id 파라미터와 그룹 범위가 추가.

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 머지 리퀘스트의 커밋 목록을 가져옵니다.

파라미터 유형 필수 설명
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 머지 리퀘스트의 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 머지 리퀘스트의 파이프라인을 가져옵니다.

파라미터 유형 필수 설명
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#

히스토리

머지할 수 없는 머지 리퀘스트의 머지 충돌 콘텐츠를 가져옵니다. 충돌이 발생한 파일에 나타나는 그대로 원시 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 19.2에서 도입.
  • GitLab 19.4에서 create_merge_request_note 및 create_workitem_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 머지 리퀘스트의 노트(댓글과 시스템 노트)를 가져옵니다.

파라미터 유형 필수 설명
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#

히스토리

인증된 사용자로서 머지 리퀘스트 리뷰 산출물을 작성합니다. 각 호출은 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 프로젝트 멤버를 권한 및 액세스 수준과 함께 나열합니다.

파라미터 유형 필수 설명
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 사용자를 가져옵니다. 이 도구를 사용하여 사용자 이름이나 본인 계정을 숫자 사용자 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#

히스토리

머지 리퀘스트를 머지하거나, 자동으로 머지되도록 예약합니다. 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 프로젝트를 네임스페이스로 포크합니다.

포크는 비동기로 생성됩니다. 응답에는 새 프로젝트 속성이 포함되며, 포크 진행 상황을 보여 주는 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 프로젝트의 브랜치를 나열하며, 선택적으로 이름으로 필터링합니다.

파라미터 유형 필수 설명
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#

히스토리

특정 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#

히스토리

지정한 경로와 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#

히스토리

단일 커밋의 메타데이터를 가져오며, 선택적으로 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 프로젝트의 커밋을 나열하며, 선택적으로 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 프로젝트의 릴리스를 가장 최근에 릴리스된 순서로 나열합니다.

파라미터 유형 필수 설명
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 프로젝트의 태그를 가장 최근에 업데이트된 순서로 나열합니다. 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#

히스토리

파이프라인을 가져오며, 선택적으로 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 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#

히스토리
  • GitLab 19.3에서 도입.
  • GitLab 19.3에서 get_job_log에서 이름 변경. get_job_log는 별칭으로 계속 작동하며 항상 byte_limit으로 제한된 log 패싯을 반환합니다.

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 프로젝트의 파이프라인을 나열하며, 선택적 필터를 사용할 수 있습니다.

파라미터 유형 필수 설명
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 19.3에서 도입.
  • GitLab 19.4에서 update 작업이 도입.

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 18.10에서 도입.
  • GitLab 19.3에서 list_pipelines 도구로 대체하기 위해 list 작업이 제거.
  • GitLab 19.3에서 save_pipeline 도구로 대체하기 위해 create, retry, cancel 작업이 제거.

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#

히스토리

단일 작업 항목(이슈, 에픽, 태스크, 인시던트, 목표 또는 핵심 결과)을 유형, 날짜, 담당자, 레이블, 마일스톤, 부모와 함께 가져옵니다. 선택적으로 해당 노트나 관련된 머지 리퀘스트도 포함합니다. 작업 항목 유형이 지원하지 않는 위젯은 생략됩니다.

파라미터 유형 필수 설명
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#

히스토리

양방향으로 노트를 페이지네이션하는 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
히스토리
  • GitLab 19.0에서 도입.
  • GitLab 19.4에서 work_items_ids에 일반 iid를 사용할 수 있게 도입.

작업 항목을 관계 유형과 함께 하나 이상의 다른 작업 항목에 연결합니다.

파라미터 유형 필수 설명
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#

히스토리

네임스페이스에서 저장된 뷰와 해당 작업 항목 목록을 가져옵니다. 이 도구는 저장된 뷰의 필터와 정렬 순서를 반환되는 작업 항목에 적용합니다.

파라미터 유형 필수 설명
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 프로젝트의 취약점에 대해 쓰기 작업을 수행합니다.

파라미터 유형 필수 설명
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 19.4에서 도입.
  • GitLab 19.4에서 labels, add_labels, remove_labels, milestone_id, milestone 파라미터가 도입.

이슈, 태스크, 에픽과 같은 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#

히스토리

그룹 또는 프로젝트의 작업 항목(이슈, 인시던트, 테스트 케이스, 요구 사항, 태스크, 티켓, 목표, 핵심 결과, 에픽)을 나열하거나 검색합니다. 그룹 범위에는 하위 프로젝트와 하위 그룹의 작업 항목이 포함됩니다. 각 결과에는 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#

히스토리

네임스페이스(그룹 또는 프로젝트)에서 사용할 수 있는 작업 항목 유형을 나열합니다. 여기에는 시스템 정의 유형(예: 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#

히스토리

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#

히스토리

그룹 계층을 탐색하고 다른 도구에서 사용할 그룹 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
히스토리
  • GitLab 18.4에서 도입.
  • GitLab 18.6에서 그룹과 프로젝트 검색, 결과 정렬 및 순서 지정이 추가.
  • GitLab 18.8에서 gitlab_search에서 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 프로젝트 또는 그룹에서 레이블을 검색합니다.

파라미터 유형 필수 설명
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 프로젝트 또는 그룹의 위키 페이지를 나열합니다.

파라미터 유형 필수 설명
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
히스토리
  • 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로 이름 변경.
Feature flag

이 기능의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

키워드가 아니라 의미를 기준으로 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#

히스토리

지정한 보안 스캔 프로파일을 지정한 프로젝트 또는 지정한 그룹 아래의 모든 프로젝트에 연결합니다.

파라미터 유형 필수 설명
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`.

GitLab MCP 서버 도구

GitLab v19.4
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed
원문 보기

요약

이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다. GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. GitLab MCP 서버의 현재 버전을 반환합니다. 단일 GitLab 프로젝트의 메타데이터(숫자 ID, 전체 경로, 기본 브랜치, 공개 범위, 웹 URL)를 반환합니다.

Warning

이 기능에 대한 피드백을 제공하려면 이슈 561564에 댓글을 남깁니다.

GitLab MCP 서버는 기존 GitLab 워크플로와 통합하는 도구 세트를 제공합니다. 이 도구를 사용하여 GitLab과 직접 상호 작용하고 일반적인 GitLab 작업을 수행할 수 있습니다.

get_mcp_server_version#

히스토리

GitLab MCP 서버의 현재 버전을 반환합니다.

예시:

What version of the GitLab MCP server am I connected to?

get_project#

히스토리

단일 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#

히스토리
  • GitLab 19.3에서 도입.
  • GitLab 19.4에서 start_sha 및 start_project 파라미터가 도입.

한 번의 호출로 하나 이상의 파일 작업을 포함한 커밋을 브랜치에 추가합니다.

파라미터 유형 필수 설명
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#

히스토리

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 이슈에 대한 자세한 정보를 가져옵니다.

파라미터 유형 필수 설명
id string 예 프로젝트의 ID 또는 URL 인코딩된 경로.
issue_iid integer 예 이슈의 내부 ID.

예시:

Get details for issue 42 in project 123

save_merge_request#

히스토리
  • GitLab 18.5에서 create_merge_request로 도입.
  • GitLab 18.8에서 assignee_ids, reviewer_ids, description, labels, milestone_id가 추가.
  • GitLab 19.3에서 save_merge_request로 이름이 변경되고 머지 리퀘스트를 업데이트하도록 확장되었습니다. create_merge_request와 update_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#

히스토리
  • GitLab 18.4에서 도입.
  • GitLab 19.3에서 url을 받고 연관 데이터 패싯을 반환하도록 변경.

머지 리퀘스트를 가져오며, 선택적으로 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#

히스토리

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 19.3에서 도입.
  • GitLab 19.4에서 group_id 파라미터와 그룹 범위가 추가.

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 머지 리퀘스트의 커밋 목록을 가져옵니다.

파라미터 유형 필수 설명
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 머지 리퀘스트의 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 머지 리퀘스트의 파이프라인을 가져옵니다.

파라미터 유형 필수 설명
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#

히스토리

머지할 수 없는 머지 리퀘스트의 머지 충돌 콘텐츠를 가져옵니다. 충돌이 발생한 파일에 나타나는 그대로 원시 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 19.2에서 도입.
  • GitLab 19.4에서 create_merge_request_note 및 create_workitem_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 머지 리퀘스트의 노트(댓글과 시스템 노트)를 가져옵니다.

파라미터 유형 필수 설명
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#

히스토리

인증된 사용자로서 머지 리퀘스트 리뷰 산출물을 작성합니다. 각 호출은 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 프로젝트 멤버를 권한 및 액세스 수준과 함께 나열합니다.

파라미터 유형 필수 설명
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 사용자를 가져옵니다. 이 도구를 사용하여 사용자 이름이나 본인 계정을 숫자 사용자 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#

히스토리

머지 리퀘스트를 머지하거나, 자동으로 머지되도록 예약합니다. 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 프로젝트를 네임스페이스로 포크합니다.

포크는 비동기로 생성됩니다. 응답에는 새 프로젝트 속성이 포함되며, 포크 진행 상황을 보여 주는 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 프로젝트의 브랜치를 나열하며, 선택적으로 이름으로 필터링합니다.

파라미터 유형 필수 설명
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#

히스토리

특정 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#

히스토리

지정한 경로와 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#

히스토리

단일 커밋의 메타데이터를 가져오며, 선택적으로 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 프로젝트의 커밋을 나열하며, 선택적으로 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 프로젝트의 릴리스를 가장 최근에 릴리스된 순서로 나열합니다.

파라미터 유형 필수 설명
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 프로젝트의 태그를 가장 최근에 업데이트된 순서로 나열합니다. 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#

히스토리

파이프라인을 가져오며, 선택적으로 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 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#

히스토리
  • GitLab 19.3에서 도입.
  • GitLab 19.3에서 get_job_log에서 이름 변경. get_job_log는 별칭으로 계속 작동하며 항상 byte_limit으로 제한된 log 패싯을 반환합니다.

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 프로젝트의 파이프라인을 나열하며, 선택적 필터를 사용할 수 있습니다.

파라미터 유형 필수 설명
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 19.3에서 도입.
  • GitLab 19.4에서 update 작업이 도입.

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 18.10에서 도입.
  • GitLab 19.3에서 list_pipelines 도구로 대체하기 위해 list 작업이 제거.
  • GitLab 19.3에서 save_pipeline 도구로 대체하기 위해 create, retry, cancel 작업이 제거.

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#

히스토리

단일 작업 항목(이슈, 에픽, 태스크, 인시던트, 목표 또는 핵심 결과)을 유형, 날짜, 담당자, 레이블, 마일스톤, 부모와 함께 가져옵니다. 선택적으로 해당 노트나 관련된 머지 리퀘스트도 포함합니다. 작업 항목 유형이 지원하지 않는 위젯은 생략됩니다.

파라미터 유형 필수 설명
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#

히스토리

양방향으로 노트를 페이지네이션하는 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
히스토리
  • GitLab 19.0에서 도입.
  • GitLab 19.4에서 work_items_ids에 일반 iid를 사용할 수 있게 도입.

작업 항목을 관계 유형과 함께 하나 이상의 다른 작업 항목에 연결합니다.

파라미터 유형 필수 설명
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#

히스토리

네임스페이스에서 저장된 뷰와 해당 작업 항목 목록을 가져옵니다. 이 도구는 저장된 뷰의 필터와 정렬 순서를 반환되는 작업 항목에 적용합니다.

파라미터 유형 필수 설명
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 프로젝트의 취약점에 대해 쓰기 작업을 수행합니다.

파라미터 유형 필수 설명
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 19.4에서 도입.
  • GitLab 19.4에서 labels, add_labels, remove_labels, milestone_id, milestone 파라미터가 도입.

이슈, 태스크, 에픽과 같은 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#

히스토리

그룹 또는 프로젝트의 작업 항목(이슈, 인시던트, 테스트 케이스, 요구 사항, 태스크, 티켓, 목표, 핵심 결과, 에픽)을 나열하거나 검색합니다. 그룹 범위에는 하위 프로젝트와 하위 그룹의 작업 항목이 포함됩니다. 각 결과에는 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#

히스토리

네임스페이스(그룹 또는 프로젝트)에서 사용할 수 있는 작업 항목 유형을 나열합니다. 여기에는 시스템 정의 유형(예: 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#

히스토리

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#

히스토리

그룹 계층을 탐색하고 다른 도구에서 사용할 그룹 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
히스토리
  • GitLab 18.4에서 도입.
  • GitLab 18.6에서 그룹과 프로젝트 검색, 결과 정렬 및 순서 지정이 추가.
  • GitLab 18.8에서 gitlab_search에서 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 프로젝트 또는 그룹에서 레이블을 검색합니다.

파라미터 유형 필수 설명
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 프로젝트 또는 그룹의 위키 페이지를 나열합니다.

파라미터 유형 필수 설명
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
히스토리
  • 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로 이름 변경.
Feature flag

이 기능의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

키워드가 아니라 의미를 기준으로 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#

히스토리

지정한 보안 스캔 프로파일을 지정한 프로젝트 또는 지정한 그룹 아래의 모든 프로젝트에 연결합니다.

파라미터 유형 필수 설명
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`.