mirror of
https://github.com/lukaszraczylo/ghtracker.git
synced 2026-10-12 00:45:38 +00:00
ghtracker authenticates as a GitHub App and scans a configured list of repositories on a schedule. It serves a dashboard, a JSON state endpoint, a health probe and Prometheus metrics. The dashboard lists only items that need attention: failing workflows, pull requests that wait too long or fail their checks, stale issues and projects that failed to scan. It has search, dynamic filters and a button that rescans on demand. The Vue app is embedded in the Go binary. The client protects the GitHub rate limit with conditional requests, a request reserve and Retry-After handling.
24 lines
903 B
YAML
24 lines
903 B
YAML
listen: ':8080'
|
|
refresh_interval: 6h # minimum 1m; each cycle costs roughly 6 + 2 per open PR requests per repo
|
|
manual_refresh: true # the Refresh button and POST /refresh, limited to once per 5m; false disables them
|
|
|
|
github:
|
|
app_id: 123456
|
|
private_key_file: /secrets/ghtracker.pem # or set $GHTRACKER_PRIVATE_KEY to the PEM contents
|
|
installation_id: 0 # 0 = discover per repo; needed when repos span several owners
|
|
api_url: https://api.github.com
|
|
|
|
thresholds: # negative disables a check
|
|
pr_warn_after: 48h # non-draft PR open this long = warning
|
|
pr_crit_after: 168h # critical
|
|
issue_stale_after: 720h # no activity this long = warning (aggregated per repo)
|
|
workflow_stuck_after: 6h # queued / in progress this long = warning
|
|
|
|
max_items: 100 # per repo, issues and PRs
|
|
concurrency: 2
|
|
|
|
repos:
|
|
- lukaszraczylo/kubemirror
|
|
- lukaszraczylo/semver-generator
|
|
- lukaszraczylo/traefikoidc
|