mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
* feat: add ProxyConfig struct with per-PM skip_commands and legacy fallback * feat: consolidate proxy config into structured section with backward compat Replaces flat proxy_mode/proxy_install_only keys with a structured proxy section supporting per-package-manager skip_commands. Legacy keys are respected via fallback when user's config lacks the new proxy section. Removes deprecated experimental_proxy_mode config and flag. * fix: env var resolution for nested config keys and deduplicate skip command matching - Add "." to "_" in Viper env key replacer so nested keys like sandbox.enabled resolve from PMG_SANDBOX_ENABLED (was silently broken) - Export IsFirstNonFlagArgInList and remove duplicate from proxy_flow.go - Add table-driven tests for skip command matching with real-world cases - Remove redundant env var test * docs: update proxy configuration and env var documentation Update config.md env var table to reflect new proxy.enabled and proxy.install_only keys. Add proxy configuration section to proxy.md covering config structure, per-PM skip commands, CLI flags, and env vars. * fix: legacy fallback precedence
1.6 KiB
1.6 KiB
Configuration
PMG supports local configuration through a configuration file. To create the default configuration file, run:
pmg setup install
To see the configuration file path and activated configuration, run:
pmg setup info
To edit configuration file:
pmg setup edit
See config template for the configuration schema.
Environment Variables
Any configuration key can be overridden using environment variables, without modifying the config file. This is useful for CI/CD pipelines or temporary overrides.
Format: PMG_<KEY> where the key is the config key uppercased, with nested keys joined by _.
| Config key | Environment variable |
|---|---|
transitive |
PMG_TRANSITIVE |
paranoid |
PMG_PARANOID |
proxy.enabled |
PMG_PROXY_ENABLED |
proxy.install_only |
PMG_PROXY_INSTALL_ONLY |
verbosity |
PMG_VERBOSITY |
skip_event_logging |
PMG_SKIP_EVENT_LOGGING |
sandbox.enabled |
PMG_SANDBOX_ENABLED |
dependency_cooldown.enabled |
PMG_DEPENDENCY_COOLDOWN_ENABLED |
cloud.enabled |
PMG_CLOUD_ENABLED |
Legacy environment variables PMG_PROXY_MODE and PMG_PROXY_INSTALL_ONLY (for the old flat keys) are still supported when the proxy: section does not exist in the config file.
Example:
# Enable paranoid mode without editing the config file
PMG_PARANOID=true pmg npm install express
# Restrict proxy to install commands only
PMG_PROXY_INSTALL_ONLY=true pmg npm install express
Precedence (highest to lowest):
- CLI flags
- Environment variables (
PMG_*) - Config file (
config.yml) - Built-in defaults