infra-role-gitea/tasks/token.yml

40 lines
1.2 KiB
YAML

---
- name: Check if API token file exists
stat:
path: '{{ gitea_service_path }}/api-token'
register: gitea_token_file
- name: Create API token
when: not gitea_token_file.stat.exists
block:
- name: Generate API token for admin
uri:
url: '{{ gitea_app_cont_web_url }}/api/v1/users/{{ gitea_app_admin_user }}/tokens'
method: 'POST'
status_code: 201
body_format: 'json'
body: { name: 'ansible' }
return_content: true
user: '{{ gitea_app_admin_user | mandatory }}'
password: '{{ gitea_app_admin_pass | mandatory }}'
force_basic_auth: true
register: gitea_app_admin_token_raw
- name: Create an API token file
copy:
dest: '{{ gitea_service_path }}/api-token'
content: '{{ gitea_app_admin_token_raw.json.sha1 }}'
mode: 0400
when: not gitea_app_admin_token_raw.skipped
- name: Read API token from file
slurp:
path: '{{ gitea_service_path }}/api-token'
register: gitea_app_admin_token_raw
when: gitea_token_file.stat.exists
- name: Decode token from file cointents
set_fact:
gitea_app_admin_token: '{{ gitea_app_admin_token_raw.content | b64decode | trim }}'
when: gitea_token_file.stat.exists