58 lines
1.9 KiB
YAML
58 lines
1.9 KiB
YAML
---
|
|
- name: Get list of users
|
|
community.docker.docker_container_exec:
|
|
container: gitea-gitea-1
|
|
command: /bin/bash -c "gitea admin user list"
|
|
register: user_list
|
|
failed_when: false
|
|
changed_when: false
|
|
when: gitea_users | length > 0
|
|
|
|
- name: Extract existing usernames
|
|
ansible.builtin.set_fact:
|
|
gitea_existing_users: "{{ user_list.stdout_lines[1:] | map('regex_replace', '^\\d+\\s+(\\S+)\\s+.*$', '\\1') | list | default([]) }}"
|
|
when:
|
|
- gitea_users | length > 0
|
|
- user_list.stdout_lines | default([]) | length > 1
|
|
|
|
- name: Create Gitea users
|
|
community.docker.docker_container_exec:
|
|
container: gitea-gitea-1
|
|
command: >
|
|
/bin/bash -c "gitea admin user create
|
|
--username {{ user.username }}
|
|
--email {{ user.email }}
|
|
--password {{ user.password }}
|
|
--must-change-password={{ user.must_change_password | default(false) }}
|
|
--admin={{ user.admin | default(false) }}"
|
|
register: _gitea_user_result
|
|
failed_when:
|
|
- '"successfully created" not in _gitea_user_result.stdout'
|
|
changed_when:
|
|
- '"successfully created!" in _gitea_user_result.stdout'
|
|
when:
|
|
- user.username not in gitea_existing_users | default([]) and user.state | default('present') == 'present'
|
|
loop: "{{ gitea_users }}"
|
|
loop_control:
|
|
label: "user={{ user.username }}"
|
|
loop_var: user
|
|
# no_log: true # Avoid logging passwords
|
|
|
|
|
|
- name: Remove gitea users
|
|
community.docker.docker_container_exec:
|
|
container: gitea-gitea-1
|
|
command: >
|
|
/bin/bash -c "gitea admin user delete
|
|
--username {{ user.username }}
|
|
--email {{ user.email }}"
|
|
register: _gitea_user_del_result
|
|
failed_when:
|
|
- '"error" in _gitea_user_del_result.stdout'
|
|
changed_when: "user.username in gitea_existing_users"
|
|
when: "user.username in gitea_existing_users | default([]) and user.state | default('present') == 'absent'"
|
|
loop: "{{ gitea_users }}"
|
|
loop_control:
|
|
label: "user={{ user.username }}"
|
|
loop_var: user
|
|
|