Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
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.
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 :
- Chemin spécifié via
--config ~/.config/gitea-dashboard/config.yml
Les variables d'environnement ${VAR} sont résolues automatiquement dans le fichier.
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
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.
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.
# 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 |
# 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 :
# 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) :
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.
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
# 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.