..
GitLab API를 활용한 Merge Request 자동화 가이드
1. 개요
GitLab에서 제공하는 REST API를 사용하면 브랜치 생성부터 코드 커밋, 그리고 Merge Request(MR) 생성 및 최종 승인까지의 전 과정을 자동화할 수 있습니다.
2. 주요 프로세스별 API 요청 예시
1) 브랜치 생성
curl --location --request POST '${host}/api/v4/projects/${ID}/repository/branches?branch=feature-new&ref=main' \
--header 'Authorization: Bearer ${TOKEN}'
2) 변경 사항 커밋
필요한 파일의 생성/수정 내용을 JSON 형태로 전달합니다.
curl --location '${host}/api/v4/projects/${ID}/repository/commits' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${TOKEN}' \
--data '{
"branch": "feature-new",
"commit_message": "feat: 새로운 기능 추가",
"actions": [{ "action": "create", "file_path": "README.md", "content": "Hello World" }]
}'
3) Merge Request 생성 (Assignee 지정 포함)
curl --location '${host}/api/v4/projects/${ID}/merge_requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${TOKEN}' \
--data '{
"source_branch": "feature-new",
"target_branch": "main",
"title": "Merge feature to main",
"assignee_id": 12
}'
4) Merge 실행 (승인 및 병합)
curl --location --request PUT '${host}/api/v4/projects/${ID}/merge_requests/${MR_IID}/merge' \
--header 'Authorization: Bearer ${TOKEN}'
이러한 API를 활용하면 Jenkins나 GitLab Runner와 같은 CI/CD 도구 내에서 자동으로 브랜치를 따고, 결과물을 커밋한 뒤 담당자에게 MR을 보내는 효율적인 협업 파이프라인을 구축할 수 있습니다.