# 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.