Skip to content

Releases: cego/gitte

2.1.1

14 Apr 13:02
8391a22

Choose a tag to compare

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

14 Apr 12:08
00338b2

Choose a tag to compare

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

13 Apr 13:32
16b0b28

Choose a tag to compare

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 untrackedgit clean -fdx across all repos
  • gitte clean local-changes — scan for dirty repos, prompt, then git reset --hard
  • gitte clean master — checkout the default branch in all repos
  • gitte 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 toggle now also supports non-interactive enable/disable/list subcommands
  • 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-needs flag to ignore dependency ordering
  • gitte run/gitte actions accept +-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

13 Apr 11:24

Choose a tag to compare

2.0.0-rc.17 Pre-release
Pre-release

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

10 Apr 07:21

Choose a tag to compare

2.0.0-rc.16 Pre-release
Pre-release

2.0.0-rc.15

10 Apr 07:12

Choose a tag to compare

2.0.0-rc.15 Pre-release
Pre-release

2.0.0-rc.9

09 Apr 10:36

Choose a tag to compare

2.0.0-rc.9 Pre-release
Pre-release

Full Changelog: 2.0.0-rc.8...2.0.0-rc.9

2.0.0-rc.8

09 Apr 08:39

Choose a tag to compare

2.0.0-rc.8 Pre-release
Pre-release

Full Changelog: 2.0.0-rc.7...2.0.0-rc.8

2.0.0-rc.7

09 Apr 07:52

Choose a tag to compare

2.0.0-rc.7 Pre-release
Pre-release

Full Changelog: 2.0.0-rc.6...2.0.0-rc.7

2.0.0-rc.6

09 Apr 07:44

Choose a tag to compare

2.0.0-rc.6 Pre-release
Pre-release

Full Changelog: 2.0.0-rc.5...2.0.0-rc.6