René's URL Explorer Experiment


Title: fix(features): keep JS property order in metadata, options and compose env by aledbf · Pull Request #75 · spin-stack/devcontainer-cli · GitHub

Open Graph Title: fix(features): keep JS property order in metadata, options and compose env by aledbf · Pull Request #75 · spin-stack/devcontainer-cli

X Title: fix(features): keep JS property order in metadata, options and compose env by aledbf · Pull Request #75 · spin-stack/devcontainer-cli

Description: What TS does The reference CLI (v0.90.0) writes these objects as JavaScript enumerates them: integer-index keys ascending, then the others in the order each was first set. devcontainer.metadata label: getDevcontainerMetadata puts the base image's entries in the label as JSON.parse read them from its label, and the config's entry is pick(devContainerConfig.raw, …). So each containerEnv keeps its own declaration order. read-configuration featuresConfiguration: a Feature's value is the user's options object from devcontainer.json, or the dependsOn options. features resolve-dependencies: installOrder[].options is features[0].value, the same object. Compose override (generateFeaturesComposeOverrideContent, dockerCompose.ts): the override writes environment from Object.keys(mergedConfig.containerEnv). That object is Object.assign({}, ...entries.map(e => e.containerEnv)), so a key stays where it first appeared and takes the value of the last entry that sets it. Before / after Config: containerEnv: {"ZED":"1","10":"x","ALPHA":"2","2":"y"}; Feature options: {"zz":"1","10":"t","a":"b","2":"s"}; base image label: containerEnv: {"ZB":"1","10":"b","AB":"2","2":"a"}. Place Before (Go) After (= TS) label containerEnv (base entry) {"10","2","AB","ZB"} {"2","10","ZB","AB"} label containerEnv (config entry) {"10","2","ALPHA","ZED"} {"2","10","ZED","ALPHA"} featuresConfiguration value {"2","10","a","zz"} (sorted) {"2","10","zz","a"} resolve-dependencies options {"10","2","a","zz"} {"2","10","zz","a"} compose override environment (base ZB,10,AB + config ZED,AB,2,ALPHA) 10, 2, AB, ALPHA, ZB, ZED 2, 10, ZB, AB, ZED, ALPHA How The change reuses the #68 machinery and adds no second ordering mechanism: imagemeta.Entry.ContainerEnvOrder is recorded on decode (jsonc.MemberNames). The config entries also set it, from cfg.ContainerEnvOrder (configMetadataEntry) and from the loader's order (configLabelEntry). It survives hostMetadataSubstitution, which round-trips the entries through maps. Entry.MarshalJSON writes containerEnv in features.PropertyOrder. MergeConfiguration collects MergedConfig.ContainerEnvOrder with features.KeyOrder, which keeps the first position. The compose override iterates over that order. The new features.JSValue(v, declared) returns toJS output with a map's keys in PropertyOrder. Feature.MarshalJSON uses it for value with ValueOrder, and resolve-dependencies uses it for options. docs/DIVERGENCES.md: the label bullet now says that containerEnv keeps TS order. Tests Each of these fails before the fix. ts-oracle (internal/imagemeta/testdata/ts-oracle/imagemeta.json, regenerated with task testdata:ts-oracle): a getDevcontainerMetadataLabel case with per-entry containerEnv orders that include integer-like keys; a new oracle function mergeConfigurationContainerEnv (Object.entries of the merged containerEnv) with a case where a key keeps its first position. Unit tests: TestFeatureMarshalJSONWritesTheValueInPropertyOrder TestJSValueOrdersAMapsKeys TestMetadataEntriesKeepTheContainerEnvOrder (configLabelEntry, host substitution, configMetadataEntry) TestGenerateComposeFeaturesOverrideWritesTheMergedEnvInPropertyOrder (label decode, then merge, then override) Parity cases (each fails against an origin/main binary and passes now): contract read-configuration.features-configuration-value-key-order-success (key_order on the Feature's value) contract features.resolve-dependencies-option-key-order-success (stdout_text, user options and dependsOn options) runtime build.metadata-label-container-env-order-success (image label) runtime up.compose-container-env-order-success (override environment, container label, image label) TestEntryKeyOrdersNameEveryProperty now skips json:"-" fields; ContainerEnvOrder is not a label property. Checks go build ./...: pass go test ./internal/features ./internal/imagemeta ./internal/config: pass. ./internal/cli: pass, except parity contract cases that fail only on this machine because a stray /tmp/.git makes Go put workspaceFolder at /workspaces/tmp. Those are the three read-configuration.features-configuration-* cases below, plus override-config-*, key-order and json-stringify-escapes. They all differ only on workspace.workspaceFolder. go tool task lint: pass BASE=origin/main go tool task mutate: after the second commit, 160 refused, 0 survived, 7 did not build. The first commit's CI mutate run found a survivor: deduplicating the merged order in MergeConfiguration was redundant with PropertyOrder. The second commit removes that step. TMPDIR=/var/tmp/… go tool task test:race: pass, with two exceptions: TestEntryKeyOrdersNameEveryProperty failed on the new json:"-" field. It is fixed in this PR, and go test -race ./internal/imagemeta passes. TestMetadataInteropGoRoundTrip failed on docker inspect. Its fixed tag dcc-interop-rw006:test is shared with other agents on this Docker host. It passes when rerun alone. go tool task testdata:ts-oracle:check: pass go tool task parity:contract: pass, except the /tmp/.git cases read-configuration.features-configuration-local-feature-{key-order,metadata}-success and the new read-configuration.features-configuration-value-key-order-success. The new case fails for the same workspaceFolder reason and passes when its workspace is outside /tmp. CI has no /tmp/.git. go tool task spec:compliance: pass PARITY_COMMAND=build,up runtime parity (run with go test … -timeout 180m, because the task's 60m limit expired on this shared, loaded Docker host): 130 pass, 26 fail. Of the failures: 16 differ only on remoteWorkspaceFolder/workspaceFolder because of the local /tmp/.git (up.dotfiles-local-*, up.workspace-secrets, up.config-file-fspath-*, up.override-config-scheme, up.include-configurations-key-order, up.image-with-parallel-initialize-command, up.container-entrypoint-and-command, up.read-only-workspace-dockerfile). The other 10 were timeouts or fixed-name compose projects colliding with other agents ("container is marked for removal", "No such container"). All 10 pass when rerun alone: up.compose-dockerfile-with-features-reuse-stopped-container-{with,without}-persisted-overrides, up.compose-with-name{,-custom-yaml,-devcontainer-env}, up.image, up.compose-dockerfile-with-features, up.compose-{dockerfile-without,image-with}-features-omit-config-remote-env-from-metadata, build.no-cache-features, build.cache-to-local. The new build.metadata-label-container-env-order-success and up.compose-container-env-order-success pass. go tool task test:e2e: pass CI on this PR: every check passes, including e2e, parity, parity-runtime (0/1) and mutate. 🤖 Generated with Claude Code

Open Graph Description: What TS does The reference CLI (v0.90.0) writes these objects as JavaScript enumerates them: integer-index keys ascending, then the others in the order each was first set. devcontainer.metadata la...

X Description: What TS does The reference CLI (v0.90.0) writes these objects as JavaScript enumerates them: integer-index keys ascending, then the others in the order each was first set. devcontainer.metadata la...

Opengraph URL: https://github.com/spin-stack/devcontainer-cli/pull/75

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:f8c92cf2-ce4c-e1a4-4fcd-5f789ee85a42
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD7A6:2EABB0:12D023:1A9D3D:6AF6EA76
html-safe-nonce1ece885b0e7b3ed8b269d76f01b0afd60b14a535fcf9e0e339a6082dbbff2aea
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEN0E2OjJFQUJCMDoxMkQwMjM6MUE5RDNEOjZBRjZFQTc2IiwidmlzaXRvcl9pZCI6IjYzNzg5NjE0MjkyNjAwNjk0OTUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac2bdf6f9d7fc1e8e7cf3351b33b2e0f8747175058ff95095f2a78d0e8d601cf80
hovercard-subject-tagpull_request:5290713704
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/spin-stack/devcontainer-cli/pull/75/files
twitter:imagehttps://avatars.githubusercontent.com/u/161571?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/161571?s=400&v=4
og:image:altWhat TS does The reference CLI (v0.90.0) writes these objects as JavaScript enumerates them: integer-index keys ascending, then the others in the order each was first set. devcontainer.metadata la...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None19e5351f91f68268b5c88c922504b59eeb230085b5d92546247a28dff0c02812
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/spin-stack/devcontainer-cli git https://github.com/spin-stack/devcontainer-cli.git
octolytics-dimension-user_id253817182
octolytics-dimension-user_loginspin-stack
octolytics-dimension-repository_id1297553254
octolytics-dimension-repository_nwospin-stack/devcontainer-cli
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1297553254
octolytics-dimension-repository_network_root_nwospin-stack/devcontainer-cli
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release25a4eb53c5e867cec09489ddfc8dc9916f51d01e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/spin-stack/devcontainer-cli/pull/75/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fspin-stack%2Fdevcontainer-cli%2Fpull%2F75%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fspin-stack%2Fdevcontainer-cli%2Fpull%2F75%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=spin-stack%2Fdevcontainer-cli
Reloadhttps://github.com/spin-stack/devcontainer-cli/pull/75/files
Reloadhttps://github.com/spin-stack/devcontainer-cli/pull/75/files
Reloadhttps://github.com/spin-stack/devcontainer-cli/pull/75/files
spin-stackhttps://github.com/spin-stack
devcontainer-clihttps://github.com/spin-stack/devcontainer-cli
Codehttps://github.com/spin-stack/devcontainer-cli
Issueshttps://github.com/spin-stack/devcontainer-cli/issues
Pull requests3 (3)https://github.com/spin-stack/devcontainer-cli/pulls
Actionshttps://github.com/spin-stack/devcontainer-cli/actions
Security and qualityhttps://github.com/spin-stack/devcontainer-cli/security
Insightshttps://github.com/spin-stack/devcontainer-cli/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fspin-stack%2Fdevcontainer-cli%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fspin-stack%2Fdevcontainer-cli%2Fissues%2Fnew%2Fchoose
aledbfhttps://github.com/aledbf
mainhttps://github.com/spin-stack/devcontainer-cli/tree/main
sorted-keys-to-js-orderhttps://github.com/spin-stack/devcontainer-cli/tree/sorted-keys-to-js-order
Conversation 0 https://github.com/spin-stack/devcontainer-cli/pull/75
Commits 2 https://github.com/spin-stack/devcontainer-cli/pull/75/commits
Checks 13 https://github.com/spin-stack/devcontainer-cli/pull/75/checks
Files changed https://github.com/spin-stack/devcontainer-cli/pull/75/files
Please reload this pagehttps://github.com/spin-stack/devcontainer-cli/pull/75/files
fix(features): keep JS property order in metadata, options and compose env https://github.com/spin-stack/devcontainer-cli/pull/75/files#top
Show all changes 2 commits https://github.com/spin-stack/devcontainer-cli/pull/75/files
b707e94 fix(features): keep JS property order in metadata, options and compos… aledbf Nov 13, 2026 https://github.com/spin-stack/devcontainer-cli/pull/75/commits/b707e940f7d05acbf8924fcde97ff8783fb9f606
f2eda73 refactor(imagemeta): leave the merged containerEnv order to PropertyO… aledbf Nov 13, 2026 https://github.com/spin-stack/devcontainer-cli/pull/75/commits/f2eda735982df186384cb166694fece8b52b3f4e
Clear filters https://github.com/spin-stack/devcontainer-cli/pull/75/files
Please reload this pagehttps://github.com/spin-stack/devcontainer-cli/pull/75/files
Please reload this pagehttps://github.com/spin-stack/devcontainer-cli/pull/75/files
DIVERGENCES.md https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-bfb44e0d8e054a7f0ba0b5f0e563b3721feb1274535a93974cda8294990b640d
parity-matrix.yaml https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
build.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e5c5aee1b6ec3a6aeb2eb897d526ceadcb3d11b32b0beb145e3f33e5c7a11dd0
compose_override.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
compose_override_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d864bc2d3834089385fc8ed554191fd14e43a5e1a68453d16b7a7db9ebdff96e
features_resolve_deps.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b2977a5fe5e783bf1c39669f0d00865c3dbb474ee5903589d090011e8c92e220
metadata_label.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
metadata_label_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
read_configuration.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-f2f569e7daee617737f15f7ab2227fa86789237ab01cf3a38b53cfdfde5f5555
up.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e4159340a020b2901eae16cf8957d0bea9af63523ad9754862feb45a400e2190
jsobject.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d4c25778a654fc435e7dd843c754f7b1cd5180f164db3b47771df0344fd2dbe4
jsobject_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-c04464bd1eefee5626c3e7904a697a1f0a52685027f752291a1f9d7deea1e47d
types.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b8690438462902d3ade7458c8e6ccc5e279259062dc5295dd3f30bda988859c3
types_order_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-a07e257c93eb6644363155a174e838894aa6cfe03a4257c4eed5de6f44876195
merge.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-f4f1a26a7d3da3160f14d6ce96246bfc2bfa1edb711240288fde8af64e681ded
metadata.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-25acf0a3b57121d2d35e8b89d90b9ac1c4291b8f3209f9d5862f1a675ffe0b47
metadata_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-54be0dc27eb836ccbac02930bb9ff14c0bcfa794986060c4c3bfd3d4805b7e0e
reference_oracle_test.go https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-890393d668a0d481f1d999d39e1376f6bb48a66e0123dc7f438e5607f827d43f
imagemeta.json https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-99ff58de9f25c1abd3b7d1b3ee07135ccb4c8543d5a9b8aac6fbcb971a1626fd
oracle.ts https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-2d5bc305815198e4593286fbe7f0840fae6d464138c581b356f2e62bfe791310
docs/DIVERGENCES.mdhttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-bfb44e0d8e054a7f0ba0b5f0e563b3721feb1274535a93974cda8294990b640d
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/docs/DIVERGENCES.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-bfb44e0d8e054a7f0ba0b5f0e563b3721feb1274535a93974cda8294990b640d
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-bfb44e0d8e054a7f0ba0b5f0e563b3721feb1274535a93974cda8294990b640d
docs/parity/parity-matrix.yamlhttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/docs/parity/parity-matrix.yaml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-dd6a00d02f71b8af40e9134f99072205175e8014a85550c5a476d653587e7d3e
internal/cli/build.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e5c5aee1b6ec3a6aeb2eb897d526ceadcb3d11b32b0beb145e3f33e5c7a11dd0
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/build.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e5c5aee1b6ec3a6aeb2eb897d526ceadcb3d11b32b0beb145e3f33e5c7a11dd0
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e5c5aee1b6ec3a6aeb2eb897d526ceadcb3d11b32b0beb145e3f33e5c7a11dd0
internal/cli/compose_override.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/compose_override.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b1fe7cdf2a24c1e322c928b2e3b6987ca675ce6ee514a458ef3f88be0b0ba3da
internal/cli/compose_override_test.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d864bc2d3834089385fc8ed554191fd14e43a5e1a68453d16b7a7db9ebdff96e
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/compose_override_test.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d864bc2d3834089385fc8ed554191fd14e43a5e1a68453d16b7a7db9ebdff96e
internal/cli/features_resolve_deps.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b2977a5fe5e783bf1c39669f0d00865c3dbb474ee5903589d090011e8c92e220
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/features_resolve_deps.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b2977a5fe5e783bf1c39669f0d00865c3dbb474ee5903589d090011e8c92e220
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b2977a5fe5e783bf1c39669f0d00865c3dbb474ee5903589d090011e8c92e220
internal/cli/metadata_label.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/metadata_label.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-6d3784c17b99fb9397c8494b9eb41a3ea6665ae5ef10f5a606dbb4e5c024d731
internal/cli/metadata_label_test.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/metadata_label_test.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-962cded70d97c5778b872f325df50f0a748a0fbeb6fe908880d5db9ba367e6fe
internal/cli/read_configuration.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-f2f569e7daee617737f15f7ab2227fa86789237ab01cf3a38b53cfdfde5f5555
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/read_configuration.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-f2f569e7daee617737f15f7ab2227fa86789237ab01cf3a38b53cfdfde5f5555
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-f2f569e7daee617737f15f7ab2227fa86789237ab01cf3a38b53cfdfde5f5555
internal/cli/up.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e4159340a020b2901eae16cf8957d0bea9af63523ad9754862feb45a400e2190
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/cli/up.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e4159340a020b2901eae16cf8957d0bea9af63523ad9754862feb45a400e2190
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-e4159340a020b2901eae16cf8957d0bea9af63523ad9754862feb45a400e2190
internal/features/jsobject.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d4c25778a654fc435e7dd843c754f7b1cd5180f164db3b47771df0344fd2dbe4
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/features/jsobject.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d4c25778a654fc435e7dd843c754f7b1cd5180f164db3b47771df0344fd2dbe4
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-d4c25778a654fc435e7dd843c754f7b1cd5180f164db3b47771df0344fd2dbe4
internal/features/jsobject_test.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-c04464bd1eefee5626c3e7904a697a1f0a52685027f752291a1f9d7deea1e47d
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/features/jsobject_test.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-c04464bd1eefee5626c3e7904a697a1f0a52685027f752291a1f9d7deea1e47d
internal/features/types.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b8690438462902d3ade7458c8e6ccc5e279259062dc5295dd3f30bda988859c3
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/features/types.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b8690438462902d3ade7458c8e6ccc5e279259062dc5295dd3f30bda988859c3
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-b8690438462902d3ade7458c8e6ccc5e279259062dc5295dd3f30bda988859c3
internal/features/types_order_test.gohttps://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-a07e257c93eb6644363155a174e838894aa6cfe03a4257c4eed5de6f44876195
View file https://github.com/spin-stack/devcontainer-cli/blob/f2eda735982df186384cb166694fece8b52b3f4e/internal/features/types_order_test.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/spin-stack/devcontainer-cli/pull/75/{{ revealButtonHref }}
https://github.com/spin-stack/devcontainer-cli/pull/75/files#diff-a07e257c93eb6644363155a174e838894aa6cfe03a4257c4eed5de6f44876195
Please reload this pagehttps://github.com/spin-stack/devcontainer-cli/pull/75/files
Please reload this pagehttps://github.com/spin-stack/devcontainer-cli/pull/75/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.