# 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 1 * * *' # Läuft um 01: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, languages, lines, repositories.list, notable, gists, traffic, isocalendar, habits, reactions, followup, achievements, people, tweets, anilist # 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: yes # 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: 64 # Avatar-Größe in Pixeln plugin_people_shuffle: yes # Reihenfolge zufällig mischen? # Star List (über das Repositories Plugin) # Zeigt eine Liste deiner Repositories, inklusive der, die du mit Stern markiert hast. # Stelle sicher, dass 'starred' in 'plugin_repositories_order' enthalten ist. plugin_repositories: yes # Muss aktiviert sein plugin_repositories_order: featured, pinned, starred, random # Füge 'starred' hinzu oder behalte es bei plugin_repositories_limit: 6 # Passe das Limit für die angezeigte Repo-Liste an # Stargazers-Plugin (zeigt einen Graph der Sterne über Zeit) plugin_stargazers: no plugin_stargazers_charts_type: classic # Typ des Graphen (classic, modern) # Notable Contributions Plugin # Zeigt Repositories an, zu denen du signifikant beigetragen hast (außer deinen eigenen) plugin_notable: yes plugin_notable_limit: 3 # Max. Anzahl anzuzeigender Beiträge plugin_notable_repositories: yes # Auch eigene Repos anzeigen, wenn Beiträge von anderen kamen? (Standard: no) # Gists Plugin # Zeigt deine neuesten öffentlichen Gists an plugin_gists: yes # plugin_gists_limit: 5 # Max. Anzahl anzuzeigender Gists (Standard ist oft 5 oder ähnlich) # Reactions Plugin # Zeigt eine Zusammenfassung der Reaktionen auf deine Issues, PRs und Kommentare plugin_reactions: yes plugin_reactions_limit: 200 # Limit der Elemente (Issues, PRs, Kommentare), die analysiert werden plugin_reactions_details: percentage, count # Welche Details anzeigen (percentage, count) plugin_reactions_ignored_repositories: '' # Repos ignorieren (Komma-getrennt) # plugin_reactions_limit_issues: 100 # Optional: Separates Limit für Issues # plugin_reactions_limit_discussions: 100 # Optional: Separates Limit für Discussions # Achievements Plugin # Zeigt deine GitHub Achievements an (z.B. Arctic Code Vault Contributor, Mars Helicopter Contributor) plugin_achievements: yes plugin_achievements_threshold: C # Mindest-Rang des Achievements (X, S, A, B, C) plugin_achievements_secrets: yes # Auch "geheime" Achievements anzeigen? (z.B. Pair Extraordinaire) plugin_achievements_display: detailed # Anzeigeart (compact, detailed) # plugin_achievements_limit: 0 # Limit der Achievements (0 = unbegrenzt) # Latest Tweets Plugin # ACHTUNG: Benötigt Twitter API v2 Bearer Token als Secret! plugin_tweets: yes plugin_tweets_user: mrunknownde # Ersetze dies mit deinem Twitter-Benutzernamen (ohne @) plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }} # Dein Twitter Bearer Token Secret plugin_tweets_limit: 3 # Max. Anzahl anzuzeigender Tweets # AniList Plugin # Zeigt deine letzten Aktivitäten auf AniList (Anime/Manga) plugin_anilist: yes plugin_anilist_user: mrunknownde # Ersetze dies mit deinem AniList-Benutzernamen plugin_anilist_limit: 5 # Max. Anzahl anzuzeigender Einträge (Anime/Manga) plugin_anilist_sections: watching, completed, reading # Welche Sektionen anzeigen? (watching, reading, completed, etc.) # plugin_anilist_media: anime, manga # Welche Medientypen anzeigen? (anime, manga) - Standard ist oft beides # === 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: "[CRON] 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