pulumi/sdk/go/common/resource/plugin
Thomas Gummerer 9962fede18
implement getting plugins from remote git sources (#17827)
Allow users go get and run plugins from remote git sources. This should
work with all currently supported sources, such as GitHub and GitLab
(for the correct URL splitting).

This does not currently support direct links (e.g. just pasting
https://github.com/pulumi/pulumi-tls-self-signed-cert/tree/mikhailshilkov/boilerplateless/lib),
or just getting the latest version of a plugin (the version needs to
always be specified). These can be implemented separately later.

Using this PR, the user can use commands such as 
```
$ pulumi package add github.com/example/bla@deadbeef
or
$ pulumi package add github.com/example/bla@v1.1.0 # there is the expectation that there will be a semver based tag prefixed with `v` in the repository here
```

to download and use packages in their projects. On disk the packages are
stored in `.pulumi/plugins`, with their names being the full URL with
`/` replaced with `_`, e.g. in the case above the name would be
`github.com_example_bla`.

We always include the `PluginDownloadURL` in the package in this case,
so the engine can disambiguate between different versions of the
package, e.g. we couldn't just use `bla` because there might also be a
package at `github.com/bla/bla`. This is done internally, and the
`PluginDownloadURL` does not need to be specified in the schema.


Depends on https://github.com/pulumi/pulumi/pull/17798
2025-01-16 16:10:46 +00:00
..
analyzer.go Allow anything in resource names (#14107) 2023-11-20 08:59:00 +00:00
analyzer_plugin.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
check.go Enable importas linter (#15167) 2024-01-17 14:56:37 +00:00
config_source.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
context.go Implement plugin download cancellation (#17621) 2024-11-12 18:04:25 +00:00
context_test.go Fix data race in plugin.Context 2023-03-31 07:15:11 -07:00
converter.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_plugin.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
converter_plugin_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
debugging.go implement the engine bits for debugging support (#17072) 2024-08-30 10:31:28 +00:00
diagnostic.go Prepare golangci-lint upgrade (#17065) 2024-08-28 07:57:38 +00:00
diagnostic_test.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
doc.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
host.go implement getting plugins from remote git sources (#17827) 2025-01-16 16:10:46 +00:00
host_server.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
host_test.go Lock access to the plugin loading channels 2023-08-10 23:40:23 +01:00
langruntime.go Add GetRequiredPackages to the language host (#17894) 2024-12-02 20:24:23 +00:00
langruntime_plugin.go Add PULUMI_DEBUG_LANGUAGES support to go, python, and nodejs. (#17821) 2024-12-11 08:50:52 +00:00
langruntime_test.go Add PULUMI_DEBUG_LANGUAGES support to go, python, and nodejs. (#17821) 2024-12-11 08:50:52 +00:00
mock.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
plugin.go Passthrough unstructured logs from dynamic providers (#18253) 2025-01-15 21:54:49 +00:00
plugin_test.go Workaround for control codes in output from .NET 9.0 (#17783) 2024-11-15 14:48:08 +00:00
provider.go Autonaming configuration in experimental mode (#17916) 2024-12-10 14:03:27 +00:00
provider_plugin.go Autonaming configuration in experimental mode (#17916) 2024-12-10 14:03:27 +00:00
provider_plugin_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_server.go Autonaming configuration in experimental mode (#17916) 2024-12-10 14:03:27 +00:00
provider_server_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_test.go Fix PropertyPaths generated by NewDetailedDiffFromObjectDiff (#14337) 2023-10-25 10:39:03 +00:00
provider_unimplemented.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
rpc.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
rpc_rapid_test.go Remove deprecated Protobufs imports (#15158) 2024-01-17 09:35:20 +00:00
rpc_test.go Fix upgrade with ResourceReference (#15377) 2024-02-06 08:22:46 +00:00
server.go Add mapping service to converter 2023-03-24 17:09:17 +00:00