# gitea-dashboard Dashboard CLI affichant en une commande l'état de tous les repos d'une instance Gitea : issues ouvertes, dernières releases et progression des milestones. ## Prérequis - Python >= 3.10 - Accès à une instance Gitea avec un token API - Dépendances : `requests`, `rich`, `PyYAML` ## Installation ```bash pip install -e . ``` ## Configuration ### Variables d'environnement | Variable | Description | Défaut | |----------|-------------|--------| | `GITEA_URL` | URL de l'instance Gitea | `http://192.168.0.106:3000` | | `GITEA_TOKEN` | Token API Gitea (requis) | — | Pour créer un token : Gitea > Settings > Applications > Generate Token. ```bash export GITEA_URL=https://gitea.tsmse.fr # Définir GITEA_TOKEN avec la valeur obtenue depuis Gitea > Settings > Applications ``` ### Fichier de configuration YAML Le dashboard peut être configuré via un fichier YAML, évitant de répéter les variables d'environnement à chaque session. Le fichier est recherché dans l'ordre suivant : 1. Chemin spécifié via `--config` 2. `~/.config/gitea-dashboard/config.yml` Les variables d'environnement `${VAR}` sont résolues automatiquement dans le fichier. ```yaml url: https://gitea.tsmse.fr token: ${GITEA_TOKEN} ``` La priorité de résolution est : options CLI > variables d'environnement > fichier de configuration > valeurs par défaut. ## Usage ```bash gitea-dashboard # ou python -m gitea_dashboard # Avec un fichier de configuration spécifique gitea-dashboard --config /chemin/vers/config.yml ``` ### Vérification de la connexion L'option `--health` vérifie que l'instance Gitea est accessible et affiche sa version ainsi que le nombre de repos disponibles. Exit code 0 si la connexion réussit, 1 sinon. ```bash gitea-dashboard --health # Gitea 1.21.4 — 12 repos accessibles ``` ### Filtrage des repos L'option `--repo`/`-r` filtre les repos à afficher (sous-chaîne, insensible à la casse). L'option `--exclude`/`-x` exclut des repos de l'affichage. Les deux options sont cumulables et répétables. ```bash # Afficher uniquement les repos contenant "api" gitea-dashboard --repo api # Afficher les repos contenant "dashboard" ou "monitor" gitea-dashboard -r dashboard -r monitor # Exclure les repos contenant "archive" ou "test" gitea-dashboard --exclude archive --exclude test # Combiner inclusion et exclusion gitea-dashboard --repo projet --exclude archive ``` ### Tri des repos L'option `--sort`/`-s` trie les repos selon un critère : | Valeur | Description | |--------|-------------| | `name` | Ordre alphabétique (défaut) | | `issues` | Nombre d'issues décroissant | | `release` | Date de release décroissante | | `activity` | Date du dernier commit décroissante | ```bash # Trier par nombre d'issues (les plus actifs en premier) gitea-dashboard --sort issues # Trier par activité récente gitea-dashboard -s activity ``` ### Colonnes configurables L'option `--columns` permet de choisir les colonnes affichées dans le tableau : ```bash # Afficher uniquement les colonnes repo et issues gitea-dashboard --columns repo,issues # Exclure la colonne description gitea-dashboard --columns -description # Lister les colonnes disponibles gitea-dashboard --columns help ``` Pour masquer la colonne description, l'option historique `--no-desc` reste disponible (équivalent à `--columns -description`). ### Vue milestones L'option `--milestones` affiche un tableau dédié avec la progression de chaque milestone (colonnes Repo/Milestone/Open/Closed/Progress) : ```bash gitea-dashboard --milestones # Export JSON des milestones gitea-dashboard --milestones --format json ``` ### Export JSON L'option `--format json` exporte les données du dashboard au format JSON au lieu de l'affichage tabulaire. Utile pour intégrer le dashboard dans d'autres outils. ```bash gitea-dashboard --format json gitea-dashboard --format json > export.json ``` ### Exemple de sortie ``` Gitea Dashboard ┏━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Repo ┃ Issues ┃ Release ┃ Dernier commit ┃ Description ┃ ┡━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ mon-projet │ 3 │ v1.3.0 (il y a 2j) │ il y a 3h │ Mon super projet de dashboard │ │ autre-repo │ 0 │ — │ il y a 5j │ — │ └─────────────────┴────────┴──────────────────────┴────────────────┴──────────────────────────────────────────┘ Milestones mon-projet / v2.0 : 3/5 (60%) [échéance dépassée] ``` ## Développement ```bash # Installer avec les dépendances de développement pip install -e ".[dev]" # Lancer les tests pytest # Vérifier le style ruff check src/ tests/ ``` ## Licence Usage personnel.