Sign inSign up

cplieger/github-scout

By cplieger

Updated about 2 hours ago

Cross-repo GitHub watcher for failed runs, open PRs, issues and alerts — shipped to Loki/Grafana

Image
Developer tools
Monitoring & observability
0

10K+

cplieger/github-scout repository overview

github-scout

One cross-repo view of everything that needs a look across your GitHub repos: open pull requests, open issues, code-scanning alerts, and failed Actions runs, shipped to Loki and rendered by a ready-made Grafana dashboard, with a click-through link on every row.

The problem

If you have more than a handful of repositories, "is anything waiting on me: a stale PR, an open issue, a security alert, a broken nightly job?" is a surprisingly hard question to answer:

  • The Grafana GitHub datasource plugin can list workflow runs for exactly one repository and one workflow file per query. There is no "all workflows, all repos" mode.
  • GitHub's org-level endpoints don't help a personal account, and private repos have no cross-repo feed at all.
  • The GitHub UI shows you each of these one repo at a time, and email notifications are easy to tune out.

So a broken nightly job (or an open code-scanning alert) in a repo you haven't opened in a week goes unnoticed. github-scout closes that gap.

What it does

github-scout polls every repository it can see for a configured owner on a schedule and surfaces four actionable signals across all of them, each as a structured JSON log line. Ship those lines to Loki with Grafana Alloy (or any log collector) and the bundled dashboard gives you:

  • Open pull requests: every open PR across every repo, newest first, with a click-through link (Renovate PRs filtered out by default);
  • Open issues: every open issue, with labels and author (Renovate and auto-generated trackers filtered out by default);
  • Code-scanning alerts: every open CodeQL / code-scanning alert, colour- coded by severity;
  • Failed Actions runs: every failed, timed-out, or startup-failed run across all repos, newest first, with a click-through link;
  • a scout-health tile so you know the watcher itself is still scanning.

It discovers repositories and workflows dynamically on every scan, so a new repo (or a new workflow inside an existing one) is picked up automatically with zero configuration changes.

Pull

docker pull cplieger/github-scout:latest

Also published to ghcr.io/cplieger/github-scout with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.

Quick start

# Example compose for github-scout. See the README for all configuration options and hardening.
services:
  github-scout:
    image: ghcr.io/cplieger/github-scout:latest
    container_name: github-scout
    restart: unless-stopped

    environment:
      # Required. Keep the token in a .env file beside this compose; see the README for token scopes.
      GITHUB_OWNER: "${GITHUB_OWNER:?set GITHUB_OWNER - the login whose repos to scan}"
      GITHUB_TOKEN: "${GITHUB_TOKEN:?set GITHUB_TOKEN - see README for token scopes}"
      SCAN_INTERVAL: "15m"  # Go duration between scans (the daemon always self-schedules)

Documentation

License

GPL-3.0-or-later. See LICENSE. The image carries the license text of every bundled component under /usr/share/licenses/.

Third-party attributions are in THIRD_PARTY_NOTICES.md.

Tag summary

Content type

Image

Digest

sha256:bb89de76d

Size

3.8 MB

Last updated

about 2 hours ago

docker pull cplieger/github-scout