Groups API

原文:https://docs.gitlab.com/ee/api/groups.html

Groups API

List groups

获取已认证用户的可见组列表. 在未经身份验证的情况下访问时,仅返回公共组.

默认情况下,此请求一次返回 20 个结果,因为 API 结果是分页的 .

Parameters:

Attribute Type Required Description
skip_groups 整数数组 no 跳过传递的组 ID
all_available boolean no 显示您有权访问的所有组(对于经过身份验证的用户,默认值为false ;对于管理员,默认false true ); owned属性和min_access_level具有优先权
search string no 返回符合搜索条件的授权组列表
order_by string no namepathid . 默认name
sort string no ascdesc顺序排列组. 默认为asc
statistics boolean no 包括组统计信息(仅管理员)
with_custom_attributes boolean no 在响应中包括自定义属性 (仅管理员)
owned boolean no 限制为当前用户明确拥有的组
min_access_level integer no 限制为当前用户至少具有此访问级别的组
top_level_only boolean no 限于顶级组,不包括所有子组
  1. GET /groups
  1. [ { "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, "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, "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=true且经过身份验证的用户是管理员时,将返回其他组统计信息.

  1. GET /groups?statistics=true
  1. [ { "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, "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, "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" : 212, "repository_size" : 33, "wiki_size" : 100, "lfs_objects_size" : 123, "job_artifacts_size" : 57, "packages_size": 0, "snippets_size" : 50, } } ]

您可以按名称或路径搜索组,请参见下文.

您可以使用以下自定义属性进行过滤:

  1. GET /groups?custom_attributes[key]=value&custom_attributes[other_key]=other_value

List a group’s subgroups

在 GitLab 10.3 中引入 .

获取此组中可见的直接子组的列表. 在未经身份验证的情况下访问时,仅返回公共组.

默认情况下,此请求一次返回 20 个结果,因为 API 结果是分页的 .

Parameters:

Attribute Type Required Description
id integer/string yes 直接父组的组的 ID 或URL 编码路径
skip_groups 整数数组 no 跳过传递的组 ID
all_available boolean no 显示您有权访问的所有组(对于经过身份验证的用户,默认值为false ;对于管理员,默认false true ); owned属性和min_access_level具有优先权
search string no 返回符合搜索条件的授权组列表
order_by string no namepathid . 默认name
sort string no ascdesc顺序排列组. 默认为asc
statistics boolean no 包括组统计信息(仅管理员)
with_custom_attributes boolean no 在响应中包括自定义属性 (仅管理员)
owned boolean no 限制为当前用户明确拥有的组
min_access_level integer no 限制为当前用户至少具有此访问级别的组
  1. GET /groups/:id/subgroups
  1. [ { "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, "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, "full_name": "Foobar Group", "full_path": "foo-bar", "file_template_project_id": 1, "parent_id": 123, "created_at": "2020-01-15T12:36:29.590Z" } ]

List a group’s projects

获取此组中的项目列表. 在未经身份验证的情况下访问时,仅返回公共项目.

默认情况下,此请求一次返回 20 个结果,因为 API 结果是分页的 .

  1. GET /groups/:id/projects

Parameters:

Attribute Type Required Description
id integer/string yes 认证用户拥有的组的 ID 或URL 编码路径
archived boolean no 受存档状态限制
visibility string no publicinternalprivate可见性限制
order_by string no 返回按idnamepathcreated_atupdated_atlast_activity_at字段排序的项目. 默认为created_at
sort string no 返回按ascdesc顺序排序的项目. 默认为desc
search string no 返回符合搜索条件的授权项目列表
simple boolean no 仅返回每个项目的 ID,URL,名称和路径
owned boolean no 受当前用户拥有的项目限制
starred boolean no 受当前用户加注星标的项目限制
with_issues_enabled boolean no 受具有问题功能的项目限制. 默认为false
with_merge_requests_enabled boolean no 受启用合并请求功能的项目限制. 默认为false
with_shared boolean no 包括共享给该组的项目. 默认为true
include_subgroups boolean no 将项目包括在该组的子组中. 默认为false
min_access_level integer no 限于当前用户至少具有此访问级别的项目
with_custom_attributes boolean no Include custom attributes in response (admins only)
with_security_reports boolean no 仅返回在任何版本中都存在安全报告工件的项目. 这意味着”启用了安全报告的项目”. 默认为false

响应示例:

  1. [ { "id": 9, "description": "foo", "default_branch": "master", "tag_list": [], "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将与请求的组不同.

List a group’s shared projects

获取共享给该组的项目的列表. 未经身份验证访问时,仅返回公共共享项目.

默认情况下,此请求一次返回 20 个结果,因为 API 结果是分页的 .

  1. GET /groups/:id/projects/shared

Parameters:

Attribute Type Required Description
id integer/string yes 认证用户拥有的组的 ID 或URL 编码路径
archived boolean no 受存档状态限制
visibility string no publicinternalprivate可见性限制
order_by string no 返回按idnamepathcreated_atupdated_atlast_activity_at字段排序的项目. 默认为created_at
sort string no 返回按ascdesc顺序排序的项目. 默认为desc
search string no 返回符合搜索条件的授权项目列表
simple boolean no 仅返回每个项目的 ID,URL,名称和路径
starred boolean no 受当前用户加注星标的项目限制
with_issues_enabled boolean no 受具有问题功能的项目限制. 默认为false
with_merge_requests_enabled boolean no 受启用合并请求功能的项目限制. 默认为false
min_access_level integer no 限于当前用户至少具有此访问级别的项目
with_custom_attributes boolean no 在响应中包括自定义属性 (仅管理员)

响应示例:

  1. [ { "id":8, "description":"Shared project for 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":"master", "tag_list":[ ], "ssh_url_to_repo":"ssh://git@gitlab.com/h5bp/html5-boilerplate.git", "http_url_to_repo":"http://gitlab.com/h5bp/html5-boilerplate.git", "web_url":"http://gitlab.com/h5bp/html5-boilerplate", "readme_url":"http://gitlab.com/h5bp/html5-boilerplate/-/blob/master/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":"http://gitlab.com/groups/h5bp" }, "_links":{ "self":"http://gitlab.com/api/v4/projects/8", "issues":"http://gitlab.com/api/v4/projects/8/issues", "merge_requests":"http://gitlab.com/api/v4/projects/8/merge_requests", "repo_branches":"http://gitlab.com/api/v4/projects/8/repository/branches", "labels":"http://gitlab.com/api/v4/projects/8/labels", "events":"http://gitlab.com/api/v4/projects/8/events", "members":"http://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", "emails_disabled":null, "shared_runners_enabled":true, "lfs_enabled":true, "creator_id":1, "import_status":"failed", "open_issues_count":10, "ci_default_git_depth":50, "public_jobs":true, "build_timeout":3600, "auto_cancel_pending_pipelines":"enabled", "build_coverage_regex":null, "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" } ]

Details of a group

获取组的所有详细信息. 如果可以公开访问该组,则无需身份验证即可访问该端点. 如果请求的用户是该组的管理员,它将也返回该组的runners_token .

  1. GET /groups/:id

Parameters:

Attribute Type Required Description
id integer/string yes 认证用户拥有的组的 ID 或URL 编码路径 .
with_custom_attributes boolean no 在响应中包括自定义属性 (仅管理员).
with_projects boolean no 包括属于指定组的项目的详细信息(默认为true ). (已弃用, 将在 API v5 中删除 .要获取组中所有项目的详细信息,请使用列出组的项目终结点 .)

注意:响应中的projectsshared_projects属性已弃用,并将在 API v5 中删除 . 要获取组内所有项目的详细信息,请使用列出组的项目列出组的共享项目端点.

  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4"

该端点返回:

  • GitLab 12.5 和更早版本中的所有项目和共享项目.
  • GitLab 12.6及更高版本中最多有 100 个项目和共享项目. 要获取组中所有项目的详细信息,请使用列出组的项目端点列表 .

响应示例:

  1. { "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, "full_name": "Twitter", "full_path": "twitter", "runners_token": "ba324ca7b1c77fc20bb9", "file_template_project_id": 1, "parent_id": null, "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 } ], "projects": [ // Deprecated and will be removed in API v5 { "id": 7, "description": "Voluptas veniam qui et beatae voluptas doloremque explicabo facilis.", "default_branch": "master", "tag_list": [], "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": "master", "tag_list": [], "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": [ // Deprecated and will be removed in API v5 { "id": 8, "description": "Velit eveniet provident fugiat saepe eligendi autem.", "default_branch": "master", "tag_list": [], "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" } ] } ] }

使用 GitLab Starter,Bronze 或更高版本的用户还将看到shared_runners_minutes_limitextra_shared_runners_minutes_limit参数:

其他响应参数:

  1. { "id": 4, "description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.", "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, ... }

Users on GitLab Silver, Premium, or higher will also see the marked_for_deletion_on attribute:

  1. { "id": 4, "description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.", "marked_for_deletion_on": "2020-04-03", ... }

当添加参数with_projects=false ,将不返回项目.

  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4?with_projects=false"

响应示例:

  1. { "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, "full_name": "Twitter", "full_path": "twitter", "file_template_project_id": 1, "parent_id": null }

Disabling the results limit

如果它破坏了使用 GitLab 12.4 和更早版本开发的集成,则可以禁用 100 个结果限制.

要在迁移到使用列表的组项目终结点时禁用限制,请要求具有 Rails 控制台访问权限的 GitLab 管理员运行以下命令:

  1. Feature.disable(:limit_projects_in_groups_api)

New group

创建一个新的项目组. 仅适用于可以创建组的用户.

  1. POST /groups

Parameters:

Attribute Type Required Description
name string yes 组的名称.
path string yes 组的路径.
description string no 组的描述.
membership_lock boolean no 阻止将新成员添加到该组中的项目成员中.
visibility string no 小组的知名度. 可以是privateinternalpublic .
share_with_group_lock boolean no 防止与该组中的另一个组共享项目.
require_two_factor_authentication boolean no 要求该组中的所有用户设置双重身份验证.
two_factor_grace_period integer no 实施两因素身份验证之前的时间(以小时为单位).
project_creation_level string no 确定开发人员是否可以在组中创建项目. 可noone (没有之一), maintainer (维护者),或developer (开发+维护者).
auto_devops_enabled boolean no 对于该组中的所有项目,默认为 Auto DevOps 管道.
subgroup_creation_level string no 允许创建子组. 可以是owner (所有者)或maintainer (维护者).
emails_disabled boolean no 禁用电子邮件通知
avatar mixed no 该组头像的图像文件. 在 GitLab 12.9 中引入
mentions_disabled boolean no 禁止一个人被提及
lfs_enabled boolean no 为该组中的项目启用/禁用大文件存储(LFS).
request_access_enabled boolean no 允许用户请求成员访问权限.
parent_id integer no 用于创建嵌套组的父组 ID.
default_branch_protection integer no 请参阅default_branch_protection选项 . 默认为全局级别的默认分支保护设置.
shared_runners_minutes_limit integer no 该组的管道分钟配额(包括在计划中). 可以为nil (默认值;继承系统默认值), 0 (无限制)或> 0
extra_shared_runners_minutes_limit integer no 该组的额外管道分钟配额(在计划中包括的分钟之外购买).

Options for default_branch_protection

default_branch_protection属性确定开发人员和维护人员是否可以推送到适用的 master 分支,如下表所示:

Value Description
0 没有保护. 开发人员和维护人员可以:

-推送新的提交 -强制推送更改 -删除分支 | | 1 | 部分保护. 开发人员和维护人员可以: -推送新的提交 | | 2 | 全面保护. 只有维护者可以: -推送新的提交 |

New Subgroup

这类似于创建” 新建”组 . 您将需要” 列表”组调用中的parent_id . 然后,您可以输入所需的内容:

  • subgroup_path
  • subgroup_name
  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \
  2. --data '{"path": "<subgroup_path>", "name": "<subgroup_name>", "parent_id": <parent_group_id> } \
  3. "https://gitlab.example.com/api/v4/groups/"

Transfer project to group

将项目传输到组名称空间. 尽管不需要实例管理员访问权限的替代 API 端点可用,但仅对实例管理员可用. 当项目存储库中存在标记的程序包时,传输项目可能会失败.

  1. POST /groups/:id/projects/:project_id

Parameters:

Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the target group
project_id integer/string yes 项目的 ID 或URL 编码的路径
  1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4/projects/56"

Update group

更新项目组. 仅对组所有者和管理员可用.

  1. PUT /groups/:id
Attribute Type Required Description
id integer yes 组的 ID.
name string no 组的名称.
path string no 组的路径.
description string no 组的描述.
membership_lock boolean no 阻止将新成员添加到该组中的项目成员中.
share_with_group_lock boolean no 防止与该组中的另一个组共享项目.
visibility string no 组的可见性级别. 可以是privateinternalpublic .
require_two_factor_authentication boolean no 要求该组中的所有用户设置双重身份验证.
two_factor_grace_period integer no 实施两因素身份验证之前的时间(以小时为单位).
project_creation_level string no 确定开发人员是否可以在组中创建项目. 可noone (没有之一), maintainer (维护者),或developer (开发+维护者).
auto_devops_enabled boolean no 对于该组中的所有项目,默认为 Auto DevOps 管道.
subgroup_creation_level string no 允许创建子组. 可以是owner (所有者)或maintainer (维护者).
emails_disabled boolean no 禁用电子邮件通知
avatar mixed no 该组头像的图像文件. 在 GitLab 12.9 中引入
mentions_disabled boolean no 禁止一个人被提及
lfs_enabled (optional) boolean no 为该组中的项目启用/禁用大文件存储(LFS).
request_access_enabled boolean no 允许用户请求成员访问权限.
default_branch_protection integer no See Options for default_branch_protection.
file_template_project_id integer no 从中加载自定义文件模板的项目的 ID.
shared_runners_minutes_limit integer no 该组的管道分钟配额(包括在计划中). 可以为nil (默认值;继承系统默认值), 0 (无限制)或> 0
extra_shared_runners_minutes_limit integer no 该组的额外管道分钟配额(在计划中包括的分钟之外购买).

注意:响应中的projectsshared_projects属性已弃用,并将在 API v5 中删除 . 要获取组内所有项目的详细信息,请使用列出组的项目列出组的共享项目端点.

  1. curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5?name=Experimental"

该端点返回:

  • GitLab 12.5 和更早版本中的所有项目和共享项目.
  • GitLab 12.6及更高版本中最多有 100 个项目和共享项目. 要获取组中所有项目的详细信息,请使用列出组的项目端点列表 .

响应示例:

  1. { "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, "full_name": "Foobar Group", "full_path": "foo-bar", "file_template_project_id": 1, "parent_id": null, "created_at": "2020-01-15T12:36:29.590Z", "projects": [ // Deprecated and will be removed in API v5 { "id": 9, "description": "foo", "default_branch": "master", "tag_list": [], "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", "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 } ] }

Disabling the results limit

The 100 results limit can be disabled if it breaks integrations developed using GitLab 12.4 and earlier.

要在迁移到使用列表的组项目终结点时禁用限制,请要求具有 Rails 控制台访问权限的 GitLab 管理员运行以下命令:

  1. Feature.disable(:limit_projects_in_groups_api)

Remove group

仅对组所有者和管理员可用.

该端点:

  • 删除组,并在后台作业中排队以删除该组中的所有项目.
  • GitLab 12.8 开始 ,在Premium 或 Silver或更高级别上,将一个组标记为删除. 默认情况下,删除将在 7 天后进行,但是可以在实例设置中进行更改.
  1. DELETE /groups/:id

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径

如果用户具有授权,则响应将为202 Accepted .

Restore group marked for deletion

在 GitLab 12.8 中引入 .

恢复标记为删除的组.

  1. POST /groups/:id/restore

Parameters:

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径

Search for group

获取名称或路径中与您的字符串匹配的所有组.

  1. GET /groups?search=foobar
  1. [ { "id": 1, "name": "Foobar Group", "path": "foo-bar", "description": "An interesting group" } ]

Hooks

也称为群组挂钩和 Webhooks. 这些不同于系统范围的系统挂钩和限于一个项目的项目挂钩 .

List group hooks

获取组挂钩列表

  1. GET /groups/:id/hooks
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径

Get group hook

获取组的特定挂钩.

Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
hook_id integer yes 组挂钩的 ID
  1. GET /groups/:id/hooks/:hook_id
  1. { "id": 1, "url": "http://example.com/hook", "group_id": 3, "push_events": true, "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, "enable_ssl_verification": true, "created_at": "2012-10-12T17:04:47Z" }

Add group hook

将钩子添加到指定的组.

  1. POST /groups/:id/hooks
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
url string yes 挂钩网址
push_events boolean 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 触发 Wiki 事件的钩子
enable_ssl_verification boolean no 触发挂钩时执行 SSL 验证
token string no 用于验证收到的有效载荷的秘密令牌; 这将不会在响应中返回

Edit group hook

编辑指定组的挂钩.

  1. PUT /groups/:id/hooks/:hook_id
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
hook_id integer yes 组挂钩的 ID
url string yes 挂钩网址
push_events boolean 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_events boolean no 触发 Wiki 事件的钩子
enable_ssl_verification boolean no 触发挂钩时执行 SSL 验证
token string no 用于验证收到的有效载荷的秘密令牌; 这将不会在响应中返回

Delete group hook

从组中删除钩子. 这是幂等方法,可以多次调用. 挂钩是否可用.

  1. DELETE /groups/:id/hooks/:hook_id
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
hook_id integer yes 组挂钩的 ID.

Group Audit Events

可以通过” 组审核事件” API访问组审核事件

Sync group with LDAP

将组与其链接的 LDAP 组同步. 仅对组所有者和管理员可用.

  1. POST /groups/:id/ldap_sync

Parameters:

  • id (必填)-用户组的 ID 或路径

Group members

请查阅小组成员文档.

LDAP Group Links

列出,添加和删除 LDAP 组链接.

List LDAP group links

列出 LDAP 组链接.

  1. GET /groups/:id/ldap_group_links
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径

Add LDAP group link with CN or filter

使用 CN 或过滤器添加 LDAP 组链接. 仅在高级级别和更高级别中,才支持通过过滤器添加组链接.

  1. POST /groups/:id/ldap_group_links
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cn string no LDAP 组的 CN
filter string no 组的 LDAP 过滤器
group_access integer yes LDAP 组成员的最低访问级别
provider string yes LDAP 组链接的 LDAP 提供程序

注意:要定义 LDAP 组链接,请提供cnfilter ,但不能同时提供两者.

Delete LDAP group link

删除 LDAP 组链接. 不推荐使用. 在将来的版本中将被删除.

  1. DELETE /groups/:id/ldap_group_links/:cn
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cn string yes LDAP 组的 CN

删除特定 LDAP 提供程序的 LDAP 组链接. 不推荐使用. 在将来的版本中将被删除.

  1. DELETE /groups/:id/ldap_group_links/:provider/:cn
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cn string yes LDAP 组的 CN
provider string yes LDAP 组链接的 LDAP 提供程序

Delete LDAP group link with CN or filter

使用 CN 或过滤器删除 LDAP 组链接. 仅高级级别和更高级别支持按过滤器删除.

  1. DELETE /groups/:id/ldap_group_links
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
cn string no LDAP 组的 CN
filter string no 组的 LDAP 过滤器
provider string yes LDAP 组链接的 LDAP 提供程序

注意:要删除 LDAP 组链接,请提供cnfilter ,但不能同时提供两者.

Namespaces in groups

默认情况下,由于 API 结果是分页的,因此组一次只能获得 20 个名称空间.

要获得更多(最多 100 个),请将以下内容作为参数传递给 API 调用:

  1. /groups?per_page=100

并切换页面添加:

  1. /groups?per_page=100&page=2

Group badges

组徽章文档中了解更多信息.

Group Import/Export

组导入/导出文档中了解更多信息.

Share Groups with Groups

这些端点创建和删除用于与另一个组共享一个组的链接. 有关更多信息,请参见GitLab 组页面中的相关讨论.

Create a link to share a group with another group

与另一个群组共享群组. 返回200和成功的组详细信息 .

  1. POST /groups/:id/share
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
group_id integer yes 与之共享的组的 ID
group_access integer yes 授予组的访问级别
expires_at string no ISO 8601 格式的股份到期日:2016-09-26

Delete link sharing group with another group

取消与其他群组共享该群组. 返回204 ,成功则不返回任何内容.

  1. DELETE /groups/:id/share/:group_id
Attribute Type Required Description
id integer/string yes 组的 ID 或URL 编码的路径
group_id integer yes 与之共享的组的 ID