Skip to content

Comments

feat: forward HTTP proxy env vars to pkl#486

Merged
jdx merged 1 commit intomainfrom
feat/http-proxy-support
Dec 3, 2025
Merged

feat: forward HTTP proxy env vars to pkl#486
jdx merged 1 commit intomainfrom
feat/http-proxy-support

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Dec 3, 2025

Summary

  • Forwards http_proxy, HTTP_PROXY, https_proxy, HTTPS_PROXY env vars to pkl via --http-proxy flag
  • Forwards no_proxy, NO_PROXY env vars via --http-no-proxy flag
  • Enables users behind corporate proxies to fetch remote pkl packages

Context

Pkl doesn't read standard proxy environment variables by default. Users behind corporate proxies were unable to fetch remote pkl packages (like the hk config schema) without manually configuring ~/.pkl/settings.pkl.

This PR automatically passes proxy settings from the environment to pkl when invoking pkl eval.

Limitations (inherited from pkl)

  • Only http:// proxy addresses are supported (not https://)
  • Proxy authentication is not supported (URLs containing @ are skipped)

Test plan

  • Compiles without errors
  • Cargo tests pass

🤖 Generated with Claude Code


Note

Forwards proxy/no_proxy env vars to pkl and executes pkl directly by parsing shell words instead of using a shell.

  • Config parsing (src/config.rs):
    • Forward proxy env vars to pkl via flags:
      • http_proxy/HTTP_PROXY/https_proxy/HTTPS_PROXY -> --http-proxy (http scheme only; skips auth URLs).
      • no_proxy/NO_PROXY -> --http-no-proxy.
    • Replace shell invocation with direct process exec:
      • Parse bin using shell_words::split, build args (eval -f json), append path, and run Command::new(cmd).args(args).
  • Dependencies:
    • Add shell-words crate.

Written by Cursor Bugbot for commit 6f4ba07. This will update automatically on new commits. Configure here.

@jdx jdx force-pushed the feat/http-proxy-support branch from b894b04 to db8f265 Compare December 3, 2025 19:50
@jdx jdx force-pushed the feat/http-proxy-support branch from db8f265 to 2774ff6 Compare December 3, 2025 20:04
When http_proxy, HTTP_PROXY, https_proxy, or HTTPS_PROXY environment
variables are set, hk now passes them to pkl via --http-proxy flag.
Similarly, no_proxy/NO_PROXY is forwarded via --http-no-proxy.

This enables users behind corporate proxies to fetch remote pkl packages
without needing to configure ~/.pkl/settings.pkl.

Limitations (inherited from pkl):
- Only http:// proxy addresses are supported (not https://)
- Proxy authentication is not supported (URLs with @ are skipped)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@jdx jdx force-pushed the feat/http-proxy-support branch from 2774ff6 to 6f4ba07 Compare December 3, 2025 20:15
@jdx jdx enabled auto-merge (squash) December 3, 2025 20:18
@jdx jdx disabled auto-merge December 3, 2025 20:18
@jdx jdx enabled auto-merge (squash) December 3, 2025 20:19
@jdx jdx merged commit 1cb3019 into main Dec 3, 2025
14 checks passed
@jdx jdx deleted the feat/http-proxy-support branch December 3, 2025 20:21
@jdx jdx mentioned this pull request Dec 3, 2025
jdx added a commit that referenced this pull request Dec 4, 2025
## [1.26.0](https://github.com/jdx/hk/compare/v1.25.0..v1.26.0) -
2025-12-04

### 🚀 Features

