Add programs.zsh.envExtra to the EDaaS/WSL work profile
(users/emmathorpe/work.nix) so ~/.jenkinsenv is sourced from ~/.zshenv
on every zsh invocation — login, interactive, and non-interactive.
Why
The two Jenkins MCP servers (jenkins-uce, jenkins-stf) read JENKINS_UCE_* / JENKINS_STF_* credentials via ${JENKINS_*} expansion.
Sourcing from ~/.zshenv makes them available to all shells and anything they
launch, including GUI-launched Claude Code. ~/.jenkinsenv is deliberately not
nix-managed — it holds secrets and stays out of the world-readable nix store.
Notes
Guarded ([ -f ... ] && . ...) so a missing file never breaks a shell.
Scoped to the work host; personal hosts are untouched.
Testing
nix fmt — no changes (already conformant).
nix eval of emmathorpe-edaas toplevel — evaluates cleanly.
## What
Add `programs.zsh.envExtra` to the EDaaS/WSL work profile
(`users/emmathorpe/work.nix`) so `~/.jenkinsenv` is sourced from `~/.zshenv`
on every zsh invocation — login, interactive, and non-interactive.
## Why
The two Jenkins MCP servers (`jenkins-uce`, `jenkins-stf`) read
`JENKINS_UCE_*` / `JENKINS_STF_*` credentials via `${JENKINS_*}` expansion.
Sourcing from `~/.zshenv` makes them available to all shells and anything they
launch, including GUI-launched Claude Code. `~/.jenkinsenv` is deliberately not
nix-managed — it holds secrets and stays out of the world-readable nix store.
## Notes
- Guarded (`[ -f ... ] && . ...`) so a missing file never breaks a shell.
- Scoped to the work host; personal hosts are untouched.
## Testing
- `nix fmt` — no changes (already conformant).
- `nix eval` of `emmathorpe-edaas` toplevel — evaluates cleanly.
lyrathorpe
scheduled this pull request to auto merge when all checks succeed 2026-07-10 12:39:57 +01:00
lyrathorpe
scheduled this pull request to auto merge when all checks succeed 2026-07-14 15:58:16 +01:00
Add programs.zsh.envExtra to the EDaaS work profile so ~/.jenkinsenv is
sourced from ~/.zshenv on every zsh invocation (login, interactive, and
non-interactive), exporting the JENKINS_UCE_/JENKINS_STF_ tokens the Jenkins
MCP servers read via ${JENKINS_*} expansion. Guarded so a missing file does
not break the shell; the file is kept out of the world-readable nix store
because it holds secrets.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Add
programs.zsh.envExtrato the EDaaS/WSL work profile(
users/emmathorpe/work.nix) so~/.jenkinsenvis sourced from~/.zshenvon every zsh invocation — login, interactive, and non-interactive.
Why
The two Jenkins MCP servers (
jenkins-uce,jenkins-stf) readJENKINS_UCE_*/JENKINS_STF_*credentials via${JENKINS_*}expansion.Sourcing from
~/.zshenvmakes them available to all shells and anything theylaunch, including GUI-launched Claude Code.
~/.jenkinsenvis deliberately notnix-managed — it holds secrets and stays out of the world-readable nix store.
Notes
[ -f ... ] && . ...) so a missing file never breaks a shell.Testing
nix fmt— no changes (already conformant).nix evalofemmathorpe-edaastoplevel — evaluates cleanly.Add programs.zsh.envExtra to the EDaaS work profile so ~/.jenkinsenv is sourced from ~/.zshenv on every zsh invocation (login, interactive, and non-interactive), exporting the JENKINS_UCE_/JENKINS_STF_ tokens the Jenkins MCP servers read via ${JENKINS_*} expansion. Guarded so a missing file does not break the shell; the file is kept out of the world-readable nix store because it holds secrets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>3ee4b550d7to10c64c77f1