Use gh flarebyte to keep a GitHub repository aligned with the config checked into the repo.
gh-flarebyte is a GitHub CLI extension for managing a repository from a local .gh-flarebyte.cue file. It helps you:
- bootstrap a repository config
- update repo settings from config
- audit drift between config and GitHub
- sync topics and labels from config
- build release artifacts from the configured language
- publish a GitHub release from the build outputs
- discover repositories you contribute to in an organization
gh flarebyte repo initcreates or seeds.gh-flarebyte.cuefor a repository.gh flarebyte repo updateapplies the repo config to GitHub.gh flarebyte repo auditcompares the local config with the live GitHub repository.gh flarebyte repos mine --org <org>lists repositories you contribute to in an organization.
gh flarebyte buildbuilds the project using the language defined in.gh-flarebyte.cue.gh flarebyte releasepublishes a GitHub release from the build outputs.
gh flarebyte --versionprints the CLI version metadata, including version, commit id, and build date.gh flarebyte --version --jsonprints the same version metadata in a machine-readable JSON shape.
Each command should provide actionable help with --help, and error output should explain the problem, the affected config or target, and the next useful command or flag.
The repo config lives in .gh-flarebyte.cue and is the source of truth for:
- repository metadata such as description, homepage, visibility, and template status
- topics
- labels
- build language and artifact layout
- release settings
- repository feature flags
Example:
project: {
org: "flarebyte"
repo: "gh-flarebyte"
}
repository: {
description: "CLI for landing your git commands right"
defaultBranch: "main"
topics: ["gh-extension", "github-cli", "git", "flarebyte"]
labels: [
{
name: "bug"
color: "B60205"
description: "Something is broken"
},
]
}
build: {
language: "go"
outputDir: "build"
checksumFile: "build/checksums.txt"
targets: ["linux-amd64", "darwin-arm64"]
}
release: {
versionSource: "main.project.yaml"
tagPrefix: "v"
notesMode: "generate-notes"
artifactDir: "build"
includeChecksums: true
}- Run
gh flarebyte repo initin a repo that should be managed. - Edit
.gh-flarebyte.cueto match the desired repository state. - Run
gh flarebyte repo updateto sync the repo. - Run
gh flarebyte repo auditto check for drift. - Run
gh flarebyte buildandgh flarebyte releasewhen you are ready to ship.
- Topics are managed as a flat list of strings.
- Labels are managed as structured objects with
name,color, anddescription. - Build is Go-first today, with Dart reserved in the config for later.
- Release publication uses the build outputs already produced by
gh flarebyte build.
