021d97eca8f15f1c926e5e40d46460b6a72cdbe4
The artifact index listed the stored logs as bare file names, so a red build gave no hint which of build.log, build.stdout.log and build.stderr.log actually explains it — with stdout and stderr stored separately, the failure is usually in only some of them. Each log of a non-green build is now scanned for an upper-case FAILED/FAILURE, which covers BUILD FAILED, Maven's BUILD FAILURE and Gradle's per-test "SomeTest > works() FAILED"; lower-case prose does not count. The scan streams line by line with an early exit and reads ISO-8859-1, so no byte sequence of a build log can fail to decode. Logs of a successful build are not scanned at all — that saves reading megabytes per page view and avoids an alarming badge on a green build whose log mentions a deliberately failing sub-build. Co-Authored-By: Claude <noreply@anthropic.com>
GitTally
Lightweight, declarative and highly opinionated software build system (CI/CD).
Documentation
- docs/configuration.md — configuration reference
- docs/bootstrapping.md — initializing a repository with
init - docs/deployment.md — running GitTally as a systemd service behind a reverse proxy
- docs/migration-from-legacy.md — migrating from the legacy bash script
Legacy Script
legacy/gitTally (bash) is deprecated and kept only as a behavioral reference for the rewrite.
Do not use it for new installations; see docs/migration-from-legacy.md.
Developer Setup
Source .envrc to add tools/ to your PATH, or install direnv to have this done automatically on cd:
source .envrc
Common tasks:
./gradlew build # compile and run all checks
./gradlew test # run tests
./gradlew ktlintFormat # auto-format Kotlin sources
./gradlew ktlintCheck # check formatting (also runs as part of build)
adr-status # show all architecture decisions at a glance
direnv
direnv sources .envrc automatically whenever you enter the repository and unloads it when you leave.
# Ubuntu
sudo apt install direnv
# add to ~/.bashrc or ~/.zshrc
eval "$(direnv hook bash)" # or: eval "$(direnv hook zsh)"
Trust the project's .envrc once per clone:
direnv allow
Tools (tools/)
| Command | Description |
|---|---|
adr-status |
List all Architecture Decision Records with their status and decision summary |
Architecture Decision Records
Major technical decisions are documented as ADRs in docs/adrs/.
adr-status # show all decisions at a glance
New ADRs follow the template at docs/adrs/0000-00-00.adr-template.md.
Languages
Kotlin
87%
HTML
4.6%
Shell
4.2%
JavaScript
3%
CSS
1.2%