GitHub CLI extension · read only

When CI goes silent, keep the receipt.

One command gathers the queue, jobs, reruns, available logs, runner evidence, and public platform status for a single GitHub Actions incident—then redacts it for review.

  • No telemetry
  • Read-only scopes
  • Free and open source
Five pale ceramic fragments marked by a cobalt line beside one dark stone, arranged like a run timeline
Fig. 01 Separate observations, preserved as one incident witness.

01 / The gap

A failed run page is not an incident record.

Queue delays disappear. Logs arrive late—or never. Runner journals live elsewhere. The public status page tells you what it knows now. Witness captures those observations together, with timestamps and uncertainty intact.

02 / The evidence strata

Observe first.
Classify second.

The bundle separates facts from its cautious interpretation, so another maintainer can inspect the trail without trusting a black box.

  1. A

    Run & retry lineage

    Workflow metadata, job transitions, queue timing, every recorded attempt.

    GitHub API
  2. B

    Logs that actually exist

    Available Actions logs, ANSI removed and secrets pattern-redacted.

    Run archive
  3. C

    Runner witness

    Self-hosted journals you explicitly attach—never silently collected.

    Local file
  4. D

    Platform observation

    Public Actions component state, observed time, and its limits.

    Timestamped

03 / Example receipt

Read the evidence, not the tea leaves.

This local demo makes no network requests. Change the incident to see how uncertainty changes the label.

No specimen selected yet.
Build one to inspect its source states and label.

04 / Install

Make the witness while the incident is fresh.

Requires GitHub CLI and read access to the repository. The extension requests no write scope and never retries a run.

Install gh extension install B-Divyesh/ci-outage-witness
Capture gh outage-witness OWNER/REPO RUN_ID

Add --runner-log journal.txt for self-hosted evidence and repeat --redact 'pattern' for repository-specific identifiers.

05 / Honest limits

A witness is not a verdict.

Probable means probable. A public status incident and a delayed run can support platform degradation; neither proves a provider root cause.

Redaction needs review. Known credential shapes and your expressions are removed. Arbitrary secrets in prose may evade patterns.

Missing is evidence too. Unavailable logs and status are recorded as unavailable, never quietly omitted or guessed.