This page was machine-translated from English. Report issues.

Comment créer un générateur d'insignes de couverture de code GitHub

Créez un outil puissant qui génère et met automatiquement à jour les insignes de couverture de code pour les dépôts GitHub. Ce projet simplifie le processus de présentation de la qualité du code, encourage de meilleures pratiques de test et fournit des informations précieuses aux développeurs et aux parties prenantes.

Create your own plan

Learn2Vibe AI

Online

AI

What do you want to build?

Résumé Simple

Un générateur d'insignes de couverture de code GitHub convivial qui automatise le processus de création et d'affichage des métriques de couverture de code, améliorant la transparence des projets et l'assurance qualité.

Document d'Exigences Produit (PRD)

Objectifs :

  • Développer une application conviviale pour générer des insignes de couverture de code pour les dépôts GitHub
  • Automatiser le processus de calcul et de mise à jour des métriques de couverture de code
  • S'intégrer parfaitement à l'écosystème GitHub
  • Fournir des insignes clairs et visuellement attrayants affichant les pourcentages de couverture

Public cible :

  • Développeurs de logiciels et équipes utilisant GitHub pour le contrôle de version
  • Responsables de projets open source
  • Professionnels de l'assurance qualité

Principales fonctionnalités :

  1. Intégration GitHub pour l'accès aux dépôts et le support des webhooks
  2. Calcul automatique de la couverture de code
  3. Conception d'insignes personnalisables
  4. Suivi et rapports historiques de la couverture
  5. Prise en charge de plusieurs langages de programmation et frameworks de test
  6. Tableau de bord utilisateur pour gérer plusieurs projets

Exigences des utilisateurs :

  • Processus de configuration facile avec authentification OAuth GitHub
  • Interface utilisateur intuitive pour configurer les paramètres de couverture et afficher les rapports
  • Mises à jour d'insignes en temps réel lors des changements de code
  • Possibilité d'intégrer les insignes dans les fichiers README et d'autres documents

Flux Utilisateur

  1. Inscription de l'utilisateur et intégration GitHub :

    • L'utilisateur s'inscrit à l'application
    • S'authentifie avec GitHub OAuth
    • Sélectionne les dépôts à surveiller pour la couverture de code
  2. Génération d'insignes de couverture :

    • L'utilisateur configure les paramètres de couverture pour un dépôt
    • L'application calcule la couverture de code initiale
    • L'insigne est généré et les instructions d'intégration sont fournies
  3. Affichage et gestion des rapports de couverture :

    • L'utilisateur accède au tableau de bord pour afficher les métriques de couverture sur tous les projets
    • Analyse les données historiques et les tendances
    • Ajuste les paramètres ou déclenche des mises à jour manuelles si nécessaire

Spécifications Techniques

  • Frontend : React.js pour une interface utilisateur dynamique et réactive
  • Backend : Node.js avec Express.js pour le développement d'API
  • Base de données : PostgreSQL pour stocker les données des utilisateurs et les métriques de couverture
  • Authentification : GitHub OAuth pour l'authentification des utilisateurs
  • Analyse de couverture : Outils spécifiques aux langages (par exemple, Jest pour JavaScript, Coverage.py pour Python)
  • Génération d'insignes : Bibliothèque de génération SVG (par exemple, D3.js ou manipulation SVG personnalisée)
  • Intégration d'API : API GitHub pour l'accès aux dépôts et la gestion des webhooks
  • Hébergement : Plateforme cloud comme Heroku ou AWS pour la mise à l'échelle
  • CI/CD : Actions GitHub pour les tests automatisés et le déploiement

Points de Terminaison API

  • POST /api/auth/github : Gérer l'authentification OAuth GitHub
  • GET /api/repositories : Récupérer les dépôts GitHub de l'utilisateur
  • POST /api/coverage/configure : Configurer le suivi de la couverture pour un dépôt
  • GET /api/coverage/:repoId : Récupérer les données de couverture actuelles pour un dépôt
  • POST /api/coverage/:repoId/update : Déclencher une mise à jour manuelle de la couverture
  • GET /api/badges/:repoId : Générer et servir l'insigne SVG de couverture

Schéma de Base de Données

Table des utilisateurs :

  • id (PK)
  • github_id
  • username
  • email
  • access_token

Table des dépôts :

  • id (PK)
  • user_id (FK vers Users)
  • github_repo_id
  • name
  • coverage_config (JSON)

