fix(resources): support multiple named devcontainer configurations in auto-discovery
CI / lint (pull_request) Failing after 19s
CI / typecheck (pull_request) Successful in 46s
CI / quality (pull_request) Successful in 34s
CI / security (pull_request) Successful in 1m0s
CI / coverage (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 22s
CI / unit_tests (pull_request) Successful in 7m9s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 17m9s
CI / integration_tests (pull_request) Failing after 23m2s
CI / status-check (pull_request) Failing after 2s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped

Extend DevcontainerDiscoveryResult and discover_devcontainers() to scan
.devcontainer/<name>/devcontainer.json patterns (one subdirectory level)
in addition to the existing fixed paths. Each named configuration produces
a distinct result with config_name set to the subdirectory name (e.g.
'api', 'frontend'). Root-level configs retain config_name=None.

- Replace _SCAN_PATHS with _FIXED_SCAN_PATHS for root-level configs
- Add glob-based scan of .devcontainer/<name>/devcontainer.json
- Add config_name: str | None attribute to DevcontainerDiscoveryResult
- Validate config_name (must be non-empty str or None)
- Add 8 new Behave scenarios covering named, multiple, mixed, empty cases
- Add 4 new Robot Framework integration tests for named config discovery
- All existing tests continue to pass (no regression)

ISSUES CLOSED: #2615
This commit is contained in:
2026-04-05 09:02:05 +00:00
parent b82a9b6962
commit a05f4c69a7
6 changed files with 281 additions and 7 deletions
+32
View File
@@ -87,3 +87,35 @@ Discovery Result Validation
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} result-validation-ok
Devcontainer Discovery Named Single Config
[Documentation] Discover a single named devcontainer configuration
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-single cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} discovery-named-single-ok
Devcontainer Discovery Named Multiple Configs
[Documentation] Discover multiple named devcontainer configurations
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-multiple cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} discovery-named-multiple-ok
Devcontainer Discovery Named Mixed Root And Named
[Documentation] Discover mixed root and named devcontainer configurations
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-mixed cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} discovery-named-mixed-ok
Devcontainer Discovery Named Config Name Attribute
[Documentation] Verify config_name attribute on DevcontainerDiscoveryResult
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-config-name-attr cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} discovery-named-config-name-attr-ok