pulumi/sdk/go
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
..
auto go automation api support for colorize output (#18184) 2025-01-08 17:04:39 +00:00
common Adds support for Copilot templates to `pulumi new` (#16825) 2025-01-09 10:14:57 +00:00
internal Add OutputWithDependencies (#17856) 2024-11-26 09:53:24 +00:00
property Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
pulumi Avoid calling invokes with dependencies on unknown resources (#18133) 2025-01-06 08:46:33 +00:00
pulumi-internal/netutil try to choose a consistent port for debugging (#17271) 2024-09-18 10:06:17 +00:00
pulumi-language-go Changelog and go.mod updates for v3.145.0 (#18181) 2025-01-08 18:33:19 +00:00
pulumix Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
Makefile sdk/go: fix test_fast Makefile target (#16811) 2024-07-26 10:25:04 +00:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

README.md

Pulumi Golang SDK

This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:

  • pulumi/ contains the client language bindings Pulumi program's code directly against;
  • pulumi-language-go/ contains the language host plugin that the Pulumi engine uses to orchestrate updates.

To author a Pulumi program in Go, simply say so in your Pulumi.yaml

name: <my-project>
runtime: go

and ensure you have pulumi-language-go on your path (it is distributed in the Pulumi download automatically).

By default, the language plugin will use your project's name, <my-project>, as the executable that it loads. This too must be on your path for the language provider to load it when you run pulumi preview or pulumi up.