mirror of
https://github.com/MrUnknownDE/mrunknownde.git
synced 2026-04-06 00:31:57 +02:00
210 lines
11 KiB
YAML
210 lines
11 KiB
YAML
# 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 <your-email@example.com>
|
|
|
|
# --- 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
|