그룹 API
Offering: GitLab.com, Self-Managed, GitLab Dedicated
REST API를 사용하여 그룹과 상호 작용합니다.
응답으로 반환되는 필드는 인증된 사용자의 권한에 따라 다양합니다.
그룹 디렉터리
인증된 사용자의 보이는 그룹 디렉터리을 가져옵니다. 인증되지 않은 경우에는 공개 그룹만 반환됩니다.
기본적으로, API 결과가 페이징되기 때문에 이 요청은 한 번에 20개의 결과를 반환합니다.
인증되지 않은 경우, 이 엔드포인트는 또한 키셋 페이징을 지원합니다:
- 연속된 결과 페이지를 요청하는 경우, 키셋 페이징을 사용해야 합니다.
- 특정 오프셋 제한을 넘어서면 오프셋 페이징을 사용할 수 없습니다. (오프셋 기반 페이징에 대한 REST API가 허용하는 최대 오프셋 제한으로 지정됨)
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
skip_groups
| 정수 배열 | 아니오 | 전달된 그룹 ID를 건너뜁니다 |
all_available
| 부울 | 아니오 | 액세스할 수 있는 모든 그룹을 표시합니다 (authenticated users 의 기본값은 false , admin 은 true 이며, 속성 owned 및 min_access_level 이 우선합니다)
|
search
| 문자열 | 아니오 | 검색 기준과 일치하는 권한이 있는 그룹 디렉터리을 반환합니다. |
order_by
| 문자열 | 아니오 | 그룹을 name , path , id , 또는 similarity 별로 정렬합니다. 기본값은 name 입니다.
|
sort
| 문자열 | 아니오 | 그룹을 asc 또는 desc 순서대로 정렬합니다. 기본값은 asc 입니다.
|
statistics
| 부울 | 아니오 | 그룹 통계를 포함합니다 (관리자 전용). 참고: REST API 응답은 UI에 표시되는 전체 RootStorageStatistics 데이터를 제공하지 않습니다. UI에서 데이터와 일치시키려면 REST 대신에 GraphQL을 사용하세요. 자세한 내용은 그룹 GraphQL API resource를 참조하세요.
|
visibility
| 문자열 | 아니오 |
public , internal , 또는 private 가시성을 갖는 그룹으로 제한합니다.
|
with_custom_attributes
| 부울 | 아니오 | 사용자 정의 속성을 응답에 포함합니다 (관리자 전용) |
owned
| 부울 | 아니오 | 현재 사용자가 명시적으로 소유한 그룹으로 제한합니다 |
min_access_level
| 정수 | 아니오 | 현재 사용자가 적어도 이 역할(access_level )을 갖는 그룹으로 제한합니다
|
top_level_only
| 부울 | 아니오 | 모든 하위 그룹을 제외하고 최상위 레벨 그룹으로 제한합니다 |
repository_storage
| 문자열 | 아니오 | 그룹이 사용하는 리포지터리 스토리지로 필터링합니다 (관리자 전용). GitLab 16.3에서 소개됨. Premium 및 Ultimate 전용으로, |
GET /groups
[
{
"id": 1,
"name": "Foobar Group",
"path": "foo-bar",
"description": "An interesting group",
"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 Group",
"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
를 추가하고 인증된 사용자가 관리자인 경우에는 추가적인 그룹 통계가 반환됩니다.
GET /groups?statistics=true
[
{
"id": 1,
"name": "Foobar Group",
"path": "foo-bar",
"description": "An interesting group",
"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 Group",
"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
},
"wiki_access_level": "private",
"duo_features_enabled": true,
"lock_duo_features_enabled": false,
}
]
GitLab Premium 또는 Ultimate 사용자는 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 | 예 | 즉시 상위 그룹의 ID 또는 URL-encoded path(recursive-mode) |
skip_groups
| 정수 배열 | 아니오 | 전달된 그룹 ID를 건너뜁니다 |
all_available
| 부울 | 아니오 | 액세스할 수 있는 모든 그룹을 표시합니다 (authenticated users 의 기본값은 false , admin 은 true 이며, 속성 owned 및 min_access_level 이 우선합니다)
|
search
| 문자열 | 아니오 | 검색 기준과 일치하는 권한이 있는 그룹 디렉터리을 반환합니다. 하위 그룹의 단축 경로만 검색됩니다 (전체 경로는 아님) |
order_by
| 문자열 | 아니오 | 그룹을 name , path 또는 id 별로 정렬합니다. 기본값은 name 입니다.
|
sort
| 문자열 | 아니오 | 그룹을 asc 또는 desc 순서대로 정렬합니다. 기본값은 asc 입니다.
|
statistics
| 부울 | 아니오 | 그룹 통계를 포함합니다 (관리자 전용) |
with_custom_attributes
| 부울 | 아니오 | 사용자 정의 속성을 응답에 포함합니다 (관리자 전용) |
owned
| 부울 | 아니오 | 현재 사용자가 명시적으로 소유한 그룹으로 제한합니다 |
min_access_level
| 정수 | 아니오 | 현재 사용자가 적어도 이 역할(access_level )을 가진 그룹으로 제한합니다
|
GET /groups/:id/subgroups
[
{
"id": 1,
"name": "Foobar Group",
"path": "foo-bar",
"description": "An interesting group",
"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 Group",
"full_path": "foo-bar",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
}
]
GitLab Premium 또는 Ultimate 사용자는 wiki_access_level
, duo_features_enabled
, lock_duo_features_enabled
속성도 볼 수 있습니다.
그룹의 하위 그룹 디렉터리
이 그룹의 하위 그룹을 가져옵니다. 인증 없이 액세스하는 경우 공개 그룹만 반환됩니다.
기본적으로 이 요청은 API 결과가 페이지 단위로 구성되기 때문에 한 번에 20개의 결과를 반환합니다.
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 즉시 상위 그룹의 ID 또는 URL-인코딩된 경로 |
skip_groups
| 정수 배열 | 아니요 | 전달 된 그룹 ID 건너뜀 |
all_available
| 부울 | 아니요 | 액세스 권한이 있는 모든 그룹 표시(인증된 사용자의 경우 기본값은 false , 관리자의 경우 기본값은 true ). 소유 및 최소 액세스 레벨 이 우선함
|
search
| 문자열 | 아니요 | 검색 기준과 일치하는 허가된 그룹 디렉터리 반환. 하위 그룹 축약 경로만 검색(전체 경로 아님) |
order_by
| 문자열 | 아니요 | 그룹을 이름 , 경로 , 또는 id 로 정렬. 기본값은 name
|
sort
| 문자열 | 아니요 | 그룹을 asc 또는 desc 순서로 정렬. 기본값은 asc
|
statistics
| 부울 | 아니요 | 그룹 통계 포함(관리자 전용) |
with_custom_attributes
| 부울 | 아니요 | 응답에 사용자 정의 속성을 포함(관리자 전용) |
owned
| 부울 | 아니요 | 현재 사용자가 명시적으로 소유한 그룹으로 제한 |
min_access_level
| 정수 | 아니요 | 현재 사용자가 적어도 이 역할 (access_level )을 가진 그룹으로 제한
|
GET /groups/:id/descendant_groups
[
{
"id": 2,
"name": "Bar Group",
"path": "bar",
"description": "Foo Group의 하위 그룹",
"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 Group",
"full_path": "foo/bar",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
},
{
"id": 3,
"name": "Baz Group",
"path": "baz",
"description": "Bar Group의 하위 그룹",
"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 Group",
"full_path": "foo/bar/baz",
"file_template_project_id": 1,
"parent_id": 123,
"created_at": "2020-01-15T12:36:29.590Z"
}
]
GitLab Premium 또는 Ultimate 사용자는 wiki_access_level
, duo_features_enabled
, lock_duo_features_enabled
속성도 볼 수 있습니다.
그룹의 프로젝트 디렉터리
이 그룹의 프로젝트 디렉터리을 가져옵니다. 인증 없이 액세스하는 경우 공개 프로젝트만 반환됩니다.
기본적으로 이 요청은 API 결과가 페이지 단위로 구성되기 때문에 한 번에 20개의 결과를 반환합니다.
GET /groups/:id/projects
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL-인코딩된 경로 |
archived
| 부울 | 아니요 | 보관된 상태로 제한 |
visibility
| 문자열 | 아니요 | 가시성 public , internal , 또는 private 으로 제한
|
order_by
| 문자열 | 아니요 |
id , name , path , created_at , updated_at , similarity 1, star_count 또는 last_activity_at 필드로 정렬된 프로젝트 반환. 기본값은 created_at
|
sort
| 문자열 | 아니요 |
asc 또는 desc 순서로 정렬된 프로젝트 반환. 기본값은 desc
|
search
| 문자열 | 아니요 | 검색 기준과 일치하는 허가된 프로젝트 디렉터리 반환 |
simple
| 부울 | 아니요 | 각 프로젝트에 대해 제한된 필드만 반환. 인증 없는 경우 간단한 필드만 반환됩니다. |
owned
| 부울 | 아니요 | 현재 사용자가 소유한 프로젝트로 제한 |
starred
| 부울 | 아니요 | 현재 사용자가 즐겨찾기 한 프로젝트로 제한 |
topic
| 문자열 | 아니요 | 주제와 일치하는 프로젝트 반환 |
with_issues_enabled
| 부울 | 아니요 | 이슈 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
with_merge_requests_enabled
| 부울 | 아니요 | Merge Request 기능이 활성화된 프로젝트로 제한. 기본값은 false
|
with_shared
| 부울 | 아니요 | 이 그룹에 공유된 프로젝트 포함. 기본값은 true
|
include_subgroups
| 부울 | 아니요 | 이 그룹의 하위 그룹에 있는 프로젝트 포함. 기본값은 false
|
min_access_level
| 정수 | 아니요 | 현재 사용자가 적어도 이 역할 (access_level )을 가진 프로젝트로 제한
|
with_custom_attributes
| 부울 | 아니요 | 응답에 사용자 정의 속성을 포함(관리자 전용) |
with_security_reports
| 부울 | 아니요 | 어떠한 빌드에도 보안 보고서 어티팩트가 있는 프로젝트만 반환. 이는 “보안 보고서가 활성화된” 프로젝트만 반환합니다. 기본값은 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개씩 반환됩니다.
GET /groups/:id/projects/shared
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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 , star_count 또는 last_activity_at 필드로 정렬하여 반환합니다. 기본값은 created_at
|
sort
| string | no | 프로젝트를 asc 또는 desc 순서로 정렬하여 반환합니다. 기본값은 desc
|
search
| string | no | 검색 기준과 일치하는 인증된 프로젝트 디렉터리을 반환합니다. |
simple
| boolean | no | 각 프로젝트에 대해 제한된 필드만 반환합니다. 인증 없이는 단순 필드만 반환됩니다. |
starred
| boolean | no | 현재 사용자가 즐겨찾기한 프로젝트로 제한합니다. |
with_issues_enabled
| boolean | no | 이슈 기능이 활성화된 프로젝트로 제한합니다. 기본값은 false
|
with_merge_requests_enabled
| boolean | no | Merge Request 기능이 활성화된 프로젝트로 제한합니다. 기본값은 false
|
min_access_level
| integer | no | 현재 사용자가 적어도 이 역할(access_level )을 가진 프로젝트로 제한합니다.
|
with_custom_attributes
| boolean | no | 응답에 사용자 정의 속성을 포함합니다 (관리자 전용) |
예시 응답:
[
{
"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":[], //deprecated, use `topics` instead
"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":"7일",
"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 인코딩된 경로 |
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,
...
}
prevent_sharing_groups_outside_hierarchy
속성은 최상위 그룹에서만 존재합니다.
GitLab Premium 또는 Ultimate 사용자는 다음 속성도 볼 수 있습니다.
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"
새 그룹
새로운 프로젝트 그룹을 생성합니다. 그룹을 생성할 수 있는 사용자에게만 사용할 수 있습니다.
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 |
default_branch_protection_defaults 의 옵션 참조
|
description
| string | no | 그룹의 설명 |
enabled_git_access_protocol
| string | no | Git 액세스에 대해 활성화된 프로토콜입니다. ssh , http , all 값을 허용하여 두 가지 프로토콜을 모두 허용합니다. GitLab 16.9부터 도입됨.
|
emails_disabled
| boolean | no | 이메일 알림을 비활성화합니다. emails_enabled 를 대신 사용하세요. (GitLab 16.5에서 폐기됨)
|
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 (Maintainer 역할 사용자), developer (Developer 또는 Maintainer 역할 사용자) 중 하나일 수 있습니다.
|
request_access_enabled
| boolean | no | 사용자가 회원 액세스를 요청할 수 있도록 허용합니다. |
require_two_factor_authentication
| boolean | no | 이 그룹의 모든 사용자가 이중 인증을 설정하도록 요구합니다. |
share_with_group_lock
| boolean | no | 이 그룹 내의 다른 그룹과의 프로젝트 공유를 방지합니다. |
subgroup_creation_level
| string | no |
하위 그룹을 생성할 수 있는 권한입니다. owner (소유자) 또는 maintainer (Maintainer 역할 사용자)일 수 있습니다.
|
two_factor_grace_period
| integer | no | 이중 인증이 적용되기 전의 기간(시간 단위)입니다. |
visibility
| string | no | 그룹의 가시성입니다. private , internal , or public 중 하나일 수 있습니다.
|
membership_lock
| boolean | no | 사용자가 이 그룹의 프로젝트에 추가되지 않도록 합니다. Premium 및 Ultimate 전용입니다. |
extra_shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹의 추가 컴퓨팅 분. Self-Managed, Premium 및 Ultimate 전용입니다. |
shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹의 월별 최대 컴퓨팅 분 수. nil (기본값; 시스템 기본값 상속), 0 (무제한), 또는 > 0 중 하나일 수 있습니다. Self-Managed, Premium 및 Ultimate 전용입니다.
|
wiki_access_level
| string | no | 위키 접근 수준입니다. disabled , private , 또는 enabled 중 하나일 수 있습니다. Premium 및 Ultimate 전용입니다.
|
default_branch_protection
의 옵션
default_branch_protection
속성은 Developer 또는 Maintainer 역할 사용자가 해당 기본 브랜치로 푸시할 수 있는지 여부를 다음 표에 설명된 대로 결정합니다:
값 | 설명 |
---|---|
0
| 보호 없음. Developer 또는 Maintainer 역할 사용자가 다음을 수행할 수 있습니다: - 새 커밋 푸시 - 변경된 내용 강제 푸시 - 브랜치 삭제 |
1
| 부분적인 보호. Developer 또는 Maintainer 역할 사용자가 새 커밋을 푸시할 수 있습니다. |
2
| 완전한 보호. Maintainer 역할 사용자만 새 커밋을 푸시할 수 있습니다. |
3
| 푸시로부터 보호됨. Maintainer 역할 사용자가 다음을 수행할 수 있습니다: - 새 커밋 푸시 - 변경된 내용 강제 푸시 - MR 승인 Developer 역할 사용자가 다음을 수행할 수 있습니다: - MR 승인 |
4
| 초기 푸시 후 완전한 보호. Developer 역할 사용자가 빈 리포지터리에 커밋을 푸시할 수 있습니다. Maintainer 역할 사용자가 다음을 수행할 수 있습니다: - 새 커밋 푸시 - MR 승인 |
default_branch_protection_defaults
의 옵션
default_branch_protection_defaults
속성은 기본 브랜치 보호 기본값을 설명합니다. 모든 매개변수가 선택 사항입니다.
키 | 유형 | 설명 |
---|---|---|
allowed_to_push
| array | 푸시할 수 있는 액세스 수준의 배열. Developer (30) 또는 Maintainer (40)를 지원합니다. |
allow_force_push
| boolean | 모든 푸시 액세스 사용자에 대해 강제 푸시를 허용합니다. |
allowed_to_merge
| array | Merge할 수 있는 액세스 수준의 배열. Developer (30) 또는 Maintainer (40)를 지원합니다. |
developer_can_initial_push
| boolean | 개발자가 초기 푸시를 수행할 수 있습니다. |
새 하위 그룹
새 그룹 만들기와 유사합니다. 그룹 디렉터리 호출에서 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
| integer/string | yes | 대상 그룹의 ID 또는 URL-인코딩된 경로 |
project_id
| integer/string | yes | 프로젝트의 ID 또는 URL-인코딩된 경로 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/4/projects/56"
사용자가 그룹을 이전할 수 있는 그룹 가져오기
사용자가 그룹을 이전할 수 있는 그룹의 디렉터리을 검색합니다.
GET /groups/:id/transfer_locations
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer or string | Yes | 전송할 그룹의 ID 또는 URL-인코딩된 경로. |
search
| string | No | 검색할 그룹 이름입니다. |
예시 요청:
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
| integer | yes | 전송할 그룹의 ID. |
group_id
| integer | no | 새 상위 그룹의 ID. 지정되지 않으면 전송할 그룹이 대신 최상위 그룹으로 전환됩니다. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/4/transfer?group_id=7"
그룹 업데이트
unique_project_download_limit
,unique_project_download_limit_interval_in_seconds
, 및unique_project_download_limit_allowlist
가 기본적으로 사용되지 않습니다. GitLab 15.3에서 도입됨,limit_unique_project_downloads_per_namespace_user
라는 플래그가 있습니다.
프로젝트 그룹을 업데이트합니다. 그룹 소유자 및 관리자만 사용할 수 있습니다.
PUT /groups/:id
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 그룹의 ID. |
name
| string | no | 그룹의 이름. |
path
| string | no | 그룹의 경로. |
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 |
default_branch_protection_defaults 에 대한 옵션은 여기를 참조하십시오.
|
description
| string | no | 그룹의 설명. |
enabled_git_access_protocol
| string | no | Git 액세스에 대한 활성화된 프로토콜. 허용되는 값은: ssh , http , 및 all (두 프로토콜을 허용)입니다. GitLab 16.9에서 도입됨.
|
emails_disabled
| boolean | no |
(GitLab 16.5에서 사용 중닩됨. 이메일 알림 비활성화. 대신 emails_enabled 를 사용하십시오.
|
emails_enabled
| boolean | no | 이메일 알림 활성화. |
lfs_enabled
| boolean | no | 이 그룹의 프로젝트에서 대형 파일 저장 (LFS)을 활성화/비활성화합니다. |
mentions_disabled
| boolean | no | 그룹의 언급 기능 비활성화. |
prevent_sharing_groups_outside_hierarchy
| boolean | no | 그룹 계층 외부에서의 그룹 공유 방지. 이 속성은 최상위 그룹에서만 사용할 수 있습니다. |
project_creation_level
| string | no | 개발자가 그룹 내에서 프로젝트를 생성할 수 있는지 여부를 결정합니다. noone (아무도), maintainer (Maintainer 역할의 사용자), 또는 developer (Developer 또는 Maintainer 역할의 사용자)일 수 있습니다.
|
request_access_enabled
| boolean | no | 사용자가 멤버 액세스를 요청할 수 있도록 합니다. |
require_two_factor_authentication
| boolean | no | 이 그룹의 모든 사용자가 이중 인증 설정을 해야 하는지 여부를 결정합니다. |
shared_runners_setting
| string | no |
shared_runners_setting 에 대한 옵션은 여기를 참조하십시오. 그룹의 하위 그룹 및 프로젝트에 대한 공유 러너를 활성화 또는 비활성화합니다.
|
share_with_group_lock
| boolean | no | 이 그룹 내에서 다른 그룹과 프로젝트를 공유하는 것을 방지합니다. |
subgroup_creation_level
| string | no |
하위 그룹을 생성할 수 있는 권한을 결정합니다. owner (소유자), 또는 maintainer (Maintainer 역할의 사용자)일 수 있습니다.
|
two_factor_grace_period
| integer | no | 이중 인증이 강제되기 전까지의 시간(시간 단위). |
visibility
| string | no | 그룹의 가시성 수준. private , internal , 또는 public 이 될 수 있습니다.
|
extra_shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹에 대한 추가 계산 분. Self-Managed, Premium 및 Ultimate 전용. |
file_template_project_id
| integer | no | 커스텀 파일 템플릿을 로드할 프로젝트의 ID. Premium 및 Ultimate 전용. |
membership_lock
| boolean | no | 사용자가 이 그룹의 프로젝트에 추가될 수 없습니다. Premium 및 Ultimate 전용. |
prevent_forking_outside_group
| boolean | no | 활성화되면 사용자는 이 그룹에서 외부 네임스페이스로 프로젝트를 포크할 수 없습니다. Premium 및 Ultimate 전용. |
shared_runners_minutes_limit
| integer | no | 관리자만 설정할 수 있습니다. 이 그룹에 대한 월별 최대 계산 분. nil (기본; 시스템 기본값 상속), 0 (무제한), 또는 > 0 일 수 있습니다. Self-Managed, Premium 및 Ultimate 전용.
|
unique_project_download_limit
| integer | no | 사용자가 금지되기 전에 지정된 시간 동안 다운로드할 수 있는 고유 프로젝트의 최대 수. 최상위 그룹에서만 사용할 수 있습니다. 기본값: 0, 최대값: 10,000. Ultimate 전용. |
unique_project_download_limit_interval_in_seconds
| integer | no | 사용자가 금지되기 전에 최대 양의 프로젝트를 다운로드할 수 있는 시간 기간. 최상위 그룹에서만 사용할 수 있습니다. 기본값: 0, 최대값: 864,000초 (10일). Ultimate 전용. |
unique_project_download_limit_allowlist
| array of strings | no | 고유 프로젝트 다운로드 제한에서 제외된 사용자명 디렉터리. 최상위 그룹에서만 사용할 수 있습니다. 기본값: [] , 최대값: 100 사용자명. Ultimate 전용.
|
unique_project_download_limit_alertlist
| array of integers | no | 고유 프로젝트 다운로드 제한을 초과한 경우 이메일을 받는 사용자 ID 디렉터리. GitLab 15.9에서 도입됨. Ultimate 전용. |
auto_ban_user_on_excessive_projects_download
| boolean | no | 활성화되면 사용자가 unique_project_download_limit 및 unique_project_download_limit_interval_in_seconds 로 지정된 시간 동안 최대 양의 프로젝트를 다운로드하면 그룹에서 자동으로 금지됩니다. GitLab 15.4에서 도입됨. Ultimate 전용.
|
ip_restriction_ranges
| string | no | 그룹 액세스를 제한하기 위해 쉼표로 구분된 IP 주소 또는 서브넷 마스크 디렉터리. GitLab 15.4에서 도입됨. Premium 및 Ultimate 전용. |
wiki_access_level
| string | no | 위키 액세스 수준. disabled , private , 또는 enabled 가 될 수 있습니다. Premium 및 Ultimate 전용.
|
math_rendering_limits_enabled
| boolean | no | 이 그룹에 대한 수학 렌더링 한도를 사용하는지 여부를 나타냅니다. |
lock_math_rendering_limits_enabled
| boolean | no | 모든 하위 그룹에 대한 수학 렌더링 한도가 잠겨 있는지 나타냅니다. |
duo_features_enabled
| boolean | no | 이 그룹에 대해 GitLab Duo 기능이 활성화되었는지를 나타냅니다. GitLab 16.10에서 도입됨. Self-Managed, Premium 및 Ultimate 전용. |
lock_duo_features_enabled
| boolean | no | GitLab Duo 기능이 활성화되었는지 설정이 하위 그룹에 강제되는지를 나타냅니다. GitLab 16.10에서 도입됨. Self-Managed, Premium 및 Ultimate 전용. |
참고 사항:
응답에 있는 projects
및 shared_projects
속성은 API v5에서 제거될 예정이며, 삭제가 예정된 속성입니다. 그룹 내의 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 디렉터리 또는 그룹의 공유 프로젝트 디렉터리 엔드포인트를 사용하십시오.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/5?name=Experimental"
이 엔드포인트는 최대 100개의 프로젝트 및 공유된 프로젝트를 반환합니다. 그룹 내의 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 디렉터리 엔드포인트를 사용하십시오.
예시 응답:
{
"id": 5,
"name": "Experimental",
"path": "h5bp",
"description": "foo",
"visibility": "internal",
"avatar_url": null,
"web_url": "http://gitlab.example.com/groups/h5bp",
"request_access_enabled": false,
"repository_storage": "default",
"full_name": "Foobar Group",
"full_path": "h5bp",
"file_template_project_id": 1,
"parent_id": null,
"enabled_git_access_protocol": "all",
"created_at": "2020-01-15T12:36:29.590Z",
"
### `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=` 매개변수는 파일 시스템의 파일을 가리켜야 하며, `@`로 선행되어야 합니다. 예:
```shell
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
플래그가 제거되었습니다.
그룹 소유자 및 관리자에게만 사용할 수 있습니다.
이 엔드포인트:
- Premium 및 Ultimate 티어에서 그룹을 삭제로 표시합니다. 기본적으로 7일 후에 삭제가 발생하지만 인스턴스 설정에서 보관 기간을 변경할 수 있습니다.
- 프리 티어에서 즉시 그룹을 제거하고 그룹 내의 모든 프로젝트를 삭제하는 백그라운드 작업을 대기열에 넣습니다.
- 서브그룹이 삭제로 표시된 경우 (GitLab 15.4 이상), 그룹을 즉시 삭제합니다. 이 엔드포인트에서는 최상위 그룹을 즉시 삭제하지 않습니다.
DELETE /groups/:id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
permanently_remove
| 부울/문자열 | 아니 | 삭제로 표시된 서브그룹을 즉시 삭제합니다. GitLab 15.4에서 도입됨. Premium 및 Ultimate 전용. |
full_path
| 문자열 | 아니 |
permanently_remove 와 함께 사용할 서브그룹의 전체 경로. GitLab 15.4에서 도입됨. 서브그룹 경로를 찾으려면 그룹 세부 정보를 확인하세요. Premium 및 Ultimate 전용.
|
사용자가 권한을 가지고 있으면 응답은 202 Accepted
입니다.
삭제로 표시된 그룹 복원
Offering: GitLab.com, Self-Managed, GitLab Dedicated
삭제로 표시된 그룹을 복원합니다.
POST /groups/:id/restore
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
그룹 검색
이름 또는 경로에서 문자열과 일치하는 모든 그룹을 가져옵니다.
GET /groups?search=foobar
[
{
"id": 1,
"name": "Foobar Group",
"path": "foo-bar",
"description": "흥미로운 그룹"
}
]
제공된 사용자 디렉터리
Offering: GitLab.com, Self-Managed, GitLab Dedicated
특정 그룹에서 프로비저닝된 사용자 디렉터리을 가져옵니다. 서브그룹은 포함되지 않습니다.
그룹에서 적어도 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
},
...
]
그룹 사용자 디렉터리
Offering: GitLab.com, Self-Managed, GitLab Dedicated
Status: Experiment
- GitLab 16.6에 도입되었습니다. 이 기능은 실험입니다.
그룹의 사용자 디렉터리을 가져옵니다. 이 엔드포인트는 현재 멤버십 여부에 관계없이 최상위 그룹과 관련된 사용자를 반환합니다. 예를 들어, 그룹 또는 하위 그룹에서 만든 SAML 식별자가 연결된 사용자 또는 서비스 계정이 있습니다.
이 엔드포인트는 실험적이며 사전 통지없이 변경 또는 삭제될 수 있습니다.
그룹에서 Owner 역할이 필요합니다.
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
| integer/string | yes | 그룹의 ID 또는 URL-encoded path. |
include_saml_users
| boolean | yes (설명 참조) | SAML 식별자가 있는 사용자를 포함합니다. 이 값이나 include_service_accounts 중 하나는 true 여야 합니다.
|
include_service_accounts
| boolean | yes (설명 참조) | 서비스 계정 사용자를 포함합니다. 이 값이나 include_saml_users 중 하나는 true 여야 합니다.
|
search
| string | no | 사용자의 이름, 이메일, 사용자 이름으로 검색합니다. |
성공할 경우, 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
},
...
]
서비스 계정
Offering: GitLab.com, Self-Managed, GitLab Dedicated
서비스 계정 사용자 생성
- GitLab 16.1에서 도입되었습니다.
- 기본 이름이
Service account user
이고 사용자 이름이 자동으로 생성된 기능은 GitLab 16.10에서 도입되었습니다.
서비스 계정 사용자를 생성합니다. 사용자 이름과 이름을 지정할 수 있습니다. 이러한 속성을 지정하지 않으면 기본 이름은 Service account user
이고 사용자 이름은 자동으로 생성됩니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
POST /groups/:id/service_accounts
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/service_accounts"
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
name
| string | no | 사용자의 이름 |
username
| string | no | 사용자의 사용자 이름 |
응답 예시:
{
"id": 57,
"username": "service_account_group_345_6018816a18e515214e0c34c2b33523fc",
"name": "Service account user"
}
서비스 계정 사용자를 위한 개인 액세스 토큰 생성
- GitLab 16.1에서 도입되었습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/35/service_accounts/71/personal_access_tokens" --data "scopes[]=api,read_user,read_repository" --data "name=service_accounts_token"
응답 예시:
{
"id":6,
"name":"service_accounts_token",
"revoked":false,
"created_at":"2023-06-13T07:47:13.900Z",
"scopes":["api"],
"user_id":71,
"last_used_at":null,
"active":true,
"expires_at":"2024-06-12",
"token":"<token_value>"
}
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
name
| string | yes | 개인 액세스 토큰의 이름 |
scopes
| array | yes | 개인 액세스 토큰의 스코프 배열입니다. 가능한 값은 개인 액세스 토큰 스코프를 참조하세요. |
expires_at
| date | no | 개인 액세스 토큰 만료 날짜. 비워 둘 경우, 토큰은 개인 액세스 토큰 만료의 기본 규칙을 따릅니다. |
서비스 계정 사용자를 위한 개인 액세스 토큰 회전
- GitLab 16.1에서 도입되었습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens/:token_id/rotate
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/35/service_accounts/71/personal_access_tokens/6/rotate"
응답 예시:
{
"id":7,
"name":"service_accounts_token",
"revoked":false,
"created_at":"2023-06-13T07:54:49.962Z",
"scopes":["api"],
"user_id":71,
"last_used_at":null,
"active":true,
"expires_at":"2023-06-20",
"token":"<token_value>"
}
훅
Offering: GitLab.com, Self-Managed, GitLab Dedicated
그룹 훅 및 웹훅으로도 불립니다. 시스템 전역인 시스템 훅 및 프로젝트 단위인 프로젝트 훅과는 다릅니다.
그룹 훅 디렉터리
그룹 훅 디렉터리을 가져옵니다.
GET /groups/:id/hooks
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
그룹 훅 가져오기
특정 그룹의 훅을 가져옵니다.
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
hook_id
| integer | yes | 그룹 훅의 ID |
GET /groups/:id/hooks/:hook_id
{
"id": 1,
"url": "http://example.com/hook",
"name": "Hook name",
"description": "Hook description",
"group_id": 3,
"push_events": true,
"push_events_branch_filter": "",
"issues_events": true,
"confidential_issues_events": true,
"merge_requests_events": true,
"tag_push_events": true,
"note_events": true,
"confidential_note_events": true,
"job_events": true,
"pipeline_events": true,
"wiki_page_events": true,
"deployment_events": true,
"releases_events": true,
"subgroup_events": true,
"member_events": true,
"enable_ssl_verification": true,
"repository_update_events": false,
"alert_status": "executable",
"disabled_until": null,
"url_variables": [ ],
"created_at": "2012-10-12T17:04:47Z",
"resource_access_token_events": true,
"custom_webhook_template": "{\"event\":\"{{object_kind}}\"}"
}
그룹 훅 추가
지정된 그룹에 훅을 추가합니다.
POST /groups/:id/hooks
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
url
| string | yes | 훅 URL |
name
| string | no | 훅의 이름 (GitLab 17.1에서 소개) |
description
| string | no | 훅의 설명 (GitLab 17.1에서 소개) |
push_events
| boolean | no | 푸시 이벤트에서 훅 트리거 |
push_events_branch_filter
| string | no | 일치하는 브랜치에서의 푸시 이벤트에서 훅 트리거 |
issues_events
| boolean | no | 이슈 이벤트에서 훅 트리거 |
confidential_issues_events
| boolean | no | 기밀 이슈 이벤트에서 훅 트리거 |
merge_requests_events
| boolean | no | Merge Request 이벤트에서 훅 트리거 |
tag_push_events
| boolean | no | 태그 푸시 이벤트에서 훅 트리거 |
note_events
| boolean | no | 노트 이벤트에서 훅 트리거 |
confidential_note_events
| boolean | no | 기밀 노트 이벤트에서 훅 트리거 |
job_events
| boolean | no | 작업 이벤트에서 훅 트리거 |
pipeline_events
| boolean | no | 파이프라인 이벤트에서 훅 트리거 |
wiki_page_events
| boolean | no | 위키 페이지 이벤트에서 훅 트리거 |
deployment_events
| boolean | no | 배포 이벤트에서 훅 트리거 |
releases_events
| boolean | no | 릴리스 이벤트에서 훅 트리거 |
subgroup_events
| boolean | no | 서브그룹 이벤트에서 훅 트리거 |
member_events
| boolean | no | 멤버 이벤트에서 훅 트리거 |
enable_ssl_verification
| boolean | no | 훅 트리거 시 SSL 검증 수행 |
token
| string | no | 받은 페이로드를 유효성 검사하기 위한 비밀 토큰; 응답에는 반환되지 않음 |
resource_access_token_events
| boolean | no | 프로젝트 액세스 토큰 만료 이벤트에서 훅 트리거 |
custom_webhook_template
| string | no | 훅의 커스텀 웹훅 템플릿 |
그룹 훅 편집
지정된 그룹의 훅을 편집합니다.
PUT /groups/:id/hooks/:hook_id
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| integer 또는 string | yes | 그룹의 ID 또는 URL 인코딩된 경로. |
hook_id
| integer | yes | 그룹 훅의 ID. |
url
| string | yes | 훅 URL. |
name
| string | no | 훅의 이름 (GitLab 17.1에서 소개). |
description
| string | no | 훅의 설명 (GitLab 17.1에서 소개). |
push_events
| boolean | no | 푸시 이벤트에서 훅 트리거. |
push_events_branch_filter
| string | no | 일치하는 브랜치에서의 푸시 이벤트에서 훅 트리거. |
issues_events
| boolean | no | 이슈 이벤트에서 훅 트리거. |
confidential_issues_events
| boolean | no | 기밀 이슈 이벤트에서 훅 트리거. |
merge_requests_events
| boolean | no | Merge Request 이벤트에서 훅 트리거. |
tag_push_events
| boolean | no | 태그 푸시 이벤트에서 훅 트리거. |
note_events
| boolean | no | 노트 이벤트에서 훅 트리거. |
confidential_note_events
| boolean | no | 기밀 노트 이벤트에서 훅 트리거. |
job_events
| boolean | no | 작업 이벤트에서 훅 트리거. |
pipeline_events
| boolean | no | 파이프라인 이벤트에서 훅 트리거. |
wiki_page_events
| boolean | no | 위키 페이지 이벤트에서 훅 트리거. |
deployment_events
| boolean | no | 배포 이벤트에서 훅 트리거. |
releases_events
| boolean | no | 릴리스 이벤트에서 훅 트리거. |
subgroup_events
| boolean | no | 서브그룹 이벤트에서 훅 트리거. |
member_events
| boolean | no | 멤버 이벤트에서 훅 트리거. |
enable_ssl_verification
| boolean | no | 훅 트리거 시 SSL 검증 수행. |
service_access_tokens_expiration_enforced
| boolean | no | 서비스 계정 액세스 토큰에 만료 날짜가 있어야 함. |
token
| string | no | 받은 페이로드를 유효성 검사하기 위한 비밀 토큰. 웹훅 URL을 변경하면 시크릿 토큰이 재설정되고 유지되지 않습니다. |
resource_access_token_events
| boolean | no | 프로젝트 액세스 토큰 만료 이벤트에서 훅 트리거. |
custom_webhook_template
| string | no | 훅의 커스텀 웹훅 템플릿. |
그룹 후크 삭제
그룹에서 후크를 제거합니다. 이 방법은 멱등성이 있으며 여러 번 호출할 수 있습니다. 후크가 있는지 여부에 상관없이 작동합니다.
DELETE /groups/:id/hooks/:hook_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
hook_id
| integer | yes | 그룹 후크의 ID |
그룹 감사 이벤트
Offering: GitLab.com, Self-Managed, GitLab Dedicated
그룹 감사 이벤트는 그룹 감사 이벤트 API를 통해 액세스할 수 있습니다.
LDAP로 그룹 동기화
Offering: Self-Managed
해당 그룹을 연결된 LDAP 그룹과 동기화합니다. 그룹 소유자 및 관리자만 사용할 수 있습니다.
POST /groups/:id/ldap_sync
매개변수:
-
id
(필수) - 사용자 그룹의 ID 또는 경로
그룹 구성원
그룹 구성원 문서를 참조하십시오.
LDAP 그룹 링크
LDAP 그룹 링크를 나열하고 추가하고 삭제합니다.
LDAP 그룹 링크 나열
Offering: Self-Managed
LDAP 그룹 링크를 나열합니다.
GET /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
CN 또는 필터로 LDAP 그룹 링크 추가
Offering: Self-Managed
CN 또는 필터를 사용하여 LDAP 그룹 링크를 추가합니다. 필터를 사용한 그룹 링크 추가는 Premium 및 Ultimate 티어에서만 지원됩니다.
POST /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
cn
| string | no | LDAP 그룹의 CN |
filter
| string | no | 그룹의 LDAP 필터 |
group_access
| integer | yes | LDAP 그룹 구성원을 위한 역할(access_level )
|
provider
| string | yes | LDAP 그룹 링크의 LDAP 제공자 |
cn
또는 filter
중 하나를 제공하되 둘 다 제공하지 마십시오.LDAP 그룹 링크 삭제
Offering: Self-Managed
LDAP 그룹 링크를 삭제합니다. 사용이 중단된 기능으로 향후 릴리스에서 제거될 예정입니다.
DELETE /groups/:id/ldap_group_links/:cn
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
cn
| string | yes | LDAP 그룹의 CN |
특정 LDAP 제공자의 LDAP 그룹 링크를 삭제합니다. 사용이 중단된 기능으로 향후 릴리스에서 제거될 예정입니다.
DELETE /groups/:id/ldap_group_links/:provider/:cn
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
cn
| string | yes | LDAP 그룹의 CN |
provider
| string | yes | LDAP 그룹 링크의 LDAP 제공자 |
CN 또는 필터로 LDAP 그룹 링크 삭제
Offering: Self-Managed
CN 또는 필터를 사용하여 LDAP 그룹 링크를 삭제합니다. 필터별 삭제는 Premium 및 Ultimate 티어에서만 지원됩니다.
DELETE /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
cn
| string | no | LDAP 그룹의 CN |
filter
| string | no | 그룹의 LDAP 필터 |
provider
| string | yes | LDAP 그룹 링크의 LDAP 제공자 |
cn
또는 filter
중 하나를 제공하되 둘 다 제공하지 마십시오.SAML 그룹 링크
Offering: GitLab.com, Self-Managed, GitLab Dedicated
- GitLab 15.3.0에서 도입됨.
access_level
유형이 GitLab 15.3.3에서string
에서integer
로 변경되었습니다.member_role_id
유형이 GitLab 16.7에서custom_roles_for_saml_group_links
라는 플래그와 함께 도입됨. 기본 설정은 비활성화되어 있습니다.member_role_id
유형이 GitLab 16.8에서 일반적으로 사용 가능해집니다. 피처 플래그custom_roles_for_saml_group_links
가 제거되었습니다.
SAML 그룹 링크를 나열하고 가져오고 추가하고 삭제합니다.
SAML 그룹 링크 나열
SAML 그룹 링크를 나열합니다.
GET /groups/:id/saml_group_links
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
성공하면 200
을 반환하며 다음과 같은 응답 속성을 반환합니다:
속성 | 유형 | 설명 |
---|---|---|
[].name
| string | SAML 그룹의 이름 |
[].access_level
| integer | SAML 그룹 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0에서 GitLab 15.3.3까지 string 유형이었습니다.
|
[].member_role_id
| integer | SAML 그룹 구성원을 위한 구성원 역할 ID(member_role_id )
|
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
예시 응답:
[
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
},
{
"name": "saml-group-2",
"access_level": 40,
"member_role_id": 99
}
]
SAML 그룹 링크 가져오기
그룹의 SAML 그룹 링크를 가져옵니다.
GET /groups/:id/saml_group_links/:saml_group_name
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
saml_group_name
| string | yes | SAML 그룹의 이름 |
성공하면 200
및 다음과 같은 응답 속성이 반환됩니다:
속성 | 유형 | 설명 |
---|---|---|
name
| string | SAML 그룹의 이름 |
access_level
| integer | SAML 그룹의 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 유형이었습니다.
|
member_role_id
| integer | SAML 그룹의 구성원을 위한 구성원 역할 ID(member_role_id ).
|
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"
예시 응답:
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
}
SAML 그룹 링크 추가
그룹에 SAML 그룹 링크를 추가합니다.
POST /groups/:id/saml_group_links
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
saml_group_name
| string | yes | SAML 그룹의 이름 |
access_level
| integer | yes | SAML 그룹의 구성원을 위한 역할(access_level )
|
member_role_id
| integer | no | SAML 그룹의 구성원을 위한 구성원 역할 ID(member_role_id )
|
성공하면 201
및 다음과 같은 응답 속성이 반환됩니다:
속성 | 유형 | 설명 |
---|---|---|
name
| string | SAML 그룹의 이름 |
access_level
| integer | SAML 그룹의 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 유형이었습니다.
|
member_role_id
| integer | SAML 그룹의 구성원을 위한 구성원 역할 ID(member_role_id ).
|
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{ "saml_group_name": "<your_saml_group_name`>", "access_level": <chosen_access_level>, "member_role_id": <chosen_member_role_id> }' --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
예시 응답:
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
}
SAML 그룹 링크 삭제
그룹의 SAML 그룹 링크를 삭제합니다.
DELETE /groups/:id/saml_group_links/:saml_group_name
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
saml_group_name
| string | yes | SAML 그룹의 이름 |
성공하면 응답 본문 없이 204
상태 코드가 반환됩니다.
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"
그룹 내 네임스페이스
기본적으로 API 결과가 페이지로 구분되어 있기 때문에 한 번에 그룹에서는 20개의 네임스페이스만 받습니다.
추가로 받으려면(최대 100까지), API 호출에 다음을 인자로 전달하세요:
/groups?per_page=100
그리고 다른 페이지로 전환하려면 다음을 추가하세요:
/groups?per_page=100&page=2
그룹 뱃지
그룹 뱃지 문서에서 자세히 읽어보세요.
그룹 가져오기/내보내기
그룹 가져오기/내보내기에 대해 자세히 읽어보세요:
그룹과 그룹 공유
이 엔드포인트는 그룹을 다른 그룹과 공유하는 링크를 생성하고 삭제합니다. 자세한 정보는 GitLab 그룹 페이지의 관련 토론을 참조하세요.
그룹을 다른 그룹과 공유하는 링크 생성
다른 그룹과 공유에 대한 링크를 생성합니다. 성공하면 200
과 그룹 세부 정보가 반환됩니다.
POST /groups/:id/share
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
group_id
| integer | yes | 공유할 그룹의 ID |
group_access
| integer | yes | 그룹에 부여할 역할(access_level )
|
expires_at
| string | no | ISO 8601 형식의 공유 만료 날짜: 2016-09-26 |
다른 그룹과 공유 중인 그룹 링크 삭제
그룹을 다른 그룹과 공유 링크를 삭제합니다. 성공하면 204
와 내용이 없는 상태입니다.
DELETE /groups/:id/share/:group_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
group_id
| integer | yes | 공유할 그룹의 ID |
푸시 규칙
Offering: GitLab.com, Self-Managed, GitLab Dedicated
그룹 푸시 규칙 가져오기
그룹의 푸시 규칙을 가져옵니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
GET /groups/:id/push_rule
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL로 인코딩된 경로 |
{
"id": 2,
"created_at": "2020-08-17T19:09:19.580Z",
"commit_committer_check": true,
"commit_committer_name_check": true,
"reject_unsigned_commits": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": "[a-z]",
"deny_delete_tag": true,
"member_check": true,
"prevent_secrets": true,
"author_email_regex": "^[A-Za-z0-9.]+@gitlab.com$",
"file_name_regex": "(exe)$",
"max_file_size": 100
}
그룹 푸시 규칙 추가
지정된 그룹에 푸시 규칙을 추가합니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
POST /groups/:id/push_rule
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
deny_delete_tag
| boolean | no | 태그 삭제 거부 |
member_check
| boolean | no | GitLab 사용자만 커밋 작성 허용 |
prevent_secrets
| boolean | no | 비밀 정보를 포함할 가능성이 있는 파일 거부 |
commit_committer_name_check
| boolean | no | 사용자는 커밋 작성자 이름이 GitLab 계정 이름과 일치할 때만 리포지터리로 커밋을 푸시할 수 있습니다 |
commit_message_regex
| string | no | 모든 커밋 메시지는 예를 들어 Fixed \d+\..* 와 같이 제공된 정규 표현식과 일치해야 합니다
|
commit_message_negative_regex
| string | no | 이 속성에서 제공된 정규 표현식과 일치하는 커밋 메시지는 허용되지 않습니다. 예: ssh\:\/\/
|
branch_name_regex
| string | no | 모든 브랜치 이름은 예를 들어 (feature|hotfix)/* 와 같이 제공된 정규 표현식과 일치해야 합니다
|
author_email_regex
| string | no | 모든 커밋 작성자 이메일은 이 속성에서 제공된 정규 표현식과 일치해야 합니다. 예를 들어 @my-company.com$
|
file_name_regex
| string | no | 이 속성에서 제공된 정규 표현식과 일치하는 파일 이름은 허용되지 않습니다. 예: (jar|exe)$
|
max_file_size
| integer | no | 허용된 최대 파일 크기(MB) |
commit_committer_check
| boolean | no | 확인된 이메일을 사용하여 푸시된 커밋만 허용됩니다 |
reject_unsigned_commits
| boolean | no | 서명된 커밋만 허용됩니다 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule"
응답:
{
"id": 19,
"created_at": "2020-08-31T15:53:00.073Z",
"commit_committer_name_check": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": null,
"deny_delete_tag": false,
"member_check": false,
"prevent_secrets": false,
"author_email_regex": "^[A-Za-z0-9.]+@gitlab.com$",
"file_name_regex": null,
"max_file_size": 100
}
그룹 푸시 규칙 편집
지정된 그룹의 푸시 규칙을 편집합니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
PUT /groups/:id/push_rule
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |
deny_delete_tag
| boolean | no | 태그 삭제 거부 |
member_check
| boolean | no | 기존 GitLab 사용자에 의해 작성된 커밋에 제한을 둡니다 |
prevent_secrets
| boolean | no | 비밀 정보를 포함할 가능성이 있는 파일 거부 |
commit_committer_name_check
| boolean | no | 사용자는 커밋 작성자 이름이 GitLab 계정 이름과 일치할 때만 리포지터리로 커밋을 푸시할 수 있습니다 |
commit_message_regex
| string | no | 모든 커밋 메시지는 예를 들어 Fixed \d+\..* 와 같이 제공된 정규 표현식과 일치해야 합니다
|
commit_message_negative_regex
| string | no | 이 속성에서 제공된 정규 표현식과 일치하는 커밋 메시지는 허용되지 않습니다. 예: ssh\:\/\/
|
branch_name_regex
| string | no | 모든 브랜치 이름은 예를 들어 (feature|hotfix)/* 와 같이 제공된 정규 표현식과 일치해야 합니다
|
author_email_regex
| string | no | 모든 커밋 작성자 이메일은 이 속성에서 제공된 정규 표현식과 일치해야 합니다. 예를 들어 @my-company.com$
|
file_name_regex
| string | no | 이 속성에서 제공된 정규 표현식과 일치하는 파일 이름은 허용되지 않습니다. 예: (jar|exe)$
|
max_file_size
| integer | no | 허용된 최대 파일 크기(MB) |
commit_committer_check
| boolean | no | 확인된 이메일을 사용하여 푸시된 커밋만 허용됩니다 |
reject_unsigned_commits
| boolean | no | 서명된 커밋만 허용됩니다 |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule"
응답:
{
"id": 19,
"created_at": "2020-08-31T15:53:00.073Z",
"commit_committer_name_check": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": null,
"deny_delete_tag": false,
"member_check": false,
"prevent_secrets": false,
"author_email_regex": "^[A-Za-z0-9.]+@staging.gitlab.com$",
"file_name_regex": null,
"max_file_size": 100
}
그룹 푸시 규칙 삭제
그룹의 푸시 규칙을 삭제합니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
DELETE /groups/:id/push_rule
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 그룹의 ID 또는 URL-encoded path |