Configuration
goga reads configuration from two files: the project config .goga/config.yml in the project root (created by goga init) and the optional machine-wide home config ~/.goga/config.yml.
| File | Scope | Required |
|---|---|---|
Project Configuration — .goga/config.yml |
One project: language, image, build and pipeline executors, codemanifest, tools, usages, lint, topics | Required for goga build / goga pipeline |
Home Configuration — ~/.goga/config.yml |
Whole machine: base env layer, extra docker run / docker build arguments |
Optional — absent by default |
Pages in this section
| Page | Content |
|---|---|
| Project Configuration | .goga/config.yml — global fields, the codemanifest section, and the map of domain-owned sections |
| Home Configuration | ~/.goga/config.yml — the machine-wide layer |
| Agents | How agent: <name> values in both configs resolve into wrapper scripts inside the Docker container |
| Hooks | The config/amend_config hard action — how installed tools amend the configuration in memory at the load moment |
goga config |
Read configuration values back from the command line |
The home config is the lower-priority layer: home.env is the base layer of the container env-file ladder (git identity, CLI -e, and the engine variables win over it), docker.run fragments are appended to every container invocation, and docker.build fragments to every image build, regardless of the project. See Home Configuration for the layering details.
Every domain-owned section of the project config (build, pipeline, tools, usages, lint, topics) is documented in full in its domain's Configuration page — see Project Configuration — Domain sections. The values a command actually consumes may additionally be amended in memory at the load moment by installed tool packages — see Hooks.