- Split `taplo` into `taplo` and `taplo_format` by
[@thejcannon](https://github.com/thejcannon) in
[#466](#466)
- add pkl_format builtin for pkl 0.30 formatter by
[@jdx](https://github.com/jdx) in
[#475](#475)
- add check-conventional-commit utility and built-in by
[@joonas](https://github.com/joonas) in
[#477](#477)
- add mise builtin by [@hisaac](https://github.com/hisaac) in
[#480](#480)
- forward HTTP proxy env vars to pkl by [@jdx](https://github.com/jdx)
in [#486](#486)

### 🐛 Bug Fixes

- Fix docs build GHA by [@thejcannon](https://github.com/thejcannon) in
[#471](#471)
- improve progress bar accuracy for skipped steps and OSC alignment by
[@jdx](https://github.com/jdx) in
[#472](#472)
- cleaner error output for command failures by
[@jdx](https://github.com/jdx) in
[#474](#474)
- update mise builtin glob by [@hisaac](https://github.com/hisaac) in
[#482](#482)

### 🚜 Refactor

- Remove pointless stage test by
[@thejcannon](https://github.com/thejcannon) in
[#484](#484)
- Move `black` from mise config to tool stub, for testing, and test the
builtin by [@thejcannon](https://github.com/thejcannon) in
[#483](#483)
- Move category/description to annotation by
[@thejcannon](https://github.com/thejcannon) in
[#485](#485)

### 📚 Documentation

- Generate `configuration` docs from `settings.toml` in-build by
[@thejcannon](https://github.com/thejcannon) in
[#461](#461)
- generate builtins docs from Pkl instead of manual sync by
[@jdx](https://github.com/jdx) in
[#476](#476)

### 🧪 Testing

- Stub ktlint and add tests to builtin by
[@thejcannon](https://github.com/thejcannon) in
[#488](#488)
- Bump pkl, fix the builtin, and add tests by
[@thejcannon](https://github.com/thejcannon) in
[#489](#489)

### 🔍 Other Changes

- updated mise lockfile by [@jdx](https://github.com/jdx) in
[b10d2e6](b10d2e6)

### 📦️ Dependency Updates

- update jdx/mise-action digest to 146a281 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#479](#479)
- update anthropics/claude-code-action digest to a7e4c51 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#478](#478)
- lock file maintenance by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#481](#481)

### New Contributors

- @hisaac made their first contribution in
[#482](#482)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Release v1.26.0 with a new `util check-conventional-commit` command,
proxy-forwarding to Pkl, updated docs, and dependency bumps.
> 
> - **Release/Versioning**:
> - Bump crate and CLI to `1.26.0`; update all Pkl URLs in
examples/templates/docs to `v1.26.0`.
> - **CLI/Features**:
> - Add `hk util check-conventional-commit` (with `--allowed-types`);
expose in usage, KDL spec, commands.json, and docs.
> - Add default values to flags in CLI spec/docs (e.g., `config dump
--format=json`, migrate defaults, `util --maxkb=500`).
> - **Core**:
> - Forward HTTP proxy env vars (`http_proxy`, `https_proxy`,
`no_proxy`) to Pkl via `--http-proxy/--http-no-proxy` during config
parsing.
> - **Docs**:
> - Regenerate CLI docs (add generated headers) and index; add page for
the new util; refresh examples.
>   - Update CHANGELOG with 1.26.0 entries.
> - **Dependencies/Build**:
> - Update Cargo.lock (multiple crate version bumps; unify `thiserror`
dependency usage).
>   - Update `mise.lock` entries/checksums.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2da0194. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: mise-en-dev <[email protected]>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Dec 12, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [hk](https://github.com/jdx/hk) | minor | `1.25.0` -> `1.26.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>jdx/hk (hk)</summary>

### [`v1.26.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1260---2025-12-04)

[Compare Source](jdx/hk@v1.25.0...v1.26.0)

##### 🚀 Features

- Split `taplo` into `taplo` and `taplo_format` by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;466](jdx/hk#466)
- add pkl\_format builtin for pkl 0.30 formatter by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;475](jdx/hk#475)
- add check-conventional-commit utility and built-in by [@&#8203;joonas](https://github.com/joonas) in [#&#8203;477](jdx/hk#477)
- add mise builtin by [@&#8203;hisaac](https://github.com/hisaac) in [#&#8203;480](jdx/hk#480)
- forward HTTP proxy env vars to pkl by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;486](jdx/hk#486)

##### 🐛 Bug Fixes

- Fix docs build GHA by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;471](jdx/hk#471)
- improve progress bar accuracy for skipped steps and OSC alignment by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;472](jdx/hk#472)
- cleaner error output for command failures by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;474](jdx/hk#474)
- update mise builtin glob by [@&#8203;hisaac](https://github.com/hisaac) in [#&#8203;482](jdx/hk#482)

##### 🚜 Refactor

- Remove pointless stage test by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;484](jdx/hk#484)
- Move `black` from mise config to tool stub, for testing, and test the builtin by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;483](jdx/hk#483)
- Move category/description to annotation by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;485](jdx/hk#485)

##### 📚 Documentation

- Generate `configuration` docs from `settings.toml` in-build by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;461](jdx/hk#461)
- generate builtins docs from Pkl instead of manual sync by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;476](jdx/hk#476)

##### 🧪 Testing

- Stub ktlint and add tests to builtin by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;488](jdx/hk#488)
- Bump pkl, fix the builtin, and add tests by [@&#8203;thejcannon](https://github.com/thejcannon) in [#&#8203;489](jdx/hk#489)

##### 🔍 Other Changes

- updated mise lockfile by [@&#8203;jdx](https://github.com/jdx) in [b10d2e6](jdx/hk@b10d2e6)

##### 📦️ Dependency Updates

- update jdx/mise-action digest to [`146a281`](jdx/hk@146a281) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;479](jdx/hk#479)
- update anthropics/claude-code-action digest to [`a7e4c51`](jdx/hk@a7e4c51) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;478](jdx/hk#478)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;481](jdx/hk#481)

##### New Contributors

- [@&#8203;hisaac](https://github.com/hisaac) made their first contribution in [#&#8203;482](jdx/hk#482)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ny4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant