Releases: cego/gitte
2.1.1
What's Changed
- fix(gitops): clean failure display in TUI grid and post-run summary by @LauJosefsen in #236
Full Changelog: 2.1.0...2.1.1
2.1.0
What's new in 2.1.0
env_when: arch-conditional environment variables
A new env_when config key lets you inject environment variables only when certain conditions are
met. The initial supported condition is arch, which matches against the host CPU architecture
(amd64, arm64, etc.).
env_when:
BUILD_FROM_SOURCE:
value: "false"
conditions:
- type: arch
arch: [amd64]env_when can be defined at the project level or in templates and is resolved at the time a task
runs. Project-level entries take precedence over template entries for the same key. gitte validate
reports unknown condition types.
Startup TUI: cleaner failure rendering
In TUI mode, failed checks no longer show truncated error text in the check grid. Instead, a summary
is printed after the TUI exits with each failure's error message dimmed and the hint styled
prominently so the actionable item stands out. The overall exit message is a terse startup checks
failed rather than a wall of executor output.
Task log preamble restored
Each task log now begins with a short header showing the working directory, the command being run,
and any environment variables injected by gitte (project env, env_when, feature gates). This makes
logs self-contained for debugging without needing to cross-reference the config file.
Clipboard keybindings split
The c key in the actions TUI now copies to clipboard only (native tools → OSC 52 fallback for SSH
sessions). A new w key explicitly writes the task log to a temp file and shows the path in the
status bar. Previously c would silently fall back to a file without any indication that clipboard
copy had failed.
BubbleTea and Lipgloss v2
All TUI components have been updated to BubbleTea v2 (charm.land/bubbletea/v2) and Lipgloss v2
(charm.land/lipgloss/v2).
2.0.0: Rewrite in golang and modernization
What's new in 2.0.0
Version 2.0.0 is a complete rewrite of gitte in Go, replacing the previous TypeScript/Node.js implementation.
New features
System keyring token storage
API tokens for GitLab and GitHub are now stored in the system keyring (macOS Keychain, GNOME Keyring). Use gitte token set/get/delete/list to manage them. Tokens are
picked up automatically during discovery — no more environment variable juggling for interactive use.
Auto-discovery sources management
gitte sources add/remove stores per-machine GitLab group and GitHub org sources in .gitte-override.yml. Run gitte gitops --discover (or gitte run <action> --discover) to clone/pull all repos from configured sources.
Feature gates
Define opt-in behaviours in .gitte.yml that inject environment variables into matching action runs. Toggle them per machine with gitte features enable/disable/list.
Scope gates to specific projects, GitLab groups, or GitHub orgs.
Redesigned gitte clean
Each cleanup operation is now a dedicated subcommand with a live progress TUI:
gitte clean untracked—git clean -fdxacross all reposgitte clean local-changes— scan for dirty repos, prompt, thengit reset --hardgitte clean master— checkout the default branch in all reposgitte clean all— run all three in sequence
gitte list
Lists all enabled projects and their available actions and groups. Pass -a to include disabled projects.
gitte validate
Validates the config file: schema errors, unknown template references, unknown needs targets, and dependency cycles.
Template inheritance
Templates can now extend other templates with extends. Multiple parents are supported and merged left-to-right.
groupIncludes
Declare that running one group automatically includes the tasks of another, with transitive expansion.
Shell completions
Bash and Zsh completions are installed automatically via Homebrew and APT.
TTY-aware output everywhere
All commands — startup, gitops, actions, and clean — switch between an animated TUI in a terminal and structured plain-text output in CI / non-TTY environments.
Other improvements
gitte togglenow also supports non-interactiveenable/disable/listsubcommands- Actions TUI auto-quits when all tasks succeed
- Gitops shows a progress bar for large syncs and filters the final summary to only changed repos
- Startup checks and gitops output show elapsed time
- Multi-column layout in TUI views on wide terminals
- Failed task logs can be copied to clipboard (OSC 52) from the actions TUI
--no-needsflag to ignore dependency orderinggitte run/gitte actionsaccept+-separated action and project lists
Migration from 1.x
APT repository has moved
The APT repository URL has changed. Remove the old entry and add the new one.
Configuration
.gitte.yml is fully compatible with 1.x. No changes required.
2.0.0-rc.17
What's Changed
- feat(clean): add BubbleTea TUI for all clean subcommands by @LauJosefsen in #222
Full Changelog: 2.0.0-rc.16...2.0.0-rc.17
2.0.0-rc.16
Full Changelog: 2.0.0-rc.15...2.0.0-rc.16
2.0.0-rc.15
Full Changelog: 2.0.0-rc.14...2.0.0-rc.15
2.0.0-rc.9
Full Changelog: 2.0.0-rc.8...2.0.0-rc.9
2.0.0-rc.8
Full Changelog: 2.0.0-rc.7...2.0.0-rc.8
2.0.0-rc.7
Full Changelog: 2.0.0-rc.6...2.0.0-rc.7
2.0.0-rc.6
Full Changelog: 2.0.0-rc.5...2.0.0-rc.6