REST API 리소스
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
GitLab REST API로 GitLab 리소스를 프로그래밍 방식으로 제어합니다. REST API로 다음을 수행합니다. REST 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/alert_management_alerts/:alert_iid/metric_images |
| 증명서(Attestation) | /projects/:id/attestations/:subject_digest |
| 브랜치 | /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/dependency_firewall |
| 배포 키 | /projects/:id/deploy_keys (독립적으로도 사용 가능) |
| 배포 토큰 | /projects/:id/deploy_tokens (그룹 및 독립적으로도 사용 가능) |
| 배포 | /projects/:id/deployments |
| DevOps 리서치 및 평가(DORA) 지표 | /projects/:id/dora/metrics (그룹에서도 사용 가능) |
| 디스커션 (스레드형 댓글) | /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 |
| Google Cloud 통합 | /projects/:id/google_cloud/setup/ |
| Helm 리포지터리 | /projects/:id/packages/helm_repository |
| 통합 (이전 명칭 "services") | /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 job 토큰 범위 | /projects/:id/job_token_scope |
| Job | /projects/:id/jobs, /projects/:id/pipelines/.../jobs |
| Job 아티팩트 | /projects/:id/jobs/:job_id/artifacts |
| 레이블 | /projects/:id/labels |
| 마크다운 업로드 | /projects/:id/uploads |
| Maven 리포지터리 | /projects/:id/packages/maven (그룹 및 독립적으로도 사용 가능) |
| 멤버 | /projects/:id/members (그룹에서도 사용 가능) |
| 머지 리퀘스트 승인 설정 | /projects/:id/merge_request_approval_setting (그룹에서도 사용 가능) |
| 머지 리퀘스트 승인 | /projects/:id/approvals, /projects/:id/merge_requests/.../approvals |
| 머지 리퀘스트 컨텍스트 커밋 | /projects/:id/merge_requests/:merge_request_iid/context_commits |
| 머지 리퀘스트 | /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/fork, /projects/:id/forks |
| 프로젝트 가져오기/내보내기 | /projects/:id/export, /projects/import, /projects/:id/import |
| 프로젝트 마일스톤 | /projects/:id/milestones |
| 프로젝트 푸시 규칙 | /projects/:id/push_rule |
| 프로젝트 관계 내보내기 | /projects/:id/export_relations |
| 프로젝트 보안 설정 | /projects/:id/security_settings |
| 프로젝트 스니펫 | /projects/:id/snippets |
| 프로젝트 즐겨찾기 | /projects/:id/star, /projects/:id/unstar, /projects/:id/starrers |
| 프로젝트 통계 | /projects/:id/statistics |
| 프로젝트 템플릿 | /projects/:id/templates |
| 프로젝트 취약점. | /projects/:id/vulnerabilities |
| 프로젝트 웹훅 | /projects/:id/hooks |
| 프로젝트 위키 | /projects/:id/wikis |
| 프로젝트 수준 Secure Files | /projects/:project_id/secure_files |
| 프로젝트 수준 변수 | /projects/:id/variables |
| 프로젝트 | /projects |
| 보호된 브랜치 | /projects/:id/protected_branches |
| 보호된 컨테이너 레지스트리 | /projects/:id/registry/protection/rules |
| 보호된 환경 | /projects/:id/protected_environments |
| 보호된 패키지 | /projects/:id/packages/protection/rules |
| 보호된 태그 | /projects/:id/protected_tags |
| 풀 미러링 | /projects/:id/mirror/pull |
| 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/resource_groups |
| 리소스 이터레이션 이벤트 | /projects/:id/issues/.../resource_iteration_events |
| 리소스 레이블 이벤트 | /projects/:id/issues/.../resource_label_events, /projects/:id/merge_requests/.../resource_label_events (그룹에서도 사용 가능) |
| 리소스 마일스톤 이벤트 | /projects/:id/issues/.../resource_milestone_events, /projects/:id/merge_requests/.../resource_milestone_events |
| 리소스 상태 이벤트 | /projects/:id/issues/.../resource_state_events, /projects/:id/merge_requests/.../resource_state_events (그룹에서도 사용 가능) |
| 리소스 가중치 이벤트 | /projects/:id/issues/.../resource_weight_events |
| Ruby gem | /projects/:id/packages/rubygems |
| 러너 | /projects/:id/runners (독립적으로도 사용 가능) |
| 검색 | /projects/:id/search (그룹 및 독립적으로도 사용 가능) |
| Secrets Manager | /projects/:id/secrets_manager/access_token (그룹에서도 사용 가능) |
| 서비스 계정 | /projects/:id/service_accounts (그룹 및 독립적으로도 사용 가능) |
| 태그 | /projects/:id/repository/tags |
| Terraform 모듈 | /projects/:id/packages/terraform/modules (독립적으로도 사용 가능) |
.gitlab-ci.yml 파일 검증 |
/projects/:id/ci/lint |
| 취약점 | /vulnerabilities/:id |
| 취약점 아카이브 내보내기 | /security/projects/:id/vulnerability_archive_exports |
| 취약점 내보내기 | /projects/:id/vulnerability_exports |
| 취약점 발견 항목 | /projects/:id/vulnerability_findings |
그룹 리소스#
그룹 컨텍스트에서는 다음 API 리소스를 사용할 수 있습니다.
| 리소스 | 사용 가능한 엔드포인트 |
|---|---|
| 액세스 요청 | /groups/:id/access_requests/ (프로젝트에서도 사용 가능) |
| 액세스 토큰 | /groups/:id/access_tokens (프로젝트에서도 사용 가능) |
| 컨테이너 가상 레지스트리 | /groups/:id/-/virtual_registries/container/registries |
| 사용자 지정 속성 | /groups/:id/custom_attributes (프로젝트 및 사용자에서도 사용 가능) |
| Debian 배포판 | /groups/:id/-/packages/debian (프로젝트에서도 사용 가능) |
| 의존성 프록시 | /groups/:id/dependency_proxy/cache |
| 배포 토큰 | /groups/:id/deploy_tokens (프로젝트 및 독립적으로도 사용 가능) |
| DevOps 리서치 및 평가(DORA) 지표 | /groups/:id/dora/metrics (프로젝트에서도 사용 가능) |
| 디스커션 (댓글 및 스레드) | /groups/:id/epics/.../discussions (프로젝트에서도 사용 가능) |
| 에픽 이슈 | /groups/:id/epics/.../issues |
| 에픽 링크 | /groups/:id/epics/.../epics |
| 에픽 | /groups/:id/epics |
| 그룹 | /groups, /groups/.../subgroups |
| 그룹 배지 | /groups/:id/badges |
| 그룹 엔터프라이즈 사용자 | /groups/:id/enterprise_users |
| 그룹 에픽 보드 | /groups/:id/epic_boards |
| 그룹 가져오기 및 내보내기 | /groups/:id/export, /groups/import |
| 그룹 통합 | /groups/:id/integrations |
| 그룹 이슈 보드 | /groups/:id/boards |
| 그룹 이터레이션 | /groups/:id/iterations (프로젝트에서도 사용 가능) |
| 그룹 레이블 | /groups/:id/labels |
| 그룹 마크다운 업로드 | /groups/:id/uploads |
| 그룹 수준 보호된 브랜치 | /groups/:id/protected_branches |
| 그룹 수준 보호된 환경 | /groups/:id/protected_environments |
| 그룹 수준 변수 | /groups/:id/variables |
| 그룹 마일스톤 | /groups/:id/milestones |
| 그룹 플레이스홀더 재할당 | /groups/:id/placeholder_reassignments |
| 그룹 푸시 규칙 | /groups/:id/push_rule |
| 그룹 관계 내보내기 | /groups/:id/export_relations |
| 그룹 릴리스 | /groups/:id/releases |
| 그룹 보안 설정 | /groups/:id/security_settings |
| 그룹 SSH 인증서 | /groups/:id/ssh_certificates |
| 그룹 웹훅 | /groups/:id/hooks |
| 그룹 위키 | /groups/:id/wikis |
| 초대 | /groups/:id/invitations (프로젝트에서도 사용 가능) |
| 이슈 | /groups/:id/issues (프로젝트 및 독립적으로도 사용 가능) |
| 이슈 통계 | /groups/:id/issues_statistics (프로젝트 및 독립적으로도 사용 가능) |
| LDAP 그룹 링크 | /groups/:id/ldap_group_links |
| 연결된 에픽 | /groups/:id/epics/.../related_epics |
| Maven 가상 레지스트리 | /groups/:id/-/virtual_registries/packages/maven/registries |
| 멤버 역할 | /groups/:id/member_roles |
| 멤버 | /groups/:id/members (프로젝트에서도 사용 가능) |
| 머지 리퀘스트 승인 설정 | /groups/:id/merge_request_approval_setting (프로젝트에서도 사용 가능) |
| 머지 리퀘스트 | /groups/:id/merge_requests (프로젝트 및 독립적으로도 사용 가능) |
| 노트 (댓글) | /groups/:id/epics/.../notes (프로젝트에서도 사용 가능) |
| 알림 설정 | /groups/:id/notification_settings (프로젝트 및 독립적으로도 사용 가능) |
| 리소스 레이블 이벤트 | /groups/:id/epics/.../resource_label_events (프로젝트에서도 사용 가능) |
| 리소스 상태 이벤트 | /groups/:id/epics/:epic_id/resource_state_events (프로젝트에서도 사용 가능) |
| SAML | /groups/:id/saml/identities, /groups/:id/saml_group_links |
| SCIM | /groups/:id/scim/identities |
| 검색 | /groups/:id/search (프로젝트 및 독립적으로도 사용 가능) |
| Secrets Manager | /groups/:id/secrets_manager/access_token (프로젝트에서도 사용 가능) |
| 서비스 계정 | /groups/:id/service_accounts (프로젝트 및 독립적으로도 사용 가능) |
| 가상 레지스트리 정리 정책 | /groups/:id/-/virtual_registries/cleanup/policy |
독립 리소스#
프로젝트와 그룹 컨텍스트 밖에서는 다음 API 리소스를 사용할 수 있습니다(/users 포함).
| 리소스 | 사용 가능한 엔드포인트 |
|---|---|
| AI Catalog 관리자 | /admin/ai_catalog/seed_external_agents |
| 모양 | /application/appearance |
| 애플리케이션 | /applications |
| 감사 이벤트 | /audit_events |
| 아바타 | /avatar |
| 배치 백그라운드 마이그레이션 | /admin/batched_background_migrations |
| 브로드캐스트 메시지 | /broadcast_messages |
| 클러스터 검색(인증서 기반)(더 이상 사용되지 않음) | /discover-cert-based-clusters |
| 코드 스니펫 | /snippets |
| 코드 제안 | /code_suggestions |
| 컴플라이언스 및 정책 설정 | /admin/security/compliance_policy_settings |
| 사용자 지정 속성 | /users/:id/custom_attributes (그룹 및 프로젝트에서도 사용 가능) |
| 데이터 관리 | /admin/data_management/:model_name |
| 데이터베이스 마이그레이션 | /admin/migrations/:version/mark |
| 의존성 목록 내보내기 | /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 (프로젝트 및 그룹에서도 사용 가능) |
| 이벤트 | /events, /users/:id/events (프로젝트에서도 사용 가능) |
| 실험(내부용) | /experiments |
| 기능 플래그 | /features |
| Geo 노드 | /geo_nodes |
| Geo 사이트 | /geo_sites |
| GitLab Duo Agent Platform 플로 | /ai/duo_workflows |
| GitLab Duo Chat 완성(내부용) | /chat/completions |
| GLQL | /glql, /glql/schema |
| 그룹 활동 분석 | /analytics/group_activity/{issues_count} |
| 직접 전송을 통한 그룹 및 프로젝트 마이그레이션 | /bulk_imports |
| 그룹 리포지터리 스토리지 이동 | /group_repository_storage_moves |
| GitHub에서 리포지터리 가져오기 | /import/github |
| Bitbucket Server에서 리포지터리 가져오기 | /import/bitbucket_server |
| 인스턴스 클러스터 | /admin/clusters |
| 인스턴스 수준 CI/CD 변수 | /admin/ci/variables |
| 인스턴스 SSH 인증서 | /admin/ssh_certificates |
| 이슈 통계 | /issues_statistics (그룹 및 프로젝트에서도 사용 가능) |
| 이슈 | /issues (그룹 및 프로젝트에서도 사용 가능) |
| Job | /job |
| 키 | /keys |
| 라이선스 | /license |
| 마크다운 | /markdown |
| 머지 리퀘스트 | /merge_requests (그룹 및 프로젝트에서도 사용 가능) |
| 모바일 푸시 구독 | /user/push_subscriptions |
| 네임스페이스 | /namespaces |
| 알림 설정 | /notification_settings (그룹 및 프로젝트에서도 사용 가능) |
| Orbit | /orbit/query |
| 조직 | /organizations |
| Pages 도메인 | /pages/domains (프로젝트에서도 사용 가능) |
| 개인 액세스 토큰 | /personal_access_tokens |
| 플랜 한도 | /application/plan_limits |
| 정책 스토어 | /security/policy_store, /organizations/:id/security/policy_store |
| 프로젝트 별칭 | /project_aliases |
| 프로젝트 리포지터리 스토리지 이동 | /project_repository_storage_moves |
| 프로젝트 | /users/:id/projects (프로젝트에서도 사용 가능) |
| 러너 컨트롤러 토큰 | /runner_controllers/:id/tokens |
| 러너 컨트롤러 | /runner_controllers |
| 러너 | /runners (프로젝트에서도 사용 가능) |
| 검색 | /search (그룹 및 프로젝트에서도 사용 가능) |
| 검색 관리자 | /admin/search/migrations |
| 서비스 계정 | /service_accounts (그룹 및 프로젝트에서도 사용 가능) |
| 서비스 데이터 | /usage_data (GitLab 인스턴스 Administrator 사용자 전용) |
| 설정 | /application/settings |
| Sidekiq 메트릭 | /sidekiq |
| Sidekiq 큐 관리 | /admin/sidekiq/queues/:queue_name |
| 스니펫 리포지터리 스토리지 이동 | /snippet_repository_storage_moves |
| 통계 | /application/statistics |
| 제안 | /suggestions |
| 시스템 훅 | /hooks |
| 할 일 | /todos |
| 토큰 정보 | /admin/token |
| 토픽 | /topics |
| 사용자 애플리케이션 | /user/applications |
| 사용자 이메일 주소 | /user/emails |
| 사용자 팔로우 및 언팔로우 | /users/:id/follow, /users/:id/unfollow |
| 사용자 조정 | /users/:id/approve, /users/:id/reject |
| 사용자 SSH 및 GPG 키 | /user/keys |
| 사용자 토큰 | /users/:user_id/personal_access_tokens |
| 사용자 | /users |
| 웹 커밋 | /web_commits/public_key |
템플릿 리소스#
다음 항목에 대한 엔드포인트를 사용할 수 있습니다.