community.general.gitlab_group 模块 – 创建/更新/删除 GitLab 群组

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.gitlab_group

概要

  • 当 GitLab 中不存在该群组时,将创建该群组。

  • 当群组存在且 state=absent 时,将删除该群组。

要求

执行此模块的主机需要满足以下要求。

参数

参数

注释

api_job_token

字符串

在 community.general 4.2.0 中添加

用于登录的 GitLab CI 作业令牌。

api_oauth_token

字符串

在 community.general 4.2.0 中添加

用于登录的 GitLab OAuth 令牌。

api_password

字符串

用于对 API 进行身份验证的密码。

api_token

字符串

具有 API 权限的 GitLab 访问令牌。

api_url

字符串

API 的可解析端点。

api_username

字符串

用于对 API 进行身份验证的用户名。

auto_devops_enabled

布尔值

在 community.general 3.7.0 中添加

此组内所有项目的默认 Auto DevOps 管道。

选项

  • false

  • true

avatar_path

路径

在 community.general 4.2.0 中添加

用于配置头像的绝对路径图像。文件大小不应超过 200 kb。

此选项仅在创建时使用,不用于更新。

ca_path

字符串

在 community.general 8.1.0 中添加

用于验证 GitLab 服务器证书的 CA 证书捆绑包。

default_branch

字符串

在 community.general 9.5.0 中添加

所有合并请求和提交都针对此分支进行,除非您指定其他分支。

description

字符串

群组的描述。

enabled_git_access_protocol

字符串

在 community.general 9.5.0 中添加

all 表示启用 SSH 和 HTTP(S)。

ssh 表示仅启用 SSH。

http 表示仅启用 HTTP(S)。

仅适用于顶级群组。

选项

  • "all"

  • "ssh"

  • "http"

force_delete

布尔值

在 community.general 7.5.0 中添加

即使其中有项目,也强制删除群组。

仅在 state=absent 时使用。

选项

  • false ← (默认)

  • true

lfs_enabled

布尔值

在 community.general 9.5.0 中添加

此群组中的项目可以使用 Git LFS。

选项

  • false

  • true

lock_duo_features_enabled

布尔值

在 community.general 9.5.0 中添加

对所有子组强制执行 GitLab Duo 功能。

仅适用于顶级群组。

选项

  • false

  • true

membership_lock

布尔值

在 community.general 9.5.0 中添加

无法将用户添加到此群组中的项目。

选项

  • false

  • true

mentions_disabled

布尔值

在 community.general 9.5.0 中添加

禁用群组提及。

选项

  • false

  • true

name

字符串 / 必需

要创建的群组的名称。

parent

字符串

允许创建子组

父组的 ID 或完整路径,格式为 group/name

路径

字符串

您要创建的群组的路径,这将是 api_url/group_path

如果未提供,将使用 group_name。

prevent_forking_outside_group

布尔值

在 community.general 9.5.0 中添加

防止在群组外部进行 Fork。

选项

  • false

  • true

prevent_sharing_groups_outside_hierarchy

布尔值

在 community.general 9.5.0 中添加

成员不能邀请此群组及其子组之外的群组。

仅适用于顶级群组。

选项

  • false

  • true

project_creation_level

字符串

在 community.general 3.7.0 中添加

确定开发人员是否可以在群组中创建项目。

选项

  • "developer"

  • "maintainer"

  • "noone"

request_access_enabled

布尔值

在 community.general 9.5.0 中添加

用户可以请求访问(如果可见性为公开或内部)。

选项

  • false

  • true

require_two_factor_authentication

布尔值

在 community.general 3.7.0 中添加

要求此组中的所有用户设置双因素身份验证。

选项

  • false

  • true

service_access_tokens_expiration_enforced

布尔值

在 community.general 9.5.0 中添加

服务帐户令牌过期。

更改不会影响现有令牌的过期日期。

仅适用于顶级群组。

选项

  • false

  • true

share_with_group_lock

布尔值

在 community.general 9.5.0 中添加

项目不能与其他组共享。

选项

  • false

  • true

state

字符串

创建或删除组。

可能的值为 present 和 absent。

选项

  • "present" ← (默认)

  • "absent"

subgroup_creation_level

字符串

在 community.general 3.7.0 中添加

允许创建子组。

选项

  • "maintainer"

  • "owner"

two_factor_grace_period

字符串

在 community.general 9.5.0 中添加

延迟强制执行 2FA(小时)。

validate_certs

布尔值

当提供 HTTPS 端点时,是否验证 SSL 证书。

选项

  • false

  • true ← (默认)

visibility

字符串

组的默认可见性

选项

  • "private" ← (默认)

  • "internal"

  • "public"

wiki_access_level

字符串

在 community.general 9.5.0 中添加

enabled 表示每个人都可以访问 Wiki。

private 表示只有该组的成员才能访问 Wiki。

disabled 表示禁用组级 Wiki。

选项

  • "enabled"

  • "private"

  • "disabled"

属性

属性

支持

描述

check_mode

支持: 完整

可以在 check_mode 中运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于差异模式时,将返回有关已更改的内容(或可能需要在 check_mode 中更改的内容)的详细信息。

示例

- name: "Delete GitLab Group"
  community.general.gitlab_group:
    api_url: https://gitlab.example.com/
    api_token: "{{ access_token }}"
    name: my_first_group
    state: absent

- name: "Create GitLab Group"
  community.general.gitlab_group:
    api_url: https://gitlab.example.com/
    validate_certs: true
    api_username: dj-wasabi
    api_password: "MySecretPassword"
    name: my_first_group
    path: my_first_group
    state: present

# The group will by created at https://gitlab.dj-wasabi.local/super_parent/parent/my_first_group
- name: "Create GitLab SubGroup"
  community.general.gitlab_group:
    api_url: https://gitlab.example.com/
    validate_certs: true
    api_username: dj-wasabi
    api_password: "MySecretPassword"
    name: my_first_group
    path: my_first_group
    state: present
    parent: "super_parent/parent"

# Other group which only allows sub-groups - no projects
- name: "Create GitLab Group for SubGroups only"
  community.general.gitlab_group:
    api_url: https://gitlab.example.com/
    validate_certs: true
    api_username: dj-wasabi
    api_password: "MySecretPassword"
    name: my_main_group
    path: my_main_group
    state: present
    project_creation_level: noone
    auto_devops_enabled: false
    subgroup_creation_level: maintainer

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

error

字符串

GitLab API 返回的错误消息

返回: 失败

示例: "400: 路径 已被使用"

group

字典

API 对象

返回: 总是

msg

字符串

成功或失败消息

返回: 总是

示例: "成功"

result

字典

来自服务器的 JSON 解析响应

返回: 总是

作者

  • Werner Dijkerman (@dj-wasabi)

  • Guillaume Martinez (@Lunik)