그룹 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

groups를 REST API를 사용하여 상호 작용합니다.

응답으로 반환된 필드는 증명된 사용자의 권한에 따라 다양합니다.

그룹 디렉터리

  • GitLab 14.3에서 키셋 페이지네이션 지원이 추가되었습니다.

증명된 사용자에 대한 가시적 그룹 디렉터리을 가져옵니다. 인증되지 않은 상태에서 액세스하면 공개 그룹만 반환됩니다.

기본적으로 이 요청은 API 결과가 페이지별로 분할되기 때문에 한 번에 20개의 결과를 반환합니다.

인증되지 않은 상태에서는 키셋 페이지네이션도 지원됩니다.

  • 연속된 결과 페이지를 요청할 때에는 키셋 페이지네이션을 사용해야 합니다.
  • 특정 오프셋 한도를 초과하면(REST API가 오프셋 기반 페이지네이션에 대해 지원하는 최대 오프셋 한도로 지정됨) 오프셋 페이지네이션이 불가능합니다.

매개변수:

속성 유형 필수여부 설명
skip_groups 정수 배열 아니요 전달된 그룹 ID를 건너뜁니다
all_available 부울 아니요 액세스하는 모든 그룹을 표시(인증된 사용자의 기본값은 false, 관리자의 경우 true); ownedmin_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에서 소개. Premium 및 Ultimate 전용.
GET /그룹
[
  {
    "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://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 /그룹?statistics=true
[
  {
    "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://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 /그룹?custom_attributes[key]=value&custom_attributes[other_key]=other_value

그룹의 하위 그룹 디렉터리

이 그룹의 직접 하위 그룹의 디렉터리을 가져옵니다.

기본적으로 이 요청은 페이지네이션된 API 결과 때문에 한 번에 20개의 결과를 반환합니다.

만약 이 디렉터리을 다음과 같이 요청하면:

  • 인증되지 않은 사용자의 경우 응답은 공개 그룹만 반환합니다.
  • 인증된 사용자의 경우 응답은 사용자가 속한 그룹만 반환하며 공개 그룹은 포함되지 않습니다.

매개변수:

속성 유형 필수 설명
id 정수/문자열 즉시 상위 그룹의 ID 또는 URL 인코딩된 경로
skip_groups 정수 배열 아니오 전달된 그룹 ID 건너뛰기
all_available 불리언 아니오 액세스할 수 있는 모든 그룹 표시(인증된 사용자의 경우 기본값은 false, 관리자의 경우 true); 속성 ownedmin_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 속성을 볼 수 있습니다.

그룹의 하위 그룹 디렉터리

이 그룹의 가시적인 하위 그룹 디렉터리을 가져옵니다. 인증되지 않은 상태에서 액세스하면 공개 그룹만 반환됩니다.

기본적으로 이 요청은 페이지네이션된 API 결과 때문에 한 번에 20개의 결과를 반환합니다.

매개변수:

속성 유형 필수 설명
id 정수/문자열 즉시 상위 그룹의 ID 또는 URL 인코딩된 경로
skip_groups 정수 배열 아니오 전달된 그룹 ID 건너뛰기
all_available 불리언 아니오 액세스할 수 있는 모든 그룹 표시(인증된 사용자의 경우 기본값은 false, 관리자의 경우 true). 속성 ownedmin_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 속성을 볼 수 있습니다.

그룹의 프로젝트 디렉터리

이 그룹의 프로젝트 디렉터리을 가져옵니다. 인증 없이 액세스하면 공개 프로젝트만 반환됩니다.

기본적으로 이 요청은 페이지별로 결과가 분할되기 때문에 한 번에 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 전용.
각주:
  1. 유사성으로 정렬: 제공된 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
  }
]
note
그룹 내 프로젝트와 그룹에 공유된 프로젝트를 구별하려면 namespace 속성을 사용할 수 있습니다. 프로젝트가 그룹에 공유되면 해당 프로젝트의 namespace가 요청 중인 그룹과 다릅니다.

그룹에 공유된 프로젝트 디렉터리

이 그룹에 공유된 프로젝트 디렉터리을 가져옵니다. 인증 없이 액세스하면 공개 공유된 프로젝트만 반환됩니다.

기본적으로 이 요청은 페이지별로 결과가 분할되기 때문에 한 번에 20개의 결과를 반환합니다.

GET /groups/:id/projects/shared

매개변수:

속성 유형 필수 설명
id 정수/문자열 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로
archived 부울 아니요 보관된 상태로 제한
visibility 문자열 아니요 가시성으로 제한 public, internal, 또는 private
order_by 문자열 아니요 프로젝트를 id, name, path, created_at, updated_at, star_count 또는 last_activity_at 필드로 정렬하여 반환합니다. 기본값은 created_at
sort 문자열 아니요 프로젝트를 asc 또는 desc 순서로 정렬하여 반환합니다. 기본값은 desc
search 문자열 아니요 검색 기준과 일치하는 권한이 있는 프로젝트 디렉터리을 반환합니다
simple 부울 아니요 각 프로젝트에 대해 제한된 필드만 반환합니다. 여기서는 간단한 필드만 반환됩니다.
starred 부울 아니요 현재 사용자가 즐겨찾기한 프로젝트로 제한
with_issues_enabled 부울 아니요 이슈 기능이 활성화된 프로젝트로 제한. 기본값은 false
with_merge_requests_enabled 부울 아니요 머지 요청 기능이 활성화된 프로젝트로 제한. 기본값은 false
min_access_level 정수 아니요 현재 사용자가 적어도 이 역할(access_level)을 갖고 있는 프로젝트로 제한
with_custom_attributes 부울 아니요 응답에 사용자 정의 속성을 포함합니다(관리자 전용)

예시 응답:

[
   {
      "id":8,
      "description":"Html5 Boilerplate을 위한 공유 프로젝트",
      "name":"Html5 Boilerplate",
      "name_with_namespace":"H5bp / Html5 Boilerplate",
      "path":"html5-boilerplate",
      "path_with_namespace":"h5bp/html5-boilerplate",
      "created_at":"2020-04-27T06:13:22.642Z",
      "default_branch":"main",
      "tag_list":[], //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_tokenenabled_git_access_protocol도 반환됩니다.

GET /groups/:id

파라미터:

속성 유형 필수 여부 설명
id 정수/문자열 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로입니다.
with_custom_attributes 부울 아니오 응답에 사용자 지정 속성을 포함합니다(관리자 전용).
with_projects 부울 아니오 지정된 그룹에 속한 프로젝트의 세부 정보를 포함합니다(기본값은 true). (폐기됨, API v5에서 제거 예정. 그룹 내의 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 디렉터리 엔드포인트를 사용하십시오.)
note
응답의 projectsshared_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개의 프로젝트 및 공유 프로젝트(자세한 내용은 GitLab 12.6 참조). 그룹 내의 모든 프로젝트의 세부 정보를 얻으려면 그룹의 프로젝트 디렉터리 엔드포인트를 대신 사용하십시오.

예시 응답:

{
  "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 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"

결과 제한 비활성화

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 이상에서는 제한을 비활성화할 수 없습니다.

새 그룹

note
GitLab SaaS에서는 부모 그룹 없이 그룹을 생성하려면 GitLab UI를 사용해야 합니다. API를 사용하여 이 작업을 수행할 수 없습니다.

새 프로젝트 그룹을 생성합니다. 그룹을 생성할 수 있는 사용자만 사용할 수 있습니다.

POST /groups

매개변수:

속성 타입 필수 설명
name string yes 그룹의 이름
path string yes 그룹의 경로
auto_devops_enabled boolean no 이 그룹 내의 모든 프로젝트에 대한 기본 Auto DevOps 파이프라인을 자동으로 설정합니다.
avatar mixed no GitLab 12.9에서 도입된 그룹 아바타 이미지 파일입니다.
default_branch_protection integer no default_branch_protection의 옵션에 대한 자세한 내용은 여기를 참조하십시오. 전역 수준 기본 브랜치 보호 설정으로 기본 설정됩니다.
default_branch_protection_defaults hash no default_branch_protection_defaults의 옵션에 대한 자세한 내용은 여기를 참조하십시오.
description string no 그룹의 설명
enabled_git_access_protocol string no Git 액세스를 위한 활성화된 프로토콜입니다. 허용되는 값은: ssh, http, 및 all(두 프로토콜 허용)입니다. 도입됨.
emails_disabled boolean no (GitLab 16.5에게 중지된 기능) 이메일 알림을 비활성화합니다. 대신 emails_enabled를 사용하십시오.
emails_enabled boolean no 이메일 알림을 활성화합니다.
lfs_enabled boolean no 이 그룹의 프로젝트에서 Large File Storage (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 (내부), 또는 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 역할 사용자가 해당하는 기본 브랜치로 push할 수 있는지 여부를 다음 표에서 설명한대로 결정합니다:

설명
0 보호되지 않음. Developer 또는 Maintainer 역할 사용자는 다음을 할 수 있습니다:
- 새 커밋을 push하다
- 변경사항을 강제로 push하다
- 브랜치를 삭제하다
1 일부 보호. Developer 또는 Maintainer 역할 사용자는 다음을 할 수 있습니다:
- 새 커밋을 push하다
2 완전한 보호. Maintainer 역할 사용자만 다음을 할 수 있습니다:
- 새 커밋을 push하다
3 push에 대해서 보호됨. Maintainer 역할 사용자는 다음을 할 수 있습니다:
- 새 커밋을 push하다
- 변경사항을 강제로 push하다
- 머지 요청을 수락하다
Developer 역할 사용자는 다음을 할 수 있습니다:
- 머지 요청을 수락하다
4 초기 push 이후의 완전한 보호. Developer 역할 사용자는 빈 리포지터리에 커밋을 push할 수 있습니다.
Maintainer 역할 사용자는 다음을 할 수 있습니다:
- 새 커밋을 push하다
- 머지 요청을 수락하다

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"

그룹에 전이할 수 있는 그룹 가져오기

그룹을 전이할 수 있는 그룹 디렉터리을 검색합니다.

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"
  }
]

새 부모 그룹에 그룹 전이 / 서브그룹을 상위 수준 그룹으로 변경

  • GitLab 14.6에서 도입됨.

그룹을 새 부모 그룹으로 전이하거나 서브그룹을 최상위 수준 그룹으로 변경합니다. 다음 사용자가 필요합니다:

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가 기본 설정되면 이는 기본 설정되지 않음.`. 기본 설정되지 않음.
Self-managed GitLab의 경우 기본적으로 unique_project_download_limit, unique_project_download_limit_interval_in_seconds, 및 unique_project_download_limit_allowlistauto_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 정수 아니오 Options for default_branch_protection를 참조하세요.
default_branch_protection_defaults 해시 아니오 Options for 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 부울 아니오 이 그룹의 프로젝트에서 대용량 파일 리포지터리(LFS)를 사용/비사용합니다.
mentions_disabled 부울 아니오 그룹이 언급을 받을 수 있는 능력을 비활성화합니다.
prevent_sharing_groups_outside_hierarchy 부울 아니오 그룹 계층의 외부 그룹 공유 방지를 참조하세요. 이 속성은 최상위 수준 그룹에만 사용할 수 있습니다. GitLab 14.1에서 도입됨.
project_creation_level 문자열 아니오 개발자가 그룹 내에서 프로젝트를 생성할 수 있는지 여부를 결정합니다. noone (아무도), maintainer (Maintainer 역할 사용자), 또는 developer (Developer 또는 Maintainer 역할 사용자)가 될 수 있습니다.
request_access_enabled 부울 아니오 사용자가 멤버 액세스를 요청할 수 있도록 합니다.
require_two_factor_authentication 부울 아니오 이 그룹의 모든 사용자에게 이중 인증 설정이 필요하도록 합니다.
shared_runners_setting 문자열 아니오 Options for shared_runners_setting를 참조하세요. 이 그룹의 서브그룹과 프로젝트에 대한 공유 러너를 활성화 또는 비활성화합니다.
share_with_group_lock 부울 아니오 그룹 내에서 다른 그룹과 프로젝트를 공유하는 것을 방지합니다.
subgroup_creation_level 문자열 아니오 서브그룹을 생성할 수 있는 권한을 허용합니다. owner (소유자) 또는 maintainer (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 디렉터리. 최상위 그룹에서만 사용할 수 있습니다. 기본값: [], 최대값: 100 사용자 ID. GitLab 15.9에서 도입됨. Ultimate 전용.
auto_ban_user_on_excessive_projects_download 부울 아니오 활성화하면 사용자가 unique_project_download_limitunique_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 부울 아니오 이 그룹에서 수학

결과 제한 해제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

100개의 결과 제한은 GitLab 12.4 이전에 개발된 통합을 망가뜨릴 수 있습니다.

GitLab 12.5부터 GitLab 13.12까지는 그룹 프로젝트 디렉터리 보기 엔드포인트를 사용하여 이전에는 제한을 해제할 수 있습니다.

Rails 콘솔 액세스 권한이 있는 GitLab 관리자에게 다음 명령을 실행하도록 요청하세요:

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 (Deprecated. disabled_and_overridable 사용) 이 그룹의 모든 프로젝트 및 서브그룹에 대해 공유 러너를 비활성화하지만 서브그룹에서이 설정을 재정의할 수 있도록 합니다.

그룹 아바타 업로드

시스템에서 아바타 파일을 업로드하려면 --form 인수를 사용하세요. 이렇게 하면 curl이 Content-Type: multipart/form-data 헤더를 사용하여 데이터를 게시합니다. file= 매개변수는 시스템의 파일을 가리키고 @ 로 선언되어야 합니다. 예:

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/22" \
     --form "avatar=@/tmp/example.png"

그룹 아바타 제거

그룹 아바타를 제거하려면 avatar 속성에 빈 값을 사용하세요.

예시 요청:

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/22" \
     --data "avatar="

그룹 제거

  • 하위 그룹을 즉시 삭제했던 기능이 기본 상태로 도입되었습니다 GitLab 15.3.
  • 하위 그룹을 즉시 삭제했던 기능이 GitLab.com 및 자체 호스팅으로 GitLab 15.4에서 활성화되었습니다.
  • 하위 그룹을 즉시 삭제했던 기능이 GitLab 15.4에서 기본 상태로 활성화되었습니다.
  • 하위 그룹을 즉시 삭제하는 기능에 대한 immediate_delete_subgroup_api 플래그가 GitLab 15.9에서 제거되었습니다.

그룹 소유자 및 관리자만 사용할 수 있습니다.

이 엔드포인트:

  • Premium 및 Ultimate 티어에서 그룹을 삭제합니다. 기본적으로 7일 후에 삭제가 진행되지만 인스턴스 설정에서 보존 기간을 변경할 수 있습니다.
  • 프리 티어에서는 그룹을 즉시 제거하고 모든 프로젝트를 삭제하도록 백그라운드 작업을 대기열에 넣습니다.
  • 하위 그룹이 삭제로 표시될 경우 (GitLab 15.4 이후), 이 엔드포인트는 즉시 하위 그룹을 삭제하지 않습니다.
DELETE /groups/:id

매개변수:

속성 유형 필수여부 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로
permanently_remove boolean/string 아니요 삭제로 표시된 하위 그룹을 즉시 삭제합니다. GitLab 15.4에서 도입되었습니다. Premium 및 Ultimate 전용.
full_path 문자열 아니요 permanently_remove와 함께 사용할 하위 그룹의 전체 경로입니다. GitLab 15.4에서 도입되었습니다. 하위 그룹 경로 확인에는 그룹 세부 정보를 참조하십시오. Premium 및 Ultimate 전용.

권한이 있는 경우 응답은 202 Accepted입니다.

note
GitLab.com 그룹이 구독과 연결되어 있으면 그룹을 삭제할 수 없습니다. 이러한 그룹을 삭제하려면 먼저 구독을 연결하십시오.

삭제된 그룹 복원

Tier: Premium, Ultimate 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": "흥미로운 그룹"
  }
]

프로비저닝된 사용자 디렉터리

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • GitLab 14.8에 도입되었습니다.

특정 그룹에 의해 프로비저닝된 사용자 디렉터리을 가져옵니다. 서브그룹은 포함되지 않습니다.

그룹에서 적어도 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
  },
  ...
]

그룹 사용자 디렉터리

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Experiment
  • GitLab 16.6에 도입되었습니다. 이 기능은 실험 중입니다.

그룹의 사용자 디렉터리을 가져옵니다. 이 엔드포인트는 현재 멤버십과 상관없이 최상위 그룹과 관련된 사용자를 반환합니다. 예를 들어, 그룹에 연결된 SAML 식별자가 있는 사용자 또는 그룹이나 서브그룹에서 생성된 서비스 계정과 같은 사용자를 반환합니다.

이 엔드포인트는 실험 중이며 사전 통지 없이 변경 또는 제거될 수 있습니다.

그룹 내의 소유자 역할이 필요합니다.

GET /groups/:id/users
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/users?include_saml_users=true&include_service_accounts=true"

파라미터:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로.
include_saml_users 부울 예 (설명 참조) SAML 식별자를 가진 사용자를 포함합니다. 이 값 또는 include_service_accounts 중 하나는 true여야 합니다.
include_service_accounts 부울 예 (설명 참조) 서비스 계정 사용자를 포함합니다. 이 값 또는 include_saml_users 중 하나는 true여야 합니다.
search 문자열 아니오 이름, 이메일, 사용자 이름으로 사용자 검색

성공 시, 다음의 응답 속성을 반환합니다:

응답 예시:

[
  {
    "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
  },
  ...
]

서비스 계정

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

서비스 계정 사용자 생성

서비스 계정 사용자를 생성합니다. 사용자 이름과 이름을 지정할 수 있습니다. 이러한 속성을 지정하지 않으면, 기본 이름은 서비스 계정 사용자 이고 사용자 이름은 자동으로 생성됩니다.

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"
}

서비스 계정 사용자를 위한 개인 액세스 토큰 생성

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 개인 액세스 토큰 만료일. 비워 두면, 토큰은 개인 액세스 토큰 만료에 대한 표준 규칙을 따릅니다.

서비스 계정 사용자의 개인 액세스 토큰 회전

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>"
}

Tier: Premium, Ultimate 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",
  "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 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 서브그룹 이벤트 트리거 여부
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 정수 또는 문자열 그룹의 ID 또는 URL 인코딩된 경로
hook_id 정수 그룹 후크의 ID
url 문자열 후크 URL
push_events 부울 아니요 푸시 이벤트에서 후크 트리거
push_events_branch_filter 문자열 아니요 해당 브랜치에 대한 푸시 이벤트에서 후크 트리거
issues_events 부울 아니요 이슈 이벤트에서 후크 트리거
confidential_issues_events 부울 아니요 기밀 이슈 이벤트에서 후크 트리거
merge_requests_events 부울 아니요 Merge Request 이벤트에서 후크 트리거
tag_push_events 부울 아니요 태그 푸시 이벤트에서 후크 트리거
note_events 부울 아니요 노트 이벤트에서 후크 트리거
confidential_note_events 부울 아니요 기밀 노트 이벤트에서 후크 트리거
job_events 부울 아니요 작업 이벤트에서 후크 트리거
pipeline_events 부울 아니요 파이프라인 이벤트에서 후크 트리거
wiki_page_events 부울 아니요 위키 페이지 이벤트에서 후크 트리거
deployment_events 부울 아니요 배포 이벤트에서 후크 트리거
releases_events 부울 아니요 릴리스 이벤트에서 후크 트리거
subgroup_events 부울 아니요 하위 그룹 이벤트에서 후크 트리거
enable_ssl_verification 부울 아니요 후크 트리거시 SSL 검증 수행
service_access_tokens_expiration_enforced 부울 아니요 서비스 계정 액세스 토큰이 만료일을 가져야 함
token 문자열 아니요 받은 페이로드를 유효성 검사하기 위한 비밀 토큰. 응답에 반환되지 않음. 웹훅 URL을 변경하면 보안 토큰이 재설정되고 보존되지 않습니다.
resource_access_token_events 부울 아니요 프로젝트 액세스 토큰 만료 이벤트에서 후크 트리거
custom_webhook_template 문자열 아니요 후크를 위한 사용자 지정 웹훅 템플릿

그룹 후크 삭제

그룹에서 후크를 제거합니다. 이는 멱등(idempotent)한 방법이며 여러 번 호출할 수 있습니다. 후크가 있는지 여부에 관계없이 작동합니다.

DELETE /groups/:id/hooks/:hook_id
속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로
hook_id 정수 그룹 후크의 ID

그룹 감사 이벤트

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

그룹 감사 이벤트는 그룹 감사 이벤트 API를 통해 액세스할 수 있습니다.

LDAP(라이트 디렉터리 액세스 프로토콜)로 그룹 동기화

Tier: Premium, Ultimate Offering: Self-managed

그룹을 연결된 LDAP 그룹과 동기화합니다. 그룹 소유자 및 관리자만 사용할 수 있습니다.

POST /groups/:id/ldap_sync

매개변수:

  • id (필수) - 사용자 그룹의 ID 또는 경로

그룹 구성원

그룹 구성원 문서를 참조하십시오.

LDAP 그룹 링크

LDAP 그룹 링크를 나열하고 추가하고 삭제합니다.

LDAP 그룹 링크 나열

Tier: Premium, Ultimate Offering: Self-managed

LDAP 그룹 링크를 나열합니다.

GET /groups/:id/ldap_group_links
속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로

CN 또는 필터로 LDAP 그룹 링크 추가

Tier: Premium, Ultimate Offering: Self-managed

CN 또는 필터를 사용하여 LDAP 그룹 링크를 추가합니다. 필터를 사용하여 그룹 링크를 추가하는 것은 Premium 및 Ultimate 티어에서만 지원됩니다.

POST /groups/:id/ldap_group_links
속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로
cn 문자열 아니요 LDAP 그룹의 CN
filter 문자열 아니요 그룹의 LDAP 필터
group_access 정수 LDAP 그룹의 멤버에 대한 역할(access_level)
provider 문자열 LDAP 그룹 링크의 LDAP 제공자
note
LDAP 그룹 링크를 정의하려면 cn 또는 filter 중 하나를 제공하되 둘 다 제공하면 안됩니다.

LDAP 그룹 링크 삭제

Tier: Premium, Ultimate Offering: Self-managed

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 그룹 링크 삭제

Tier: Premium, Ultimate Offering: Self-managed

CN 또는 필터를 사용하여 LDAP 그룹 링크를 삭제합니다. 필터를 사용하여 삭제하는 것은 Premium 및 Ultimate 티어에서만 지원됩니다.

DELETE /groups/:id/ldap_group_links
속성 유형 필요 여부 설명
id integer/string yes 그룹의 ID 또는 URL 인코딩된 경로
cn string no LDAP 그룹의 CN
filter string no 그룹의 LDAP 필터
provider string yes LDAP 그룹 링크의 LDAP 제공자
note
LDAP 그룹 링크를 삭제하려면 cn 또는 filter 중 하나를 제공하되 둘 다 제공하지 마세요.

SAML 그룹 링크

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

SAML 그룹 링크를 나열하고, 가져오고, 추가하고, 삭제합니다.

SAML 그룹 링크 나열

SAML 그룹 링크를 나열합니다.

GET /groups/:id/saml_group_links

지원되는 속성:

속성 유형 필요 여부 설명
id integer/string yes 그룹의 ID 또는 URL 인코딩된 경로

성공적으로 처리되면 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"

예시 응답:

[
  {
    "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 or 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 정수/문자열 그룹의 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 정수/문자열 URL 인코딩된 그룹 경로의 ID
group_id 정수 공유할 그룹의 ID
group_access 정수 그룹에 부여할 역할(access_level)
expires_at 문자열 아니오 ISO 8601 형식의 공유 만료 날짜: 2016-09-26

다른 그룹과 공유 그룹의 링크 삭제

다른 그룹에서 그룹을 공유 해제합니다. 성공하면 204와 내용이 없는 상태를 반환합니다.

DELETE /groups/:id/share/:group_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 정수/문자열 URL 인코딩된 그룹 경로의 ID
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 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
Attribute Type Required Description
id integer/string yes 그룹의 ID 또는 URL 인코딩된 그룹 경로
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 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
Attribute Type Required Description
id integer/string yes 그룹의 ID 또는 URL 인코딩된 그룹 경로