new gitea_sync role

This commit is contained in:
2024-08-18 11:34:37 +02:00
parent 22533623bd
commit aaaee3066a
4 changed files with 58 additions and 1 deletions

View File

@@ -146,4 +146,7 @@
include_role: include_role:
name: arcodange.factory.gitea_repo name: arcodange.factory.gitea_repo
vars: vars:
gitea_repo_name: factory gitea_repo_name: factory
- name: Sync other repos
include_role:
name: arcodange.factory.gitea_sync

View File

@@ -0,0 +1,5 @@
gitea_username: arcodange
gitea_organization: arcodange-org
# URL de base du serveur Gitea
gitea_base_url: http://{{ groups.gitea[0] }}:3000

View File

@@ -0,0 +1,44 @@
- name: Lister les dépôts de l'organisation GitHub
uri:
url: "https://api.github.com/orgs/{{ github_organization }}/repos"
method: GET
headers:
Authorization: "token {{ github_api_token }}"
status_code: 200
register: github_repos
- name: Lister les dépôts du groupe GitLab
uri:
url: "https://gitlab.com/api/v4/groups/{{ gitlab_root_group }}/projects"
method: GET
headers:
Authorization: "Bearer {{ gitlab_api_token }}"
status_code: 200
register: gitlab_repos
- name: Generate Gitea Token
include_role:
name: arcodange.factory.gitea_token
- name: Lister les dépôts de l'organisation Gitea
uri:
url: "{{ gitea_base_url }}/api/v1/orgs/{{ gitea_organization }}/repos"
method: GET
headers:
Authorization: "token {{ gitea_api_token }}"
status_code: 200
register: gitea_repos
- name: Synchroniser
include_role:
name: arcodange.factory.gitea_repo
vars:
github_repo_names: "{{ github_repos.json | map(attribute='name') | list }}"
gitlab_repo_names: "{{ gitlab_repos.json | map(attribute='name') | list }}"
gitea_repo_names: "{{ gitea_repos.json | map(attribute='name') | list }}"
all_repos: "{{ github_repo_names | union(gitlab_repo_names) | union(gitea_repo_names) }}"
repos_common_to_all: "{{ github_repo_names | intersect(gitlab_repo_names) | intersect(gitea_repo_names) }}"
repos_incomplete: "{{ all_repos | difference(repos_common_to_all) }}"
loop: "{{ repos_incomplete }}"
loop_control:
loop_var: gitea_repo_name

View File

@@ -0,0 +1,5 @@
github_api_token: '{{ hostvars[groups.gitea[0]].gitea_vault.github_api_token }}'
gitlab_api_token: '{{ hostvars[groups.gitea[0]].gitea_vault.gitlab_api_token }}'
github_organization: '{{ gitea_organization }}'
gitlab_root_group: '{{ gitea_organization }}'