Repository navigation
feat(service): one image per devcontainer.json, listed in POST /build's images - #60
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…'s images Discover every devcontainer.json in the clone - the root config as `main`, each .devcontainer/<folder>/devcontainer.json as an item whose id is the sanitized folder name - and build them one after another, passing --config for sub-folder configs. Each item's config label and remote-user probe use its own config and image. Additive to the 1.x API (ADR-0015): the response keeps image/registry/name/tag/imageBuildLogId, now describing images[0], and adds images[]. New optional request fields: instances (filter; unknown id is a 400 listing valid ids) and dryRun (clone, discover and name only). Folder items are named <name>-<id>; tags apply to all items. Id collisions and empty ids are 400s. fallbackImage applies only when no config exists anywhere; without one that case is now a 400 instead of the CLI's 500. Extends devcontainer_config_discovery.feature and test-git-server seed repos (extraConfigPaths) for multi-config repos. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
alexanderilyin
force-pushed
the
feat/multi-config-builds
branch
from
October 7, 2026 14:20
12191c2 to
ad82da2
Compare
This was referenced Oct 7, 2026
alexanderilyin
added a commit
that referenced
this pull request
Oct 7, 2026
revert: one image per devcontainer.json (#60) - feature abandoned
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.
Service side of plan 004 (Phase B, step 1). Recorded in ADR-0015.
What changes
service/src/config-discovery.ts):main..devcontainer/devcontainer.jsonwins over.devcontainer.json..devcontainer/<folder>/devcontainer.jsonis its own item. Its id is the folder name lower-cased, with anything outside[a-z0-9-]turned into-and leading and trailing-trimmed.mainfirst, then the folders by id. Symlinked folders and files are skipped.build.ts): one clone, thenbuildInstance()for each item, one after another.--config.mainkeeps exactly today's argv.imageBuildLogId) and timeout.images: [{id, configPath, image, registry, name, tag, imageBuildLogId?}]. The existing top-level fields describeimages[0].instances(a filter; an unknown id is a 400 listing the valid ids) anddryRun(clone, discover and name only, with no build or push).mainkeeps its name. Other items get<name>-<id>, including whenimage.nameis set explicitly. The same tag and registry apply to every item.status="dry_run".GET /devcontainerandGET/DELETE /imageare unchanged and still take one image.Tests
npm run build && npm run test:unitpass: 76 tests.instancesfilter;--configargv;devcontainer_config_discovery.featureis rewritten, with newtest-git-serverseed repos (extraConfigPaths). The BDD suite was not run, because it needs the cluster.cucumber-js --dry-runmatches every step.Next
The provider's
images/instances/dry run inModifyPlan, then the module and the template (plan 004 steps 2-5).🤖 Generated with Claude Code