community.general.gitlab_group_members – Manage group members on GitLab Server

Note

This plugin is part of the community.general collection (version 3.7.0).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.gitlab_group_members.

New in version 1.2.0: of community.general

Synopsis

  • This module allows to add and remove members to/from a group, or change a member’s access level in a group on GitLab.

Requirements

The below requirements are needed on the host that executes this module.

  • python-gitlab python module <= 1.15.0

  • administrator rights on the GitLab server

Parameters

Parameter Choices/Defaults Comments
access_level
string
    Choices:
  • guest
  • reporter
  • developer
  • maintainer
  • owner
The access level for the user.
Required if state=present, user state is set to present.
Mutually exclusive with gitlab_users_access.
api_password
string
The password to use for authentication against the API
api_token
string / required
A personal access token to authenticate with the GitLab API.
api_url
string
The resolvable endpoint for the API
api_username
string
The username to use for authentication against the API
gitlab_group
string / required
The name of the GitLab group the member is added to/removed from.
gitlab_user
list / elements=string
A username or a list of usernames to add to/remove from the GitLab group.
Mutually exclusive with gitlab_users_access.
gitlab_users_access
list / elements=dictionary
added in 3.6.0 of community.general
Provide a list of user to access level mappings.
Every dictionary in this list specifies a user (by username) and the access level the user should have.
Mutually exclusive with gitlab_user and access_level.
Use together with purge_users to remove all users not specified here from the group.
access_level
string / required
    Choices:
  • guest
  • reporter
  • developer
  • maintainer
  • owner
The access level for the user.
Required if state=present, user state is set to present.
name
string / required
A username or a list of usernames to add to/remove from the GitLab group.
purge_users
list / elements=string
added in 3.6.0 of community.general
    Choices:
  • guest
  • reporter
  • developer
  • maintainer
  • owner
Adds/remove users of the given access_level to match the given gitlab_user/gitlab_users_access list. If omitted do not purge orphaned members.
Is only used when state=present.
state
string
    Choices:
  • present ←
  • absent
State of the member in the group.
On present, it adds a user to a GitLab group.
On absent, it removes a user from a GitLab group.
validate_certs
boolean
    Choices:
  • no
  • yes ←
Whether or not to validate SSL certs when supplying a https endpoint.

Notes

Note

  • Supports check_mode.

Examples

- name: Add a user to a GitLab Group
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_user: username
    access_level: developer
    state: present

- name: Remove a user from a GitLab Group
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_user: username
    state: absent

- name: Add a list of Users to A GitLab Group
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_user:
      - user1
      - user2
    access_level: developer
    state: present

- name: Add a list of Users with Dedicated Access Levels to A GitLab Group
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_users_access:
      - name: user1
        access_level: developer
      - name: user2
        access_level: maintainer
    state: present

- name: Add a user, remove all others which might be on this access level
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_user: username
    access_level: developer
    pruge_users: developer
    state: present

- name: Remove a list of Users with Dedicated Access Levels to A GitLab Group
  community.general.gitlab_group_members:
    api_url: 'https://gitlab.example.com'
    api_token: 'Your-Private-Token'
    gitlab_group: groupname
    gitlab_users_access:
      - name: user1
        access_level: developer
      - name: user2
        access_level: maintainer
    state: absent

Authors

  • Zainab Alsaffar (@zanssa)