Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d06023f

Browse files
chore: include merged, com.coder to coder, UnmarshallJSON
1 parent 08f0f9c commit d06023f

File tree

6 files changed

+25
-19
lines changed

6 files changed

+25
-19
lines changed

agent/agentcontainers/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1131,7 +1131,7 @@ func (api *API) injectSubAgentIntoContainerLocked(ctx context.Context, dc coders
11311131
); err != nil {
11321132
api.logger.Error(ctx, "unable to read devcontainer config", slog.Error(err))
11331133
} else {
1134-
coderCustomization := config.Configuration.Customizations.Coder
1134+
coderCustomization := config.MergedConfiguration.Customizations.Coder
11351135
if coderCustomization != nil {
11361136
displayApps = coderCustomization.DisplayApps
11371137
apps = coderCustomization.Apps

agent/agentcontainers/api_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1572,7 +1572,7 @@ func TestAPI(t *testing.T) {
15721572
fSAC = &fakeSubAgentClient{createErrC: make(chan error, 1)}
15731573
fDCCLI = &fakeDevcontainerCLI{
15741574
readConfig: agentcontainers.DevcontainerConfig{
1575-
Configuration: agentcontainers.DevcontainerConfiguration{
1575+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
15761576
Customizations: agentcontainers.DevcontainerCustomizations{
15771577
Coder: tt.customization,
15781578
},

agent/agentcontainers/devcontainercli.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ import (
1919
// Unfortunately we cannot make use of `dcspec` as the output doesn't appear to
2020
// match.
2121
type DevcontainerConfig struct {
22-
Configuration DevcontainerConfiguration `json:"configuration"`
22+
MergedConfiguration DevcontainerConfiguration `json:"mergedConfiguration"`
2323
}
2424

2525
type DevcontainerConfiguration struct {
2626
Customizations DevcontainerCustomizations `json:"customizations,omitempty"`
2727
}
2828

2929
type DevcontainerCustomizations struct {
30-
Coder *CoderCustomization `json:"com.coder,omitempty"`
30+
Coder *CoderCustomization `json:"coder,omitempty"`
3131
}
3232

3333
type CoderCustomization struct {
@@ -197,23 +197,17 @@ func (d *devcontainerCLI) Up(ctx context.Context, workspaceFolder, configPath st
197197
cmd.Stderr = io.MultiWriter(stderrWriters...)
198198

199199
if err := cmd.Run(); err != nil {
200-
result, err2 := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
200+
_, err2 := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
201201
if err2 != nil {
202202
err = errors.Join(err, err2)
203203
}
204-
if err2 := result.Err(); err2 != nil {
205-
err = errors.Join(err, err2)
206-
}
207204
return "", err
208205
}
209206

210207
result, err := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
211208
if err != nil {
212209
return "", err
213210
}
214-
if err := result.Err(); err != nil {
215-
return "", err
216-
}
217211

218212
return result.ContainerID, nil
219213
}
@@ -261,7 +255,7 @@ func (d *devcontainerCLI) ReadConfig(ctx context.Context, workspaceFolder, confi
261255
conf := applyDevcontainerCLIReadConfigOptions(opts)
262256
logger := d.logger.With(slog.F("workspace_folder", workspaceFolder), slog.F("config_path", configPath))
263257

264-
args := []string{"read-configuration"}
258+
args := []string{"read-configuration", "--include-merged-configuration"}
265259
if workspaceFolder != "" {
266260
args = append(args, "--workspace-folder", workspaceFolder)
267261
}
@@ -341,6 +335,18 @@ type devcontainerCLIResult struct {
341335
Description string `json:"description"`
342336
}
343337

338+
func (r *devcontainerCLIResult) UnmarshalJSON(data []byte) error {
339+
type wrapperResult devcontainerCLIResult
340+
341+
var wrappedResult wrapperResult
342+
if err := json.Unmarshal(data, &wrappedResult); err != nil {
343+
return err
344+
}
345+
346+
*r = devcontainerCLIResult(wrappedResult)
347+
return r.Err()
348+
}
349+
344350
func (r devcontainerCLIResult) Err() error {
345351
if r.Outcome == "success" {
346352
return nil

agent/agentcontainers/devcontainercli_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,10 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
253253
logFile: "read-config-with-coder-customization.log",
254254
workspaceFolder: "/test/workspace",
255255
configPath: "",
256-
wantArgs: "read-configuration --workspace-folder /test/workspace",
256+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace",
257257
wantError: false,
258258
wantConfig: agentcontainers.DevcontainerConfig{
259-
Configuration: agentcontainers.DevcontainerConfiguration{
259+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
260260
Customizations: agentcontainers.DevcontainerCustomizations{
261261
Coder: &agentcontainers.CoderCustomization{
262262
DisplayApps: []codersdk.DisplayApp{
@@ -273,10 +273,10 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
273273
logFile: "read-config-without-coder-customization.log",
274274
workspaceFolder: "/test/workspace",
275275
configPath: "/test/config.json",
276-
wantArgs: "read-configuration --workspace-folder /test/workspace --config /test/config.json",
276+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace --config /test/config.json",
277277
wantError: false,
278278
wantConfig: agentcontainers.DevcontainerConfig{
279-
Configuration: agentcontainers.DevcontainerConfiguration{
279+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
280280
Customizations: agentcontainers.DevcontainerCustomizations{
281281
Coder: nil,
282282
},
@@ -288,7 +288,7 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
288288
logFile: "read-config-error-not-found.log",
289289
workspaceFolder: "/nonexistent/workspace",
290290
configPath: "",
291-
wantArgs: "read-configuration --workspace-folder /nonexistent/workspace",
291+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /nonexistent/workspace",
292292
wantError: true,
293293
wantConfig: agentcontainers.DevcontainerConfig{},
294294
},

agent/agentcontainers/testdata/devcontainercli/readconfig/read-config-with-coder-customization.log

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/agentcontainers/testdata/devcontainercli/readconfig/read-config-without-coder-customization.log

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)