feat: add GitHub repository dashboard with Prometheus metrics

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.
This commit is contained in:
2026-10-02 04:28:52 +01:00
commit 5313b56774
110 changed files with 10967 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
name: Pull request checks
on:
pull_request:
permissions:
contents: read
pull-requests: write
security-events: write
jobs:
go:
uses: lukaszraczylo/shared-actions/.github/workflows/go-pr.yaml@main
with:
go-version: '>=1.24'
secrets: inherit
ui:
name: UI checks
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 22
- run: npx --yes [email protected] install --frozen-lockfile
- run: npx --yes [email protected] lint
- run: npx --yes [email protected] typecheck
- run: npx --yes [email protected] test
+23
View File
@@ -0,0 +1,23 @@
name: Test, build, release
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- '**.md'
- '.github/workflows/ci.yaml'
permissions:
id-token: write
contents: write
packages: write
jobs:
release:
uses: lukaszraczylo/shared-actions/.github/workflows/go-release.yaml@main
with:
go-version: '>=1.24'
docker-enabled: true
secrets: inherit