Bon, pas tout Github, juste les projets auxquels je participe.
Il y a moyen de faire ça manuellement avec git clone --mirror
. Je voulais quelque chose qui aille au moins lister mes projets pour les synchroniser automatiquement sans que j’ai besoin de les ajouter manuellement à mes scripts de sauvegarde.
J’ai trouvé git-sync (attention, il y a beaucoup d’outils du même nom) qui fait exactement ce que je veux.
La configuration
# Repository settings
include_forks: true # Include forked repositories
include_wiki: true # Include wiki's
include_repos: [] # Include specific repositories
exclude_repos: [] # Exclude specific repositories
include_orgs: [] # Include repositories from specific organizations
exclude_orgs: [] # Exclude repositories from specific organizations
raw_git_urls: [] # Raw valid git URLs
# Authentication
username: username
tokens: [xxxxxx]
# Server settings
backup_dir: /path/to/backup-dir
clone_type: mirror # Default: bare
concurrency: 5
retry:
count: 3
delay: 10 # in seconds
platform: github
server:
domain: github.com
protocol: https
notification:
enabled: false
Et pour lancer git-sync --config /path/to/config.yaml
Au premier essai ça a synchronisé énormément de choses. Ça liste tous les dépôts où vous êtes membres, donc aussi tous les dépôts privés qui vous ont été partagés. Je me suis rendu compte qu’il y en avait un paquet pour moi, et j’ai pu faire un peu de ménage. Ça m’a aussi permis de marquer comme archives un paquet de vieux dépôts inutilisés, et de supprimer des trucs vides ou à peine commencés.
Je n’ai pas besoin de sauvegarder tout ça très fréquemment. Une fois par semaine devrait suffire. Maintenant, comme ça ne télécharge que ce qui change, j’exécuterai peut-être en quotidien.
Laisser un commentaire