+++ title = "create_repo.sh" description = "Créer un dépôt sur la forge via l'API REST, en passant le nom et la description en arguments." weight = 1 +++ Script Bash qui **crée un dépôt sur la forge** (`forge.gwenaelremond.fr`) en appelant son API REST. ## À quoi ça sert Plutôt que de retaper une longue commande `curl` à chaque fois, le script prend le **nom** et la **description** du dépôt en arguments, et lit le **token d'authentification** dans une variable d'environnement (pour ne jamais l'écrire en dur dans le code). ## Prérequis - `curl` (installé par défaut sur macOS et Linux) - Un **token d'accès** à la forge (Settings → Applications → Generate New Token) ## Utilisation ```bash # 1. Définir le token (une seule fois par session de terminal) export FORGE_TOKEN="ton_token" # 2. Lancer le script ./create_repo.sh ["description"] ``` ### Exemple ```bash export FORGE_TOKEN="b103fb7f..." ./create_repo.sh exercice "Adam" ``` Cela crée le dépôt **exercice** avec la description **Adam**. ## Détail du fonctionnement | Partie du script | Rôle | |------------------|------| | `set -euo pipefail` | Arrête le script à la moindre erreur (sécurité) | | Vérification de `FORGE_TOKEN` | Refuse de tourner si le token n'est pas défini | | `REPO_NAME` / `REPO_DESC` | Récupère les arguments passés en ligne de commande | | `curl -X POST .../api/v1/user/repos` | Envoie la requête de création à l'API | ### La requête envoyée ```bash curl -X POST "https://forge.gwenaelremond.fr/api/v1/user/repos" \ -H "Authorization: token $FORGE_TOKEN" \ -H "Content-Type: application/json" \ -H "accept: application/json" \ -d '{ "name": "exercice", "description": "Adam" }' ``` ## Codes de réponse possibles | Code HTTP | Signification | |-----------|---------------| | `201` | Dépôt créé avec succès | | `409` | Un dépôt portant ce nom existe déjà | | `401` | Token invalide ou manquant | ## Bonne pratique de sécurité ⚠️ **Ne jamais écrire le token en clair** dans le script ni le commiter dans Git. Si un token a été exposé, le **révoquer** et en générer un nouveau dans les paramètres de la forge.