Skip to main content
Version: 1.0

API reference

Everything dispat exposes to something other than a human reader: the command line, the configuration file, and the five Go packages the CLI is built from. There is no server and no HTTP endpoint anywhere in the project, so these three surfaces are the whole of it.

Each surface is stable in its own way. The command line is what a CI pipeline calls, so its flags and exit codes are the contract. The configuration file is what a repository commits, so its keys and defaults are the contract. The Go packages are imported by other programs, so their exported types and functions are the contract.

The command line

CLI reference documents every command and every flag, one page per command, with the exit codes and the global flags on the index page.

Two commands are worth knowing before the rest: dispat status plans a release and prints it without doing anything, and dispat release is the same plan carried out. Everything else either narrows those two or performs one of their steps on its own.

The configuration file

Configuration reference documents every key of dispat.json, dispat.yaml and dispat.toml, including how the file is discovered, what each default is, and how a package overrides its space.

The Go packages

Go packages documents the five modules dispat is assembled from. Each is importable on its own, with no dispat binary, no git repository and no network involved:

PackageWhat it does
pkg/ccmeParses commit messages in the Conventional Commits Monorepo Extension format
pkg/scannerReads dependency manifests across fifteen ecosystems into one shape
pkg/writerRewrites those manifests in place, preserving every byte it does not change
pkg/manifestThe vocabulary the reader and the writer share
pkg/modelsThe typed configuration model, so tooling can author config files as values

The formats around them

Three more pages describe formats rather than surfaces, and belong here for the same reason:

  • Commit messages is the format dispat reads release intent from.
  • Script environment is the set of DISPAT_* variables every stage script receives.
  • Diagnostic codes is the numbered list of everything dispat can report, with what each code means and what to do about it.