REST API 리소스
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab REST API는 GitLab 리소스를 프로그래밍 방식으로 제어할 수 있게 합니다. REST API 리소스는 다음으로 구성됩니다: 프로젝트 컨텍스트에서 사용 가능한 API 리소스: 그룹 컨텍스트에서 사용 가능한 API 리소스:
GitLab REST API는 GitLab 리소스를 프로그래밍 방식으로 제어할 수 있게 합니다. 기존 도구와 통합을 구축하고, 반복적인 작업을 자동화하며, 커스텀 보고서용 데이터를 추출하세요. 웹 인터페이스를 사용하지 않고 프로젝트, 그룹, 이슈, 머지 리퀘스트에 액세스하고 조작하세요.
REST API 사용 예:
- 프로젝트 생성 및 사용자 관리 자동화.
- 외부 시스템에서 CI/CD 파이프라인 트리거.
- 커스텀 대시보드용 이슈 및 머지 리퀘스트 데이터 추출.
- GitLab을 서드파티 애플리케이션과 통합.
- 여러 리포지터리에 걸친 커스텀 워크플로우 구현.
REST API 리소스는 다음으로 구성됩니다:
프로젝트 리소스#
프로젝트 컨텍스트에서 사용 가능한 API 리소스:
| 리소스 | 사용 가능한 엔드포인트 |
|---|---|
| 액세스 요청 | /projects/:id/access_requests (그룹에서도 사용 가능) |
| 액세스 토큰 | /projects/:id/access_tokens (그룹에서도 사용 가능) |
| 에이전트 | /projects/:id/cluster_agents |
| 브랜치 | /projects/:id/repository/branches/, /projects/:id/repository/merged_branches |
| 커밋 | /projects/:id/repository/commits, /projects/:id/statuses |
| 컨테이너 레지스트리 | /projects/:id/registry/repositories |
| 컨테이너 리포지터리 보호 규칙 | /projects/:id/registry/protection/repository/rules |
| 컨테이너 레지스트리 보호 태그 규칙 | /projects/:id/registry/protection/tag/rules |
| 커스텀 속성 | /projects/:id/custom_attributes (그룹 및 사용자에서도 사용 가능) |
| Composer 배포판 | /projects/:id/packages/composer (그룹에서도 사용 가능) |
| Conan v1 배포판 | /projects/:id/packages/conan (독립형으로도 사용 가능) |
| Conan v2 배포판 | /projects/:id/packages/conan (독립형으로도 사용 가능) |
| Debian 배포판 | /projects/:id/debian_distributions (그룹에서도 사용 가능) |
| Debian 패키지 | /projects/:id/packages/debian (그룹에서도 사용 가능) |
| 의존성 | /projects/:id/dependencies |
| 배포 키 | /projects/:id/deploy_keys (독립형으로도 사용 가능) |
| 배포 토큰 | /projects/:id/deploy_tokens (그룹 및 독립형으로도 사용 가능) |
| 배포 | /projects/:id/deployments |
| 토론 (스레드 댓글) | /projects/:id/issues/.../discussions, /projects/:id/snippets/.../discussions, /projects/:id/merge_requests/.../discussions, /projects/:id/commits/.../discussions (그룹에서도 사용 가능) |
| 초안 노트 (댓글) | /projects/:id/merge_requests/.../draft_notes |
| 이모지 반응 | /projects/:id/issues/.../award_emoji, /projects/:id/merge_requests/.../award_emoji, /projects/:id/snippets/.../award_emoji |
| 환경 | /projects/:id/environments |
| 오류 추적 | /projects/:id/error_tracking/settings |
| 이벤트 | /projects/:id/events (사용자 및 독립형에서도 사용 가능) |
| 외부 상태 확인 | /projects/:id/external_status_checks |
| 기능 플래그 사용자 목록 | /projects/:id/feature_flags_user_lists |
| 기능 플래그 | /projects/:id/feature_flags |
| 동결 기간 | /projects/:id/freeze_periods |
| Go 프록시 | /projects/:id/packages/go |
| Helm 리포지터리 | /projects/:id/packages/helm_repository |
| 통합 (이전 "서비스") | /projects/:id/integrations |
| 초대 | /projects/:id/invitations (그룹에서도 사용 가능) |
| 이슈 보드 | /projects/:id/boards |
| 이슈 링크 | /projects/:id/issues/.../links |
| 이슈 통계 | /projects/:id/issues_statistics (그룹 및 독립형에서도 사용 가능) |
| 이슈 | /projects/:id/issues (그룹 및 독립형에서도 사용 가능) |
| 이터레이션 | /projects/:id/iterations (그룹에서도 사용 가능) |
| 프로젝트 CI/CD 작업 토큰 범위 | /projects/:id/job_token_scope |
| 작업 | /projects/:id/jobs, /projects/:id/pipelines/.../jobs |
| 작업 아티팩트 | /projects/:id/jobs/:job_id/artifacts |
| 레이블 | /projects/:id/labels |
| Maven 리포지터리 | /projects/:id/packages/maven (그룹 및 독립형에서도 사용 가능) |
| 멤버 | /projects/:id/members (그룹에서도 사용 가능) |
| 머지 리퀘스트 승인 | /projects/:id/approvals, /projects/:id/merge_requests/.../approvals |
| 머지 리퀘스트 | /projects/:id/merge_requests (그룹 및 독립형에서도 사용 가능) |
| 머지 트레인 | /projects/:id/merge_trains |
| 메타데이터 | /metadata |
| 모델 레지스트리 | /projects/:id/packages/ml_models/ |
| 노트 (댓글) | /projects/:id/issues/.../notes, /projects/:id/snippets/.../notes, /projects/:id/merge_requests/.../notes (그룹에서도 사용 가능) |
| 알림 설정 | /projects/:id/notification_settings (그룹 및 독립형에서도 사용 가능) |
| NPM 리포지터리 | /projects/:id/packages/npm |
| NuGet 패키지 | /projects/:id/packages/nuget (그룹에서도 사용 가능) |
| 패키지 | /projects/:id/packages |
| Pages 도메인 | /projects/:id/pages/domains (독립형으로도 사용 가능) |
| Pages 설정 | /projects/:id/pages |
| 파이프라인 스케줄 | /projects/:id/pipeline_schedules |
| 파이프라인 트리거 | /projects/:id/triggers |
| 파이프라인 | /projects/:id/pipelines |
| 프로젝트 배지 | /projects/:id/badges |
| 프로젝트 클러스터 | /projects/:id/clusters |
| 프로젝트 가져오기/내보내기 | /projects/:id/export, /projects/import, /projects/:id/import |
| 프로젝트 마일스톤 | /projects/:id/milestones |
| 프로젝트 스니펫 | /projects/:id/snippets |
| 프로젝트 템플릿 | /projects/:id/templates |
| 프로젝트 취약점 | /projects/:id/vulnerabilities |
| 프로젝트 위키 | /projects/:id/wikis |
| 프로젝트 수준 변수 | /projects/:id/variables |
| 프로젝트 (웹훅 설정 포함) | /projects, /projects/:id/hooks (사용자에서도 사용 가능) |
| 보호된 브랜치 | /projects/:id/protected_branches |
| 보호된 컨테이너 레지스트리 | /projects/:id/registry/protection/rules |
| 보호된 환경 | /projects/:id/protected_environments |
| 보호된 패키지 | /projects/:id/packages/protection/rules |
| 보호된 태그 | /projects/:id/protected_tags |
| PyPI 패키지 | /projects/:id/packages/pypi (그룹에서도 사용 가능) |
| 릴리스 링크 | /projects/:id/releases/.../assets/links |
| 릴리스 | /projects/:id/releases |
| 원격 미러 | /projects/:id/remote_mirrors |
| 리포지터리 | /projects/:id/repository |
| 리포지터리 파일 | /projects/:id/repository/files |
| 리포지터리 서브모듈 | /projects/:id/repository/submodules |
| 리소스 레이블 이벤트 | /projects/:id/issues/.../resource_label_events, /projects/:id/merge_requests/.../resource_label_events (그룹에서도 사용 가능) |
| Ruby 젬 | /projects/:id/packages/rubygems |
| 러너 | /projects/:id/runners (독립형으로도 사용 가능) |
| 검색 | /projects/:id/search (그룹 및 독립형에서도 사용 가능) |
| 태그 | /projects/:id/repository/tags |
| Terraform 모듈 | /projects/:id/packages/terraform/modules (독립형으로도 사용 가능) |
.gitlab-ci.yml 파일 유효성 검사 |
/projects/:id/ci/lint |
| 취약점 | /vulnerabilities/:id |
| 취약점 내보내기 | /projects/:id/vulnerability_exports |
| 취약점 발견 | /projects/:id/vulnerability_findings |
그룹 리소스#
그룹 컨텍스트에서 사용 가능한 API 리소스:
| 리소스 | 사용 가능한 엔드포인트 |
|---|---|
| 액세스 요청 | /groups/:id/access_requests/ (프로젝트에서도 사용 가능) |
| 액세스 토큰 | /groups/:id/access_tokens (프로젝트에서도 사용 가능) |
| 커스텀 속성 | /groups/:id/custom_attributes (프로젝트 및 사용자에서도 사용 가능) |
| Debian 배포판 | /groups/:id/-/packages/debian (프로젝트에서도 사용 가능) |
| 배포 토큰 | /groups/:id/deploy_tokens (프로젝트 및 독립형에서도 사용 가능) |
| 토론 (댓글 및 스레드) | /groups/:id/epics/.../discussions (프로젝트에서도 사용 가능) |
| 에픽 이슈 | /groups/:id/epics/.../issues |
| 에픽 링크 | /groups/:id/epics/.../epics |
| 에픽 | /groups/:id/epics |
| 그룹 | /groups, /groups/.../subgroups |
| 그룹 배지 | /groups/:id/badges |
| 그룹 이슈 보드 | /groups/:id/boards |
| 그룹 이터레이션 | /groups/:id/iterations (프로젝트에서도 사용 가능) |
| 그룹 레이블 | /groups/:id/labels |
| 그룹 수준 변수 | /groups/:id/variables |
| 그룹 마일스톤 | /groups/:id/milestones |
| 그룹 릴리스 | /groups/:id/releases |
| 그룹 SSH 인증서 | /groups/:id/ssh_certificates |
| 그룹 위키 | /groups/:id/wikis |
| 초대 | /groups/:id/invitations (프로젝트에서도 사용 가능) |
| 이슈 | /groups/:id/issues (프로젝트 및 독립형에서도 사용 가능) |
| 이슈 통계 | /groups/:id/issues_statistics (프로젝트 및 독립형에서도 사용 가능) |
| 연결된 에픽 | /groups/:id/epics/.../related_epics |
| 멤버 역할 | /groups/:id/member_roles |
| 멤버 | /groups/:id/members (프로젝트에서도 사용 가능) |
| 머지 리퀘스트 | /groups/:id/merge_requests (프로젝트 및 독립형에서도 사용 가능) |
| 노트 (댓글) | /groups/:id/epics/.../notes (프로젝트에서도 사용 가능) |
| 알림 설정 | /groups/:id/notification_settings (프로젝트 및 독립형에서도 사용 가능) |
| 리소스 레이블 이벤트 | /groups/:id/epics/.../resource_label_events (프로젝트에서도 사용 가능) |
| 검색 | /groups/:id/search (프로젝트 및 독립형에서도 사용 가능) |
독립형 리소스#
프로젝트 및 그룹 컨텍스트 외부에서 사용 가능한 API 리소스(/users 포함):
| 리소스 | 사용 가능한 엔드포인트 |
|---|---|
| 외관 | /application/appearance |
| 애플리케이션 | /applications |
| 감사 이벤트 | /audit_events |
| 아바타 | /avatar |
| 브로드캐스트 메시지 | /broadcast_messages |
| 코드 스니펫 | /snippets |
| 코드 제안 | /code_suggestions |
| 커스텀 속성 | /users/:id/custom_attributes (그룹 및 프로젝트에서도 사용 가능) |
| 의존성 목록 내보내기 | /pipelines/:id/dependency_list_exports, /projects/:id/dependency_list_exports, /groups/:id/dependency_list_exports, /security/dependency_list_exports/:id, /security/dependency_list_exports/:id/download |
| 배포 키 | /deploy_keys (프로젝트에서도 사용 가능) |
| 배포 토큰 | /deploy_tokens (프로젝트 및 그룹에서도 사용 가능) |
| GitLab Duo 에이전트 플랫폼 플로우 | /ai/duo_workflows |
| 이벤트 | /events, /users/:id/events (프로젝트에서도 사용 가능) |
| 기능 플래그 | /features |
| Geo 노드 | /geo_nodes |
| GLQL | /glql |
| 그룹 활동 분석 | /analytics/group_activity/{issues_count} |
| 그룹 리포지터리 스토리지 이동 | /group_repository_storage_moves |
| GitHub에서 리포지터리 가져오기 | /import/github |
| Bitbucket Server에서 리포지터리 가져오기 | /import/bitbucket_server |
| 인스턴스 클러스터 | /admin/clusters |
| 인스턴스 수준 CI/CD 변수 | /admin/ci/variables |
| 이슈 통계 | /issues_statistics (그룹 및 프로젝트에서도 사용 가능) |
| 이슈 | /issues (그룹 및 프로젝트에서도 사용 가능) |
| 작업 | /job |
| 키 | /keys |
| 라이선스 | /license |
| 마크다운 | /markdown |
| 머지 리퀘스트 | /merge_requests (그룹 및 프로젝트에서도 사용 가능) |
| 네임스페이스 | /namespaces |
| 알림 설정 | /notification_settings (그룹 및 프로젝트에서도 사용 가능) |
| 규정 준수 및 정책 설정 | /admin/security/compliance_policy_settings |
| Pages 도메인 | /pages/domains (프로젝트에서도 사용 가능) |
| 개인 액세스 토큰 | /personal_access_tokens |
| 플랜 제한 | /application/plan_limits |
| 프로젝트 리포지터리 스토리지 이동 | /project_repository_storage_moves |
| 프로젝트 | /users/:id/projects (프로젝트에서도 사용 가능) |
| 러너 | /runners (프로젝트에서도 사용 가능) |
| 검색 | /search (그룹 및 프로젝트에서도 사용 가능) |
| 서비스 데이터 | /usage_data (GitLab 인스턴스 관리자 사용자만) |
| 설정 | /application/settings |
| Sidekiq 메트릭 | /sidekiq |
| Sidekiq 큐 관리 | /admin/sidekiq/queues/:queue_name |
| 스니펫 리포지터리 스토리지 이동 | /snippet_repository_storage_moves |
| 통계 | /application/statistics |
| 제안 | /suggestions |
| 시스템 훅 | /hooks |
| 할 일 | /todos |
| 토큰 정보 | /admin/token |
| 주제 | /topics |
| 사용자 | /users |
| 웹 커밋 | /web_commits/public_key |
템플릿 리소스#
다음에 대한 엔드포인트를 사용할 수 있습니다:
