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

Wie man einen GitHub-Code-Coverage-Badge-Generator erstellt

Erstellen Sie ein leistungsfähiges Tool, das automatisch Code-Coverage-Badges für GitHub-Repositorys generiert und aktualisiert. Dieses Projekt vereinfacht den Prozess der Präsentation der Codequalität, fördert bessere Testpraktiken und liefert wertvolle Erkenntnisse für Entwickler und Stakeholder.

Create your own plan

Learn2Vibe AI

Online

AI

What do you want to build?

Einfache Zusammenfassung

Ein benutzerfreundlicher Code-Coverage-Badge-Generator für GitHub, der den Prozess des Erstellens und Anzeigen von Code-Coverage-Metriken automatisiert und so die Transparenz und Qualitätssicherung von Projekten verbessert.

Produktanforderungsdokument (PRD)

Ziele:

  • Entwicklung einer benutzerfreundlichen Anwendung zur Generierung von Code-Coverage-Badges für GitHub-Repositorys
  • Automatisierung des Prozesses der Berechnung und Aktualisierung von Code-Coverage-Metriken
  • Nahtlose Integration in das GitHub-Ökosystem
  • Bereitstellung klarer, optisch ansprechender Badges, die Deckungsquoten anzeigen

Zielgruppe:

  • Softwareentwickler und -teams, die GitHub für die Versionskontrolle verwenden
  • Open-Source-Projektverantwortliche
  • Qualitätssicherungsprofis

Schlüsselmerkmale:

  1. GitHub-Integration für den Repositoryzugriff und Webhook-Unterstützung
  2. Automatische Code-Coverage-Berechnung
  3. Anpassbare Badge-Designs
  4. Historische Coverage-Verfolgung und -Berichterstattung
  5. Unterstützung für mehrere Programmiersprachen und Testframeworks
  6. Benutzerdashboard für das Management mehrerer Projekte

Benutzeranforderungen:

  • Einfacher Einrichtungsprozess mit GitHub OAuth-Authentifizierung
  • Intuitive Benutzeroberfläche zum Konfigurieren von Coverage-Einstellungen und Anzeigen von Berichten
  • Echtzeitaktualisierung von Badges bei Codeänderungen
  • Möglichkeit, Badges in README-Dateien und andere Dokumentation einzubinden

Benutzerflüsse

  1. Benutzerregistrierung und GitHub-Integration:

    • Der Benutzer meldet sich für die Anwendung an
    • Authentifiziert sich über GitHub OAuth
    • Wählt Repositorys aus, die für die Code-Coverage überwacht werden sollen
  2. Generierung des Coverage-Badges:

    • Der Benutzer konfiguriert die Coverage-Einstellungen für ein Repository
    • Die Anwendung berechnet die anfängliche Code-Coverage
    • Das Badge wird generiert und die Einbettungsanweisungen werden bereitgestellt
  3. Anzeigen und Verwalten von Coverage-Berichten:

    • Der Benutzer greift auf das Dashboard zu, um Coverage-Metriken über Projekte hinweg zu betrachten
    • Analysiert historische Daten und Trends
    • Passt die Einstellungen an oder löst manuelle Updates nach Bedarf aus

Technische Spezifikationen

  • Frontend: React.js für eine dynamische und responsive Benutzeroberfläche
  • Backend: Node.js mit Express.js für die API-Entwicklung
  • Datenbank: PostgreSQL für die Speicherung von Benutzerdaten und Coverage-Metriken
  • Authentifizierung: GitHub OAuth für die Benutzerauthentifizierung
  • Coverage-Analyse: Sprachspezifische Tools (z. B. Jest für JavaScript, Coverage.py für Python)
  • Badge-Generierung: SVG-Generierungsbibliothek (z. B. D3.js oder benutzerdefinierte SVG-Manipulation)
  • API-Integration: GitHub-API für den Repositoryzugriff und das Webhook-Management
  • Hosting: Cloud-Plattform wie Heroku oder AWS für die Skalierbarkeit
  • CI/CD: GitHub Actions für automatisierte Tests und Bereitstellung

API-Endpunkte

  • POST /api/auth/github: Verarbeiten der GitHub OAuth-Authentifizierung
  • GET /api/repositories: Abrufen der GitHub-Repositorys des Benutzers
  • POST /api/coverage/configure: Einrichten der Coverage-Verfolgung für ein Repository
  • GET /api/coverage/:repoId: Abrufen der aktuellen Coverage-Daten für ein Repository
  • POST /api/coverage/:repoId/update: Auslösen eines manuellen Coverage-Updates
  • GET /api/badges/:repoId: Generieren und Bereitstellen des Coverage-Badge-SVG

