Skip to content

Why ghset?

GitHub template repos copy files. Not settings. Not labels. Not rulesets. Not security config.

Every developer who creates repos regularly hits the same wall: 20 minutes of clicking through Settings, Security, Labels, and Rulesets — for configuration they've already done on another repo.

What exists today

We researched every tool in the ecosystem. The results:

ToolStatusProblem
probot/settingsDEADFramework deprecated, unmaintained, vulnerable
github/safe-settingsDEADCrashes on rulesets (#744), ignores deleted rules (#655)
gitstrapDEADInstallation broken since 2021 — brew and curl both fail
dothubDEADLast commit 2017, leaks internal IDs into configs
google/github-repo-automationDEADOfficially DEPRECATED by Google
Terraform GitHub providerALIVERequires HCL, state management, import workflow — overkill
xfgALIVEMulti-repo file sync tool, not a settings copier

Full analysis with issue numbers and user quotes: Devlog #1 — The Graveyard.

What's missing everywhere

No living tool can do this:

bash
# Snapshot an existing repo's settings
ghset describe thumbrise/resilience > template.yml

# Create a new repo with those exact settings
ghset init my-new-repo --from template.yml

The describe direction — snapshotting a repo into a portable config — doesn't exist in any maintained tool. Everyone assumes you'll write YAML by hand.

What ghset does

FeatureghsetTerraformTemplate repos
Copy settings✅ one command✅ HCL + state
Copy security
Copy labels
Copy rulesets✅ complex
Snapshot existing repodescribe
Setup time0 (uses gh)Hours (HCL + state)0
InfrastructureNoneState file + backendNone
Learning curve2 commandsTerraform languageClick UI

Install

bash
go install github.com/thumbrise/ghset@latest

Only prerequisite: gh CLI installed and authenticated.

Usage

bash
# Describe → YAML
ghset describe owner/repo > settings.yml

# Init from file
ghset init new-repo --from settings.yml

# Init directly from another repo
ghset init new-repo --from owner/repo

# Pipe
ghset describe owner/repo | ghset init new-repo

No tokens. No state files. No infrastructure. Just settings, copied.

Apache 2.0 · Built in public · Contributions welcome