- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# gitlab_user – Creates/updates/deletes GitLab Users

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- When the user does not exist in GitLab, it will be created.

- When the user does exists and state=absent, the user will be deleted.

- When changes are made to user, the user will be updated.

## Requirements

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

- python >= 2.7

- python-gitlab python module <= 1.12.1

- administrator rights on the GitLab server

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
access_level string | Choices: guest ← reporter developer master maintainer owner | The access level to the group. One of the following can be used. guest reporter developer master (alias for maintainer) maintainer owner
api_password string |  | The password to use for authentication against the API
api_token string |  | GitLab token for logging in. aliases: login_token
api_url string |  | The resolvable endpoint for the API
api_username string |  | The username to use for authentication against the API
confirm boolean added in 2.4 | Choices: no yes ← | Require confirmation.
email string / required |  | The email that belongs to the user.
external boolean added in 2.8 | Choices: no ← yes | Define external parameter for this user
group string |  | Id or Full path of parent group in the form of group/name Add user as an member to this group.
isadmin boolean added in 2.8 | Choices: no ← yes | Grant admin privileges to the user
login_password string |  | GitLab password for login_user
login_user string |  | GitLab user name.
name string / required |  | Name of the user you want to create
password string / required |  | The password of the user. GitLab server enforces minimum password length to 8, set this value with 8 or more characters.
server_url string |  | The URL of the GitLab server, with protocol (i.e. http or https).
sshkey_file string |  | The ssh key itself.
sshkey_name string |  | The name of the sshkey
state string | Choices: present ← absent | create or delete group. Possible values are present and absent.
username string / required |  | The username of the user.
validate_certs boolean | Choices: no yes ← | Whether or not to validate SSL certs when supplying a https endpoint.

## Examples

    - name: "Delete GitLab User"
      gitlab_user:
        api_url: https://gitlab.example.com/
        api_token: "{{ access_token }}"
        validate_certs: False
        username: myusername
        state: absent
      delegate_to: localhost

    - name: "Create GitLab User"
      gitlab_user:
        api_url: https://gitlab.example.com/
        validate_certs: True
        api_username: dj-wasabi
        api_password: "MySecretPassword"
        name: My Name
        username: myusername
        password: mysecretpassword
        email: me@example.com
        sshkey_name: MySSH
        sshkey_file: ssh-rsa AAAAB3NzaC1yc...
        state: present
        group: super_group/mon_group
        access_level: owner
      delegate_to: localhost

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
error string | failed | the error message returned by the GitLab API Sample: 400: path is already in use
msg string | always | Success or failure message Sample: Success
result dictionary | always | json parsed response from the server
user dictionary | always | API object

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Werner Dijkerman (@dj-wasabi)

- Guillaume Martinez (@Lunik)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.