Playbook #10

/home/zuul/src/opendev.org/opendev/system-config/playbooks/test-manage-projects.yaml

Report Status CLI Date Duration Controller User Versions Hosts Plays Tasks Results Files Records
18 Jul 2025 21:13:19 +0000 00:03:08.06 bridge99.opendev.org root Ansible 2.15.13 ara 1.7.2 (client), 1.7.2 (server) Python 3.10.12 1 1 7 7 7 0

File: /home/zuul/src/opendev.org/opendev/system-config/playbooks/roles/gitea-set-org-logos/tasks/main.yaml

- 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 }}'