devctl

command module
v8.64.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

README

CircleCI

devctl

devctl is a command-line tool designed to streamline development workflows at Giant Swarm. It provides various commands to help manage repositories and generate files.

Installation

Important: We recommend downloading the latest release from our releases page rather than using go install. This ensures you get a properly built binary with:

  • Correct version information
  • Git commit information for traceability
  • Build timestamps
  • All necessary build flags
  • Generated code and mocks for testing

While go install will work, it won't include this important metadata and may miss generated code that helps with debugging and version tracking.

# Not recommended
go install github.com/giantswarm/devctl/v7@latest

Recommended: Download the latest release from

https://github.com/giantswarm/devctl/releases

Features

Repository set-up (devctl repo)

Giant Swarm repositories are declared in the team files of giantswarm/github; the reconciler creates and keeps them as declared. devctl repo create validates a declaration through the engine, prints the dry run and opens the team-file pull request as you; devctl repo status prints a repository's set-up state. See docs/repo.md.

devctl repo create --team bumblebee --name my-service --component-type service --flavour app --language go --description "What it does"
devctl repo status my-service
Running Tests
go test ./...
Debug Mode

Set LOG_LEVEL=debug to see detailed output:

devctl --log-level debug repo status my-service

Contributing

Please check our contributing guidelines for details on how to contribute to this project.

License

devctl is licensed under the Apache 2.0 License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
gen
pr
repo/internal/auth
Package auth resolves the GitHub token the repo commands act with: the person's own, so a pull request they open is theirs.
Package auth resolves the GitHub token the repo commands act with: the person's own, so a pull request they open is theirs.
repo/internal/engine
Package engine is what the repo commands share to run the set-up steps of pkg/reposetup/reconcile as the person: the clients from the token environment variables, the repository slug, the log adapter and the result on stdout.
Package engine is what the repo commands share to run the set-up steps of pkg/reposetup/reconcile as the person: the clients from the token environment variables, the repository slug, the log adapter and the result on stdout.
internal
env
pr
validate
Package validate constrains the caller-supplied strings that devctl interpolates into filesystem paths, subprocess arguments and URLs.
Package validate constrains the caller-supplied strings that devctl interpolates into filesystem paths, subprocess arguments and URLs.
pkg
circleciclient
Package circleciclient is devctl's client for the CircleCI API: the calls the repository set-up engine makes for a project — follow and unfollow (v1.1), the token's user, the project, its settings and checkout keys, its pipelines and their workflows and jobs (v2) — and nothing else.
Package circleciclient is devctl's client for the CircleCI API: the calls the repository set-up engine makes for a project — follow and unfollow (v1.1), the token's user, the project, its settings and checkout keys, its pipelines and their workflows and jobs (v2) — and nothing else.
gen
renovate
Package renovate provides helpers to surgically edit Renovate configuration files (renovate.json and renovate.json5) in place, preserving comments, quoting style and key order of the original file.
Package renovate provides helpers to surgically edit Renovate configuration files (renovate.json and renovate.json5) in place, preserving comments, quoting style and key order of the original file.
reposetup
Package reposetup is the front half of the repository set-up engine: it reads a team file of giantswarm/github, validates its entries against the repositories schema — and, for the entries about to create a repository, the creation rules — derives the template each repository is scaffolded from and returns the dry-run value the clients render — the team-file entry as it would be written, the implied template, the verdict of the name check and the guard notices.
Package reposetup is the front half of the repository set-up engine: it reads a team file of giantswarm/github, validates its entries against the repositories schema — and, for the entries about to create a repository, the creation rules — derives the template each repository is scaffolded from and returns the dry-run value the clients render — the team-file entry as it would be written, the implied template, the verdict of the name check and the guard notices.
reposetup/manager
Package manager is the client of giantswarm-repo-manager, the MCP server behind muster that keeps the repository inventory.
Package manager is the client of giantswarm-repo-manager, the MCP server behind muster that keeps the repository inventory.
reposetup/reconcile
Package reconcile is the back half of the repository set-up engine: every set-up step of a declared repository as a check and a repair, run in order by Runner.Run against GitHub and CircleCI, with the outcome as one structured Result the inventory stores.
Package reconcile is the back half of the repository set-up engine: every set-up step of a declared repository as a check and a repair, run in order by Runner.Run against GitHub and CircleCI, with the outcome as one structured Result the inventory stores.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL