update CLAUDE.md with configuration system details and documentation references
This commit is contained in:
@@ -22,7 +22,8 @@ java -jar build/libs/gittally-0.1.0-SNAPSHOT.jar init
|
||||
|
||||
## Architecture
|
||||
|
||||
GitTally is a dual-mode application: **CLI** (interactive, status, config) and **Server** (HTTP, persistent). It is currently CLI-only; the server mode is not yet implemented.
|
||||
GitTally is a lightweight, declarative CI/CD build system.
|
||||
It is a dual-mode application: **CLI** (interactive, status, config) and **Server** (HTTP, persistent). It is currently CLI-only; the server mode is not yet implemented.
|
||||
|
||||
### Entry Point and CLI Wiring
|
||||
|
||||
@@ -42,9 +43,24 @@ commands/
|
||||
|
||||
The web application type is set to `none` in `application.yml`. The `server` subcommand will need to restart the context with a web type when implemented.
|
||||
|
||||
### Configuration System
|
||||
|
||||
GitTally is configured by two YAML files, deep-merged by `ConfigLoader` (later wins):
|
||||
|
||||
1. `.gittally.yml` at the repo root — committed, shared team settings.
|
||||
2. `.git/gittally/.gittally.yml` — not committed; machine-specific overrides and secrets (`git.account`, `git.token`).
|
||||
|
||||
After merging, `branches.default` is merged into every other named branch entry as its fallback, then the result is bound to the `GitTallyConfig` data classes (`config/GitTallyConfig.kt`), which define the schema and all defaults.
|
||||
|
||||
Three places must stay in sync when config keys change: the `GitTallyConfig` data classes, the commented templates generated by `InitCommand`, and the reference in `docs/configuration.md`.
|
||||
|
||||
### Git Access
|
||||
|
||||
`GitService` shells out to the `git` CLI via `ProcessBuilder` (no JGit). Commands that need repo information take it as a constructor dependency so tests can mock it.
|
||||
|
||||
### Package Structure
|
||||
|
||||
All production code lives under `de.hoennig.gittally`. Commands are in the `commands` sub-package. Tests mirror this structure under `src/test/kotlin`.
|
||||
All production code lives under `de.hoennig.gittally`, with sub-packages `commands` (picocli subcommands), `config` (YAML config loading and schema), and `git` (git CLI access). Tests mirror this structure under `src/test/kotlin`.
|
||||
|
||||
## Testing Conventions
|
||||
|
||||
@@ -104,6 +120,12 @@ Write documentation in English in Markdown files.
|
||||
In Markdown, use a single line per sentence.
|
||||
Keep sentences short.
|
||||
|
||||
## Documentation
|
||||
|
||||
- `docs/GitTally-Konzept.md` — product concept and target architecture (in German): git-centric CI, builds in Docker, one instance per repository, status reported back to Gitea.
|
||||
- `docs/configuration.md` — configuration reference; keep in sync with `GitTallyConfig` and the `init` templates.
|
||||
- `docs/bootstrapping.md` — how `init` prepares a repository.
|
||||
|
||||
## Key Architectural Decisions
|
||||
|
||||
All major decisions are in `docs/adrs/`. Run `adr-status` (after `source .envrc`) for a one-line summary of each. Decisions in force:
|
||||
|
||||
Reference in New Issue
Block a user