Skip to content

Repository files navigation

Mission Control

A real-time CI/CD dashboard for monitoring GitHub Actions pipelines across multiple repositories — including GitHub Enterprise (GHE) instances.

Built with React, TypeScript, Vite, and Tailwind CSS.

Features

  • Multi-repo monitoring — Add any GitHub or GHE repository via URL; no hardcoded configuration
  • Pipeline overview — Workflow runs with health bars, durations, branch badges, and conclusion status
  • Interactive summary cards — Click any top-level stat card (Repositories, Pipelines, Passing, Failing, In Progress, Annotations, Pass Rate) to reveal detailed breakdowns: per-repo rates, per-workflow stats, failure timelines, annotation frequency analysis, and more
  • Annotations panel — Errors, warnings, and notices from CI runs with level indicators and filtering
  • Failures panel — Failed jobs with branch/workflow filters; copy-to-clipboard prompts for AI-assisted fixing
  • Pull requests & issues — Open PRs and issues across all tracked repos
  • Security panel — Dependabot alerts and code scanning findings
  • Quality scores — Per-repo quality metrics computed from open issues, PRs, and security alerts
  • Branch filtering — Filter by branch (main, staging, etc.) in failures and annotations panels
  • Auto-refresh — Polls every 60 seconds
  • Dark / light theme — Toggle in the header
  • OAuth & PAT authentication — GitHub OAuth device flow or personal access tokens for both GitHub and GHE

Getting Started

Prerequisites

  • Node.js 18+
  • npm

Install & Run

git clone https://github.com/chdinh/mission-control.git
cd mission-control
npm install
npm run dev

Or use the launcher script:

./run.sh

The dashboard opens at http://localhost:5173 (or the port set in .env).

Add Repositories

Click the gear icon in the header and paste any GitHub or GHE repository URL:

https://github.com/owner/repo
https://github.example.com/org/repo
owner/repo  (defaults to github.com)

Repositories are persisted in localStorage.

Authentication

Tokens are needed for private repos and to avoid API rate limits.

Option A — Personal Access Token (PAT): Open Settings → Authentication → enter a PAT with repo and read:org scopes.

Option B — OAuth App (dev server only):

  1. Register an OAuth App on your GitHub / GHE instance
  2. Copy .env.example to .env and fill in credentials:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...

# For GitHub Enterprise:
GHE_URL=https://github.example.com
GHE_CLIENT_ID=...
GHE_CLIENT_SECRET=...
  1. Restart the dev server — the "Sign in" button becomes available.

GitHub Enterprise

To connect a GHE instance:

  1. Set GHE_URL in your .env file (e.g. https://github.example.com)
  2. The Vite dev server proxies GHE API requests automatically
  3. Add GHE repos using their full URL; the dashboard auto-detects the host type

Tech Stack

Layer Technology
UI React 18, TypeScript
Styling Tailwind CSS 4
Build Vite
API GitHub REST API (proxied via Vite dev server)
State React hooks + localStorage

Project Structure

src/
  api/           GitHub/GHE API clients and OAuth flow
  components/    Dashboard panels and UI components
  config/        Repository configuration and hooks
  hooks/         Custom hooks (pipelines, extras, theme, animation)
  types.ts       TypeScript type definitions

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages