# Name des Workflows, der in der GitHub Actions UI angezeigt wird name: GitHub Profil Metriken on: # Trigger: Führt den Workflow nach einem Zeitplan aus (z.B. alle 12 Stunden) schedule: - cron: '0 */12 * * *' # Läuft um 00:00 und 12:00 UTC # Trigger: Ermöglicht das manuelle Starten des Workflows über die Actions-Seite workflow_dispatch: # Trigger: Führt den Workflow bei jedem Push zum main-Branch aus (optional) #push: # branches: # - main # Oder dein Standard-Branch (z.B. master) jobs: # Job-ID (kann beliebig sein) metrics: # Betriebssystem für den Runner runs-on: ubuntu-latest # Berechtigungen für den Job (nur nötig, wenn GITHUB_TOKEN verwendet wird UND Ergebnisse committet werden sollen) # Wenn du ein PAT (METRICS_TOKEN) verwendest, sind diese hier nicht unbedingt für die Metrics-Action selbst nötig, # aber 'contents: write' wird benötigt, damit der Workflow Änderungen committen kann. permissions: contents: write environment: name: production steps: # Schritt 1: Code auschecken # Dieser Schritt ist notwendig, damit der Workflow die generierten Metrik-Dateien # in dein Repository committen kann. - name: Code auschecken uses: actions/checkout@v4 # Schritt 2: Metriken generieren mit lowlighter/metrics - name: GitHub Metriken generieren # Verwendet die neueste Version der lowlighter/metrics Action uses: lowlighter/metrics@latest with: # === Wichtige Konfiguration === # Dein GitHub-Benutzername # Ersetze 'DEIN_BENUTZERNAME' mit deinem tatsächlichen GitHub-Benutzernamen user: MrUnknownDE # Dein Personal Access Token (PAT), das du als Secret gespeichert hast. # Dies wird für den Zugriff auf die GitHub API benötigt, um deine Daten abzurufen. # Alternativ: ${{ secrets.GITHUB_TOKEN }} - hat aber Einschränkungen (Rate Limits, weniger Datenzugriff). # Die Verwendung eines PAT wird dringend empfohlen. token: ${{ secrets.METRICS_TOKEN }} # === Layout und allgemeine Optionen === # Basis-Layout-Vorlage (z.B. classic, terminal, rsm) template: classic # Welche Hauptsektionen sollen angezeigt werden? (Komma-getrennt) # Verfügbare Sektionen: header, activity, community, repositories.list, code, lines, traffic, # languages, followup, discussions, notable, people.followers, people.following, etc. base: header, activity, community, repositories.list, code, lines, traffic, languages, followup, people.followers # Zeitzone für Datums- und Zeitangaben (z.B. Europe/Berlin, America/New_York) config_timezone: Europe/Berlin # Anzeigeart (z.B. large, normal, condensed) - beeinflusst die Größe/Dichte der Darstellung config_display: large # Ausgabeformat (svg oder json) config_output: svg # === Plugin-Konfigurationen (Beispiele) === # Aktiviere und konfiguriere die Plugins, die du verwenden möchtest. # Setze den Wert auf 'yes', um ein Plugin zu aktivieren. # Aktivitäts-Plugin plugin_activity: yes plugin_activity_limit: 5 # Max. Anzahl angezeigter Aktivitäten plugin_activity_days: 14 # Zeitraum der Aktivitäten in Tagen (0 = unbegrenzt) plugin_activity_filter: all # Welche Aktivitäten anzeigen (all, push, pr, issue, review, comment, ...) plugin_activity_timestamps: yes # Zeitstempel anzeigen? plugin_activity_ignored: '' # Ignorierte Benutzer (Komma-getrennt) # Sprachen-Plugin plugin_languages: yes plugin_languages_limit: 8 # Max. Anzahl angezeigter Sprachen plugin_languages_threshold: 0% # Mindestprozentsatz für eine Sprache (z.B. '2%') plugin_languages_colors: github # Farbschema (github, random, ...) plugin_languages_sections: most-used # Welche Sektionen (most-used, recently-used) plugin_languages_details: bytes-size, percentage # Details anzeigen (bytes-size, percentage) plugin_languages_ignored: html, css # Ignorierte Sprachen (Komma-getrennt) # Codezeilen-Plugin plugin_lines: yes plugin_lines_history: yes # Verlauf der Codezeilen anzeigen? plugin_lines_sections: base # Sektionen (base, history) plugin_lines_ignored: '' # Ignorierte Repositories # Traffic-Plugin (benötigt PAT mit 'repo' Scope) plugin_traffic: yes # Isokalender-Plugin (Beitragskalender) plugin_isocalendar: yes plugin_isocalendar_duration: half-year # Dauer (half-year, full-year) # Gewohnheiten-Plugin (Habits) plugin_habits: yes plugin_habits_from: 200 # Anzahl Tage für die Analyse (max. 1 Jahr = 365) plugin_habits_days: 14 # Anzahl Tage für aktuelle Gewohnheiten plugin_habits_charts: yes # Diagramme anzeigen? (commits, issues, prs, reviews) plugin_habits_trim: yes # Leere Tage/Wochen am Anfang/Ende entfernen? # Follow-up-Plugin (Issues, PRs) plugin_followup: yes plugin_followup_sections: user # Sektionen (user, repositories) plugin_followup_archived: no # Archivierte Repos einschließen? # Personen-Plugin (Follower, Following) plugin_people: yes plugin_people_types: followers # Angezeigte Typen (followers, following, starred) plugin_people_limit: 24 # Max. Anzahl Personen plugin_people_size: 28 # Avatar-Größe in Pixeln plugin_people_shuffle: yes # Reihenfolge zufällig mischen? # Repositories-Plugin plugin_repositories: yes plugin_repositories_order: featured, pinned, starred, random # Reihenfolge der Repos plugin_repositories_limit: 4 # Limit für angezeigte Repos in der Liste # Stargazers-Plugin (zeigt einen Graph der Sterne über Zeit) plugin_stargazers: yes plugin_stargazers_charts_type: classic # Typ des Graphen (classic, modern) # Musik-Plugin (YouTube Music) plugin_music: yes plugin_music_provider: youtube # Wählt YouTube Music als Anbieter plugin_music_token: ${{ secrets.YOUTUBE_MUSIC_TOKENS }} # Dein gespeicherter Cookie-Header plugin_music_limit: 5 # Max. Anzahl anzuzeigender Titel plugin_music_played_at: yes # Zeigt an, wann der Titel gehört wurde? (yes/no) plugin_music_mode: recent # Explizit hinzufügen # plugin_music_ignored: "" # Künstler, die ignoriert werden sollen (Komma-getrennt) # === Ausgabe-Konfiguration === # Pfad zur Ausgabedatei (oder mehrere, Komma-getrennt). # Diese Datei wird im Repository gespeichert. output_path: github-metrics.svg # Aktion nach der Generierung: # 'commit': Committet die generierte(n) Datei(en) direkt ins Repository. # 'none': Macht nichts (nützlich, wenn du den Commit selbst in einem späteren Schritt machen willst). output_action: commit # Optionale Commit-Nachricht (Standard ist "chore: update metrics") # commit_message: "docs: update profile metrics" # Optionaler Commit-Autor (Standard ist der GitHub Actions Bot) # commit_author: Your Name # --- Beispiel für mehrere Ausgabedateien --- # Wenn du verschiedene Metriken in separaten SVGs haben möchtest: # 1. Definiere mehrere Pfade in 'output_path' # output_path: metrics.base.svg, metrics.languages.svg, metrics.activity.svg # 2. Weise jedem Plugin seine Ausgabedatei zu mit 'plugin_X_output' # plugin_languages: yes # plugin_languages_output: metrics.languages.svg # plugin_activity: yes # plugin_activity_output: metrics.activity.svg # 3. Die 'base' Sektionen gehen standardmäßig in die erste Datei in 'output_path' (metrics.base.svg) # base: header, community, repositories.list # Nur diese für die Basis-SVG