Table des métriques de couverture :

  • id (PK)
  • repository_id (FK vers Repositories)
  • timestamp
  • coverage_percentage
  • lines_covered
  • total_lines

Structure de Fichiers

/src /components Header.js Footer.js Dashboard.js RepositoryList.js CoverageChart.js BadgeConfigurator.js /pages Home.js Login.js Dashboard.js RepositorySettings.js /api github.js coverage.js badges.js /utils svgGenerator.js coverageCalculator.js /styles global.css components.css /public /assets logo.svg favicon.ico /server /routes auth.js repositories.js coverage.js badges.js /models user.js repository.js coverageMetric.js /services githubService.js coverageService.js server.js README.md package.json .env

Plan de Mise en Œuvre

  1. Mise en place du projet (1-2 jours)

    • Initialiser le frontend React et le backend Node.js
    • Configurer le contrôle de version et la structure du projet
  2. Authentification et intégration GitHub (3-4 jours)

    • Mettre en œuvre le flux d'authentification OAuth GitHub
    • Créer les fonctionnalités d'inscription et de connexion des utilisateurs
  3. Gestion des dépôts (2-3 jours)

    • Développer les fonctionnalités de listing et de sélection des dépôts
    • Mettre en place la configuration des webhooks pour les dépôts sélectionnés
  4. Moteur de calcul de couverture (4-5 jours)

    • Créer un système modulaire pour différents langages de programmation
    • Implémenter la logique centrale de calcul de la couverture
  5. Génération d'insignes (2-3 jours)

    • Développer la génération SVG pour les insignes
    • Créer des options de personnalisation pour l'apparence des insignes
  6. Tableau de bord utilisateur (3-4 jours)

    • Construire l'interface du tableau de bord principal
    • Mettre en œuvre les visualisations de l'historique et des tendances de couverture
  7. Développement de l'API (3-4 jours)

    • Créer des points de terminaison d'API RESTful
    • Implémenter la persistance des données avec PostgreSQL
  8. Tests et assurance qualité (2-3 jours)

    • Écrire des tests unitaires et d'intégration
    • Effectuer des tests manuels et corriger les bugs
  9. Documentation et déploiement (2-3 jours)

    • Rédiger la documentation utilisateur et développeur
    • Mettre en place le pipeline CI/CD et déployer en production

Stratégie de Déploiement

  1. Choisissez un fournisseur cloud (par exemple, Heroku ou AWS) pour héberger l'application
  2. Configurez un service de base de données PostgreSQL gérée
  3. Configurez les variables d'environnement pour les informations sensibles
  4. Mettez en place un pipeline CI/CD avec GitHub Actions :
    • Exécutez les tests à chaque poussée sur la branche principale
    • Déployez automatiquement sur l'environnement de staging en cas de réussite des tests
    • Approbation manuelle pour le déploiement en production
  5. Configurez la surveillance et la journalisation (par exemple, Sentry pour le suivi des erreurs, Datadog pour le suivi des performances)
  6. Mettez en place des sauvegardes automatiques de la base de données
  7. Utilisez un CDN pour servir les assets statiques afin d'améliorer les performances
  8. Configurez des certificats SSL pour les connexions HTTPS sécurisées

Justification de la Conception

  • React.js choisi pour le frontend en raison de son architecture à base de composants et de son vaste écosystème, facilitant le développement rapide d'une interface utilisateur dynamique.
  • Node.js et Express.js sélectionnés pour le backend afin de maintenir une pile JavaScript, permettant le partage de code et améliorant la productivité des développeurs.
  • PostgreSQL choisi comme base de données pour sa robustesse dans la gestion des données relationnelles et son support des champs JSON, utiles pour stocker des configurations de couverture flexibles.
  • Le format SVG utilisé pour les insignes afin d'assurer des graphiques de haute qualité et évolutifs, adaptés à divers contextes d'affichage.
  • Approche modulaire pour le calcul de la couverture adoptée pour prendre en charge plusieurs langages de programmation et faciliter l'extension future.
  • Authentification OAuth GitHub mise en œuvre pour une expérience utilisateur fluide et un accès sécurisé aux données des dépôts.
  • Stratégie de déploiement cloud choisie pour la mise à l'échelle et la facilité de maintenance, avec CI/CD pour garantir des mises à jour fiables et fréquentes.