feat(tools): #467 lazygit opt-in installer - #502
Merged
Conversation
- scripts/linux/tools/lazygit.sh: GitHub release tarball primary (Ubuntu PPA
lags); brew for macOS. Version-aware idempotent install.
Asset: lazygit_<ver>_linux_{x86_64,arm64}.tar.gz (no leading v; lowercase).
Binary at archive root; installed to ~/.local/bin.
- scripts/windows/tools/lazygit.ps1: winget (JesseDuffield.lazygit), scoop
fallback. Install-Lazygit (no git config needed -- lazygit works out of box).
- scripts/windows/setup.ps1: lazygit wired into ToolRegistry only (NOT
DefaultTools) -- opt-in, selectable via -Only 'lazygit'.
- .tool-versions: pin lazygit 0.63.0 (verified latest stable, 2026-07-04).
- tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1}: stubs for seam.
- tests/test_lazygit_installer.sh + tests/test_lazygit_installer_pwsh.ps1:
parity pair -- opt-in discovery, not-default, version-pin, optin-stub.
RED: 2/4 pwsh FAIL pre-impl. GREEN: 4/4 pwsh PASS post-impl.
Bash RED confirmed by code-analysis (no WSL). shellcheck CLEAN.
Closes #467
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
primetimetank21
added a commit
that referenced
this pull request
Jul 25, 2026
- scripts/linux/tools/lazygit.sh: GitHub release tarball primary (Ubuntu PPA
lags); brew for macOS. Version-aware idempotent install.
Asset: lazygit_<ver>_linux_{x86_64,arm64}.tar.gz (no leading v; lowercase).
Binary at archive root; installed to ~/.local/bin.
- scripts/windows/tools/lazygit.ps1: winget (JesseDuffield.lazygit), scoop
fallback. Install-Lazygit (no git config needed -- lazygit works out of box).
- scripts/windows/setup.ps1: lazygit wired into ToolRegistry only (NOT
DefaultTools) -- opt-in, selectable via -Only 'lazygit'.
- .tool-versions: pin lazygit 0.63.0 (verified latest stable, 2026-07-04).
- tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1}: stubs for seam.
- tests/test_lazygit_installer.sh + tests/test_lazygit_installer_pwsh.ps1:
parity pair -- opt-in discovery, not-default, version-pin, optin-stub.
RED: 2/4 pwsh FAIL pre-impl. GREEN: 4/4 pwsh PASS post-impl.
Bash RED confirmed by code-analysis (no WSL). shellcheck CLEAN.
Closes #467
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat(tools): #467 lazygit opt-in installer
Closes #467
Files Added / Modified
scripts/linux/tools/lazygit.shscripts/windows/tools/lazygit.ps1JesseDuffield.lazygit), scoop fallbackscripts/windows/setup.ps1.tool-versionslazygit 0.63.0tests/fixtures/stub-tools/{linux,windows}/lazygit.{sh,ps1}tests/test_lazygit_installer.shtests/test_lazygit_installer_pwsh.ps1Opt-in Wiring
lazygit is NOT added to
DEFAULT_TOOLS(Linux) or$DefaultTools(Windows).Linux: directory auto-discovery. Windows: explicit
$ToolRegistryentry only.Selectable via
--only=lazygit(Linux/macOS) or-Only 'lazygit'(Windows).Version Pinned
lazygit 0.63.0-- verified latest stable fromhttps://api.github.com/repos/jesseduffield/lazygit/releases/latest(published 2026-07-04).
Linux asset naming confirmed (lowercase, no leading v):
lazygit_0.63.0_linux_x86_64.tar.gzlazygit_0.63.0_linux_arm64.tar.gzBinary at archive root (no subdirectory). macOS: brew install lazygit.
No git config applied -- lazygit works out of the box with no global config changes.
Tests (TDD -- RED then GREEN)
RED (pre-implementation):
T_lazygit_in_listFAIL (lazygit.ps1 not registered in ToolRegistry)T_lazygit_version_pinFAIL (not in .tool-versions yet)T_lazygit_not_defaultPASS (correctly opt-in even before implementation)T_lazygit_optin_stubPASS (stub-dir dynamic registry picks up new stub)GREEN (post-implementation):
tests cover discovery, not-default, version-pin, and stub opt-in.
shellcheck: CLEAN on all new .sh files.
Existing test_setup_flags_pwsh.ps1: 36/36 PASS (no regressions).
PSScriptAnalyzer (lazygit.ps1): 0 issues.
PSScriptAnalyzer (CI paths setup.ps1 x2): 0 issues.
Pattern Used
Follows the proven opt-in tool pattern from delta (#466, PR #501).
Skill:
.squad/skills/dev-setup-optin-tool/SKILL.md.Key differences from delta:
Set-*GitConfig/apply_*_git_configfunction needed.