mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-15 07:00:32 -07:00
allow gitlab-project-members module to handle user level "owner" (#9953)
* fix(modules/gitlab-project-members): fix ... ... module not being able to handle owner access level * add changelog fragment for this pr * fix and extend integration tests * extend parameter docu as requested by review * also add docu for other parameters * remove pip install break-packages flag from ... ... integration tests --------- Co-authored-by: Mirko Wilhelmi <Mirko.Wilhelmi@sma.de>
This commit is contained in:
parent
02ffb6e7e3
commit
1157b7102f
4 changed files with 24 additions and 12 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- gitlab_project_members - extend choices parameter ``access_level`` by missing upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953).
|
|
@ -48,8 +48,9 @@ options:
|
||||||
description:
|
description:
|
||||||
- The access level for the user.
|
- The access level for the user.
|
||||||
- Required if O(state=present), user state is set to present.
|
- Required if O(state=present), user state is set to present.
|
||||||
|
- V(owner) was added in community.general 10.6.0.
|
||||||
type: str
|
type: str
|
||||||
choices: ['guest', 'reporter', 'developer', 'maintainer']
|
choices: ['guest', 'reporter', 'developer', 'maintainer', 'owner']
|
||||||
gitlab_users_access:
|
gitlab_users_access:
|
||||||
description:
|
description:
|
||||||
- Provide a list of user to access level mappings.
|
- Provide a list of user to access level mappings.
|
||||||
|
@ -67,8 +68,9 @@ options:
|
||||||
description:
|
description:
|
||||||
- The access level for the user.
|
- The access level for the user.
|
||||||
- Required if O(state=present), user state is set to present.
|
- Required if O(state=present), user state is set to present.
|
||||||
|
- V(owner) was added in community.general 10.6.0.
|
||||||
type: str
|
type: str
|
||||||
choices: ['guest', 'reporter', 'developer', 'maintainer']
|
choices: ['guest', 'reporter', 'developer', 'maintainer', 'owner']
|
||||||
required: true
|
required: true
|
||||||
version_added: 3.7.0
|
version_added: 3.7.0
|
||||||
state:
|
state:
|
||||||
|
@ -84,9 +86,10 @@ options:
|
||||||
- Adds/remove users of the given access_level to match the given O(gitlab_user)/O(gitlab_users_access) list. If omitted
|
- Adds/remove users of the given access_level to match the given O(gitlab_user)/O(gitlab_users_access) list. If omitted
|
||||||
do not purge orphaned members.
|
do not purge orphaned members.
|
||||||
- Is only used when O(state=present).
|
- Is only used when O(state=present).
|
||||||
|
- V(owner) was added in community.general 10.6.0.
|
||||||
type: list
|
type: list
|
||||||
elements: str
|
elements: str
|
||||||
choices: ['guest', 'reporter', 'developer', 'maintainer']
|
choices: ['guest', 'reporter', 'developer', 'maintainer', 'owner']
|
||||||
version_added: 3.7.0
|
version_added: 3.7.0
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -239,16 +242,16 @@ def main():
|
||||||
project=dict(type='str', required=True),
|
project=dict(type='str', required=True),
|
||||||
gitlab_user=dict(type='list', elements='str'),
|
gitlab_user=dict(type='list', elements='str'),
|
||||||
state=dict(type='str', default='present', choices=['present', 'absent']),
|
state=dict(type='str', default='present', choices=['present', 'absent']),
|
||||||
access_level=dict(type='str', choices=['guest', 'reporter', 'developer', 'maintainer']),
|
access_level=dict(type='str', choices=['guest', 'reporter', 'developer', 'maintainer', 'owner']),
|
||||||
purge_users=dict(type='list', elements='str', choices=[
|
purge_users=dict(type='list', elements='str', choices=[
|
||||||
'guest', 'reporter', 'developer', 'maintainer']),
|
'guest', 'reporter', 'developer', 'maintainer', 'owner']),
|
||||||
gitlab_users_access=dict(
|
gitlab_users_access=dict(
|
||||||
type='list',
|
type='list',
|
||||||
elements='dict',
|
elements='dict',
|
||||||
options=dict(
|
options=dict(
|
||||||
name=dict(type='str', required=True),
|
name=dict(type='str', required=True),
|
||||||
access_level=dict(type='str', choices=[
|
access_level=dict(type='str', choices=[
|
||||||
'guest', 'reporter', 'developer', 'maintainer'], required=True),
|
'guest', 'reporter', 'developer', 'maintainer', 'owner'], required=True),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
|
@ -286,6 +289,7 @@ def main():
|
||||||
'reporter': gitlab.const.REPORTER_ACCESS,
|
'reporter': gitlab.const.REPORTER_ACCESS,
|
||||||
'developer': gitlab.const.DEVELOPER_ACCESS,
|
'developer': gitlab.const.DEVELOPER_ACCESS,
|
||||||
'maintainer': gitlab.const.MAINTAINER_ACCESS,
|
'maintainer': gitlab.const.MAINTAINER_ACCESS,
|
||||||
|
'owner': gitlab.const.OWNER_ACCESS,
|
||||||
}
|
}
|
||||||
|
|
||||||
gitlab_project = module.params['project']
|
gitlab_project = module.params['project']
|
||||||
|
|
|
@ -16,3 +16,5 @@ dedicated_access_users:
|
||||||
access_level: "developer"
|
access_level: "developer"
|
||||||
- name: username2
|
- name: username2
|
||||||
access_level: "maintainer"
|
access_level: "maintainer"
|
||||||
|
- name: username3
|
||||||
|
access_level: "owner"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Install required library
|
- name: Install required library
|
||||||
pip:
|
ansible.builtin.pip:
|
||||||
name: python-gitlab
|
name: python-gitlab
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
gitlab_user: "{{ username }}"
|
gitlab_user: "{{ username }}"
|
||||||
|
access_level: "{{ gitlab_access_level }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Add a User to A GitLab Project
|
- name: Add a User to A GitLab Project
|
||||||
|
@ -58,6 +59,7 @@
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
gitlab_user: "{{ username }}"
|
gitlab_user: "{{ username }}"
|
||||||
|
access_level: "{{ gitlab_access_level }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: remove_gitlab_project_members_state
|
register: remove_gitlab_project_members_state
|
||||||
|
|
||||||
|
@ -72,6 +74,7 @@
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
gitlab_user: "{{ username }}"
|
gitlab_user: "{{ username }}"
|
||||||
|
access_level: "{{ gitlab_access_level }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: remove_gitlab_project_members_state_again
|
register: remove_gitlab_project_members_state_again
|
||||||
|
|
||||||
|
@ -90,15 +93,16 @@
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Remove a list of Users to A GitLab Project
|
- name: Remove a list of Users to A GitLab Project
|
||||||
community.general.gitlab_project_members::
|
community.general.gitlab_project_members:
|
||||||
api_url: "{{ gitlab_server_url }}"
|
api_url: "{{ gitlab_server_url }}"
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
gitlab_user: "{{ userlist }}"
|
gitlab_user: "{{ userlist }}"
|
||||||
|
access_level: "{{ gitlab_access_level }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Add a list of Users with Dedicated Access Levels to A GitLab Project
|
- name: Add a list of Users with Dedicated Access Levels to A GitLab Project
|
||||||
community.general.gitlab_project_members::
|
community.general.gitlab_project_members:
|
||||||
api_url: "{{ gitlab_server_url }}"
|
api_url: "{{ gitlab_server_url }}"
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
|
@ -106,7 +110,7 @@
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Remove a list of Users with Dedicated Access Levels to A GitLab Project
|
- name: Remove a list of Users with Dedicated Access Levels to A GitLab Project
|
||||||
community.general.gitlab_project_members::
|
community.general.gitlab_project_members:
|
||||||
api_url: "{{ gitlab_server_url }}"
|
api_url: "{{ gitlab_server_url }}"
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
|
@ -114,11 +118,11 @@
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Add a user, remove all others which might be on this access level
|
- name: Add a user, remove all others which might be on this access level
|
||||||
community.general.gitlab_project_members::
|
community.general.gitlab_project_members:
|
||||||
api_url: "{{ gitlab_server_url }}"
|
api_url: "{{ gitlab_server_url }}"
|
||||||
api_token: "{{ gitlab_api_access_token }}"
|
api_token: "{{ gitlab_api_access_token }}"
|
||||||
project: "{{ gitlab_project }}"
|
project: "{{ gitlab_project }}"
|
||||||
gitlab_user: "{{ username }}"
|
gitlab_user: "{{ username }}"
|
||||||
access_level: "{{ gitlab_access_level }}"
|
access_level: "{{ gitlab_access_level }}"
|
||||||
pruge_users: "{{ gitlab_access_level }}"
|
purge_users: "{{ gitlab_access_level }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
Loading…
Add table
Reference in a new issue