Skip to content

dvelton/gh-launchpad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gh-launchpad

A command center for workflow_dispatch GitHub Actions workflows across multiple repositories.

Launchpad discovers which of your repos have manually-triggerable workflows, lets you dispatch them from one place (with proper input forms), and tracks the resulting runs. Works from the CLI or a local web dashboard.

What it does

  • Discovers all workflow_dispatch workflows across your configured orgs and repos
  • Parses each workflow's YAML to extract input definitions (type, required, default, choices)
  • Triggers workflows with interactive input prompts or a web form
  • Tracks dispatched runs by correlating them back to the GitHub Actions run
  • Records dispatch history in a local SQLite database

Install

Requires the GitHub CLI (gh).

gh extension install dvelton/gh-launchpad

Setup

Tell Launchpad which orgs and repos to scan:

gh launchpad config init
gh launchpad config add-org my-org
gh launchpad config add-repo owner/specific-repo

Then run discovery:

gh launchpad discover

Usage

List discovered workflows

gh launchpad list
WORKFLOW             REPOSITORY           INPUTS     PATH
Deploy Production    my-org/api           3 inputs   .github/workflows/deploy.yml
Run Benchmarks       my-org/api           2 inputs   .github/workflows/bench.yml
Sync Translations    my-org/docs          1 input    .github/workflows/sync-i18n.yml
Release Candidate    my-org/runner        4 inputs   .github/workflows/release-rc.yml

4 workflows across 3 repositories

Trigger a workflow

gh launchpad run my-org/api "Deploy Production" --ref release/v3.2

If the workflow defines inputs and you don't provide them via --input flags, you'll be prompted:

Workflow inputs:
  environment (required) — Target deployment environment [staging/production/canary]: production
  dry_run — Run without deploying [true/false] (default: false):
  tag (required) — Release tag to deploy: v3.2.1

About to dispatch:
  Workflow:  Deploy Production
  Repo:      my-org/api
  Ref:       release/v3.2
  Inputs:
    environment = production
    tag = v3.2.1

Proceed? [Y/n]

Add --watch to follow the run until completion:

gh launchpad run my-org/api "Deploy Production" --watch

Check recent dispatch statuses

gh launchpad status

View dispatch history

gh launchpad history
gh launchpad history --repo my-org/api --status failure --since 2026-04-01

Launch the web dashboard

gh launchpad serve --open

Opens a local dashboard at http://127.0.0.1:8080 with:

  • Overview of all dispatchable workflows across your repos
  • One-click triggering with dynamic input forms
  • Live run status tracking
  • Full dispatch history with filtering

Configuration

Config lives at ~/.config/gh-launchpad/config.yml:

orgs:
  - my-org
  - another-org

repos:
  - owner/specific-repo

exclude:
  - "*/docs"
  - "*/archived-*"

defaults:
  ref: main
  discovery_ttl: 1h
  poll_interval: 5s
  correlation_window: 30s
  host: github.com

Manage via CLI:

gh launchpad config show
gh launchpad config add-org <org>
gh launchpad config add-repo <owner/repo>
gh launchpad config remove-org <org>
gh launchpad config remove-repo <owner/repo>

How run tracking works

When you dispatch a workflow, GitHub's API returns a 204 with no run ID. Launchpad finds the resulting run by querying the workflow's recent runs and matching by timestamp within a configurable correlation window (default: 30 seconds). This works reliably for most use cases. If multiple dispatches happen simultaneously on the same workflow, correlation may be ambiguous.

Data storage

All data is stored locally in ~/.config/gh-launchpad/launchpad.db (SQLite). No external services or infrastructure required. Input values are redacted in history by default.

GHES support

Set defaults.host in your config to your GitHub Enterprise Server hostname. Launchpad uses your gh CLI auth token, so make sure you're authenticated against that host.

Commands reference

Command Description
discover Scan repos for workflow_dispatch workflows
list List discovered workflows
run Trigger a workflow with inputs
status Show recent dispatch statuses
history Full dispatch history with filters
config Manage configuration
serve Launch the web dashboard

License

MIT

About

A gh CLI extension and local dashboard UI for managing workflow_dispatch GitHub Actions across numerous repos

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors