feat: add --format dotenv output format#299
Open
jongio wants to merge 1 commit into
Open
Conversation
Render a JSON response as KEY=value environment lines for a shell eval, a CI job, or a docker --env-file. Flattens nested fields to dotted paths, maps each to an env-safe uppercase name, and quotes values only when needed. Lives in the service layer alongside the table, jsonl, yaml, and csv renderers. Closes #296 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
|
🚀 Website Preview Your PR preview is ready! 📎 Preview URL: https://jongio.github.io/azd-rest/pr/299/ This preview will be automatically cleaned up when the PR is closed. |
Contributor
🚀 Test This PRA preview build ( One-Line Install (Recommended)PowerShell (Windows): iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/install-pr.ps1) } -PrNumber 299 -Version 0.5.0-pr299"Bash (macOS/Linux): curl -fsSL https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/install-pr.sh | bash -s 299 0.5.0-pr299UninstallPowerShell (Windows): iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/uninstall-pr.ps1) } -PrNumber 299"Bash (macOS/Linux): curl -fsSL https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/uninstall-pr.sh | bash -s 299Build Info:
|
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.
Closes #296
What
Adds
--format dotenv, an output format that renders a JSON response asKEY=valueenvironment lines you canevalinto a shell, feed to a CI job, orsave as a docker
--env-file.How it works
flattenJSONBodyso nested fields become dotted paths, then maps eachpath to an env-safe name: runs of non-alphanumeric characters collapse to a
single underscore, the name is upper cased, and a leading digit is prefixed
with
_so the identifier stays valid.properties.statebecomesPROPERTIES_STATEvalue[0].namebecomesVALUE_0_NAMEdouble-quoted with escaping otherwise. Numbers and booleans pass through as
literals, and null becomes an empty value.
it returns a clear error.
Lives entirely in the service layer next to the existing
table,jsonl,yaml, andcsvrenderers. No transport or auth changes.Tests
format_dotenv_test.gocovers flat objects, nested-to-dotted keys, array indexkeys, top-level arrays, value quoting and escaping, safe bare strings,
deterministic ordering, and the non-JSON error path.
Docs
Updated the
--formatenumeration and added an example in the README, the webreference, the CLI reference, and the skill doc.