new gitea_sync role
This commit is contained in:
@@ -147,3 +147,6 @@
|
||||
name: arcodange.factory.gitea_repo
|
||||
vars:
|
||||
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