pulumi/sdk/go/common/workspace
Thomas Gummerer 2bd42e99b4
return a meaningful error when getting a zip template fails (#18091)
When trying to download a ZIP (e.g. for an AI response in pulumi new),
we currently don't check the response code, and just feed whatever we
are getting from the server into the zip parser. The AI at the same time
response with a 500 if the program it generated is not valid, which is
always a possibility with LLMs.

This results in confusing error messages when the AI fails to generate a
correct program: "error: failed to retrieve zip archive: zip: not a
valid zip file".

We can do better here, and check the error code. Helpfully Pulumi AI
also tells us what is wrong in the response body, so we can include that
in the error message.

This results in an error message like (in a failing example I tried):

```
error: failed to retrieve zip archive: failed to download template: 500 Internal Server Error
Missing , or : between flow sequence items at line 30, column 20:

      subnetIDs: [${subnet1.id}]
                   ^
```

This can help the user refine the prompt, and gives them at least a bit
more information on why the AI generation failed.

Fixes https://github.com/pulumi/pulumi/issues/15644
2024-12-23 09:10:49 +00:00
..
config.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
creds.go Improve invalid credentials error message (#17541) 2024-10-11 19:23:35 +00:00
creds_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
loaders.go New deployment settings wizards and environment variables management comands (#16564) 2024-07-03 20:24:26 +00:00
loaders_test.go ignore unexpected types instead of erroring out (#14149) 2023-10-11 16:39:16 +00:00
paths.go Just use errors.Is instead of As and Is (#17250) 2024-09-12 23:52:26 +00:00
paths_test.go Don't search upwards for policy packs when determining required plugins (#16865) 2024-08-02 11:49:16 +00:00
plugins.go Update the refresh/destroy warnings for parameterized packages (#18029) 2024-12-20 02:03:17 +00:00
plugins_install_nodejs_test.go ci: Use reduced smoke testing on Windows & macOS targets 2022-09-21 09:55:06 -07:00
plugins_install_python_test.go ci: Use reduced smoke testing on Windows & macOS targets 2022-09-21 09:55:06 -07:00
plugins_install_test.go Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
plugins_test.go Update golangci-lint (#17972) 2024-12-10 11:50:38 +00:00
project.go Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
project.json [sdk] add optional display name and tag fields to project templates (#14587) 2023-11-18 19:04:13 +00:00
project_test.go Preserve ordering when editing stack config. (#17452) 2024-10-02 13:31:10 +00:00
settings.go move pkg/workspace -> sdk/go/common/workspace 2020-03-18 14:35:53 -07:00
templates.go pass context to git clone utilities (#17799) 2024-11-18 16:51:24 +00:00
templates_test.go pass context to git clone utilities (#17799) 2024-11-18 16:51:24 +00:00
templates_zip.go return a meaningful error when getting a zip template fails (#18091) 2024-12-23 09:10:49 +00:00
templates_zip_test.go return a meaningful error when getting a zip template fails (#18091) 2024-12-23 09:10:49 +00:00
workspace.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00