new gitea_sync role
This commit is contained in:
@@ -147,3 +147,6 @@
|
|||||||
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
|
||||||
|
|||||||
@@ -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
|
||||||
44
ansible/arcodange/factory/roles/gitea_sync/tasks/main.yml
Normal file
44
ansible/arcodange/factory/roles/gitea_sync/tasks/main.yml
Normal 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
|
||||||
5
ansible/arcodange/factory/roles/gitea_sync/vars/main.yml
Normal file
5
ansible/arcodange/factory/roles/gitea_sync/vars/main.yml
Normal 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 }}'
|
||||||
Reference in New Issue
Block a user