pulumi/sdk
Simon 101a72ed7f
Adds support for Copilot templates to `pulumi new` (#16825)
Copilot templates require an access token to look up the conversation
data and extract the code

Here we try to download any template as usual, but then add the
following logic to the response checking:
- *If* a `403` is returned from what we identify as a pulumi-service
backend (via `X-Pulumi-Request-ID` header, which has been present for
the last 6 years)
- *Then* we re-request w/ the auth token. If there is no token present
then the login flow is automatically initiated.

This does result in always raising a 403 on the server every time we
request a copilot template.

If we want to avoid these 403s we could check the domain against known
pulumi backends in the CLI first, at the cost of intro'ing another code
path.

## To test

- Go through the Copilot flow, e.g "Create an s3 bucket please"
- Click "Deploy with Pulumi"
- Choose CLI, click next
- Check out this branch
- Copy most of the command but first: `cd ~/pulumi/pulumi/pkg` and then
`go run ./cmd/pulumi new $ARGS_FROM_PULUMI_CLOUD_UI`

It should succeed
2025-01-09 10:14:57 +00:00
..
go Adds support for Copilot templates to `pulumi new` (#16825) 2025-01-09 10:14:57 +00:00
nodejs Changelog and go.mod updates for v3.145.0 (#18181) 2025-01-08 18:33:19 +00:00
proto/go Document provider Diff response requirements (#18032) 2024-12-16 11:10:28 +00:00
python Changelog and go.mod updates for v3.145.0 (#18181) 2025-01-08 18:33:19 +00:00
.version Freeze v3.145.0 (#18143) 2025-01-07 13:03:36 +00:00
README.md Cleanup sdk/README.md 2023-01-03 17:12:12 -05:00
go.mod auto/go: interrupt programs gracefully on context cancel (#18124) 2025-01-02 11:38:28 +00:00
go.sum auto/go: interrupt programs gracefully on context cancel (#18124) 2025-01-02 11:38:28 +00:00
version.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00

README.md

Pulumi Language SDKs

This directory contains Pulumi SDKs for the following languages:

See the respective READMEs for information about installing and using these libraries.

The language providers work by implementing gRPC interfaces defined in the top level directory proto.