Datenbankschema

Tabelle Benutzer:

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

Tabelle Repositorys:

  • id (PK)
  • user_id (FK zu Benutzer)
  • github_repo_id
  • name
  • coverage_config (JSON)

Tabelle CoverageMetriken:

  • id (PK)
  • repository_id (FK zu Repositorys)
  • timestamp
  • coverage_percentage
  • lines_covered
  • total_lines

Dateistruktur

/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

Implementierungsplan

  1. Projekteinrichtung (1-2 Tage)

    • Initialisierung des React-Frontends und des Node.js-Backends
    • Einrichtung der Versionskontrolle und Projektstruktur
  2. Authentifizierung und GitHub-Integration (3-4 Tage)

    • Implementierung des GitHub OAuth-Flows
    • Erstellen von Benutzerregistrierung und Login-Funktionalität
  3. Repositoryverwaltung (2-3 Tage)

    • Entwicklung von Repository-Auflistungs- und Auswahlmerkmalen
    • Implementierung der Webhook-Einrichtung für ausgewählte Repositorys
  4. Coverage-Berechnungsmotor (4-5 Tage)

    • Erstellen eines modularen Systems für verschiedene Programmiersprachen
    • Implementierung der zentralen Coverage-Berechnungslogik
  5. Badge-Generierung (2-3 Tage)

    • Entwicklung der SVG-Generierung für Badges
    • Erstellen von Anpassungsoptionen für das Badge-Erscheinungsbild
  6. Benutzerdashboard (3-4 Tage)

    • Aufbau der Hauptdashboard-Oberfläche
    • Implementierung von Coverage-Verlauf und Trendvisualisierungen
  7. API-Entwicklung (3-4 Tage)

    • Erstellen von RESTful-API-Endpunkten
    • Implementierung der Datenpersistenz mit PostgreSQL
  8. Tests und Qualitätssicherung (2-3 Tage)

    • Schreiben von Unit- und Integrationstests
    • Durchführen von manuellen Tests und Fehlerbehebung
  9. Dokumentation und Bereitstellung (2-3 Tage)

    • Schreiben von Benutzer- und Entwicklerdokumentation
    • Einrichten der CI/CD-Pipeline und Bereitstellung in der Produktion

Bereitstellungsstrategie

  1. Wählen Sie einen Cloud-Anbieter (z. B. Heroku oder AWS) für das Hosting der Anwendung aus
  2. Richten Sie einen verwalteten PostgreSQL-Datenbankdienst ein
  3. Konfigurieren Sie Umgebungsvariablen für sensible Informationen
  4. Implementieren Sie eine CI/CD-Pipeline mit GitHub Actions:
    • Führen Sie Tests bei jedem Push zum Hauptzweig durch
    • Stellen Sie bei erfolgreichem Testabschluss automatisch in der Staging-Umgebung bereit
    • Manuelle Genehmigung für die Produktionsbereitstellung
  5. Richten Sie Überwachung und Protokollierung ein (z. B. Sentry für Fehlererfassung, Datadog für Leistungsüberwachung)
  6. Implementieren Sie automatische Sicherungen für die Datenbank
  7. Verwenden Sie ein CDN zum Bereitstellen statischer Assets, um die Leistung zu verbessern
  8. Richten Sie SSL-Zertifikate für sichere HTTPS-Verbindungen ein

Designbegründung

  • React.js für das Frontend ausgewählt aufgrund seiner komponentenbasierten Architektur und des großen Ökosystems, was die schnelle Entwicklung einer dynamischen Benutzeroberfläche erleichtert.
  • Node.js und Express.js für das Backend ausgewählt, um einen JavaScript-Stack beizubehalten, was den Codesharing und die Steigerung der Entwicklerproduktivität ermöglicht.
  • PostgreSQL als Datenbank ausgewählt aufgrund seiner Robustheit bei der Handhabung relationaler Daten und der Unterstützung von JSON-Feldern, die für die Speicherung flexibler Coverage-Konfigurationen nützlich sind.
  • SVG-Format für Badges verwendet, um hochwertige, skalierbare Grafiken zu gewährleisten, die für verschiedene Anzeigeumgebungen geeignet sind.
  • Modularer Coverage-Berechnungsansatz übernommen, um mehrere Programmiersprachen zu unterstützen und eine einfache Erweiterung in der Zukunft zu ermöglichen.
  • GitHub OAuth implementiert für ein nahtloses Benutzererlebnis und sicheren Zugriff auf Repositorydaten.
  • Cloud-Bereitstellungsstrategie für Skalierbarkeit und einfache Wartung gewählt, mit CI/CD, um zuverlässige und häufige Updates zu gewährleisten.