Documentation
¶
There is no documentation for this package.
Directories
¶
| Path | Synopsis |
|---|---|
|
repo/adopt
Package adopt is `devctl repo adopt`: an existing, undeclared repository declared in a team's file.
|
Package adopt is `devctl repo adopt`: an existing, undeclared repository declared in a team's file. |
|
repo/align
Package align is `devctl repo align`: Align now for one repository, through the reconciler, in the mode its team-file entry decides.
|
Package align is `devctl repo align`: Align now for one repository, through the reconciler, in the mode its team-file entry decides. |
|
repo/approve
Package approve is `devctl repo approve`: the approving review of a team-file pull request, as the person, after the team check.
|
Package approve is `devctl repo approve`: the approving review of a team-file pull request, as the person, after the team check. |
|
repo/followcircleci
Package followcircleci is `devctl repo follow-circleci`: the repair of the reconciler's finding circleci-webhook-missing, a follow of the CircleCI project as the person so CircleCI installs its webhook.
|
Package followcircleci is `devctl repo follow-circleci`: the repair of the reconciler's finding circleci-webhook-missing, a follow of the CircleCI project as the person so CircleCI installs its webhook. |
|
repo/get
Package get is `devctl repo get`: one inventory record of giantswarm-repo-manager.
|
Package get is `devctl repo get`: one inventory record of giantswarm-repo-manager. |
|
repo/info
Package info is `devctl repo info`: how giantswarm-repo-manager sees the call -- the caller, the identities, the inventory, the engine.
|
Package info is `devctl repo info`: how giantswarm-repo-manager sees the call -- the caller, the identities, the inventory, the engine. |
|
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/client
Package client is what the repo commands that call giantswarm-repo-manager share: the muster token from the keychain, the manager client over the person's muster endpoint, the output flag, and the text renderers of the answers the verbs have in common.
|
Package client is what the repo commands that call giantswarm-repo-manager share: the muster token from the keychain, the manager client over the person's muster endpoint, the output flag, and the text renderers of the answers the verbs have in common. |
|
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. |
|
repo/internal/write
Package write is what the team-file writes share -- adopt, update, transfer, set-lifecycle: one call to a write tool of giantswarm-repo-manager with dryRun or mode commit, the plan printed on a dry run and the outcome on a commit.
|
Package write is what the team-file writes share -- adopt, update, transfer, set-lifecycle: one call to a write tool of giantswarm-repo-manager with dryRun or mode commit, the plan printed on a dry run and the outcome on a commit. |
|
repo/list
Package list is `devctl repo list`: the inventory of the org's repositories as giantswarm-repo-manager holds it, scoped and filtered as on the Repositories page.
|
Package list is `devctl repo list`: the inventory of the org's repositories as giantswarm-repo-manager holds it, scoped and filtered as on the Repositories page. |
|
repo/renovateplan
Package renovateplan is `devctl repo renovate-plan`: what align-files does about a repository's Renovate configuration, decided by the function the scaffold of `devctl repo create` uses.
|
Package renovateplan is `devctl repo renovate-plan`: what align-files does about a repository's Renovate configuration, decided by the function the scaffold of `devctl repo create` uses. |
|
repo/setlifecycle
Package setlifecycle is `devctl repo set-lifecycle`: a declared repository deprecated, archived or deleted through its team-file entry.
|
Package setlifecycle is `devctl repo set-lifecycle`: a declared repository deprecated, archived or deleted through its team-file entry. |
|
repo/sweep
Package sweep is `devctl repo sweep`: the full inventory sweep, started now.
|
Package sweep is `devctl repo sweep`: the full inventory sweep, started now. |
|
repo/transfer
Package transfer is `devctl repo transfer`: a declared repository moved to another team.
|
Package transfer is `devctl repo transfer`: a declared repository moved to another team. |
|
repo/update
Package update is `devctl repo update`: a declared repository's team-file entry changed.
|
Package update is `devctl repo update`: a declared repository's team-file entry changed. |
|
repo/watch
Package watch is `devctl repo watch`: a new repository followed to readiness after its creation.
|
Package watch is `devctl repo watch`: a new repository followed to readiness after its creation. |
|
reservation/gitops
Package gitops gives the reservation commands one way to find the GitOps repo: a checkout on disk, fast-forwarded to origin/main before any command logic runs.
|
Package gitops gives the reservation commands one way to find the GitOps repo: a checkout on disk, fast-forwarded to origin/main before any command logic runs. |
|
serve
Package serve is devctl serve: the agent-facing commands as MCP tools over streamable HTTP.
|
Package serve is devctl serve: the agent-facing commands as MCP tools over streamable HTTP. |
|
e2e
|
|
|
mock/circleci
Package circleci mocks the CircleCI API v2 and CircleCI's OAuth issuer on one server: DEVCTL_CIRCLECI_API_URL is the server's URL plus APIPrefix, the path circleci.com serves the API under, and DEVCTL_CIRCLECI_OAUTH_URL is the server's URL.
|
Package circleci mocks the CircleCI API v2 and CircleCI's OAuth issuer on one server: DEVCTL_CIRCLECI_API_URL is the server's URL plus APIPrefix, the path circleci.com serves the API under, and DEVCTL_CIRCLECI_OAUTH_URL is the server's URL. |
|
mock/github
Package github mocks the GitHub REST API and the device-flow endpoints of github.com on one server: DEVCTL_GITHUB_API_URL and DEVCTL_GITHUB_OAUTH_URL both point at it.
|
Package github mocks the GitHub REST API and the device-flow endpoints of github.com on one server: DEVCTL_GITHUB_API_URL and DEVCTL_GITHUB_OAUTH_URL both point at it. |
|
mock/muster
Package muster mocks a muster aggregator on one server: its own OAuth authorization server -- the protected-resource metadata of RFC 9728, the server metadata of RFC 8414, dynamic client registration, an authorization endpoint that redirects straight back with a code the way a browser of a person who is signed in already does, the token endpoint issuing access and refresh tokens, userinfo -- and the MCP endpoint /mcp over streamable HTTP, which answers the way a muster aggregator answers a session: the meta-tools listed (list_tools, filter_tools, describe_tool, call_tool, ...), every server tool called through call_tool and answered in its envelope from the scenario's sequences by tool name, and a direct call of a server tool refused as "tool not found".
|
Package muster mocks a muster aggregator on one server: its own OAuth authorization server -- the protected-resource metadata of RFC 9728, the server metadata of RFC 8414, dynamic client registration, an authorization endpoint that redirects straight back with a code the way a browser of a person who is signed in already does, the token endpoint issuing access and refresh tokens, userinfo -- and the MCP endpoint /mcp over streamable HTTP, which answers the way a muster aggregator answers a session: the meta-tools listed (list_tools, filter_tools, describe_tool, call_tool, ...), every server tool called through call_tool and answered in its envelope from the scenario's sequences by tool name, and a direct call of a server tool refused as "tool not found". |
|
mock/registry
Package registry mocks an OCI distribution registry the way a release's artifacts are probed: HEAD and GET of /v2/<name>/manifests/<reference> for images and for charts (names under charts/).
|
Package registry mocks an OCI distribution registry the way a release's artifacts are probed: HEAD and GET of /v2/<name>/manifests/<reference> for images and for charts (names under charts/). |
|
mock/sequence
Package sequence scripts a mock's answers.
|
Package sequence scripts a mock's answers. |
|
scenario
Package scenario is the format of e2e/scenarios/<slug>/: scenario.yaml (the command line, the environment, the mocks' response sequences) and expected.json (the exit code and the JSON document, "*" for a value the scenario does not pin).
|
Package scenario is the format of e2e/scenarios/<slug>/: scenario.yaml (the command line, the environment, the mocks' response sequences) and expected.json (the exit code and the JSON document, "*" for a value the scenario does not pin). |
|
internal
|
|
|
gitremote
Package gitremote reads which GitHub repository a git checkout belongs to from its origin remote.
|
Package gitremote reads which GitHub repository a git checkout belongs to from its origin remote. |
|
gittest
Package gittest runs git for reservation test fixtures, in both cmd/reservation and pkg/reservation, failing the test on error.
|
Package gittest runs git for reservation test fixtures, in both cmd/reservation and pkg/reservation, failing the test on error. |
|
laptop
Package laptop is the wiring of the agent-facing engines on a laptop: the tokens from the keychain, a management cluster from a kubeconfig and tsh.
|
Package laptop is the wiring of the agent-facing engines on a laptop: the tokens from the keychain, a management cluster from a kubeconfig and tsh. |
|
nocredentials
Package nocredentials runs an engine package's tests with no credential store a laptop has: an engine acts only with the clients its caller builds from tokens, so every case passes when each store fails on any access.
|
Package nocredentials runs an engine package's tests with no credential store a laptop has: an engine acts only with the clients its caller builds from tokens, so every case passes when each store fails on any access. |
|
termout
Package termout colours the words devctl prefixes its messages with, and reads the global --log-level flag, for the commands that print on stderr.
|
Package termout colours the words devctl prefixes its messages with, and reads the global --log-level flag, for the commands that print on stderr. |
|
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. |
|
versiongate
Package versiongate is the check that precedes every devctl command but the version commands: an outdated devctl refuses to run until it is updated, or until DEVCTL_UNSAFE_FORCE_VERSION names the running version.
|
Package versiongate is the check that precedes every devctl command but the version commands: an outdated devctl refuses to run until it is updated, or until DEVCTL_UNSAFE_FORCE_VERSION names the running version. |
|
pkg
|
|
|
agentcli
Package agentcli is what devctl's agent-facing commands share: the JSON envelope every one of them prints as its only stdout output, the exit-code table, the clock that DEVCTL_TIME_SCALE speeds up for tests, the endpoint configuration read from the environment, the --progress writer and the retrying transport under the API clients.
|
Package agentcli is what devctl's agent-facing commands share: the JSON envelope every one of them prints as its only stdout output, the exit-code table, the clock that DEVCTL_TIME_SCALE speeds up for tests, the endpoint configuration read from the environment, the --progress writer and the retrying transport under the API clients. |
|
authexec
Package authexec runs another program with the App login's GitHub token in its environment: `devctl auth exec`, and devctl started under a proxied name (a `gh` link to devctl), which runs the next `gh` on PATH so.
|
Package authexec runs another program with the App login's GitHub token in its environment: `devctl auth exec`, and devctl started under a proxied name (a `gh` link to devctl), which runs the next `gh` on PATH so. |
|
authstore
Package authstore holds the identities devctl's agent-facing commands act with: a GitHub user access token of the devctl GitHub App, obtained with the device flow and refreshed without a human; a CircleCI API token obtained with the OAuth 2.0 authorization code flow with PKCE after a one-time dynamic client registration per device; and a muster access token for the installation that runs giantswarm-repo-manager, obtained the same way from muster's own authorization server and refreshed without a human.
|
Package authstore holds the identities devctl's agent-facing commands act with: a GitHub user access token of the devctl GitHub App, obtained with the device flow and refreshed without a human; a CircleCI API token obtained with the OAuth 2.0 authorization code flow with PKCE after a one-time dynamic client registration per device; and a muster access token for the installation that runs giantswarm-repo-manager, obtained the same way from muster's own authorization server and refreshed without a human. |
|
ci
Package ci is what `devctl ci jobs`, `devctl ci job` and `devctl ci rerun` share: the job-level view of a CircleCI pipeline, which tells a slow job (its step still writing output) from a stuck one (no output for an hour), one job's steps with the end of its failed steps' output, and the rerun of one workflow, once an hour, with the CircleCI login of `devctl auth login`.
|
Package ci is what `devctl ci jobs`, `devctl ci job` and `devctl ci rerun` share: the job-level view of a CircleCI pipeline, which tells a slow job (its step still writing output) from a stuck one (no output for an hour), one job's steps with the end of its failed steps' output, and the rerun of one workflow, once an hour, with the CircleCI login of `devctl auth login`. |
|
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 (paged) and their workflows and jobs (v2), a job's steps and their output (v1.1), a workflow's cancel and rerun (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 (paged) and their workflows and jobs (v2), a job's steps and their output (v1.1), a workflow's cancel and rerun (v2) — and nothing else. |
|
circleciconfig
Package circleciconfig reads a repository's CircleCI configuration for the jobs CircleCI runs on a branch or a tag, so a wait that reads CircleCI only through the commit statuses it posts to GitHub knows the jobs that have posted nothing yet: a job behind requires: posts its first status when it starts, after the jobs it requires have finished.
|
Package circleciconfig reads a repository's CircleCI configuration for the jobs CircleCI runs on a branch or a tag, so a wait that reads CircleCI only through the commit statuses it posts to GitHub knows the jobs that have posted nothing yet: a job behind requires: posts its first status when it starts, after the jobs it requires have finished. |
|
mcpserver
Package mcpserver is devctl serve: the agent-facing commands as MCP tools over streamable HTTP, acting on GitHub as the person who calls them.
|
Package mcpserver is devctl serve: the agent-facing commands as MCP tools over streamable HTTP, acting on GitHub as the person who calls them. |
|
mergejob
Package mergejob keeps the detached merges of devctl pr merge --detach: one directory per merge under the user's state directory, named by the merge's handle, holding the job, the merge's log and, once it ended, its document.
|
Package mergejob keeps the detached merges of devctl pr merge --detach: one directory per merge under the user's state directory, named by the merge's handle, holding the job, the merge's log and, once it ended, its document. |
|
prmerge
Package prmerge is the engine behind `devctl pr merge`: the refusals that come before any wait, the wait of pkg/prwait, the merge, then the wait of pkg/releasewait for the release the merge triggered.
|
Package prmerge is the engine behind `devctl pr merge`: the refusals that come before any wait, the wait of pkg/prwait, the merge, then the wait of pkg/releasewait for the release the merge triggered. |
|
prmerge/prmergetest
Package prmergetest is an in-process test double of what a merge reads from and writes to GitHub: a prmerge.GitHub answering from state a test sets, the wait's reads those of prwaittest.GitHub.
|
Package prmergetest is an in-process test double of what a merge reads from and writes to GitHub: a prmerge.GitHub answering from state a test sets, the wait's reads those of prwaittest.GitHub. |
|
prwait
Package prwait is the wait engine behind `devctl pr wait` (and the merge that follows it): one bounded, blocking call that returns when a pull request's head is green, red, or cannot become green as it is.
|
Package prwait is the wait engine behind `devctl pr wait` (and the merge that follows it): one bounded, blocking call that returns when a pull request's head is green, red, or cannot become green as it is. |
|
prwait/prwaittest
Package prwaittest is an in-process test double of what a pull request wait reads from GitHub: a prwait.GitHub answering from state a test sets, one head state per poll.
|
Package prwaittest is an in-process test double of what a pull request wait reads from GitHub: a prwait.GitHub answering from state a test sets, one head state per poll. |
|
releasepromote
Package releasepromote promotes the latest release candidate of auto-release repositories to a stable release: what `devctl release promote` does.
|
Package releasepromote promotes the latest release candidate of auto-release repositories to a stable release: what `devctl release promote` does. |
|
releasewait
Package releasewait waits until a tag's images and charts are pullable: what `devctl release wait` does.
|
Package releasewait waits until a tag's images and charts are pullable: what `devctl release wait` does. |
|
releasewait/releasewaittest
Package releasewaittest are in-process test doubles of what a release wait reads: GitHub, CircleCI, the registries, the team files and the catalog index, answering from state a test sets.
|
Package releasewaittest are in-process test doubles of what a release wait reads: GitHub, CircleCI, the registries, the team files and the catalog index, answering from state a test sets. |
|
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 and lands the team-file changes as the person.
|
Package manager is the client of giantswarm-repo-manager, the MCP server behind muster that keeps the repository inventory and lands the team-file changes as the person. |
|
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. |
|
rerun
Package rerun is what `devctl pr rerun` and `devctl release rerun` share: given the CircleCI pipeline of a pull request's head or of a tag, every finished workflow of it that failed is rerun from failed -- its failed jobs and the jobs that depend on them, the passed ones kept -- with the CircleCI login of `devctl auth login`.
|
Package rerun is what `devctl pr rerun` and `devctl release rerun` share: given the CircleCI pipeline of a pull request's head or of a tag, every finished workflow of it that failed is rerun from failed -- its failed jobs and the jobs that depend on them, the passed ones kept -- with the CircleCI login of `devctl auth login`. |
|
reservation
Package reservation implements the GitOps side of a management cluster reservation: it points one management cluster's copy of one collection app at the dev builds of one branch, as a single commit in the GitOps repo that holds that cluster.
|
Package reservation implements the GitOps side of a management cluster reservation: it points one management cluster's copy of one collection app at the dev builds of one branch, as a single commit in the GitOps repo that holds that cluster. |
|
rolloutwait
Package rolloutwait is devctl rollout wait: block until a release's charts run on an installation.
|
Package rolloutwait is devctl rollout wait: block until a release's charts run on an installation. |
Click to show internal directories.
Click to hide internal directories.