- name: Get list of orgs uri: url: 'https://localhost:3000/api/v1/orgs' method: GET return_content: yes validate_certs: false status_code: 200 body_format: json register: _org_list_raw - name: Filter org list set_fact: _org_list: '{{ _org_list_raw.json | map(attribute="username") | list }}' - name: Copy org logos copy: src: '{{ lookup("first_found", _org_logos) }}' dest: '/var/gitea/data/gitea/avatars/{{ item }}' owner: 1000 group: 1000 mode: 0644 vars: _org_logos: - '{{ item }}.png' - 'default.png' loop: '{{ _org_list }}' register: _logos_updated - name: Get changed logos set_fact: _changed_logos: '{{ _logos_updated.results | selectattr("changed", "equalto", true) | map(attribute="item") | list }}' # NOTE(ianw) 2022-03-17 There is currently no API to update avatar # logos with gitea, so we direct update for now. # * orgs are just entries in the "users" table # * the "avatar" field is a plain-text name of a file in # /var/gitea/data/gitea/avatars - name: Run update query shell: >- /usr/local/bin/docker-compose -f /etc/gitea-docker/docker-compose.yaml exec -T mariadb bash -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "USE gitea; UPDATE user SET avatar = '\''{{ item }}'\'', use_custom_avatar = 1 WHERE name = '\''{{ item }}'\''"' args: executable: '/bin/bash' loop: '{{ _changed_logos }}'