Skip to content

Commit 16b0b28

Browse files
authored
docs: modernise README, add config ToC, fix outdated clean prompt (#225)
* docs: modernise README, add ToC to config reference, fix outdated clean prompt text * docs: update tagline to highlight monorepo-like development
1 parent 28005a9 commit 16b0b28

3 files changed

Lines changed: 84 additions & 27 deletions

File tree

README.md

Lines changed: 61 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,24 @@
22

33
[![license](https://img.shields.io/github/license/cego/gitte)](https://github.com/cego/gitte)
44

5-
Gitte is a developer environment orchestration tool for teams working across many git repositories. It keeps all your repos in sync, runs startup checks to verify your local machine is ready, and executes ordered actions (build, up, down, etc.) across projects with dependency resolution.
5+
**Monorepo-like development across many git repositories — without the monorepo.**
6+
7+
Gitte keeps all your repos in sync, runs startup checks to verify your local machine is ready, and executes ordered actions (build, up, down, …) across projects with dependency resolution and parallel execution.
8+
9+
---
10+
11+
## Table of contents
12+
13+
- [Features](#features)
14+
- [Installation](#installation)
15+
- [Quick start](#quick-start)
16+
- [Commands](#commands)
17+
- [Configuration](#configuration)
18+
- [Environment variables](#environment-variables)
19+
- [Global flags](#global-flags)
20+
- [State and override files](#state-and-override-files)
21+
22+
---
623

724
## Features
825

@@ -11,9 +28,12 @@ Gitte is a developer environment orchestration tool for teams working across man
1128
- **Ordered actions** — run commands across projects with `needs`-based dependency ordering and parallel execution
1229
- **Project toggles** — interactively enable/disable projects per machine
1330
- **Template inheritance** — share action definitions across similar projects
14-
- **Feature gates** — toggle environment-variable-based features per machine
31+
- **Feature gates** — toggle environment-variable-based behaviours per machine
1532
- **Auto-discovery** — discover and sync repositories from GitLab groups or GitHub orgs
16-
- **TTY-aware output** — spinner TUI in a terminal, structured plain-text output in CI/non-TTY
33+
- **Clean operations** — remove untracked files, reset local changes, or check out default branches across all repos
34+
- **TTY-aware output** — animated spinner TUI in a terminal, structured plain-text output in CI / non-TTY
35+
36+
---
1737

1838
## Installation
1939

@@ -45,9 +65,11 @@ Requires Go 1.24 or later.
4565
go install github.com/cego/gitte@latest
4666
```
4767

68+
---
69+
4870
## Quick start
4971

50-
Create a `.gitte.yml` in the root of your workspace:
72+
**1.** Create a `.gitte.yml` in your workspace root:
5173

5274
```yaml
5375
startup:
@@ -69,59 +91,73 @@ projects:
6991
local: ["docker", "compose", "down"]
7092
```
7193
72-
Then run:
94+
**2.** Run the full pipeline:
7395
7496
```bash
7597
gitte run up local
7698
```
7799

78-
Gitte will run startup checks, pull all repos, then execute the `up` action for group `local` on all enabled projects.
100+
Gitte will run startup checks, pull all repos, then execute the `up` action for group `local` across all enabled projects.
101+
102+
---
79103

80104
## Commands
81105

106+
### Overview
107+
82108
| Command | Description |
83109
|---------|-------------|
84110
| `gitte run [action] [group] [projects]` | Full pipeline: startup checks → git sync → actions |
85111
| `gitte actions [action] [group] [projects]` | Run actions only (skip startup and git sync) |
86112
| `gitte startup` | Run startup checks only |
87113
| `gitte gitops [--discover]` | Clone/pull all repos; `--discover` also fetches from configured sources |
88114
| `gitte list` | List all projects and their available actions |
89-
| `gitte toggle` | Interactive TUI to enable/disable projects |
90-
| `gitte features list` | List all feature gates and their enabled state |
91-
| `gitte features enable <gate>` | Enable a feature gate |
92-
| `gitte features disable <gate>` | Disable a feature gate |
93-
| `gitte sources` | Manage local discovery sources (GitLab groups / GitHub orgs) |
94-
| `gitte token set <gitlab\|github> <host>` | Store an API token in the system keyring |
115+
| `gitte toggle` | Interactive TUI to enable/disable projects per machine |
116+
| `gitte clean <subcommand>` | Clean up repos (see below) |
117+
| `gitte features list\|enable\|disable` | Manage feature gates |
118+
| `gitte sources` | Manage discovery sources (GitLab groups / GitHub orgs) |
119+
| `gitte token set\|get\|delete\|list` | Store API tokens in the system keyring |
95120
| `gitte validate` | Validate config: schema, cycles, missing references |
96-
| `gitte clean [flags]` | Report repo state (see below) |
97121

98122
### Argument syntax
99123

100124
Arguments to `run` and `actions` are positional: `action [group] [projects]`.
101125

102126
```bash
103-
gitte run up # up action, all groups, all enabled projects
104-
gitte run up local # up action, group local, all enabled projects
105-
gitte run up local myservice # up action, group local, project myservice only
127+
gitte run up # up action, all groups, all enabled projects
128+
gitte run up local # up action, group local, all enabled projects
129+
gitte run up local myservice # up action, group local, project myservice only
106130
gitte run up local frontend+backend # up action, group local, projects frontend and backend
107-
gitte run up+build # run up then build, all groups, all enabled projects
131+
gitte run up+build # run up then build, all groups, all enabled projects
108132
```
109133

110134
Use `*` or `all` as a wildcard. Combine multiple values with `+`.
111135

112-
### clean subcommands
136+
### gitte clean
137+
138+
Destructive cleanup operations across all configured repositories. Each subcommand shows a live progress TUI while running.
113139

114140
```bash
115141
gitte clean untracked # remove untracked files (git clean -fdx)
116-
gitte clean local-changes # reset repos with local changes (prompts first)
142+
gitte clean local-changes # reset repos with local changes (prompts before acting)
117143
gitte clean master # checkout the default branch in all repos
118144
gitte clean all # run all three in sequence
119145
```
120146

147+
`gitte clean local-changes` lists affected repos and prompts:
148+
149+
```
150+
Reset [a]ll / [i]ndividually / [C]ancel?
151+
```
152+
153+
---
154+
121155
## Configuration
122156

123157
See [docs/config.md](./docs/config.md) for the full configuration reference.
124158

159+
---
160+
125161
## Environment variables
126162

127163
| Variable | Default | Description |
@@ -132,6 +168,8 @@ See [docs/config.md](./docs/config.md) for the full configuration reference.
132168
| `GITTE_NO_REBASE` | `false` | Set to `true` to skip auto-rebase onto default branch |
133169
| `GITTE_MAX_TASK_PARALLELIZATION` | unlimited | Cap the number of concurrent tasks |
134170

171+
---
172+
135173
## Global flags
136174

137175
```
@@ -140,10 +178,10 @@ See [docs/config.md](./docs/config.md) for the full configuration reference.
140178
--no-tty Force plain-text output
141179
```
142180

143-
## State file
181+
---
144182

145-
Gitte stores per-machine state (project toggles, feature gate overrides, remote config cache) in `.gitte-state.yml` next to your `.gitte.yml`. This file is automatically added to `.gitignore`.
183+
## State and override files
146184

147-
## Override file
185+
**`.gitte-state.yml`** — stores per-machine state: project toggles, feature gate overrides, and remote config cache. Gitte automatically adds this file to `.gitignore`. Do not commit it.
148186

149-
If `.gitte-override.yml` exists alongside `.gitte.yml`, it is deep-merged on top. Use this for local machine overrides that should not be committed.
187+
**`.gitte-override.yml`** — deep-merged on top of `.gitte.yml` when present. Use this for local machine-specific settings that should not be committed (e.g. `sources` added via `gitte sources add`).

docs/commands.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ gitte validate
107107

108108
## gitte clean
109109

110-
Destructive cleanup operations on project repositories.
110+
Destructive cleanup operations on project repositories. All subcommands show a live progress TUI while running (plain-text lines in non-TTY mode).
111111

112112
```bash
113113
gitte clean untracked # run git clean -fdx in every repo
@@ -116,10 +116,13 @@ gitte clean master # run git checkout <default_branch> in every repo
116116
gitte clean all # run untracked → local-changes → master in sequence
117117
```
118118

119-
`gitte clean local-changes` shows all affected repos, then asks:
120-
`Reset all, handle individually, or cancel? [all/individually/cancel]`
119+
`gitte clean local-changes` shows all affected repos, then prompts for a single keypress:
121120

122-
If `individually`, you are prompted per repo: `Reset <name>? [y/N]`
121+
```
122+
Reset [a]ll / [i]ndividually / [C]ancel?
123+
```
124+
125+
If `i` (individually), you are prompted per repo with a single keypress: `Reset <name>? [y/N]`
123126

124127
Operations run on all configured projects regardless of toggle state.
125128

docs/config.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@ An optional `.gitte-override.yml` in the same directory is deep-merged on top, u
66

77
---
88

9+
## Table of contents
10+
11+
- [Top-level structure](#top-level-structure)
12+
- [startup](#startup)
13+
- [projects](#projects)
14+
- [templates](#templates)
15+
- [groupIncludes](#groupincludes)
16+
- [retry](#retry)
17+
- [actionOverride](#actionoverride)
18+
- [searchFor](#searchfor)
19+
- [feature\_gates](#feature_gates)
20+
- [sources](#sources)
21+
- [Remote configuration](#remote-configuration)
22+
23+
---
24+
925
## Top-level structure
1026

1127
```yaml

0 commit comments

Comments
 (0)