community.general.gitlab_project – Creates/updates/deletes GitLab Projects

From Get docs
Ansible/docs/2.11/collections/community/general/gitlab project module


community.general.gitlab_project – Creates/updates/deletes GitLab Projects

Note

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

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

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


Synopsis

  • When the project does not exist in GitLab, it will be created.
  • When the project does exists and state=absent, the project will be deleted.
  • When changes are made to the project, the project will be updated.

Requirements

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

  • python >= 2.7
  • python-gitlab python module

Parameters

Parameter Choices/Defaults Comments

api_password

string

The password to use for authentication against the API

api_token

string

GitLab token for logging in.

api_url

string

The resolvable endpoint for the API

api_username

string

The username to use for authentication against the API

description

string

An description for the project.

group

string

Id or the full path of the group of which this projects belongs to.

import_url

string

Git repository which will be imported into gitlab.

GitLab server needs read access to this git repository.

issues_enabled

boolean

  • no
  • yes

Whether you want to create issues or not.

Possible values are true and false.

lfs_enabled

boolean

added in 2.0.0 of community.general

  • no

  • yes

Enable Git large file systems to manages large files such as audio, video, and graphics files.

merge_method

string

added in 1.0.0 of community.general

  • ff
  • merge

  • rebase_merge

What requirements are placed upon merges.

Possible values are merge, rebase_merge merge commit with semi-linear history, ff fast-forward merges only.

merge_requests_enabled

boolean

  • no
  • yes

If merge requests can be made or not.

Possible values are true and false.

name

string / required

The name of the project.

path

string

The path of the project you want to create, this will be server_url//path.

If not supplied, name will be used.

snippets_enabled

boolean

  • no
  • yes

If creating snippets should be available or not.

state

string

  • present

  • absent

Create or delete project.

Possible values are present and absent.

validate_certs

boolean

  • no
  • yes

Whether or not to validate SSL certs when supplying a https endpoint.

visibility

string

  • private

  • internal
  • public

private Project access must be granted explicitly for each user.

internal The project can be cloned by any logged in user.

public The project can be cloned without any authentication.


aliases: visibility_level

wiki_enabled

boolean

  • no
  • yes

If an wiki for this project should be available or not.



Examples

- name: Create GitLab Project
  community.general.gitlab_project:
    api_url: https://gitlab.example.com/
    api_token: "{{ api_token }}"
    name: my_first_project
    group: "10481470"

- name: Delete GitLab Project
  community.general.gitlab_project:
    api_url: https://gitlab.example.com/
    api_token: "{{ access_token }}"
    validate_certs: False
    name: my_first_project
    state: absent
  delegate_to: localhost

- name: Create GitLab Project in group Ansible
  community.general.gitlab_project:
    api_url: https://gitlab.example.com/
    validate_certs: True
    api_username: dj-wasabi
    api_password: "MySecretPassword"
    name: my_first_project
    group: ansible
    issues_enabled: False
    merge_method: rebase_merge
    wiki_enabled: True
    snippets_enabled: True
    import_url: http://git.example.com/example/lab.git
    state: present
  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

project

dictionary

always

API object.


result

dictionary

always

json parsed response from the server.





Authors

  • Werner Dijkerman (@dj-wasabi)
  • Guillaume Martinez (@Lunik)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/gitlab_project_module.html