- 그룹 목록
- 그룹의 하위 그룹 목록
- 그룹의 하위 그룹 목록
- 그룹의 프로젝트 목록
- 그룹이 공유한 그룹 목록
- 그룹에 초대된 그룹 목록
- 그룹의 공유 프로젝트 목록
- 그룹의 세부 정보
- 새로운 그룹
- 새 서브그룹
- 그룹에서 프로젝트 이전
- 그룹에 전송할 수 있는 그룹 가져오기
- 그룹을 새 상위 그룹으로 이전 / 서브그룹을 최상위 그룹으로 변경
- 그룹 업데이트
- 그룹 삭제
- 삭제로 표시된 그룹 복원
- 그룹 검색
- 프로비저닝된 사용자 목록
- 그룹 사용자 목록
- 그룹 감사 이벤트
- LDAP로 그룹 동기화
- 토큰 취소
그룹 API
REST API를 사용하여 그룹과 상호 작용합니다.
응답으로 반환되는 필드는 인증된 사용자의 권한에 따라 다릅니다.
그룹 목록
인증된 사용자에 대한 가시적인 그룹 목록을 가져옵니다. 인증 없이 액세스하면 공개 그룹만 반환됩니다.
기본적으로 이 요청은 API 결과가 페이지별로 구분되기 때문에 한 번에 20개의 결과를 반환합니다.
인증 없이 액세스할 때,이 엔드포인트는 또한 키셋 페이지를 지원합니다:
- 연속된 결과 페이지를 요청할 때, 키셋 페이지를 사용해야 합니다.
- 특정 오프셋 한도 이상(오프셋 기반 페이지 나누기에 대한 REST API에서 허용되는 최대 오프셋으로 지정됨) 오프셋 페이지 나누기를 사용할 수 없습니다.
매개변수:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
skip_groups
| 정수 배열 | 아니요 | 전달된 그룹 ID 건너뛰기 |
all_available
| 부울 | 아니요 | 액세스 할 수있는 모든 그룹 표시(인증된 사용자의 기본값은 false , 관리자의 경우true ); 속성 owned 및 min_access_level 우선
|
search
| 문자열 | 아니요 | 검색 기준과 일치하는 승인 그룹 목록 반환 |
order_by
| 문자열 | 아니요 | 그룹 정렬 name ,path ,id ,similarity 에 의해. 기본값은 name
|
sort
| 문자열 | 아니요 |
asc 또는 desc 순으로 그룹 정렬. 기본값은 asc
|
statistics
| 부울 | 아니요 | 그룹 통계 포함(관리자 전용). 참고: 최상위 그룹의 경우 응답에서 UI에 표시되는 전체 root_storage_statistics 데이터가 반환됩니다. GitLab 17.4에서 도입.
|
visibility
| 문자열 | 아니요 |
public , internal , 또는 private 가시성이있는 그룹으로 제한합니다.
|
with_custom_attributes
| 부울 | 아니요 | 응답에 사용자 정의 속성 포함(관리자 전용) |
owned
| 부울 | 아니요 | 현재 사용자가 명시적으로 소유 한 그룹으로 제한 |
min_access_level
| 정수 | 아니요 | 현재 사용자가 적어도이 역할(access_level )을 가진 그룹으로 제한
|
top_level_only
| 부울 | 아니요 | 모든 하위 그룹을 제외한 최상위 그룹으로 제한 |
repository_storage
| 문자열 | 아니요 | 그룹이 사용하는 저장소 저장소로 필터링_(관리자 전용)_. GitLab 16.3에 도입.프리미엄 및 얼티밋 전용. |
marked_for_deletion_on
| 날짜 | 아니요 | 그룹이 삭제로 표시된 날짜로 필터링합니다. GitLab 17.1에서 도입. 프리미엄 및 얼티밋 전용. |
GET /groups
[
{
"id": 1,
"name": "Foobar 그룹",
"path": "foo-bar",
"description": "흥미로운 그룹",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "owner",
"emails_disabled": null,
"emails_enabled": null,
"mentions_disabled": null,
"lfs_enabled": true,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"avatar_url": "http://localhost:3000/uploads/group/avatar/1/foo.jpg",
"web_url": "http://localhost:3000/groups/foo-bar",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Foobar 그룹",
"full_path": "foo-bar",
"file_template_project_id": 1,
"parent_id": null,
"created_at": "2020-01-15T12:36:29.590Z",
"ip_restriction_ranges": null
}
]
매개변수 statistics=true
를 추가하고 인증된 사용자가 관리자인 경우 추가 그룹 통계가 반환됩니다. 최상위 그룹의 경우 root_storage_statistics
도 추가됩니다.
GET /groups?statistics=true
[
{
"id": 1,
"name": "Foobar 그룹",
"path": "foo-bar",
"description": "흥미로운 그룹",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "owner",
"emails_disabled": null,
"emails_enabled": null,
"mentions_disabled": null,
"lfs_enabled": true,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"avatar_url": "http://localhost:3000/uploads/group/avatar/1/foo.jpg",
"web_url": "http://localhost:3000/groups/foo-bar",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Foobar 그룹",
"full_path": "foo-bar",
"file_template_project_id": 1,
"parent_id": null,
"created_at": "2020-01-15T12:36:29.590Z",
"statistics": {
"storage_size": 363,
"repository_size": 33,
"wiki_size": 100,
"lfs_objects_size": 123,
"job_artifacts_size": 57,
"pipeline_artifacts_size": 0,
"packages_size": 0,
"snippets_size": 50,
"uploads_size": 0
},
"root_storage_statistics": {
"build_artifacts_size": 0,
"container_registry_size": 0,
"container_registry_size_is_estimated": false,
"dependency_proxy_size": 0,
"lfs_objects_size": 0,
"packages_size": 0,
"pipeline_artifacts_size": 0,
"repository_size": 0,
"snippets_size": 0,
"storage_size": 0,
"uploads_size": 0,
"wiki_size": 0
},
"wiki_access_level": "private",
"duo_features_enabled": true,
"lock_duo_features_enabled": false,
}
]
GitLab 프리미엄 또는 얼티밋 사용자는 wiki_access_level
, duo_features_enabled
, 및 lock_duo_features_enabled
속성을 볼 수 있습니다.
아래에서 그룹을 이름 또는 경로로 필터링할 수 있습니다.
다음과 같이 사용자 정의 속성로 필터링할 수 있습니다:
GET /groups?custom_attributes[key]=value&custom_attributes[other_key]=other_value
그룹의 하위 그룹 목록
이 그룹의 보이는 직속 하위 그룹 목록을 가져옵니다.
기본적으로 API 결과가 페이지별로 반환되기 때문에 한 번에 20개의 결과를 반환합니다.
다음과 같이이 목록을 요청하면:
- 인증되지 않은 사용자는 응답으로 공개 그룹 만 반환합니다.
- 인증된 사용자는 응답으로 자신이 속한 그룹 만 반환하며 공개 그룹은 포함되지 않습니다.
파라미터:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 즉시 상위 그룹의 ID 또는 URL 인코딩 된 경로 |
skip_groups
| integer의 배열 | no | 전달 된 그룹 ID 건너 뜁니다 |
all_available
| boolean | no | 액세스 할 수있는 그룹을 모두 표시합니다 (인증 된 사용자의 경우 기본값은 false , 관리자의 경우true ); 속성owned 및min_access_level 우선
|
search
| string | no | 검색 기준과 일치하는 권한이있는 하위 그룹 목록 반환. 하위 그룹의 짧은 경로 만 검색됨 (전체 경로 아님) |
order_by
| string | no | 그룹을 name , path 또는 id 로 정렬합니다. 기본값은 name
|
sort
| string | no | 그룹을 asc 또는 desc 순으로 정렬합니다. 기본값은 asc
|
statistics
| boolean | no | 그룹 통계를 포함합니다(관리자 전용) |
with_custom_attributes
| boolean | no | 응답에서 사용자 정의 속성을 포함합니다(관리자 전용) |
owned
| boolean | no | 현재 사용자가 명시 적으로 소유 한 그룹으로 제한 |
min_access_level
| integer | no | 현재 사용자가이 역할(access_level ) 중 하나 이상을 가진 그룹으로 제한
|
GET /groups/:id/subgroups
[
{
"id": 1,
"name": "Foobar 그룹",
"path": "foo-bar",
"description": "흥미로운 그룹",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "owner",
"emails_disabled": null,
"emails_enabled": null,
"mentions_disabled": null,
"lfs_enabled": true,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"avatar_url": "http://gitlab.example.com/uploads/group/avatar/1/foo.jpg",
"web_url": "http://gitlab.example.com/groups/foo-bar",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Foobar 그룹",
"full_path": "foo-bar",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
}
]
GitLab 프리미엄 또는 얼티밋 사용자는 또한 wiki_access_level
, duo_features_enabled
및 lock_duo_features_enabled
속성을 볼 수 있습니다.
그룹의 하위 그룹 목록
이 그룹의 보이는 하위 그룹 목록을 가져옵니다. 인증없이 액세스 할 때, 공개 그룹 만 반환됩니다.
기본적으로 API 결과가 페이지별로 반환되기 때문에 한 번에 20개의 결과를 반환합니다.
파라미터:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 즉시 상위 그룹의 ID 또는 URL 인코딩 된 경로 |
skip_groups
| integer의 배열 | no | 전달 된 그룹 ID 건너 뜁니다 |
all_available
| boolean | no | 액세스 할 수있는 그룹을 모두 표시합니다 (인증 된 사용자의 경우 기본값은 false , 관리자의 경우true ). 속성owned 및min_access_level 우선
|
search
| string | no | 검색 기준과 일치하는 권한이있는 하위 그룹 목록 반환. 하위 그룹의 짧은 경로만 검색됨 (전체 경로 아님) |
order_by
| string | no | 그룹을 name , path , 또는 id 로 정렬합니다. 기본값은 name
|
sort
| string | no | 그룹을 asc 또는 desc 순으로 정렬합니다. 기본값은 asc
|
statistics
| boolean | no | 그룹 통계를 포함합니다(관리자 전용) |
with_custom_attributes
| boolean | no | 응답에서 사용자 정의 속성을 포함합니다(관리자 전용) |
owned
| boolean | no | 현재 사용자가 명시 적으로 소유 한 그룹으로 제한 |
min_access_level
| integer | no | 현재 사용자가이 역할(access_level ) 중 하나 이상을 가진 그룹으로 제한
|
GET /groups/:id/descendant_groups
[
{
"id": 2,
"name": "Bar 그룹",
"path": "bar",
"description": "Foo 그룹의 하위 그룹",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "owner",
"emails_disabled": null,
"emails_enabled": null,
"mentions_disabled": null,
"lfs_enabled": true,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"avatar_url": "http://gitlab.example.com/uploads/group/avatar/1/bar.jpg",
"web_url": "http://gitlab.example.com/groups/foo/bar",
"request_access_enabled": false,
"full_name": "Bar 그룹",
"full_path": "foo/bar",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
},
{
"id": 3,
"name": "Baz 그룹",
"path": "baz",
"description": "Bar 그룹의 하위 그룹",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "owner",
"emails_disabled": null,
"emails_enabled": null,
"mentions_disabled": null,
"lfs_enabled": true,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"avatar_url": "http://gitlab.example.com/uploads/group/avatar/1/baz.jpg",
"web_url": "http://gitlab.example.com/groups/foo/bar/baz",
"request_access_enabled": false,
"full_name": "Baz 그룹",
"full_path": "foo/bar/baz",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
}
]
GitLab 프리미엄 또는 얼티밋 사용자는 또한 wiki_access_level
, duo_features_enabled
, 및 lock_duo_features_enabled
속성을 볼 수 있습니다.
그룹의 프로젝트 목록
이 그룹의 프로젝트 목록을 가져옵니다. 인증되지 않은 상태에서 액세스하는 경우 공개 프로젝트만 반환됩니다.
기본적으로 API 결과가 페이지 나누기됩니다로 인해 한 번에 20개의 결과가 반환됩니다.
GET /groups/:id/projects
파라미터:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
archived
| boolean | no | 아카이브된 상태로 제한 |
visibility
| string | no | 가시성에 따라 public , internal , 또는 private 로 제한
|
order_by
| string | no | 프로젝트를 id , name , path , created_at , updated_at , similarity 1, star_count , 또는 last_activity_at 필드순으로 반환합니다. 기본값은 created_at
|
sort
| string | no | 프로젝트를 asc 또는 desc 순으로 정렬합니다. 기본값은 desc
|
search
| string | no | 검색 기준과 일치하는 권한이 있는 프로젝트 목록을 반환합니다 |
simple
| boolean | no | 각 프로젝트에 대해 제한된 필드만 반환합니다. 여기서는 간단한 필드만 반환됩니다. |
owned
| boolean | no | 현재 사용자가 소유한 프로젝트로 제한 |
starred
| boolean | no | 현재 사용자가 스타를 표시한 프로젝트로 제한 |
topic
| string | no | 주제와 일치하는 프로젝트를 반환 |
with_issues_enabled
| boolean | no | 이슈 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
with_merge_requests_enabled
| boolean | no | MR(병합 요청) 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
with_shared
| boolean | no | 이 그룹에 공유된 프로젝트를 포함합니다. 기본값은 ‘true’ |
include_subgroups
| boolean | no | 이 그룹의 하위 그룹에 있는 프로젝트를 포함합니다. 기본값은 false
|
min_access_level
| integer | no | 현재 사용자가 최소한 이 역할(access_level )을 가진 프로젝트로 제한
|
with_custom_attributes
| boolean | no | 응답에 사용자 정의 속성을 포함합니다(관리자 전용) |
with_security_reports
| boolean | no | 보안 보고서 아티팩트가 빌드 중 하나에 존재하는 프로젝트만 반환합니다. 즉, “보안 보고서가 활성화된” 프로젝트만 반환합니다. 기본값은 false . Ultimate 전용.
|
각주:
-
search
URL 파라미터에서 계산된 유사도 점수를 기준으로 결과를 정렬합니다.order_by=similarity
를 사용할 때sort
파라미터는 무시됩니다.search
파라미터가 제공되지 않은 경우, API는name
순으로 정렬된 프로젝트를 반환합니다.
응답 예시:
[
{
"id": 9,
"description": "foo",
"default_branch": "main",
"tag_list": [], //deprecated, use `topics` instead
"topics": [],
"archived": false,
"visibility": "internal",
"ssh_url_to_repo": "git@gitlab.example.com/html5-boilerplate.git",
"http_url_to_repo": "http://gitlab.example.com/h5bp/html5-boilerplate.git",
"web_url": "http://gitlab.example.com/h5bp/html5-boilerplate",
"name": "Html5 Boilerplate",
"name_with_namespace": "Experimental / Html5 Boilerplate",
"path": "html5-boilerplate",
"path_with_namespace": "h5bp/html5-boilerplate",
"issues_enabled": true,
"merge_requests_enabled": true,
"wiki_enabled": true,
"jobs_enabled": true,
"snippets_enabled": true,
"created_at": "2016-04-05T21:40:50.169Z",
"last_activity_at": "2016-04-06T16:52:08.432Z",
"shared_runners_enabled": true,
"creator_id": 1,
"namespace": {
"id": 5,
"name": "Experimental",
"path": "h5bp",
"kind": "group"
},
"avatar_url": null,
"star_count": 1,
"forks_count": 0,
"open_issues_count": 3,
"public_jobs": true,
"shared_with_groups": [],
"request_access_enabled": false
}
]
참고:
그룹의 프로젝트와 그룹에 공유된 프로젝트를 구별하기 위해 namespace
속성을 사용할 수 있습니다. 프로젝트가 그룹에 공유된 경우, 해당 프로젝트의 namespace
는 요청이 발생한 그룹과 다릅니다.
그룹이 공유한 그룹 목록
주어진 그룹이 초대된 그룹 목록을 가져옵니다. 인증되지 않은 상태에서 액세스하는 경우 공개 공유된 그룹만 반환됩니다.
기본적으로 API 결과가 페이지 나누기됩니다로 인해 한 번에 20개의 결과가 반환됩니다.
파라미터:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
skip_groups
| array of integers | no | 지정된 그룹 ID를 건너뜁니다 |
search
| string | no | 검색 기준과 일치하는 권한이 있는 그룹 목록을 반환합니다 |
order_by
| string | no | 그룹을 name , path , id , 또는 similarity 기준으로 정렬합니다. 기본값은 name
|
sort
| string | no | 그룹을 asc 또는 desc 순으로 정렬합니다. 기본값은 asc
|
visibility
| string | no |
public , internal , 또는 private 가시성을 가진 그룹으로 제한합니다.
|
min_access_level
| integer | no | 현재 사용자가 최소한 이 역할(access_level )을 가진 그룹으로 제한합니다.
|
with_custom_attributes
| boolean | no | 응답에 사용자 정의 속성을 포함합니다(관리자 전용) |
GET /groups/:id/groups/shared
응답 예시:
[
{
"id": 101,
"web_url": "http://gitlab.example.com/groups/some_path",
"name": "group1",
"path": "some_path",
"description": "",
"visibility": "public",
"share_with_group_lock": "false",
"require_two_factor_authentication": "false",
"two_factor_grace_period": 48,
"project_creation_level": "maintainer",
"auto_devops_enabled": "nil",
"subgroup_creation_level": "maintainer",
"emails_disabled": "false",
"emails_enabled": "true",
"mentions_disabled": "nil",
"lfs_enabled": "true",
"math_rendering_limits_enabled": "true",
"lock_math_rendering_limits_enabled": "false",
"default_branch": "nil",
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 30
}
],
"allow_force_push": "true",
"allowed_to_merge": [
{
"access_level": 30
}
],
"developer_can_initial_push": "false",
"code_owner_approval_required": "false"
},
"avatar_url": "http://gitlab.example.com/uploads/-/system/group/avatar/101/banana_sample.gif",
"request_access_enabled": "true",
"full_name": "group1",
"full_path": "some_path",
"created_at": "2024-06-06T09:39:30.056Z",
"parent_id": "nil",
"organization_id": 1,
"shared_runners_setting": "enabled",
"ldap_cn": "nil",
"ldap_access": "nil",
"wiki_access_level": "enabled"
}
]
그룹에 초대된 그룹 목록
지정된 그룹에서 초대된 그룹 목록을 가져옵니다. 인증되지 않은 경우에는 공개적으로 초대된 그룹만 반환됩니다. 이 엔드포인트는 인증된 사용자의 경우 사용자당 분당 60회의 요청 빈도로 제한됩니다. 인증되지 않은 사용자의 경우 IP 당 60회로 제한됩니다.
기본적으로 이 요청은 페이지네이션됩니다 API 결과로 인해 한 번에 20개의 결과를 반환합니다.
파라미터:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL-인코딩 된 경로 |
search
| 문자열 | 아니오 | 검색 기준과 일치하는 권한 있는 그룹 목록 반환 |
min_access_level
| 정수 | 아니오 | 현재 사용자가 적어도 지정된 역할(access_level )을 갖는 그룹으로 제한
|
relation
| 문자열 배열 | 아니오 | 그룹을 관계별로 필터링(직접 또는 상속됨) |
with_custom_attributes
| 부울값 | 아니오 | 응답에 사용자 정의 속성 포함 (관리자 전용) |
GET /groups/:id/invited_groups
예시 응답:
[
{
"id": 33,
"web_url": "http://gitlab.example.com/groups/flightjs",
"name": "Flightjs",
"path": "flightjs",
"description": "Illo dolorum tempore eligendi minima ducimus provident.",
"visibility": "public",
"share_with_group_lock": false,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"project_creation_level": "developer",
"auto_devops_enabled": null,
"subgroup_creation_level": "maintainer",
"emails_disabled": false,
"emails_enabled": true,
"mentions_disabled": null,
"lfs_enabled": true,
"math_rendering_limits_enabled": true,
"lock_math_rendering_limits_enabled": false,
"default_branch": null,
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
],
"developer_can_initial_push": false
},
"avatar_url": null,
"request_access_enabled": true,
"full_name": "Flightjs",
"full_path": "flightjs",
"created_at": "2024-07-09T10:31:08.307Z",
"parent_id": null,
"organization_id": 1,
"shared_runners_setting": "enabled",
"ldap_cn": null,
"ldap_access": null,
"wiki_access_level": "enabled"
}
]
그룹의 공유 프로젝트 목록
이 그룹에 공유된 프로젝트 목록을 가져옵니다. 인증되지 않은 경우에는 공개적으로 공유된 프로젝트만 반환됩니다.
기본적으로 이 요청은 페이지네이션 됩니다 API 결과로 인해 한 번에 20개의 결과를 반환합니다.
GET /groups/:id/projects/shared
파라미터:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL-인코딩 된 경로 |
archived
| 부울값 | 아니오 | 아카이브된 상태로 제한 |
visibility
| 문자열 | 아니오 |
public , internal , 또는 private 로 가시성 제한
|
order_by
| 문자열 | 아니오 |
id , name , path , created_at , updated_at , star_count , 또는 last_activity_at 필드별 프로젝트 반환. 기본값은 created_at
|
sort
| 문자열 | 아니오 | 프로젝트를 asc 또는 desc 순으로 정렬하여 반환. 기본값은 desc
|
search
| 문자열 | 아니오 | 검색 기준과 일치하는 권한 있는 프로젝트 목록 반환 |
simple
| 부울값 | 아니오 | 각 프로젝트에 대해 제한된 필드만 반환. 인증되지 않은 경우에는 단순한 필드만 반환됩니다. |
starred
| 부울값 | 아니오 | 현재 사용자가 즐겨찾기한 프로젝트로 제한 |
with_issues_enabled
| 부울값 | 아니오 | 이슈 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
with_merge_requests_enabled
| 부울값 | 아니오 | 병합 요청 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
min_access_level
| 정수 | 아니오 | 현재 사용자가 적어도 이 역할(access_level )을 갖는 프로젝트로 제한
|
with_custom_attributes
| 부울값 | 아니오 | 응답에 사용자 정의 속성 포함 (관리자 전용) |
예시 응답:
[
{
"id":8,
"description":"Html5 Boilerplate의 공유 프로젝트",
"name":"Html5 Boilerplate",
"name_with_namespace":"H5bp / Html5 Boilerplate",
"path":"html5-boilerplate",
"path_with_namespace":"h5bp/html5-boilerplate",
"created_at":"2020-04-27T06:13:22.642Z",
"default_branch":"main",
"tag_list":[], //사용 중지됨, 대신 `topics` 사용
"topics":[],
"ssh_url_to_repo":"ssh://git@gitlab.com/h5bp/html5-boilerplate.git",
"http_url_to_repo":"https://gitlab.com/h5bp/html5-boilerplate.git",
"web_url":"https://gitlab.com/h5bp/html5-boilerplate",
"readme_url":"https://gitlab.com/h5bp/html5-boilerplate/-/blob/main/README.md",
"avatar_url":null,
"star_count":0,
"forks_count":4,
"last_activity_at":"2020-04-27T06:13:22.642Z",
"namespace":{
"id":28,
"name":"H5bp",
"path":"h5bp",
"kind":"group",
"full_path":"h5bp",
"parent_id":null,
"avatar_url":null,
"web_url":"https://gitlab.com/groups/h5bp"
},
"_links":{
"self":"https://gitlab.com/api/v4/projects/8",
"issues":"https://gitlab.com/api/v4/projects/8/issues",
"merge_requests":"https://gitlab.com/api/v4/projects/8/merge_requests",
"repo_branches":"https://gitlab.com/api/v4/projects/8/repository/branches",
"labels":"https://gitlab.com/api/v4/projects/8/labels",
"events":"https://gitlab.com/api/v4/projects/8/events",
"members":"https://gitlab.com/api/v4/projects/8/members"
},
"empty_repo":false,
"archived":false,
"visibility":"public",
"resolve_outdated_diff_discussions":false,
"container_registry_enabled":true,
"container_expiration_policy":{
"cadence":"7d",
"enabled":true,
"keep_n":null,
"older_than":null,
"name_regex":null,
"name_regex_keep":null,
"next_run_at":"2020-05-04T06:13:22.654Z"
},
"issues_enabled":true,
"merge_requests_enabled":true,
"wiki_enabled":true,
"jobs_enabled":true,
"snippets_enabled":true,
"can_create_merge_request_in":true,
"issues_access_level":"enabled",
"repository_access_level":"enabled",
"merge_requests_access_level":"enabled",
"forking_access_level":"enabled",
"wiki_access_level":"enabled",
"builds_access_level":"enabled",
"snippets_access_level":"enabled",
"pages_access_level":"enabled",
"security_and_compliance_access_level":"enabled",
"emails_disabled":null,
"emails_enabled": null,
"shared_runners_enabled":true,
"lfs_enabled":true,
"creator_id":1,
"import_status":"failed",
"open_issues_count":10,
"ci_default_git_depth":50,
"ci_forward_deployment_enabled":true,
"ci_forward_deployment_rollback_allowed": true,
"ci_allow_fork_pipelines_to_run_in_parent_project":true,
"public_jobs":true,
"build_timeout":3600,
"auto_cancel_pending_pipelines":"enabled",
"ci_config_path":null,
"shared_with_groups":[
{
"group_id":24,
"group_name":"Commit451",
"group_full_path":"Commit451",
"group_access_level":30,
"expires_at":null
}
],
"only_allow_merge_if_pipeline_succeeds":false,
"request_access_enabled":true,
"only_allow_merge_if_all_discussions_are_resolved":false,
"remove_source_branch_after_merge":true,
"printing_merge_request_link_enabled":true,
"merge_method":"merge",
"suggestion_commit_message":null,
"auto_devops_enabled":true,
"auto_devops_deploy_strategy":"continuous",
"autoclose_referenced_issues":true,
"repository_storage":"default"
}
]
그룹의 세부 정보
그룹의 모든 세부 정보를 가져옵니다. 그룹이 공개적으로 접근 가능한 경우 인증 없이 액세스할 수 있습니다. 그룹이 공개적으로 접근 가능한 경우, 요청한 사용자가 관리자인 경우 인증과 함께 그룹의 runners_token
및 enabled_git_access_protocol
도 반환합니다.
GET /groups/:id
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path. |
with_custom_attributes
| boolean | no | 응답에 사용자 지정 속성을 포함시킵니다(관리자 전용). |
with_projects
| boolean | no | 지정된 그룹에 속한 프로젝트의 세부 정보를 포함시킵니다(기본값은 true ). (사용이 중지된 API v5에서 제거 예정. 그룹 내 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 목록을 사용하세요.)
|
참고:
응답의 projects
및 shared_projects
속성은 사용이 중지될 예정이며 API v5에서 제거될 예정입니다.
그룹 내 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 목록 또는 그룹의 공유 프로젝트 목록 엔드포인트를 사용하세요.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4"
이 엔드포인트는 최대 100개의 프로젝트 및 공유 프로젝트를 반환합니다. 그룹 내 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 목록을 사용하세요.
예시 응답:
{
"id": 4,
"name": "Twitter",
"path": "twitter",
"description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
"visibility": "public",
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/twitter",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Twitter",
"full_path": "twitter",
"runners_token": "ba324ca7b1c77fc20bb9",
"file_template_project_id": 1,
"parent_id": null,
"enabled_git_access_protocol": "all",
"created_at": "2020-01-15T12:36:29.590Z",
"shared_with_groups": [
{
"group_id": 28,
"group_name": "H5bp",
"group_full_path": "h5bp",
"group_access_level": 20,
"expires_at": null
}
],
"prevent_sharing_groups_outside_hierarchy": false,
"projects": [ // 사용이 중지되며 API v5에서 제거될 예정
{
"id": 7,
"description": "Voluptas veniam qui et beatae voluptas doloremque explicabo facilis.",
"default_branch": "main",
"tag_list": [], //사용이 중지되었습니다, 대신 `topics`를 사용하십시오
"topics": [],
"archived": false,
"visibility": "public",
"ssh_url_to_repo": "git@gitlab.example.com:twitter/typeahead-js.git",
"http_url_to_repo": "https://gitlab.example.com/twitter/typeahead-js.git",
"web_url": "https://gitlab.example.com/twitter/typeahead-js",
"name": "Typeahead.Js",
"name_with_namespace": "Twitter / Typeahead.Js",
"path": "typeahead-js",
"path_with_namespace": "twitter/typeahead-js",
"issues_enabled": true,
"merge_requests_enabled": true,
"wiki_enabled": true,
"jobs_enabled": true,
"snippets_enabled": false,
"container_registry_enabled": true,
"created_at": "2016-06-17T07:47:25.578Z",
"last_activity_at": "2016-06-17T07:47:25.881Z",
"shared_runners_enabled": true,
"creator_id": 1,
"namespace": {
"id": 4,
"name": "Twitter",
"path": "twitter",
"kind": "group"
},
"avatar_url": null,
"star_count": 0,
"forks_count": 0,
"open_issues_count": 3,
"public_jobs": true,
"shared_with_groups": [],
"request_access_enabled": false
},
{
"id": 6,
"description": "Aspernatur omnis repudiandae qui voluptatibus eaque.",
"default_branch": "main",
"tag_list": [], //사용이 중지되었습니다, 대신 `topics`를 사용하십시오
"topics": [],
"archived": false,
"visibility": "internal",
"ssh_url_to_repo": "git@gitlab.example.com:twitter/flight.git",
"http_url_to_repo": "https://gitlab.example.com/twitter/flight.git",
"web_url": "https://gitlab.example.com/twitter/flight",
"name": "Flight",
"name_with_namespace": "Twitter / Flight",
"path": "flight",
"path_with_namespace": "twitter/flight",
"issues_enabled": true,
"merge_requests_enabled": true,
"wiki_enabled": true,
"jobs_enabled": true,
"snippets_enabled": false,
"container_registry_enabled": true,
"created_at": "2016-06-17T07:47:24.661Z",
"last_activity_at": "2016-06-17T07:47:24.838Z",
"shared_runners_enabled": true,
"creator_id": 1,
"namespace": {
"id": 4,
"name": "Twitter",
"path": "twitter",
"kind": "group"
},
"avatar_url": null,
"star_count": 0,
"forks_count": 0,
"open_issues_count": 8,
"public_jobs": true,
"shared_with_groups": [],
"request_access_enabled": false
}
],
"shared_projects": [ // 사용이 중지되며 API v5에서 제거될 예정
{
"id": 8,
"description": "Velit eveniet provident fugiat saepe eligendi autem.",
"default_branch": "main",
"tag_list": [], //사용이 중지되었습니다, 대신 `topics`를 사용하십시오
"topics": [],
"archived": false,
"visibility": "private",
"ssh_url_to_repo": "git@gitlab.example.com:h5bp/html5-boilerplate.git",
"http_url_to_repo": "https://gitlab.example.com/h5bp/html5-boilerplate.git",
"web_url": "https://gitlab.example.com/h5bp/html5-boilerplate",
"name": "Html5 Boilerplate",
"name_with_namespace": "H5bp / Html5 Boilerplate",
"path": "html5-boilerplate",
"path_with_namespace": "h5bp/html5-boilerplate",
"issues_enabled": true,
"merge_requests_enabled": true,
"wiki_enabled": true,
"jobs_enabled": true,
"snippets_enabled": false,
"container_registry_enabled": true,
"created_at": "2016-06-17T07:47:27.089Z",
"last_activity_at": "2016-06-17T07:47:27.310Z",
"shared_runners_enabled": true,
"creator_id": 1,
"namespace": {
"id": 5,
"name": "H5bp",
"path": "h5bp",
"kind": "group"
},
"avatar_url": null,
"star_count": 0,
"forks_count": 0,
"open_issues_count": 4,
"public_jobs": true,
"shared_with_groups": [
{
"group_id": 4,
"group_name": "Twitter",
"group_full_path": "twitter",
"group_access_level": 30,
"expires_at": null
},
{
"group_id": 3,
"group_name": "Gitlab Org",
"group_full_path": "gitlab-org",
"group_access_level": 10,
"expires_at": "2018-08-14"
}
]
}
],
"ip_restriction_ranges": null,
"math_rendering_limits_enabled": true,
"lock_math_rendering_limits_enabled": false
}
prevent_sharing_groups_outside_hierarchy
속성은 최상위 그룹에서만 제공됩니다.
GitLab 프리미엄 또는 얼티밋 사용자는 또한 아래 속성을 볼 수 있습니다:
shared_runners_minutes_limit
extra_shared_runners_minutes_limit
marked_for_deletion_on
membership_lock
wiki_access_level
duo_features_enabled
lock_duo_features_enabled
추가 응답 속성:
{
"id": 4,
"description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
"marked_for_deletion_on": "2020-04-03",
"membership_lock": false,
"wiki_access_level": "disabled",
"duo_features_enabled": true,
"lock_duo_features_enabled": false,
...
}
매개변수 with_projects=false
를 추가하면 프로젝트가 반환되지 않습니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4?with_projects=false"
예시 응답:
{
"id": 4,
"name": "Twitter",
"path": "twitter",
"description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
"visibility": "public",
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/twitter",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Twitter",
"full_path": "twitter",
"file_template_project_id": 1,
"parent_id": null
}
그룹 아바타 다운로드
그룹 아바타를 가져옵니다. 이 엔드포인트는 그룹이 공개적으로 접근 가능한 경우에 인증 없이 액세스할 수 있습니다.
GET /groups/:id/avatar
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹 ID |
예시:
curl --header "PRIVATE-TOKEN: $GITLAB_LOCAL_TOKEN" \
--remote-header-name \
--remote-name \
"https://gitlab.example.com/api/v4/groups/4/avatar"
새로운 그룹
참고: GitLab SaaS에서는 부모 그룹 없이 그룹을 생성하려면 GitLab UI를 사용해야 합니다. API를 사용하여 이 작업을 수행할 수 없습니다.
새로운 프로젝트 그룹을 생성합니다. 그룹을 생성할 수 있는 사용자에게만 제공됩니다.
POST /groups
파라미터:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
name
| string | yes | 그룹 이름 |
path
| string | yes | 그룹 경로 |
auto_devops_enabled
| boolean | no | 이 그룹 내의 모든 프로젝트에 대한 기본값으로 Auto DevOps 파이프라인을 설정합니다. |
avatar
| mixed | no | 그룹의 아바타를 위한 이미지 파일 |
default_branch
| string | no | 그룹의 프로젝트에 대한 기본 브랜치 이름. GitLab 16.11에서 소개됨 |
default_branch_protection
| integer | no | GitLab 17.0에서 폐기됨. 대신 default_branch_protection_defaults 를 사용합니다.
|
default_branch_protection_defaults
| hash | no | GitLab 17.0에서 도입됨. 사용 가능한 옵션은 Options for default_branch_protection_defaults 를 참조하십시오.
|
description
| string | no | 그룹의 설명 |
enabled_git_access_protocol
| string | no | Git 액세스를 위한 활성 프로토콜. 허용되는 값은: ssh , http 및 all 로 양쪽 프로토콜 사용이 가능합니다. GitLab 16.9에서 소개됨
|
emails_disabled
| boolean | no |
(Deprecated in GitLab 16.5.) 이메일 알림을 비활성화합니다. emails_enabled 대신 사용하세요.
|
emails_enabled
| boolean | no | 이메일 알림을 활성화합니다. |
lfs_enabled
| boolean | no | 이 그룹의 프로젝트에 대한 대용량 파일 저장 (LFS)를 활성화 또는 비활성화합니다. |
mentions_disabled
| boolean | no | 그룹을 언급하는 능력을 비활성화합니다. |
organization_id
| integer | no | 그룹의 조직 ID |
parent_id
| integer | no | 중첩 그룹을 생성하기 위한 상위 그룹 ID |
project_creation_level
| string | no | 개발자가 그룹 내에서 프로젝트를 생성할 수 있는지 여부를 결정합니다. noone (아무도), maintainer (관리자 역할 사용자), 또는 developer (개발자 또는 관리자 역할 사용자) 중 하나일 수 있습니다.
|
request_access_enabled
| boolean | no | 사용자가 구성원 액세스를 요청할 수 있는지 여부를 허용합니다. |
require_two_factor_authentication
| boolean | no | 이 그룹의 모든 사용자가 이중 인증 설정을 필요로 하는지 여부를 결정합니다. |
share_with_group_lock
| boolean | no | 이 그룹 내에서 다른 그룹과의 프로젝트 공유를 방지합니다. |
subgroup_creation_level
| string | no |
하위 그룹을 생성할 수 있는 권한. owner (소유자), 또는 maintainer (관리자 역할 사용자) 중 하나일 수 있습니다.
|
two_factor_grace_period
| integer | no | 이중 인증이 강제 적용되기 전의 시간 (시간 단위). |
visibility
| string | no | 그룹의 가시성. private , internal , 또는 public 중 하나일 수 있습니다.
|
membership_lock
| boolean | no | 이 그룹의 프로젝트에 사용자를 추가할 수 없음. 프리미엄 및 얼티메이트 전용. |
extra_shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹을 위한 추가 컴퓨팅 분. 자체 관리, 프리미엄 및 얼티메이트 전용. |
shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹을 위한 월간 최대 계산 분. nil (기본값; 시스템 기본값 상속), 0 (무제한), 또는 > 0 일 수 있습니다. 자체 관리, 프리미엄 및 얼티메이트 전용.
|
wiki_access_level
| string | no | 위키 접근 수준. disabled , private , 또는 enabled . 프리미엄 및 얼티메이트 전용.
|
default_branch_protection_defaults
옵션
default_branch_protection
속성은 다음 표에 설명된대로 개발자 또는 관리자 역할 사용자가 해당 기본 브랜치에 푸시할 수 있는지 여부를 결정합니다.
Value | Description |
---|---|
0
| 보호되지 않음. 개발자 또는 관리자 역할 사용자는: - 새로운 커밋 푸시 - 변경 사항 강제 푸시 - 브랜치 삭제 가능 |
1
| 부분적으로 보호됨. 개발자 또는 관리자 역할 사용자는: - 새로운 커밋 푸시 가능 |
2
| 완전 보호됨. 관리자 역할 사용자만: - 새로운 커밋 푸시 가능 |
3
| 푸시에 대해 보호됨. 관리자 역할 사용자는: - 새로운 커밋 푸시 - 변경 사항 강제 푸시 - MR 승인 가능 개발자 역할 사용자는: - MR 승인 가능 |
4
| 초기 푸시 후 완전 보호됨. 개발자 역할 사용자는: - 빈 저장소에 커밋 푸시 가능 관리자 역할 사용자는: - 새로운 커밋 푸시 가능 - MR 승인 가능 |
default_branch_protection_defaults
의 옵션
- GitLab 17.0에서 도입되었습니다.
default_branch_protection_defaults
속성은 기본 브랜치 보호 기본값을 설명합니다. 모든 매개변수는 선택 사항입니다.
키 | 유형 | 설명 |
---|---|---|
allowed_to_push
| 배열 | 푸시를 허용하는 액세스 레벨의 배열입니다. 개발자 (30) 또는 관리자(40)를 지원합니다. |
allow_force_push
| 부울 | 푸시 액세스가 있는 모든 사용자에게 강제 푸시를 허용합니다. |
allowed_to_merge
| 배열 | 병합을 허용하는 액세스 레벨의 배열입니다. 개발자 (30) 또는 관리자(40)를 지원합니다. |
developer_can_initial_push
| 부울 | 개발자가 초기 푸시를 할 수 있도록 합니다. |
새 서브그룹
이것은 새 그룹을 만드는 것과 유사합니다. 그룹 목록 호출에서 parent_id
가 필요합니다. 그런 다음 원하는 값으로 입력할 수 있습니다:
- subgroup_path
- subgroup_name
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{"path": "<subgroup_path>", "name": "<subgroup_name>", "parent_id": <parent_group_id> }' \
"https://gitlab.example.com/api/v4/groups/"
그룹에서 프로젝트 이전
프로젝트를 그룹 네임스페이스로 이전합니다. 인스턴스 관리자에게만 사용할 수 있으며, 인스턴스에서 관리자 권한이 필요하지 않은 대체 API 엔드포인트도 있습니다. 프로젝트 전송은 프로젝트 저장소에 태그 패키지가 있을 때 실패할 수 있습니다.
POST /groups/:id/projects/:project_id
매개변수:
속성 | 유형 | 필요 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 대상 그룹의 ID 또는 URL 인코딩 된 경로 |
project_id
| 정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 된 경로 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/4/projects/56"
그룹에 전송할 수 있는 그룹 가져오기
- GitLab 15.4에서 도입되었습니다.
그룹을 전송할 수 있는 그룹의 목록을 검색합니다.
GET /groups/:id/transfer_locations
속성 | 유형 | 필요 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 전송할 그룹의 ID 또는 URL 인코딩된 그룹 경로. |
search
| 문자열 | 아니오 | 검색할 그룹 이름입니다. |
예시 요청:
curl --request GET "https://gitlab.example.com/api/v4/groups/1/transfer_locations"
예시 응답:
[
{
"id": 27,
"web_url": "https://gitlab.example.com/groups/gitlab",
"name": "GitLab",
"avatar_url": null,
"full_name": "GitLab",
"full_path": "GitLab"
},
{
"id": 31,
"web_url": "https://gitlab.example.com/groups/foobar",
"name": "FooBar",
"avatar_url": null,
"full_name": "FooBar",
"full_path": "FooBar"
}
]
그룹을 새 상위 그룹으로 이전 / 서브그룹을 최상위 그룹으로 변경
그룹을 새 상위 그룹으로 이전하거나 서브그룹을 최상위 그룹으로 변경합니다. 다음 사용자는 사용할 수 있습니다:
- 그룹 전송을 위해 그룹 소유자 및 관리자.
- 새로운 상위 그룹에서 서브그룹을 생성할 수 있는 권한이 있는 경우, 그룹 전송을 진행합니다.
- 최상위 그룹에서 최상위 그룹으로 변경할 수 있는 권한을 가진 사용자.
POST /groups/:id/transfer
매개변수:
속성 | 유형 | 필요 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 전송할 그룹의 ID |
group_id
| 정수 | 아니오 | 새 상위 그룹의 ID입니다. 지정되지 않은 경우, 전송할 그룹은 대신 최상위 그룹으로 변경됩니다. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/4/transfer?group_id=7"
그룹 업데이트
플래그: 자체 관리 GitLab의 경우, 기본적으로 unique_project_download_limit
, unique_project_download_limit_interval_in_seconds
, unique_project_download_limit_allowlist
, 및 auto_ban_user_on_excessive_projects_download
기능이 사용할 수 없습니다. 이를 사용할 수 있도록 하려면 관리자가 기능 플래그인 limit_unique_project_downloads_per_namespace_user
를 활성화하도록 할 수 있습니다.
프로젝트 그룹을 업데이트합니다. 그릅 소유자 및 관리자만 사용할 수 있습니다.
PUT /groups/:id
속성 | 유형 | 필요 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 그룹의 ID |
name
| 문자열 | 아니오 | 그룹의 이름 |
path
| 문자열 | 아니오 | 그룹의 경로 |
auto_devops_enabled
| 부울 | 아니오 | 이 그룹 내의 모든 프로젝트에 대한 자동 DevOps 파이프라인을 기본적으로 설정합니다. |
avatar
| 혼합 | 아니오 | 그룹의 아바타 이미지 파일 |
default_branch
| 문자열 | 아니오 | 그룹의 프로젝트에 대한 기본 브랜치 이름을 설정합니다. GitLab 16.11에서 도입되었습니다. |
default_branch_protection
| 정수 | 아니오 | GitLab 17.0에서 사용 중지되었습니다. 대신 default_branch_protection_defaults 를 사용하세요.
|
default_branch_protection_defaults
| 해시 | 아니오 | GitLab 17.0에서 도입되었습니다. 가능한 옵션에 대해서는 default_branch_protection_defaults의 옵션을 참조하세요. |
description
| 문자열 | 아니오 | 그룹의 설명 |
enabled_git_access_protocol
| 문자열 | 아니오 | Git 액세스를 위해 활성화된 프로토콜입니다. 허용되는 값은: ssh , http , 모두 허용할 경우 all 입니다. GitLab 16.9에서 도입되었습니다.
|
emails_disabled
| 부울 | 아니오 |
(GitLab 16.5에서 사용 중단되었습니다.) 이메일 알림을 비활성화합니다. 대신 emails_enabled 를 사용하세요.
|
emails_enabled
| 부울 | 아니오 | 이메일 알림을 활성화합니다. |
… |
나머지 내용 생략
shared_runners_setting
옵션
shared_runners_setting
속성은 그룹의 하위 그룹 및 프로젝트에 대한 공유 러너의 활성화 여부를 결정합니다.
값 | 설명 |
---|---|
enabled
| 이 그룹의 모든 프로젝트 및 하위 그룹에 대해 공유 러너를 활성화합니다. |
disabled_and_overridable
| 이 그룹의 모든 프로젝트 및 하위 그룹에 대해 공유 러너를 비활성화하지만 하위 그룹에서 이 설정을 재정의할 수 있습니다. |
disabled_and_unoverridable
| 이 그룹의 모든 프로젝트 및 하위 그룹에 대해 공유 러너를 비활성화하며 하위 그룹에서 이 설정을 재정의하는 것을 방지합니다. |
disabled_with_override
| (사용 안 함. disabled_and_overridable 사용) 이 그룹의 모든 프로젝트 및 하위 그룹에 대해 공유 러너를 비활성화하지만 하위 그룹에서 이 설정을 재정의할 수 있습니다.
|
그룹 아바타 업로드
파일 시스템에서 아바타 파일을 업로드하려면 --form
인자를 사용하십시오. 이는 curl이 Content-Type: multipart/form-data
헤더를 사용하여 데이터를 전송하도록합니다. file=
매개변수는 파일 시스템의 파일을 가리키고 @
로 시작해야 합니다.
예시:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/22" \
--form "avatar=@/tmp/example.png"
그룹 아바타 제거
그룹 아바타를 제거하려면 avatar
속성에 빈 값을 사용하십시오.
예시 요청:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/22" \
--data "avatar="
그룹 삭제
- 하위 그룹 즉시 삭제는 기본적으로 GitLab 15.3에서
immediate_delete_subgroup_api
라는 플래그로 도입되었습니다. 기본적으로 비활성화되어 있습니다.- 하위 그룹 즉시 삭제는 GitLab 15.4에서 GitLab.com 및 Self-managed에서 활성화되었습니다.
- 하위 그룹 즉시 삭제는 GitLab 15.4에서 기본적으로 활성화되었습니다.
- 하위 그룹을 즉시 삭제하는 경우, GitLab 15.9에서 하위 그룹을 즉시 삭제하는 것에 사용되는
immediate_delete_subgroup_api
플래그가 제거되었습니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
이 엔드포인트: - 프리미엄 및 얼티밋 티어에서 그룹을 삭제로 표시합니다. 기본적으로 7일 후에 삭제되지만 인스턴스 설정에서 보관 기간을 변경할 수 있습니다. - 무료 티어에서는 그룹을 즉시 삭제하고 그룹 내 모든 프로젝트를 삭제하는 백그라운드 작업을 예약합니다. - 하위 그룹이 삭제로 표시된 경우 (GitLab 15.4 이상), 해당 하위 그룹은 즉시 삭제됩니다. 이 엔드포인트는 최상위 그룹을 즉시 삭제하지 않습니다.
DELETE /groups/:id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
permanently_remove
| 부울/문자열 | 아니 | 삭제로 표시된 하위 그룹을 즉시 삭제합니다. GitLab 15.4에서 도입되었습니다. 프리미엄 및 얼티밋 전용. |
full_path
| 문자열 | 아니 |
permanently_remove 와 함께 사용하기 위한 하위 그룹의 전체 경로입니다. GitLab 15.4에서 도입되었습니다. 하위 그룹 경로를 찾으려면 그룹 세부 정보를 참조하십시오. 프리미엄 및 얼티밋 전용.
|
사용자의 권한이 있는 경우 응답은 202 Accepted
입니다.
참고: GitLab.com 그룹은 구독과 연결되어 있을 때 삭제할 수 없습니다. 이러한 그룹을 삭제하려면 먼저 다른 그룹에 구독을 연결해야 합니다.
삭제로 표시된 그룹 복원
삭제로 표시된 그룹을 복원합니다.
POST /groups/:id/restore
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
그룹 검색
이름 또는 경로에서 일치하는 모든 그룹을 가져옵니다.
GET /groups?search=foobar
[
{
"id": 1,
"name": "Foobar Group",
"path": "foo-bar",
"description": "흥미로운 그룹"
}
]
프로비저닝된 사용자 목록
특정 그룹에 의해 프로비저닝된 사용자 목록을 가져옵니다. 하위 그룹은 포함되지 않습니다.
그룹에서 적어도 Maintainer 역할이 필요합니다.
GET /groups/:id/provisioned_users
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
username
| 문자열 | 아니 | 특정 사용자명을 가진 단일 사용자 반환 |
search
| 문자열 | 아니 | 이름, 이메일, 사용자명으로 사용자 검색 |
active
| 부울 | 아니 | 활성 사용자만 반환 |
blocked
| 부울 | 아니 | 차단된 사용자만 반환 |
created_after
| 날짜/시간 | 아니 | 특정 시간 이후에 생성된 사용자 반환 |
created_before
| 날짜/시간 | 아니 | 특정 시간 이전에 생성된 사용자 반환 |
예시 응답:
[
{
"id": 66,
"username": "user22",
"name": "John Doe22",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/xxx?s=80&d=identicon",
"web_url": "http://my.gitlab.com/user22",
"created_at": "2021-09-10T12:48:22.381Z",
"bio": "",
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null,
"job_title": "",
"pronouns": null,
"bot": false,
"work_information": null,
"followers": 0,
"following": 0,
"local_time": null,
"last_sign_in_at": null,
"confirmed_at": "2021-09-10T12:48:22.330Z",
"last_activity_on": null,
"email": "user22@example.org",
"theme_id": 1,
"color_scheme_id": 1,
"projects_limit": 100000,
"current_sign_in_at": null,
"identities": [ ],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_profile": false,
"commit_email": "user22@example.org",
"shared_runners_minutes_limit": null,
"extra_shared_runners_minutes_limit": null
},
...
]
그룹 사용자 목록
- GitLab 16.6에서 소개되었습니다. 이 기능은 실험입니다.
그룹의 사용자 목록을 가져옵니다. 이 엔드포인트는 현재 멤버십에 관계없이 최상위 그룹과 관련된 사용자를 반환합니다. 예를 들어, 그룹 또는 하위 그룹에서 생성된 SAML 식별자가 연결된 사용자 또는 서비스 계정이 있는 사용자 등이 있습니다.
이 엔드포인트는 실험적이며 변경되거나 사전 통보 없이 제거될 수 있습니다.
그룹 관리자 역할이 필요합니다.
GET /groups/:id/users
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/users?include_saml_users=true&include_service_accounts=true"
매개변수:
속성 | 타입 | 필요 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL-인코딩된 경로. |
include_saml_users
| 부울 | 예 (설명 참조) | SAML 식별자가 있는 사용자 포함. 이 값 또는 include_service_accounts 중 하나는 true 여야 합니다.
|
include_service_accounts
| 부울 | 예 (설명 참조) | 서비스 계정 사용자 포함. 이 값 또는 include_saml_users 중 하나는 true 여야 합니다.
|
search
| 문자열 | 아니오 | 이름, 이메일, 사용자 이름으로 사용자 검색. |
성공하면 200 OK
및 다음과 같은 응답 속성 반환:
응답 예시:
[
{
"id": 66,
"username": "user22",
"name": "John Doe22",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/xxx?s=80&d=identicon",
"web_url": "http://my.gitlab.com/user22",
"created_at": "2021-09-10T12:48:22.381Z",
"bio": "",
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null,
"job_title": "",
"pronouns": null,
"bot": false,
"work_information": null,
"followers": 0,
"following": 0,
"local_time": null,
"last_sign_in_at": null,
"confirmed_at": "2021-09-10T12:48:22.330Z",
"last_activity_on": null,
"email": "user22@example.org",
"theme_id": 1,
"color_scheme_id": 1,
"projects_limit": 100000,
"current_sign_in_at": null,
"identities": [ ],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_profile": false,
"commit_email": "user22@example.org",
"shared_runners_minutes_limit": null,
"extra_shared_runners_minutes_limit": null
},
...
]
그룹 감사 이벤트
그룹 감사 이벤트는 그룹 감사 이벤트 API를 통해 액세스할 수 있습니다.
LDAP로 그룹 동기화
그룹을 연결된 LDAP 그룹과 동기화합니다. 그룹 소유자 및 관리자에게만 사용할 수 있습니다.
POST /groups/:id/ldap_sync
매개변수:
-
id
(필수) - 사용자 그룹의 ID 또는 경로
토큰 취소
- 소개된 시점: GitLab 17.2에서
group_agnostic_token_revocation
이라는 플래그와 함께 소개되었습니다. 기본적으로 비활성화됩니다.- 사용자 피드 토큰의 폐기가 GitLab 17.3에서 소개되었습니다.
플래그: 이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요.
토큰 취소는 토큰이 그룹 또는 해당 하위 그룹 및 프로젝트에 액세스하는 경우에 실행됩니다. 토큰이 취소되었거나 이미 취소된 경우 응답에서 해당 세부 정보가 반환됩니다.
다음 기준을 충족해야 합니다:
- 그룹은 최상위 그룹이어야 합니다.
- 그룹의 소유자 역할이어야 합니다.
- 토큰 유형은 다음 중 하나여야 합니다:
- 개인 액세스 토큰
- 그룹 액세스 토큰
- 프로젝트 액세스 토큰
- 그룹 배포 토큰
- 사용자 피드 토큰
추가적인 토큰 유형은 나중에 지원될 수 있습니다.
POST /groups/:id/tokens/revoke
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
token
| 문자열 | 예 | 평문 토큰입니다. |
성공할 경우 200 OK
및 토큰의 JSON 표현이 반환됩니다. 반환된 속성은 토큰 유형에 따라 다를 수 있습니다.
예시 요청
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{"token":"glpat-EXAMPLE"}' \
--url "https://gitlab.example.com/api/v4/groups/63/tokens/revoke"
예시 응답:
{
"id": 9,
"name": "my-subgroup-deploytoken",
"username": "gitlab+deploy-token-9",
"expires_at": null,
"scopes":
[
"read_repository",
"read_package_registry",
"write_package_registry"
],
"revoked": true,
"expired": false
}