Skip to content

Repository files navigation

gh-forge icon

gh-forge

GitHub Actions Cleanup & Management GUI — part of the Forge Suite

Built with PyQt6 · 100% local · No telemetry


Overview

gh-forge bundles two tools, both for the dev-boffin-io organization:

  • Git Remote Manager — a local, multi-remote git GUI (opens first, since it's local-only).
  • GitHub Actions Manager — the org-wide GitHub Actions cleanup/artifacts/ workflows tool (opened from Git Remote Manager's Tools → Open gh-forge menu, Ctrl+G).

It wraps the gh CLI for the Actions side to give you a fast, visual way to clean up storage, manage workflows, browse source code, and more — without touching the terminal.

Features

  • 💻 Code — browse repo info, file tree, rendered README (with images), clone URLs (HTTPS/SSH/CLI) with one-click copy, and source code download (ZIP / tar.gz) with progress + cancel.
  • 📦 Artifacts — view, download, and delete workflow run artifacts per repo, with live download progress, destination path, and cancel.
  • 🧹 Caches — view and bulk-delete GitHub Actions caches per repo.
  • ⚡ Workflows — list workflows, trigger workflow_dispatch runs, re-run (including failed-jobs-only), and stream build logs live.
  • 💾 Storage — scan every repo in the org for artifact + cache storage usage, with live progress and a sortable breakdown table.
  • 🚀 Full Cleanup — one-click cleanup across all repos (artifacts + caches), with a live log and stop button.
  • ☰ Account menu — check gh auth status, login, logout, and a built-in GH CLI Manager:
    • Install / update / upgrade gh (auto-detects apt/dnf/pacman/brew)
    • Auto-detect or manually set the gh binary path
    • Version check
    • Password prompt dialog for sudo-requiring install/update commands
  • 🌿 Git Remote Manager — a separate GitHub-Desktop-style local git GUI (launched from the account menu), for managing multiple remotes on a single local repo: stage/commit, branch switching, commit history with diffs, add/remove remotes, and Push/Pull/Fetch against whichever remote you pick. Includes a GUI credential prompt (no terminal hangs on username/password) and per-host saved credentials.

Requirements

  • Python 3.9+
  • GitHub CLI (gh) — authenticated via gh auth login (or use the built-in GH CLI Manager to install it)
  • PyQt6 (auto-installed by the launcher scripts below)

Running

The launcher scripts automatically create a .venv, install/repair requirements.txt if needed, and run the app — no manual setup required.

Linux / macOS:

./run.sh

Windows (cmd):

run.bat

Windows (PowerShell):

.\run.ps1

Or via Makefile:

make run

If .venv is missing, broken, or has incomplete dependencies, the launcher will (re)create it and reinstall requirements.txt automatically before launching main.py.

Building a standalone binary

Builds run in a fully isolated virtual environment and produce a single executable in bin/, with all build artifacts cleaned up afterwards.

Linux (AMD64 / ARM64):

chmod +x build.sh
./build.sh

Windows (cmd):

build.bat

Windows (PowerShell):

.\build.ps1

Installation (Linux)

make install      # builds, installs binary, creates desktop entry, sets up PATH
make uninstall     # removes binary + desktop entry
make help          # show all available targets

CI/CD

Three GitHub Actions workflows build platform binaries automatically (.github/workflows/):

Workflow Target
build-linux-amd64.yml Linux x86_64
build-linux-arm64.yml Linux ARM64 (Termux/proot-Debian compatible)
build-windows.yml Windows x64 (.exe)

Each can be triggered manually via Actions → Run workflow, or automatically on push to main when relevant files change.

Project Structure

gh-forge/
├── main.py              # thin entry point — launches Git Remote Manager first
├── core/                # gh CLI wrapper, settings, background workers
├── panels/              # Code, Artifacts, Caches, Workflows, Storage, Cleanup
├── ui/
│   ├── style.py            # gh-forge stylesheet
│   ├── gh_manager.py        # GH CLI install/update dialog
│   └── actions_window.py    # GitHub Actions Manager window (opened via Tools menu)
├── git_manager/          # standalone multi-remote git GUI (launched from account menu)
│   ├── core/              # git_worker, credentials/askpass, diff renderer
│   ├── dialogs/           # clone, new repo, add remote, credentials, options
│   ├── ui/                # stylesheet
│   └── main_window.py     # GitRemoteManager + launch()
├── ui/                   # stylesheet + GH CLI manager dialog
├── assets/               # app icon
├── requirements.txt
├── run.sh / .bat / .ps1   # auto-venv launchers
├── build.sh / .bat / .ps1 # isolated binary builds
├── Makefile
├── .gitignore
└── .github/workflows/

License

MIT — see LICENSE.

About

​A bundled GUI featuring a local multi-remote Git Manager and a gh CLI-powered GitHub Actions Manager for workflow and storage cleanup.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages