Skip to content

Topics — Configuration

The topics domain reads one optional section of .goga/config.ymltopics, consumed by goga topics create. The section is read lazily: only when a value no CLI flag provided has to come from it.

topics:
  base_ref: origin/main       # default base of created topic branches
  publish_commit: "feat: {slug} todo"  # commit template of the published todo commit
Field Type Required Description
topics.base_ref string No Base revision of a created topic branch — any revision string (branch, remote-tracking ref, tag, hash), stored verbatim with no resolvability check. Absent/YAML-null/empty/whitespace resolves to None; a non-string raises ValueError. Overridden by the --base-ref CLI option; the base resolves as --base-ref > topics.base_ref > the current HEAD under --from-current — a creation with none of the three exits 1
topics.publish_commit string No Commit message template of the published todo commit; the optional {slug} placeholder is replaced with the topic slug, and a template without it is used verbatim. Same normalization and typing rules as base_ref. Overridden by the --commit/-c CLI option (publication-only); the built-in default is goga: create topic {slug}

When topics is absent, the configuration is "everything unset". Unknown keys inside the mapping are ignored — the same stance as lint and codemanifest. A non-mapping topics value, or a non-string field, raises ValueError at load time (see Configuration — validation errors).

The general file location, loading rules, and the shared example live in Project Configuration.