- 그룹 목록
- 그룹의 하위 그룹 목록
- 그룹의 하위 계좌 그룹 목록
- 그룹 프로젝트 목록
- 그룹의 공유된 프로젝트 목록
- 그룹 세부 정보
- 새로운 그룹
- 새로운 서브그룹
- 프로젝트를 그룹으로 이전
- 사용자가 그룹으로 이전할 수 있는 그룹 가져오기
- 그룹을 새 상위 그룹으로 이동/하위 그룹을 최상위 그룹으로 변경
- 그룹 업데이트
- 그룹 제거
- 삭제 대상으로 표시된 그룹 복원
- 그룹 검색
- 프로비저닝된 사용자 목록
- 그룹 사용자 목록
- 서비스 계정
- 후크
- 그룹 감사 이벤트
- LDAP와 그룹 동기화
- 그룹 구성원
- LDAP 그룹 링크
- SAML 그룹 링크
- 그룹 내 네임스페이스
- 그룹 배지
- 그룹 가져오기/내보내기
- 그룹 간 공유
- 푸시 규칙
그룹 API
groups와 상호 작용하려면 REST API를 사용하십시오.
응답으로 반환되는 필드는 인증된 사용자의 권한에 따라 다양합니다.
그룹 목록
- GitLab 14.3에서 키셋 페이지네이션 지원이 추가되었습니다.
인증된 사용자의 가시적 그룹 목록을 가져옵니다. 인증 없이 액세스할 때는 공개 그룹만 반환됩니다.
기본적으로 이 요청은 API 결과가 페이지별로 구분되므로 한 번에 20개의 결과를 반환합니다.
인증 없이 액세스할 때 이 엔드포인트는 또한 키셋 페이지네이션을 지원합니다.
- 연속된 결과 페이지를 요청할 때는 키셋 페이지네이션을 사용해야 합니다.
- 특정 오프셋 제한을 넘어서면(OFFSET 기반 페이지네이션의 REST API에서 허용하는 최대 오프셋으로 지정됨), 오프셋 페이지네이션이 불가능해집니다.
매개변수:
속성명 | 유형 | 필수 | 설명 |
---|---|---|---|
skip_groups
| 정수 배열 | 아니요 | 전달된 그룹 ID 건너뜁니다 |
all_available
| 부울 | 아니요 | 액세스할 수 있는 모든 그룹 표시(인증된 사용자의 경우 기본값은 false , 관리자의 경우 true ); owned 및 min_access_level 우선
|
search
| 문자열 | 아니요 | 검색 기준과 일치하는 권한이 있는 그룹 목록 반환 |
order_by
| 문자열 | 아니요 | 그룹을 name , path , id , 또는 similarity 순으로 정렬(검색 중인 경우, GitLab 14.1에서 소개됨). 기본값은 name
|
sort
| 문자열 | 아니요 | 그룹을 asc 또는 desc 순으로 정렬. 기본값은 asc
|
statistics
| 부울 | 아니요 | 그룹 통계 포함(관리자만); 참고: REST API 응답은 UI에 표시되는 전체 RootStorageStatistics 데이터를 제공하지 않습니다. UI의 데이터와 일치하려면 REST 대신 GraphQL을 사용하십시오. 자세한 내용은 그룹 GraphQL API 리소스를 참조하십시오.
|
visibility
| 문자열 | 아니요 |
public , internal , 또는 private 가시성의 그룹으로 제한
|
with_custom_attributes
| 부울 | 아니요 | 응답에 사용자 정의 속성 포함(관리자만) |
owned
| 부울 | 아니요 | 현재 사용자가 명시적으로 소유한 그룹으로 제한 |
min_access_level
| 정수 | 아니요 | 현재 사용자가 적어도 이 역할(access_level )을 가진 그룹으로 제한
|
top_level_only
| 부울 | 아니요 | 모든 하위 그룹을 제외한 최상위 그룹으로 제한 |
repository_storage
| 문자열 | 아니요 | 그룹이 사용하는 저장소 저장소로 필터링(관리자 전용). GitLab 16.3에서 소개. 프리미엄 및 얼티밋 전용. |
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_protection": 2,
"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_protection": 2,
"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 프리미엄 또는 얼티밋 사용자는 또한 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
| 숫자/문자열 | 예 | 즉시 상위 그룹의 ID 또는 URL 인코딩된 경로 |
skip_groups
| 숫자 배열 | 아니요 | 전달된 그룹 ID를 건너뜀 |
all_available
| 부울 | 아니요 | 액세스할 수 있는 모든 그룹을 표시합니다(인증된 사용자의 경우 기본값은 false , 관리자의 경우 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": "흥미로운 그룹",
"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_protection": 2,
"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
속성을 볼 수 있습니다.
그룹의 하위 계좌 그룹 목록
- GitLab 13.5에 도입됨
이 그룹의 하위 계좌 그룹의 목록을 가져옵니다. 인증되지 않은 상태에서 액세스할 때, 공개 그룹만 반환됩니다.
기본적으로 API 결과가 페이지 나누기됩니다 때문에 한 번에 20개의 결과가 반환됩니다.
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 숫자/문자열 | 예 | 즉시 상위 그룹의 ID 또는 URL 인코딩된 경로 |
skip_groups
| 숫자 배열 | 아니요 | 전달된 그룹 ID를 건너뜀 |
all_available
| 부울 | 아니요 | 액세스할 수 있는 모든 그룹을 표시합니다(인증된 사용자의 경우 기본값은 false , 관리자의 경우 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/descendant_groups
[
{
"id": 2,
"name": "Bar Group",
"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_protection": 2,
"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 그룹의 하위 그룹",
"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_protection": 2,
"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
| 부울 | 아니오 | 머지 요청 기능이 활성화된 프로젝트로 제한. 기본값은 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
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 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
| 부울 | 아니오 | MR(병합 요청) 기능이 활성화된 프로젝트로 제한. 기본값은 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":[], //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":"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"
}
]
그룹 세부 정보
membership_lock
필드는 GitLab 14.10에서 도입되었습니다.
그룹의 모든 세부 정보를 가져옵니다. 이 엔드포인트는 그룹이 공개적으로 접근 가능한 경우 인증 없이 접근할 수 있습니다. 그룹이 공개적으로 접근 가능한 경우 요청한 사용자가 관리자인 경우 인증하면 사용자가 관리자 또는 그룹 소유자인 경우에도 그룹에 대한 runners_token
및 enabled_git_access_protocol
을 반환합니다.
GET /groups/:id
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL-인코딩된 경로 |
with_custom_attributes
| 부울 | 아니오 | 응답에 사용자 정의 속성을 포함합니다(관리자 전용). |
with_projects
| 부울 | 아니오 | 지정된 그룹에 속한 프로젝트의 세부 정보를 포함합니다(기본값은 true )(사용이 중단된 API v5에서 삭제 예정. 그룹 내 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 목록을 사용하세요.)
|
참고:
응답에 있는 projects
및 shared_projects
속성은 삭제 예정된 API v5이며, 그룹 내 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 목록 또는 그룹의 공유된 프로젝트 목록 엔드포인트를 사용하세요.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4"
이 엔드포인트는 다음을 반환합니다:
- GitLab 12.5 및 이전에는 모든 프로젝트 및 공유된 프로젝트를 반환합니다.
- GitLab 12.6 및 이후에는 최대 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": [], //deprecated, use `topics` instead
"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": [], //deprecated, use `topics` instead
"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": [], //deprecated, use `topics` instead
"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
| 정수/문자열 | 예 | 그룹의 ID |
예제:
curl --header "PRIVATE-TOKEN: $GITLAB_LOCAL_TOKEN" \
--remote-header-name \
--remote-name \
"https://gitlab.example.com/api/v4/groups/4/avatar"
결과 제한 비활성화
세부 정보: Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
100개의 결과 제한은 GitLab 12.4 이전에 개발된 통합을 방해할 수 있습니다.
GitLab 12.5부터 GitLab 13.12까지는 그룹의 프로젝트 목록을 나열하는 엔드포인트로 마이그레이션하는 동안 제한을 비활성화할 수 있습니다.
다음 명령을 실행하여 제한을 비활성화하는 GitLab 관리자에게 레일즈 콘솔 액세스를 요청하세요.
Feature.disable(:limit_projects_in_groups_api)
GitLab 14.0 이상에서는 제한을 비활성화할 수 없습니다.
새로운 그룹
참고: GitLab SaaS에서는 부모 그룹이 없는 그룹을 만들려면 GitLab UI를 사용해야 합니다. API를 사용하여 이 작업을 수행할 수 없습니다.
새로운 프로젝트 그룹을 생성합니다. 그룹을 만들 수 있는 사용자만 사용할 수 있습니다.
POST /groups
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
name
| 문자열 | 예 | 그룹의 이름 |
path
| 문자열 | 예 | 그룹의 경로 |
auto_devops_enabled
| 부울 | 아니요 | 이 그룹 내의 모든 프로젝트에 대한 기본 Auto DevOps 파이프라인으로 설정합니다. |
avatar
| 믹스 | 아니요 | 그룹의 아바타 이미지 파일. GitLab 12.9에서 도입 |
default_branch_protection
| 정수 | 아니요 |
default_branch_protection 의 옵션에 대한 정보는 여기를 참조하십시오. 기본적으로 전역 수준의 기본 브랜치 보호 설정이 적용됩니다.
|
default_branch_protection_defaults
| 해시 | 아니요 |
default_branch_protection_defaults 의 옵션에 대한 정보는 여기를 참조하십시오.
|
description
| 문자열 | 아니요 | 그룹의 설명 |
enabled_git_access_protocol
| 문자열 | 아니요 | Git 액세스를 위한 활성화된 프로토콜. 허용된 값은 ssh , http , 및 all 로서 양쪽 프로토콜을 모두 허용합니다. 도입됨 in GitLab 16.9.
|
emails_disabled
| 부울 | 아니요 |
(Deprecated in GitLab 16.5.) 이메일 알림을 비활성화합니다. emails_enabled 대신에 사용하십시오.
|
emails_enabled
| 부울 | 아니요 | 이메일 알림을 활성화합니다. |
lfs_enabled
| 부울 | 아니요 | 그룹 내의 프로젝트에 대한 Large File Storage (LFS)를 활성화/비활성화합니다. |
mentions_disabled
| 부울 | 아니요 | 그룹에서 언급되는 능력을 비활성화합니다. |
organization_id
| 정수 | 아니요 | 그룹에 대한 조직 ID |
parent_id
| 정수 | 아니요 | 중첩된 그룹을 만들기 위한 부모 그룹 ID |
project_creation_level
| 문자열 | 아니요 | 개발자가 그룹 내에서 프로젝트를 만들 수 있는지의 여부를 결정합니다. noone (누구도 아님), maintainer (Maintainer 역할을 가진 사용자), 또는 developer (Developer 또는 Maintainer 역할을 가진 사용자) 중 하나일 수 있습니다.
|
request_access_enabled
| 부울 | 아니요 | 사용자가 회원 액세스를 요청할 수 있게 합니다. |
require_two_factor_authentication
| 부울 | 아니요 | 이 그룹의 모든 사용자가 이중 인증 설정을 완료하도록 요구합니다. |
share_with_group_lock
| 부울 | 아니요 | 이 그룹 내에서 다른 그룹과의 프로젝트 공유를 방지합니다. |
subgroup_creation_level
| 문자열 | 아니요 |
하위 그룹을 만들 수 있는 권한을 허용합니다. owner (소유자), 또는 maintainer (Maintainer 역할을 가진 사용자) 중 하나일 수 있습니다.
|
two_factor_grace_period
| 정수 | 아니요 | 이중 인증이 강제로 적용되기 전에 걸리는 시간(시간 단위). |
visibility
| 문자열 | 아니요 | 그룹의 가시성. private (비공개), internal (내부), 또는 public (공개) 중 하나일 수 있습니다.
|
membership_lock
| 부울 | 아니요 | 사용자들이 이 그룹 내의 프로젝트에 추가되는 것을 방지합니다. 프리미엄 및 얼티밋 전용. |
extra_shared_runners_minutes_limit
| 정수 | 아니요 | 관리자만 설정할 수 있습니다. 이 그룹을 위한 추가 연산 분. Self-managed, 프리미엄 및 얼티밋 전용. |
shared_runners_minutes_limit
| 정수 | 아니요 | 관리자만 설정할 수 있습니다. 이 그룹을 위한 월별 연산 분의 최대값. nil (기본값; 시스템 기본값 상속), 0 (무제한), 또는 > 0 중 하나일 수 있습니다. Self-managed, 프리미엄 및 얼티밋 전용.
|
wiki_access_level
| 문자열 | 아니요 | 위키 액세스 수준. disabled (비활성화됨), private (비공개), 또는 enabled (활성화됨). 프리미엄 및 얼티밋 전용.
|
default_branch_protection
옵션
default_branch_protection
속성은 해당 기본 브랜치에 Developer 또는 Maintainer 역할을 하는 사용자가 푸시할 수 있는지 여부를 결정합니다. 다음 표에서 설명한 대로:
값 | 설명 |
---|---|
0
| 보호되지 않음. Developer 또는 Maintainer 역할을 하는 사용자가 다음을 할 수 있습니다: - 새로운 커밋 푸시 - 변경 사항 강제로 푸시 - 브랜치 삭제 |
1
| 부분적으로 보호됨. Developer 또는 Maintainer 역할을 하는 사용자가 다음을 할 수 있습니다: - 새로운 커밋 푸시 |
2
| 완전히 보호됨. Maintainer 역할을 하는 사용자만 다음을 할 수 있습니다: - 새로운 커밋 푸시 |
3
| 푸시에 대해 보호됨. Maintainer 역할을 하는 사용자가 다음을 할 수 있습니다: - 새로운 커밋 푸시 - 변경 사항 강제로 푸시 - 병합 요청 수락 Developer 역할을 하는 사용자가 다음을 할 수 있습니다: - 병합 요청 수락 |
4
| 초기 푸시 후 완전히 보호됨. Developer 역할을 하는 사용자가 다음을 할 수 있습니다: - 빈 저장소에 커밋 푸시 Maintainer 역할을 하는 사용자가 다음을 할 수 있습니다: - 새로운 커밋 푸시 - 병합 요청 수락 |
default_branch_protection_defaults
옵션
default_branch_protection_defaults
속성은 기본 브랜치 보호의 기본값을 설명합니다. 모든 매개변수는 선택 사항입니다.
키 | 유형 | 설명 |
---|---|---|
allowed_to_push
| 배열 | 푸시를 허용하는 엑세스 수준의 배열. Developer (30) 또는 Maintainer (40)을 지원합니다. |
allow_force_push
| 부울 | 모든 푸시 엑세스 권한을 가진 사용자에게 강제 푸시를 허용합니다. |
allowed_to_merge
| 배열 | 머지를 허용하는 엑세스 수준의 배열. Developer (30) 또는 Maintainer (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"
그룹 업데이트
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
라는 플래그로 도입되었으며, 기본적으로 비활성화되어 있습니다.
플래그:
Self-managed 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
| 부울 | 아니오 | 이 그룹 내 모든 프로젝트에 대한 기본 Auto DevOps 파이프라인으로 설정됩니다. |
avatar
| 혼합 | 아니오 | 그룹 아바타의 이미지 파일. GitLab 12.9에 도입되었습니다 |
default_branch_protection
| 정수 | 아니오 |
default_branch_protection 에 대한 옵션은 옵션에 대해를 확인하십시오.
|
default_branch_protection_defaults
| 해시 | 아니오 |
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
| 부울 | 아니오 | 이메일 알림 활성화 |
lfs_enabled
| 부울 | 아니오 | 이 그룹의 프로젝트에서 Large File Storage (LFS)를 가능하게하거나 불가능하게합니다. |
mentions_disabled
| 부울 | 아니오 | 그룹에서 멘션 기능 비활성화 |
prevent_sharing_groups_outside_hierarchy
| 부울 | 아니오 | 그룹 계층 구조 외부 공유 방지를 확인하십시오. 이 속성은 최상위 그룹에서만 사용할 수 있습니다. GitLab 14.1에 도입되었습니다 |
project_creation_level
| 문자열 | 아니오 | 개발자가 그룹 내에서 프로젝트를 생성할 수 있는지 결정합니다. noone (아무도), maintainer (운영자 역할을 하는 사용자), 또는 developer (개발자 또는 운영자 역할을 하는 사용자)일 수 있습니다.
|
request_access_enabled
| 부울 | 아니오 | 사용자가 멤버 액세스를 요청할 수 있도록 허용 |
require_two_factor_authentication
| 부울 | 아니오 | 이 그룹의 모든 사용자가 이중 인증 설정을 필요로 하는지 여부 |
shared_runners_setting
| 문자열 | 아니오 | 공유 러너 설정에 대한 옵션을 확인하십시오. 그룹의 하위 그룹 및 프로젝트에서 공유 러너를 활성화하거나 비활성화합니다. |
share_with_group_lock
| 부울 | 아니오 | 그룹 내에서 다른 그룹과 프로젝트를 공유하지 못하도록합니다. |
subgroup_creation_level
| 문자열 | 아니오 |
하위 그룹을 만들 수 있습니다. owner (소유자) 또는 maintainer (운영자 역할을 하는 사용자)일 수 있습니다.
|
two_factor_grace_period
| 정수 | 아니오 | 이중 인증이 강제로 설정되기 전의 시간 (시간 단위) |
visibility
| 문자열 | 아니오 | 그룹의 가시성 수준. private , internal , 또는 public 일 수 있습니다.
|
extra_shared_runners_minutes_limit
| 정수 | 아니오 | 관리자만 설정할 수 있습니다. 이 그룹을 위한 추가 컴퓨팅 분. Self-managed, Premium 및 Ultimate 전용입니다. |
file_template_project_id
| 정수 | 아니오 | 사용자 정의 파일 템플릿을로드 할 프로젝트의 ID입니다. Premium 및 Ultimate 전용입니다. |
membership_lock
| 부울 | 아니오 | 사용자가이 그룹의 프로젝트에 추가되지 못하도록합니다. Premium 및 Ultimate 전용입니다. |
prevent_forking_outside_group
| 부울 | 아니오 | 활성화되면 사용자가 이 그룹에서 외부 네임스페이스로 프로젝트를 포크할 수 없습니다. Premium 및 Ultimate 전용입니다. |
shared_runners_minutes_limit
| 정수 | 아니오 | 관리자만 설정할 수 있습니다. 이 그룹을 위한 매월 최대 컴퓨팅 분수입니다. nil (기본값; 시스템 기본값 상속), 0 (무제한), 또는 > 0 이 될 수 있습니다. Self-managed, Premium 및 Ultimate 전용입니다.
|
unique_project_download_limit
| 정수 | 아니오 | 특정 시간 기간 내에 사용자가 다운로드할 수있는 고유 프로젝트의 최대 수입니다. 최상위 그룹에서만 사용할 수 있습니다. 기본값: 0, 최대값: 10,000. Ultimate 전용입니다. |
unique_project_download_limit_interval_in_seconds
| 정수 | 아니오 | 사용자가 금지되기 전에 최대 프로젝트를 다운로드할 수 있는 시간 기간입니다. 최상위 그룹에서만 사용할 수 있습니다. 기본값: 0, 최대값: 864,000 초 (10 일). Ultimate 전용입니다. |
unique_project_download_limit_allowlist
| 문자열의 배열 | 아니오 | 고유 프로젝트 다운로드 제한에서 제외된 사용자 이름의 목록입니다. 최상위 그룹에서만 사용할 수 있습니다. 기본값: [] , 최대값: 100 개의 사용자 이름입니다. Ultimate 전용입니다.
|
unique_project_download_limit_alertlist
| 정수의 배열 | 아니오 | 고유 프로젝트 다운로드 제한을 초과했을 때 이메일을 받는 사용자 ID의 목록입니다. GitLab 15.9에 도입되었습니다. 최상위 그룹에서만 사용할 수 있습니다. 기본값: [] , 최대값: 100 개의 사용자 ID입니다. Ultimate 전용입니다.
|
auto_ban_user_on_excessive_projects_download
| 부울 | 아니오 | 활성화되면 사용자가 unique_project_download_limit 및 unique_project_download_limit_interval_in_seconds 로 지정된 최대 고유 프로젝트보다 많은 프로젝트를 다운로드하면 그룹에서 자동으로 금지됩니다. GitLab 15.4에 도입되었습니다. Ultimate 전용입니다.
|
ip_restriction_ranges
| 문자열 | 아니오 | 그룹 액세스를 제한할 IP 주소 또는 서브넷 마스크의 쉼표로 구분 된 목록입니다. GitLab 15.4에 도입되었습니다. Premium 및 Ultimate 전용입니다. |
wiki_access_level
| 문자열 | 아니오 | 위키 액세스 수준. disabled , private , 또는 enabled 가 될 수 있습니다. Premium 및 Ultimate 전용입니다.
|
math_rendering_limits_enabled
| 부울 | 아니오 | 이 그룹에서 수학 렌더링 제한을 사용하는지 표시합니다. |
lock_math_rendering_limits_enabled
| 부울 | 아니오 | 모든 하위 그룹에 대해 수학 렌더링 한도가 잠긴 여부를 나타냅니다. |
duo_features_enabled
| 부울 | 아니오 | GitLab Duo 기능이이 그룹에서 활성화되었는지 여부를 나타냅니다. GitLab 16.10에 도입되었습니다. Self-managed, Premium 및 Ultimate 전용입니다. |
lock_duo_features_enabled
| 부울 | 아니오 | 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"
이 엔드포인트는 다음을 반환합니다:
- GitLab 12.5 및 이전의 모든 프로젝트 및 공유 프로젝트.
- 최대 100 개의 프로젝트 및 공유 프로젝트 GitLab 12.6에서 이후. 그룹 내의 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 나열 엔드포인트를 대신 사용하십시오.
예제 응답:
{
"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",
"prevent_sharing_groups_outside_hierarchy": false,
"projects": [ // API v5에서 제거 예정
{
"id": 9,
"description": "foo",
"default_branch": "main",
"tag_list": [], //deprecated, 병합 `topics`를 대신 사용
"topics": [],
"public": false,
"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",
### 결과 제한 해제
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** Self-managed, GitLab Dedicated
100개의 결과 제한은 GitLab 12.4 및 그 이전 버전을 사용하여 개발된 통합을 망가뜨릴 수 있습니다.
GitLab 12.5부터 GitLab 13.12로 이주하는 동안 [그룹의 프로젝트 목록](#list-a-groups-projects) 엔드포인트를 사용하여 제한을 해제할 수 있습니다.
Rails 콘솔 액세스가 있는 GitLab 관리자에게 다음 명령을 실행하도록 요청하세요:
```ruby
Feature.disable(:limit_projects_in_groups_api)
GitLab 14.0 이후로는 제한을 해제할 수 없습니다.
shared_runners_setting
옵션
shared_runners_setting
속성은 그룹의 서브그룹 및 프로젝트에 대해 공유 러너가 활성화되는지 여부를 결정합니다.
값 | 설명 |
---|---|
enabled
| 이 그룹의 모든 프로젝트 및 서브그룹에 대해 공유 러너를 활성화합니다. |
disabled_and_overridable
| 이 그룹의 모든 프로젝트 및 서브그룹에 대해 공유 러너를 비활성화하지만 서브그룹이이 설정을 재정의할 수 있도록 허용합니다. |
disabled_and_unoverridable
| 이 그룹의 모든 프로젝트 및 서브그룹에 대해 공유 러너를 비활성화하고 서브그룹이이 설정을 재정의하지 못하도록 합니다. |
disabled_with_override
| (사용 중단됨. disabled_and_overridable 사용) 이 그룹의 모든 프로젝트 및 서브그룹에 대해 공유 러너를 비활성화하지만 서브그룹이이 설정을 재정의할 수 있도록 허용합니다.
|
그룹 아바타 업로드
- GitLab 12.9에서 소개되었습니다.
파일 시스템에서 아바타 파일을 업로드하려면 --form
인수를 사용하십시오. 이렇게하면
curl이 Content-Type: multipart/form-data
헤더를 사용하여 데이터를 게시합니다.
파일=
매개변수는 파일 시스템의 파일을 가리켜야하며 @
로 선행되어야합니다. 예를 들면:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/22" \
--form "avatar=@/tmp/example.png"
그룹 아바타 제거
- GitLab 15.4에서 소개되었습니다.
그룹 아바타를 제거하려면 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에서 활성화되었습니다.
- 즉시 서브그룹을 삭제하는
immediate_delete_subgro
플래그는 서브그룹이 즉시 삭제되는 것은 GitLab 15.9에서 제거되었습니다.
그룹 소유자 및 관리자만 사용할 수 있습니다.
이 엔드포인트:
- 프리미엄 및 얼티밋 티어에서 그룹을 삭제 처리합니다. 기본적으로 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 그룹은 구독에 연결된 경우 제거할 수 없습니다. 그러한 그룹을 제거하려면 먼저 구독을 연결하여 다른 그룹과 연결하십시오.
삭제 대상으로 표시된 그룹 복원
- GitLab 12.8에서 소개되었습니다.
삭제 대상으로 표시된 그룹을 복원합니다.
POST /groups/:id/restore
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 그룹의 ID 또는 URL 인코딩 된 경로 |
그룹 검색
이름 또는 경로에서 문자열과 일치하는 모든 그룹을 가져옵니다.
GET /groups?search=foobar
[
{
"id": 1,
"name": "Foobar 그룹",
"path": "foo-bar",
"description": "흥미로운 그룹"
}
]
프로비저닝된 사용자 목록
- GitLab 14.8에서 소개되었습니다.
주어진 그룹에서 프로비저닝된 사용자 목록을 가져옵니다. 하위 그룹은 포함되지 않습니다.
최소한 그룹의 관리자 역할이 필요합니다.
GET /groups/:id/provisioned_users
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | URL 인코딩 된 그룹 경로의 ID |
username
| string | 아니요 | 특정 사용자 이름으로 단일 사용자 반환 |
search
| string | 아니요 | 이름, 이메일, 사용자 이름으로 사용자 검색 |
active
| boolean | 아니요 | 활성 사용자만 반환 |
blocked
| boolean | 아니요 | 차단된 사용자만 반환 |
created_after
| datetime | 아니요 | 지정된 시간 이후에 생성된 사용자 반환 |
created_before
| datetime | 아니요 | 지정된 시간 이전에 생성된 사용자 반환 |
예시 응답:
[
{
"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에서 소개되었습니다. 이 기능은 Experiment입니다.
그룹에 대한 사용자 목록을 가져옵니다. 이 엔드포인트는 현재 멤버십에 관계없이 최상위 그룹과 관련된 사용자를 반환합니다. 예를 들어, 그룹에 연결된 SAML 식별 정보를 가진 사용자 또는 그룹 또는 하위 그룹에서 생성된 서비스 계정 등이 있습니다.
이 엔드포인트는 Experiment이며 사전 통지없이 변경되거나 제거될 수 있습니다.
그룹의 소유자 역할이 필요합니다.
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 | 예 | 그룹의 ID 또는 URL 인코딩 된 경로 |
include_saml_users
| boolean | 예 (설명 참조) | SAML 식별 정보를 가진 사용자 포함. 이 값이나 include_service_accounts 중 하나는 true 여야 함.
|
include_service_accounts
| boolean | 예 (설명 참조) | 서비스 계정 사용자 포함. 이 값이나 include_saml_users 중 하나는 true 여야 함.
|
search
| string | 아니요 | 이름, 이메일, 사용자 이름으로 사용자 검색. |
성공하면 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
},
...
]
서비스 계정
서비스 계정 사용자 생성
- GitLab 16.1에서 소개되었습니다.
서비스 계정 사용자를 생성합니다. 사용자 이름과 이름을 지정할 수 있습니다. 이러한 속성을 지정하지 않으면 기본 이름은 서비스 계정 사용자
이고 사용자 이름은 자동으로 생성됩니다.
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": "서비스 계정 사용자"
}
서비스 계정 사용자를 위한 개인 액세스 토큰 생성
- GitLab 16.1에서 소개되었습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens
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" --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>"
}
속성 | 타입 | 필요 여부 | 설명 |
---|---|---|---|
expires_at
| date | no | 개인 액세스 토큰 만료 날짜. 비워 두면 토큰은 개인 액세스 토큰 만료 표준 규칙을 따릅니다. |
서비스 계정 사용자를 위한 개인 액세스 토큰 로테이션
- GitLab 16.1에서 소개되었습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens/:token_id/rotate
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>"
}
후크
그룹 후크 및 웹훅이라고도 불립니다. 이들은 시스템 전반에 걸친 시스템 후크 및 한 프로젝트에만 적용되는 프로젝트 후크와는 다릅니다.
그룹 후크 목록
그룹 후크 목록을 가져옵니다.
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",
"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,
"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 |
push_events
| boolean | no | 푸시 이벤트에 후크 트리거 |
push_events_branch_filter
| string | No | 일치하는 브랜치에 대한 푸시 이벤트에 후크 트리거 |
issues_events
| boolean | no | 이슈 이벤트에 후크 트리거 |
confidential_issues_events
| boolean | no | 기밀 이슈 이벤트에 후크 트리거 |
merge_requests_events
| boolean | no | 병합 요청 이벤트에 후크 트리거 |
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 | 서브그룹 이벤트에 후크 트리거 |
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 or string | yes | 그룹의 ID 또는 URL 인코딩된 경로 |
hook_id
| integer | yes | 그룹 후크의 ID |
url
| string | yes | 후크 URL |
push_events
| boolean | no | 푸시 이벤트에 후크 트리거 |
push_events_branch_filter
| string | No | 일치하는 브랜치에 대한 푸시 이벤트에 후크 트리거 |
issues_events
| boolean | no | 이슈 이벤트에 후크 트리거 |
confidential_issues_events
| boolean | no | 기밀 이슈 이벤트에 후크 트리거 |
merge_requests_events
| boolean | no | 병합 요청 이벤트에 후크 트리거 |
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 | 서브그룹 이벤트에 후크 트리거 |
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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
hook_id
| 정수 | 예 | 그룹 후크의 ID |
그룹 감사 이벤트
그룹 감사 이벤트는 그룹 감사 이벤트 API를 통해 액세스할 수 있습니다.
LDAP와 그룹 동기화
그룹을 연결된 LDAP 그룹과 동기화합니다. 그룹 소유자 및 관리자만 사용할 수 있습니다.
POST /groups/:id/ldap_sync
매개변수:
-
id
(필수) - 사용자 그룹의 ID 또는 경로
그룹 구성원
그룹 구성원 문서를 참조하세요.
LDAP 그룹 링크
LDAP 그룹 링크를 나열하고 추가하고 삭제합니다.
LDAP 그룹 링크 나열
LDAP 그룹 링크를 나열합니다.
GET /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
CN 또는 필터로 LDAP 그룹 링크 추가
CN 또는 필터를 사용하여 LDAP 그룹 링크를 추가합니다. 필터로 그룹 링크를 추가하는 것은 프리미엄 및 얼티메이트 티어에서만 지원됩니다.
POST /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
cn
| 문자열 | 아니오 | LDAP 그룹의 CN |
filter
| 문자열 | 아니오 | 그룹의 LDAP 필터 |
group_access
| 정수 | 예 | LDAP 그룹의 구성원에 대한 역할 (access_level )
|
provider
| 문자열 | 예 | LDAP 그룹 링크의 LDAP 제공자 |
참고:
LDAP 그룹 링크를 정의하려면 cn
또는 filter
중 하나를 제공하되 둘 다 제공하면 안 됩니다.
LDAP 그룹 링크 삭제
LDAP 그룹 링크를 삭제합니다. 폐기 예정입니다. 향후 릴리스에서 삭제 예정입니다.
DELETE /groups/:id/ldap_group_links/:cn
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
cn
| 문자열 | 예 | LDAP 그룹의 CN |
특정 LDAP 제공자에 대한 LDAP 그룹 링크를 삭제합니다. 폐기 예정입니다. 향후 릴리스에서 삭제 예정입니다.
DELETE /groups/:id/ldap_group_links/:provider/:cn
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
cn
| 문자열 | 예 | LDAP 그룹의 CN |
provider
| 문자열 | 예 | LDAP 그룹 링크의 LDAP 제공자 |
CN 또는 필터로 LDAP 그룹 링크 삭제
CN 또는 필터를 사용하여 LDAP 그룹 링크를 삭제합니다. 필터로 삭제하는 것은 프리미엄 및 얼티메이트 티어에서만 지원됩니다.
DELETE /groups/:id/ldap_group_links
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
cn
| 문자열 | 아니오 | LDAP 그룹의 CN |
filter
| 문자열 | 아니오 | 그룹의 LDAP 필터 |
provider
| 문자열 | 예 | LDAP 그룹 링크의 LDAP 제공자 |
참고:
LDAP 그룹 링크를 삭제하려면 cn
또는 filter
중 하나를 제공하되 둘 다 제공하면 안 됩니다.
SAML 그룹 링크
- GitLab 15.3.0에서 소개되었습니다.
access_level
유형은 GitLab 15.3.3에서 문자열에서 정수로 변경되었습니다.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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
성공하면 200
을 반환하고 다음과 같은 응답 속성을 제공합니다:
속성 | 유형 | 설명 |
---|---|---|
[].name
| 문자열 | SAML 그룹의 이름 |
[].access_level
| 정수 | SAML 그룹의 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 유형이었습니다.
|
[].member_role_id
| 정수 | 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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
saml_group_name
| 문자열 | 예 | SAML 그룹의 이름 |
성공하면 200
을 반환하고 다음과 같은 응답 속성을 제공합니다:
속성 | 유형 | 설명 |
---|---|---|
name
| 문자열 | SAML 그룹의 이름 |
access_level
| 정수 | SAML 그룹의 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 유형이었습니다.
|
member_role_id
| 정수 | 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
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
saml_group_name
| 문자열 | 예 | SAML 그룹의 이름 |
access_level
| 정수 | 예 | SAML 그룹의 구성원을 위한 역할(access_level )
|
member_role_id
| 정수 | 아니오 | SAML 그룹의 구성원을 위한 구성원 역할 ID(member_role_id ).
|
성공하면 201
을 반환하고 다음과 같은 응답 속성을 제공합니다:
속성 | 유형 | 설명 |
---|---|---|
name
| 문자열 | SAML 그룹의 이름 |
access_level
| 정수 | SAML 그룹의 구성원을 위한 역할(access_level ). 해당 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 유형이었습니다.
|
member_role_id
| 정수 | 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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
saml_group_name
| 문자열 | 예 | 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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
group_id
| 정수 | 예 | 공유할 그룹의 ID |
group_access
| 정수 | 예 | 그룹에 부여할 역할 (access_level )
|
expires_at
| 문자열 | 아니요 | ISO 8601 형식의 공유 유효 만료 날짜: 2016-09-26 |
다른 그룹과 그룹을 공유하는 링크 삭제
그룹을 다른 그룹과의 공유 해제합니다. 성공하면 204
와 내용이 없음을 반환합니다.
DELETE /groups/:id/share/:group_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
group_id
| 정수 | 예 | 공유할 그룹의 ID |
푸시 규칙
상세정보: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
- GitLab 13.4에서 도입되었습니다.
그룹 푸시 규칙 가져오기
그룹의 푸시 규칙을 가져옵니다.
그룹 소유자 및 관리자에게만 사용 가능합니다.
GET /groups/:id/push_rule
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
deny_delete_tag
| 부울값 | 아니요 | 태그 삭제 거부 |
member_check
| 부울값 | 아니요 | 사용자가 커밋을 작성하는 데 GitLab 사용자만 허용 |
prevent_secrets
| 부울값 | 아니요 | 비밀 정보를 포함할 가능성이 있는 파일 거부 |
commit_committer_name_check
| 부울값 | 아니요 | 사용자가 자신의 GitLab 계정 이름과 일치하는 커밋만 이 저장소에 푸시 가능 |
commit_message_regex
| 문자열 | 아니요 | 이 속성에 제공되는 정규 표현식과 일치하는 모든 커밋 메시지가 있어야 하며 예를 들어 Fixed \d+\..*
|
commit_message_negative_regex
| 문자열 | 아니요 | 이 속성에 제공되는 정규 표현식과 일치하는 커밋 메시지는 허용되지 않으며 예를 들어 ssh\:\/\/
|
branch_name_regex
| 문자열 | 아니요 | 모든 브랜치 이름은 이 속성에 제공된 정규 표현식과 일치해야 하며 예를 들어 (feature|hotfix)\/*
|
author_email_regex
| 문자열 | 아니요 | 모든 커밋 작성자 이메일은 이 속성에 제공된 정규 표현식과 일치해야 하며 예를 들어 @my-company.com$
|
file_name_regex
| 문자열 | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 파일 이름은 허용되지 않습니다 예를 들어 (jar|exe)$
|
max_file_size
| 정수 | 아니요 | 허용된 최대 파일 크기(메가바이트) |
commit_committer_check
| 부울값 | 아니요 | 확인된 이메일을 사용하여 푸시된 커밋만 허용됨 |
reject_unsigned_commits
| 부울값 | 아니요 | GPG를 통해 서명된 커밋만 허용함 |
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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
deny_delete_tag
| 부울 | 아니요 | 태그 삭제 거부 |
member_check
| 부울 | 아니요 | 커밋을 기존 GitLab 사용자가 작성했는지에 대한 제한 |
prevent_secrets
| 부울 | 아니요 | 비밀 정보가 포함될 가능성이 있는 파일은 거부됩니다 |
commit_committer_name_check
| 부울 | 아니요 | 사용자의 커밋 작성자 이름이 GitLab 계정 이름과 일치해야만 리포지토리에 커밋을 푸시할 수 있습니다 |
commit_message_regex
| 문자열 | 아니요 | 이 속성에서 제공된 정규 표현식과 모든 커밋 메시지가 일치해야 합니다. 예를 들어, Fixed \d+\..*
|
commit_message_negative_regex
| 문자열 | 아니요 | 이 속성에서 제공된 정규 표현식과 일치하는 커밋 메시지는 허용되지 않습니다. 예를 들어, ssh\:\/\/
|
branch_name_regex
| 문자열 | 아니요 | 모든 브랜치 이름은 이 속성에서 제공된 정규 표현식과 일치해야 합니다. 예를 들어, (feature|hotfix)\/*
|
author_email_regex
| 문자열 | 아니요 | 모든 커밋 작성자 이메일은 이 속성에서 제공된 정규 표현식과 일치해야 합니다. 예를 들어, @my-company.com$
|
file_name_regex
| 문자열 | 아니요 | 이 속성에서 제공된 정규 표현식과 일치하는 파일명은 허용되지 않습니다. 예를 들어, (jar|exe)$
|
max_file_size
| 정수 | 아니요 | 허용된 최대 파일 크기(MB) |
commit_committer_check
| 부울 | 아니요 | 확인된 이메일을 사용해 푸시된 커밋만 허용됩니다 |
reject_unsigned_commits
| 부울 | 아니요 | GPG를 통해 서명된 커밋만 허용됩니다 |
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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |