jesseduffield.lazygit/pkg/integration/tests
Stefan Haller b76c1072ff Offer direnv .envrc approval from inside lazygit
When a user switches into a repo whose .envrc hasn't been approved with
`direnv allow`, the previous behavior was to drop a "blocked" error
popup and leave the user to fix it externally. That meant opening a
terminal, running `direnv allow`, and then either restarting lazygit or
switching repos and back to refresh the env — easy to get wrong, easy
to forget.

When `direnv export json` exits non-zero, follow up with `direnv status
--json` to ask direnv whether the current directory has a not-yet-
allowed .envrc, and if so, get its path. Then show a confirmation popup
with the .envrc contents inline so the user can read what they're
approving. Confirming runs `direnv allow <path>` and re-runs the load
so the new env reaches subprocesses immediately; cancelling leaves the
env unloaded (the same state as before this commit when direnv refused
to load the .envrc).

Using `direnv status --json` instead of parsing the "is blocked"
stderr line means we rely on direnv's structured output rather than
its human-readable error format, which is more stable across versions
and avoids assumptions about output formatting.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-04 09:05:01 +02:00
..
bisect Un-deprecate UserConfig.Git.Log.Order and ShowGraph 2025-07-09 13:15:03 +02:00
branch Use more widely-supported Unicode symbols for the commit graph 2026-05-04 13:06:29 +02:00
cherry_pick Clear cherry-pick buffer when copying after a paste 2026-05-09 14:02:42 +02:00
commit Convert keybinding fields to Keybinding 2026-05-25 15:32:47 +02:00
config Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
conflicts Add merge options menu 2025-10-09 08:45:58 +02:00
custom_commands Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
demo Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
diff Fix copying a file's absolute path when running in a linked worktree 2026-04-19 11:16:02 +02:00
file Fix copying a file's absolute path when running in a linked worktree 2026-04-19 11:16:02 +02:00
filter_and_search Convert keybinding fields to Keybinding 2026-05-25 15:32:47 +02:00
filter_by_author Un-deprecate UserConfig.Git.Log.Order and ShowGraph 2025-07-09 13:15:03 +02:00
filter_by_path When entering a commit in path filtering mode, select the filtered path 2025-10-09 09:58:15 +02:00
interactive_rebase Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
misc Offer direnv .envrc approval from inside lazygit 2026-06-04 09:05:01 +02:00
patch_building Filter file views rather than search 2026-03-07 20:04:31 +01:00
reflog Un-deprecate UserConfig.Git.Log.Order and ShowGraph 2025-07-09 13:15:03 +02:00
remote feat: add fork remote command 2025-11-16 17:26:00 +01:00
shared Add merge options menu 2025-10-09 08:45:58 +02:00
shell_commands Rename "Custom Command" to "Shell Command" 2024-08-17 10:56:03 +02:00
staging Revert test workaround 2026-03-19 16:57:53 +01:00
stash Fix dropping a range of stashes in filtered mode 2025-08-25 18:41:06 +02:00
status Add backward cycling support for all branches log view 2026-03-08 17:06:17 +01:00
submodule Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
sync Refresh worktrees before auto-forwarding branches 2026-05-21 13:59:18 +02:00
tag Fix deleting a remote tag when a remote branch with the same name exists 2025-11-27 19:52:18 +01:00
ui Fix crash when keybindings are disabled that we want to show in the status bar 2026-05-28 19:26:43 +02:00
undo Switch to branches view when checking out a commit 2025-11-16 21:23:40 +01:00
worktree Convert custom command Key fields to Keybinding 2026-05-25 15:32:47 +02:00
test_list.go Offer direnv .envrc approval from inside lazygit 2026-06-04 09:05:01 +02:00
test_list_generator.go Fix typos 2025-01-03 10:50:36 +11:00
tests.go Set working directory in lazygit test command 2024-01-12 19:59:31 +11:00