Files
gitea-dashboard/README.md
2026-03-13 04:20:36 +01:00

5.5 KiB

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 :

  1. Chemin spécifié via --config
  2. ~/.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.