Un petit script qui automatise une corvée simple : transformer chaque sous-dossier du répertoire courant en repo GitHub à part entière, avec un nommage cohérent.
Cas d'usage typique : un dossier de semaine de cours contenant plusieurs projets,
que tu veux publier individuellement sur GitHub sans faire git init +
gh repo create à la main pour chacun.
semaine_4/
├── projet_toto/
└── projet_tata/
cd semaine_4/
./create_repo.sh
crée les repos GitHub semaine_4_projet_toto et semaine_4_projet_tata,
chacun poussé depuis son sous-dossier respectif.
git inits'il n'y a pas déjà un.git(sinon il le laisse tel quel)git add .puis un commit"1st commit"(si rien n'a changé, il le signale sans planter)- Vérifie si un repo GitHub du même nom existe déjà :
- si oui → ajoute le remote et push dessus
- si non →
gh repo create+ push
Le script est idempotent : tu peux le relancer plusieurs fois sans dupliquer de repos ni planter sur les commits vides.
- git
- GitHub CLI (
gh), authentifié via :gh auth login - PowerShell 7+ (pour Windows uniquement)
Le script doit être exécutable et lancé depuis le dossier parent qui contient les sous-dossiers à publier (pas depuis l'intérieur d'un sous-dossier).
git clone https://github.com/Mathos6/create-repo.git
chmod +x create-repo/create_repo.sh
cd /chemin/vers/ton/dossier/de/projets
/chemin/vers/create-repo/create_repo.sh./install.shÇa copie le script dans ~/.local/bin/create-repos. Si ce dossier n'est pas
dans ton PATH, le script d'installation te donne la ligne à ajouter à ton
~/.bashrc / ~/.zshrc.
Une fois installé, depuis n'importe quel dossier contenant des sous-projets :
create-repos| Option | Effet |
|---|---|
| (aucune) | Crée les repos en public (par défaut) |
--private |
Crée les repos en privé |
create-repos --privateAutoriser l'exécution des scripts PowerShell :
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserEt installer la commande dans le PATH:
.\install.ps1Une version équivalente est fournie dans create_repo.ps1 :
.\create_repo.ps1
.\create_repo.ps1 -PrivateMêmes prérequis (git, gh authentifié), pas d'installation particulière
nécessaire — il suffit de l'exécuter depuis le dossier parent des projets.
Si tu n'es pas sous Windows nativement, Git Bash
ou WSL permettent
aussi de lancer directement create_repo.sh.
- Le nom du repo est dérivé du nom du dossier courant + nom du sous-dossier
(
<dossier_parent>_<sous-dossier>) ; pas de personnalisation du pattern pour l'instant. - Suppose que tu veux un repo par sous-dossier de premier niveau (pas récursif).
- Ne gère pas les conflits de nommage GitHub autres que "le repo existe déjà" (ex : nom déjà pris par quelqu'un d'autre si jamais le login n'est pas le bon).
MIT — fais-en ce que tu veux.