Compare commits

...

90 Commits

Author SHA1 Message Date
pulumi-renovate[bot]
7655548223 Update vulnerable dependencies [SECURITY] 2026-05-30 08:03:04 +00:00
pulumi-provider-automation[bot]
e956539593 Update GitHub Actions workflows. (#878)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b888a93605aab0d973777521a03763e13948d127](b888a93605).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-30 06:35:12 +00:00
pulumi-renovate[bot]
c83bd01570 Update pulumi/auth-actions action to v2 (#877)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [pulumi/auth-actions](https://redirect.github.com/pulumi/auth-actions)
| action | major | `v1.0.1` -> `v2.1.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/auth-actions (pulumi/auth-actions)</summary>

###
[`v2.1.0`](https://redirect.github.com/pulumi/auth-actions/releases/tag/v2.1.0)

[Compare
Source](https://redirect.github.com/pulumi/auth-actions/compare/v2.0.0...v2.1.0)

##### Fixes

- **fix: Build with rollup instead of ncc** to fix a load crash
(`ReferenceError: require is not defined in ES module scope`) that broke
v2.0.0 for all consumers
([#&#8203;63](https://redirect.github.com/pulumi/auth-actions/issues/63)).

v2.0.0 failed to load on every run because the ncc-produced CommonJS
bundle was loaded as ESM (`"type": "module"`), and the
`@pulumi/actions-helpers` dependency could not be bundled by ncc. The
build now uses rollup (true ESM output), mirroring `pulumi/esc-action`.
A CI smoke-test was added that runs the built action on node24 to guard
against this class of regression.

**Anyone on v2.0.0 / `@v2` should upgrade — the `v2` tag now points
here.**

###
[`v2.0.0`](https://redirect.github.com/pulumi/auth-actions/releases/tag/v2.0.0)

[Compare
Source](https://redirect.github.com/pulumi/auth-actions/compare/v1.0.1...v2.0.0)

##### What's New

- feat: Update action runtime to Node 24 (**breaking change**)
([#&#8203;59](https://redirect.github.com/pulumi/auth-actions/pull/59))
- chore: Use `@pulumi/actions-helpers`
([#&#8203;54](https://redirect.github.com/pulumi/auth-actions/pull/54))
- docs: Remove mention of old admin scope for org tokens on OIDC
([#&#8203;56](https://redirect.github.com/pulumi/auth-actions/pull/56))
- fix: oauth url on windows
([#&#8203;53](https://redirect.github.com/pulumi/auth-actions/pull/53))

**Breaking change:** the action now runs on the Node 24 runtime.

**Full Changelog:**
https://github.com/pulumi/auth-actions/compare/v1.0.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-05-30 05:42:52 +00:00
pulumi-renovate[bot]
9802dd5ed4 Update dependency @pulumi/pulumi to v3.244.0 (#875)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.243.0` ->
`3.244.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.243.0/3.244.0)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.244.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.244.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.243.0...v3.244.0)

##### 3.244.0 (2026-05-28)

##### Bug Fixes

- \[cli/do] Fix top level flags like `--logtostderr` being recognized
when using `pulumi do`
[#&#8203;23355](https://redirect.github.com/pulumi/pulumi/pull/23355)
-   \[cli/install] Distinguish multiple packages with the same plugin
-   \[engine] Fix snapshot integrity issue with `up --refresh`
- \[engine] Forward all provider errors to error hooks for retry
[#&#8203;23347](https://redirect.github.com/pulumi/pulumi/pull/23347)
- \[engine] Trace cancel RPCs sent to plugins during shutdown as
children of the active operation instead of emitting separate root spans
[#&#8203;23362](https://redirect.github.com/pulumi/pulumi/pull/23362)
- \[sdk/python] Merge requirements.txt into pyproject.toml when using uv
without a project section
[#&#8203;23340](https://redirect.github.com/pulumi/pulumi/pull/23340)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-05-28 21:30:23 +00:00
pulumi-provider-automation[bot]
66b279ed02 Update GitHub Actions workflows. (#873)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[8433bb2b961b32a1d254ffd70972108451a08f33](8433bb2b96).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-28 06:57:07 +00:00
pulumi-renovate[bot]
a5a7760dda Update first-party Pulumi dependencies (#868)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.17` -> `v0.0.18` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.242.0` -> `v3.243.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.18`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.17...v0.0.18)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.17...v0.0.18)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.243.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.243.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.242.0...v3.243.0)

#### 3.243.0 (2026-05-22)

##### Features

- \[cli] Make the `pulumi project new -y` command write a minimal
project file with no template
[#&#8203;22847](https://redirect.github.com/pulumi/pulumi/pull/22847)

- \[cli] Allow coding agents to create claimable temporary accounts when
not authenticated

- \[cli] Suggest `pulumi neo` in `pulumi preview` and `pulumi up`
diagnostics output
[#&#8203;23326](https://redirect.github.com/pulumi/pulumi/pull/23326)

- \[sdk] Add `List` to the Go `plugin.Provider` interface, wired to the
streaming `ResourceProvider.List` RPC
[#&#8203;23287](https://redirect.github.com/pulumi/pulumi/pull/23287)

- \[sdkgen] Reserve the package names 'pulumi' and 'input' for internal
use
[#&#8203;23321](https://redirect.github.com/pulumi/pulumi/pull/23321)

- \[cli/cloud] Prefer text/markdown over JSON in `pulumi api` when an
endpoint produces both
[#&#8203;22963](https://redirect.github.com/pulumi/pulumi/pull/22963)

-   \[cli/do] Add resource support to `pulumi do`
[#&#8203;23215](https://redirect.github.com/pulumi/pulumi/pull/23215)

- \[cli/neo] Pressing Esc in `pulumi neo` now clears the input box when
it has text; with an empty box, Esc still cancels the agent's current
turn
[#&#8203;23299](https://redirect.github.com/pulumi/pulumi/pull/23299)

-   \[cli/new] Alias `pulumi new` to `pulumi project new`
[#&#8203;23265](https://redirect.github.com/pulumi/pulumi/pull/23265)

##### Bug Fixes

- \[cli] Require `--yes` to confirm `pulumi deployment cancel`, `pulumi
stack schedule remove`, `pulumi org webhook remove`, and `pulumi stack
webhook remove` when running non-interactively
[#&#8203;23264](https://redirect.github.com/pulumi/pulumi/pull/23264)

-   \[pcl] Don't silently ignore `...` in function arguments
[#&#8203;23309](https://redirect.github.com/pulumi/pulumi/pull/23309)

- \[sdkgen/nodejs] Cache package references per-deployment in generated
SDKs to fix concurrent inline programs
[#&#8203;23068](https://redirect.github.com/pulumi/pulumi/pull/23068)

-   \[backend/service] Error out when setting up journaler fails
[#&#8203;22671](https://redirect.github.com/pulumi/pulumi/pull/22671)

##### Miscellaneous

- \[cli/package] Update the `pulumi package add --agent` documentation
hint to use `<type-token>` as the placeholder for the `/docs/...` URL
[#&#8203;23294](https://redirect.github.com/pulumi/pulumi/pull/23294)

-   \[cli/plugin] Rename plugin ls to list and rm to remove
[#&#8203;23291](https://redirect.github.com/pulumi/pulumi/pull/23291)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-28 00:35:07 +00:00
Cory Hall
d02195313f Restore .NET SDK target framework to net6.0 (#872)
## Summary
- Restore the generated .NET SDK project target framework from `net8.0`
to `net6.0`.
- Keep the change scoped to the framework bump introduced by #857.

## Testing
- `dotnet build sdk/dotnet/Pulumi.DockerBuild.csproj --source
https://api.nuget.org/v3/index.json`

Note: a plain `dotnet build sdk/dotnet/Pulumi.DockerBuild.csproj` first
failed during restore because user-level NuGet sources point at missing
local worktree paths. The command above restricts restore to nuget.org;
the SDK build also needs the transient `sdk/dotnet/version.txt` that the
repo's `sdk/dotnet` generation target creates before building.

Co-authored-by: Codex <codex@openai.com>
2026-05-27 09:38:27 -04:00
pulumi-provider-automation[bot]
5a648eeac2 Update GitHub Actions workflows. (#871)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[c608cd5027225fb54de6ba9788c5c8de381af069](c608cd5027).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-27 07:01:18 +00:00
pulumi-provider-automation[bot]
cbc23a6854 Update GitHub Actions workflows. (#870)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[8d6a40522db47cd4b958d1d61f039f802c8676c1](8d6a40522d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-26 06:51:40 +00:00
pulumi-provider-automation[bot]
23db6da099 Update GitHub Actions workflows. (#869)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b6ab3f6c4b243c533f8bf4b992e3ff8a40c05b79](b6ab3f6c4b).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-25 07:01:22 +00:00
pulumi-provider-automation[bot]
5d1d3734e5 Update GitHub Actions workflows. (#867)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[afe9da8f781d2b3f817d03e6d092dc676c6b3fa4](afe9da8f78).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-23 06:33:03 +00:00
pulumi-renovate[bot]
5028aaae3d Update dependency @pulumi/pulumi to v3.243.0 (#866)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.242.0` ->
`3.243.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.242.0/3.243.0)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.243.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.243.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.242.0...v3.243.0)

#### 3.243.0 (2026-05-22)

##### Features

- \[cli] Make the `pulumi project new -y` command write a minimal
project file with no template
[#&#8203;22847](https://redirect.github.com/pulumi/pulumi/pull/22847)

- \[cli] Allow coding agents to create claimable temporary accounts when
not authenticated

- \[cli] Suggest `pulumi neo` in `pulumi preview` and `pulumi up`
diagnostics output
[#&#8203;23326](https://redirect.github.com/pulumi/pulumi/pull/23326)

- \[sdk] Add `List` to the Go `plugin.Provider` interface, wired to the
streaming `ResourceProvider.List` RPC
[#&#8203;23287](https://redirect.github.com/pulumi/pulumi/pull/23287)

- \[sdkgen] Reserve the package names 'pulumi' and 'input' for internal
use
[#&#8203;23321](https://redirect.github.com/pulumi/pulumi/pull/23321)

- \[cli/cloud] Prefer text/markdown over JSON in `pulumi api` when an
endpoint produces both
[#&#8203;22963](https://redirect.github.com/pulumi/pulumi/pull/22963)

-   \[cli/do] Add resource support to `pulumi do`
[#&#8203;23215](https://redirect.github.com/pulumi/pulumi/pull/23215)

- \[cli/neo] Pressing Esc in `pulumi neo` now clears the input box when
it has text; with an empty box, Esc still cancels the agent's current
turn
[#&#8203;23299](https://redirect.github.com/pulumi/pulumi/pull/23299)

-   \[cli/new] Alias `pulumi new` to `pulumi project new`
[#&#8203;23265](https://redirect.github.com/pulumi/pulumi/pull/23265)

##### Bug Fixes

- \[cli] Require `--yes` to confirm `pulumi deployment cancel`, `pulumi
stack schedule remove`, `pulumi org webhook remove`, and `pulumi stack
webhook remove` when running non-interactively
[#&#8203;23264](https://redirect.github.com/pulumi/pulumi/pull/23264)

-   \[pcl] Don't silently ignore `...` in function arguments
[#&#8203;23309](https://redirect.github.com/pulumi/pulumi/pull/23309)

- \[sdkgen/nodejs] Cache package references per-deployment in generated
SDKs to fix concurrent inline programs
[#&#8203;23068](https://redirect.github.com/pulumi/pulumi/pull/23068)

-   \[backend/service] Error out when setting up journaler fails
[#&#8203;22671](https://redirect.github.com/pulumi/pulumi/pull/22671)

##### Miscellaneous

- \[cli/package] Update the `pulumi package add --agent` documentation
hint to use `<type-token>` as the placeholder for the `/docs/...` URL
[#&#8203;23294](https://redirect.github.com/pulumi/pulumi/pull/23294)

-   \[cli/plugin] Rename plugin ls to list and rm to remove
[#&#8203;23291](https://redirect.github.com/pulumi/pulumi/pull/23291)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-05-23 00:19:58 +00:00
pulumi-provider-automation[bot]
b6760addfc Update GitHub Actions workflows. (#865)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[1f1f66a893e6cfe901c30ce05c7d7536a04b624b](1f1f66a893).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-22 06:53:11 +00:00
pulumi-provider-automation[bot]
601ca19a37 Update GitHub Actions workflows. (#863)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[030f4a40d6b74923fd2a23f84d947fd5ffc232ae](030f4a40d6).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-21 06:53:10 +00:00
pulumi-renovate[bot]
cdcd44eeab Update first-party Pulumi dependencies (#861)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.241.0` ->
`3.242.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.241.0/3.242.0)
|
|
[github.com/pulumi/pulumi-java](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.27.0` -> `v1.28.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.241.0` -> `v3.242.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.242.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32420-2026-05-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.241.0...v3.242.0)

##### Features

-   \[cli] Add a `pulumi` package for npx support

-   \[cli] Add the `pulumi org member edit` command
[#&#8203;23235](https://redirect.github.com/pulumi/pulumi/pull/23235)

-   \[cli] Add the `pulumi org member remove` command
[#&#8203;23237](https://redirect.github.com/pulumi/pulumi/pull/23237)

- \[cli/cloud] Add `pulumi deployment get` to retrieve details for a
specific deployment
[#&#8203;23238](https://redirect.github.com/pulumi/pulumi/pull/23238)

- \[cli/cloud] Add `pulumi insights account scan get <account>
<scan-id>` to show the full workflow run for a single Insights scan
[#&#8203;23255](https://redirect.github.com/pulumi/pulumi/pull/23255)

- \[cli/cloud] Add `pulumi insights account scan list <account>` to
discover recent scan IDs to feed into `pulumi insights account scan log`
[#&#8203;23255](https://redirect.github.com/pulumi/pulumi/pull/23255)

-   \[cli/deployment] Add dedicated flags for each deployment setting
[#&#8203;23236](https://redirect.github.com/pulumi/pulumi/pull/23236)

-   \[cli/do] Add the start of `pulumi do`
[#&#8203;23176](https://redirect.github.com/pulumi/pulumi/pull/23176)

- \[cli/neo] Add `--print`/`-p` to `pulumi neo` to run a single prompt
non-interactively and print the agent's final response to stdout
[#&#8203;23245](https://redirect.github.com/pulumi/pulumi/pull/23245)

##### Bug Fixes

- \[cli/cloud] Fix `pulumi insights account scan log --all` to follow
the server's pagination cursor through the end of the log, and render
`--job/--step` mode as structured lines instead of an empty raw-string
blob
[#&#8203;23256](https://redirect.github.com/pulumi/pulumi/pull/23256)

- \[sdk] Close gzip.Writer in archiveTarGZIP to produce valid tar.gz
output
[#&#8203;23240](https://redirect.github.com/pulumi/pulumi/pull/23240)

-   \[sdkgen/python] Fix usage of ArgsDict types in typed dictionaries
[#&#8203;23253](https://redirect.github.com/pulumi/pulumi/pull/23253)

</details>

<details>
<summary>pulumi/pulumi-java (github.com/pulumi/pulumi-java)</summary>

###
[`v1.28.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1280---2026-05-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.27.0...v1.28.0)

##### Improvements

- \[codegen] Implement logical-not and negation unary operators
correctly
[#&#8203;2188](https://redirect.github.com/pulumi/pulumi-java/pull/2188)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.242.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.242.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.241.0...v3.242.0)

#### 3.242.0 (2026-05-19)

##### Features

-   \[cli] Add a `pulumi` package for npx support

-   \[cli] Add the `pulumi org member edit` command
[#&#8203;23235](https://redirect.github.com/pulumi/pulumi/pull/23235)

-   \[cli] Add the `pulumi org member remove` command
[#&#8203;23237](https://redirect.github.com/pulumi/pulumi/pull/23237)

- \[cli/cloud] Add `pulumi deployment get` to retrieve details for a
specific deployment
[#&#8203;23238](https://redirect.github.com/pulumi/pulumi/pull/23238)

- \[cli/cloud] Add `pulumi insights account scan get <account>
<scan-id>` to show the full workflow run for a single Insights scan
[#&#8203;23255](https://redirect.github.com/pulumi/pulumi/pull/23255)

- \[cli/cloud] Add `pulumi insights account scan list <account>` to
discover recent scan IDs to feed into `pulumi insights account scan log`
[#&#8203;23255](https://redirect.github.com/pulumi/pulumi/pull/23255)

-   \[cli/deployment] Add dedicated flags for each deployment setting
[#&#8203;23236](https://redirect.github.com/pulumi/pulumi/pull/23236)

-   \[cli/do] Add the start of `pulumi do`
[#&#8203;23176](https://redirect.github.com/pulumi/pulumi/pull/23176)

- \[cli/neo] Add `--print`/`-p` to `pulumi neo` to run a single prompt
non-interactively and print the agent's final response to stdout
[#&#8203;23245](https://redirect.github.com/pulumi/pulumi/pull/23245)

##### Bug Fixes

- \[cli/cloud] Fix `pulumi insights account scan log --all` to follow
the server's pagination cursor through the end of the log, and render
`--job/--step` mode as structured lines instead of an empty raw-string
blob
[#&#8203;23256](https://redirect.github.com/pulumi/pulumi/pull/23256)

- \[sdk] Close gzip.Writer in archiveTarGZIP to produce valid tar.gz
output
[#&#8203;23240](https://redirect.github.com/pulumi/pulumi/pull/23240)

-   \[sdkgen/python] Fix usage of ArgsDict types in typed dictionaries
[#&#8203;23253](https://redirect.github.com/pulumi/pulumi/pull/23253)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-19 21:51:31 +00:00
pulumi-provider-automation[bot]
b90594a58d Update GitHub Actions workflows. (#860)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[67f164b40070c76a35f8f2650af615978cb4492d](67f164b400).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-19 06:53:58 +00:00
pulumi-renovate[bot]
7cc2388992 Update first-party Pulumi dependencies to v3.241.0 (#859)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.239.0` ->
`3.241.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.239.0/3.241.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.239.0` -> `v3.241.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.241.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32410-2026-05-18)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.239.0...v3.241.0)

##### Features

- \[cli] Add `--output json` to `pulumi preview` for a structured JSON
summary of the operation result
[#&#8203;22927](https://redirect.github.com/pulumi/pulumi/pull/22927)

- \[cli] Add `--output json` to `pulumi refresh` for a structured JSON
summary of the operation result
[#&#8203;22928](https://redirect.github.com/pulumi/pulumi/pull/22928)

- \[cli] Add `--output json` to `pulumi destroy` for a structured JSON
summary of the operation result
[#&#8203;22875](https://redirect.github.com/pulumi/pulumi/pull/22875)

- \[cli] Add `pulumi stack schedule get` to retrieve the configuration
of a scheduled action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule list` to list all scheduled actions
configured for a stack
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule new` to create a raw, drift, or TTL
deployment schedule for a stack
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack webhook delivery list` to list recent
deliveries for a stack webhook
[#&#8203;23116](https://redirect.github.com/pulumi/pulumi/pull/23116)

- \[cli] Add `pulumi stack webhook delivery redeliver` to redeliver a
webhook event
[#&#8203;23118](https://redirect.github.com/pulumi/pulumi/pull/23118)

- \[cli] Add `pulumi stack webhook edit` to update an existing stack
webhook
[#&#8203;23139](https://redirect.github.com/pulumi/pulumi/pull/23139)

-   \[cli] Add `pulumi stack webhook new` to create a new stack webhook
[#&#8203;23101](https://redirect.github.com/pulumi/pulumi/pull/23101)

-   \[cli] Add `pulumi stack webhook remove` to delete a stack webhook
[#&#8203;23102](https://redirect.github.com/pulumi/pulumi/pull/23102)

- \[cli] Add `pulumi org webhook delivery list` to list recent
deliveries for an organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook edit` to update an organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook list` to list all webhooks configured
for an organization
[#&#8203;23174](https://redirect.github.com/pulumi/pulumi/pull/23174)

- \[cli] Add `pulumi org webhook new` to create a new organization
webhook
[#&#8203;23172](https://redirect.github.com/pulumi/pulumi/pull/23172)

- \[cli] Add `pulumi org webhook ping` to send a test ping to an
organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook remove` to delete an organization
webhook
[#&#8203;23177](https://redirect.github.com/pulumi/pulumi/pull/23177)

- \[cli] Add `pulumi stack drift list` to list drift detection runs for
a stack
[#&#8203;23159](https://redirect.github.com/pulumi/pulumi/pull/23159)

- \[cli] Add `pulumi stack drift status` to show the drift detection
status for a stack
[#&#8203;23161](https://redirect.github.com/pulumi/pulumi/pull/23161)

- \[cli] Add `pulumi stack schedule edit` to update an existing
scheduled deployment action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule remove` to delete a scheduled
deployment action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

-   \[cli] Add `pulumi audit-log export` command
[#&#8203;23212](https://redirect.github.com/pulumi/pulumi/pull/23212)

-   \[cli] Add `pulumi org audit-log list`
[#&#8203;23211](https://redirect.github.com/pulumi/pulumi/pull/23211)

- \[cli] Add `pulumi policy compliance list` to list compliance results
grouped by entity
[#&#8203;23209](https://redirect.github.com/pulumi/pulumi/pull/23209)

- \[cli] Add `pulumi policy group new` command to allow creating new
policy groups
[#&#8203;23202](https://redirect.github.com/pulumi/pulumi/pull/23202)

-   \[cli] Add the `pulumi policy issue get` command
[#&#8203;23200](https://redirect.github.com/pulumi/pulumi/pull/23200)

- \[cli/cloud] Add `pulumi insights account list` to list Insights
accounts in an organization
[#&#8203;23091](https://redirect.github.com/pulumi/pulumi/pull/23091)

- \[cli/cloud] Add `pulumi insights account new` to create a Pulumi
Insights account
[#&#8203;23093](https://redirect.github.com/pulumi/pulumi/pull/23093)

- \[cli/cloud] Add `pulumi insights account scan log` to fetch log
output for a Pulumi Insights scan
[#&#8203;23092](https://redirect.github.com/pulumi/pulumi/pull/23092)

- \[cli/cloud] Add `pulumi insights account scan` to trigger a resource
discovery scan for an Insights account
[#&#8203;23094](https://redirect.github.com/pulumi/pulumi/pull/23094)

- \[cli/cloud] Implement `pulumi stack history events` to retrieve
engine events for a Pulumi Cloud update
[#&#8203;23109](https://redirect.github.com/pulumi/pulumi/pull/23109)

- \[cli/cloud] Add `pulumi deployment cancel` to terminate an
in-progress deployment
[#&#8203;23164](https://redirect.github.com/pulumi/pulumi/pull/23164)

- \[cli/cloud] Add `pulumi org member list` to list the members of an
organization
[#&#8203;23170](https://redirect.github.com/pulumi/pulumi/pull/23170)

- \[cli/cloud] Add `pulumi org usage get` to fetch the
resources-under-management summary for an organization
[#&#8203;23166](https://redirect.github.com/pulumi/pulumi/pull/23166)

- \[cli/cloud] Add `pulumi org role assign` to assign a custom role to a
team
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role edit` to update a custom role's
name, description, or permission tree
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role list` to list custom roles for an
organization
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role new` to create a custom role from a
permission descriptor JSON file
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role remove` to delete a custom role from
an organization
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

-   \[cli/env] Update esc to v0.24.0
[#&#8203;23213](https://redirect.github.com/pulumi/pulumi/pull/23213)

- \[cli/neo] Show tool call arguments and results in `pulumi neo` via a
`ctrl+o` overlay
[#&#8203;23075](https://redirect.github.com/pulumi/pulumi/pull/23075)

- \[cli/neo] Multi-line input in `pulumi neo` - Enter sends, Shift+Enter
/ Alt+Enter / Ctrl+J / trailing `\` insert a newline
[#&#8203;23151](https://redirect.github.com/pulumi/pulumi/pull/23151)

- \[cli/neo] Make `pulumi neo` visible by default; the
`PULUMI_EXPERIMENTAL` gate has been removed
[#&#8203;23228](https://redirect.github.com/pulumi/pulumi/pull/23228)

-   \[cli/policy] Add `pulumi policy group edit` to edit policy groups
[#&#8203;23206](https://redirect.github.com/pulumi/pulumi/pull/23206)

- \[cli/policy] Add `pulumi policy group remove` command to remove
policies
[#&#8203;23208](https://redirect.github.com/pulumi/pulumi/pull/23208)

-   \[cli/policy] Add the `pulumi policy group get` command
[#&#8203;23203](https://redirect.github.com/pulumi/pulumi/pull/23203)

##### Bug Fixes

-   \[cli] Add `pulumi policy issue list` command
[#&#8203;23198](https://redirect.github.com/pulumi/pulumi/pull/23198)

- \[cli] Fix `pulumi org role list` to send the `uxPurpose` query
parameter the service requires
[#&#8203;23231](https://redirect.github.com/pulumi/pulumi/pull/23231)

- \[engine] Fix `pulumi import` dropping map entries whose value matched
the enum member of a `Union<Input<Enum<T>>, ...>` element type
[#&#8203;23190](https://redirect.github.com/pulumi/pulumi/pull/23190)

- \[cli/cloud] Surface a clear error when `pulumi api --all` is used
against an endpoint whose response is not paginatable, instead of
silently emitting an empty array
[#&#8203;23191](https://redirect.github.com/pulumi/pulumi/pull/23191)
[#&#8203;23128](https://redirect.github.com/pulumi/pulumi/pull/23128)

- \[cli/cloud] `pulumi deployment settings edit` no longer clears fields
that the patch does not mention
[#&#8203;23217](https://redirect.github.com/pulumi/pulumi/pull/23217)

- \[cli/import] Generate PCL for asset and archive inputs when importing
resources, instead of returning a "NYI" error
[#&#8203;22938](https://redirect.github.com/pulumi/pulumi/pull/22938)

- \[cli/import] Preserve asset/archive/resource-reference values inside
map and array inputs, and HCL-escape map keys containing `${` or `%{`
template sequences
[#&#8203;23222](https://redirect.github.com/pulumi/pulumi/pull/23222)

- \[cli/install] Hint at adding a `.git` / `_git` when VCS URL
resolution fails
[#&#8203;22831](https://redirect.github.com/pulumi/pulumi/pull/22831)

- \[cli/neo] Transparently reconnect the Neo event stream after a
transient network drop, resuming from the last seen event ID
[#&#8203;23134](https://redirect.github.com/pulumi/pulumi/pull/23134)

- \[cli/neo] Show `preparing` in the live preview/up block until the
first resource arrives
[#&#8203;23155](https://redirect.github.com/pulumi/pulumi/pull/23155)

- \[cli/new] Support specific versions when using registry-backed
templates with `pulumi new`
[#&#8203;22909](https://redirect.github.com/pulumi/pulumi/pull/22909)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.241.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.241.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.239.0...v3.241.0)

##### 3.241.0 (2026-05-18)

##### Features

- \[cli] Add `--output json` to `pulumi preview` for a structured JSON
summary of the operation result
[#&#8203;22927](https://redirect.github.com/pulumi/pulumi/pull/22927)

- \[cli] Add `--output json` to `pulumi refresh` for a structured JSON
summary of the operation result
[#&#8203;22928](https://redirect.github.com/pulumi/pulumi/pull/22928)

- \[cli] Add `--output json` to `pulumi destroy` for a structured JSON
summary of the operation result
[#&#8203;22875](https://redirect.github.com/pulumi/pulumi/pull/22875)

- \[cli] Add `pulumi stack schedule get` to retrieve the configuration
of a scheduled action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule list` to list all scheduled actions
configured for a stack
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule new` to create a raw, drift, or TTL
deployment schedule for a stack
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack webhook delivery list` to list recent
deliveries for a stack webhook
[#&#8203;23116](https://redirect.github.com/pulumi/pulumi/pull/23116)

- \[cli] Add `pulumi stack webhook delivery redeliver` to redeliver a
webhook event
[#&#8203;23118](https://redirect.github.com/pulumi/pulumi/pull/23118)

- \[cli] Add `pulumi stack webhook edit` to update an existing stack
webhook
[#&#8203;23139](https://redirect.github.com/pulumi/pulumi/pull/23139)

-   \[cli] Add `pulumi stack webhook new` to create a new stack webhook
[#&#8203;23101](https://redirect.github.com/pulumi/pulumi/pull/23101)

-   \[cli] Add `pulumi stack webhook remove` to delete a stack webhook
[#&#8203;23102](https://redirect.github.com/pulumi/pulumi/pull/23102)

- \[cli] Add `pulumi org webhook delivery list` to list recent
deliveries for an organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook edit` to update an organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook list` to list all webhooks configured
for an organization
[#&#8203;23174](https://redirect.github.com/pulumi/pulumi/pull/23174)

- \[cli] Add `pulumi org webhook new` to create a new organization
webhook
[#&#8203;23172](https://redirect.github.com/pulumi/pulumi/pull/23172)

- \[cli] Add `pulumi org webhook ping` to send a test ping to an
organization webhook
[#&#8203;23179](https://redirect.github.com/pulumi/pulumi/pull/23179)

- \[cli] Add `pulumi org webhook remove` to delete an organization
webhook
[#&#8203;23177](https://redirect.github.com/pulumi/pulumi/pull/23177)

- \[cli] Add `pulumi stack drift list` to list drift detection runs for
a stack
[#&#8203;23159](https://redirect.github.com/pulumi/pulumi/pull/23159)

- \[cli] Add `pulumi stack drift status` to show the drift detection
status for a stack
[#&#8203;23161](https://redirect.github.com/pulumi/pulumi/pull/23161)

- \[cli] Add `pulumi stack schedule edit` to update an existing
scheduled deployment action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

- \[cli] Add `pulumi stack schedule remove` to delete a scheduled
deployment action
[#&#8203;23153](https://redirect.github.com/pulumi/pulumi/pull/23153)

-   \[cli] Add `pulumi audit-log export` command
[#&#8203;23212](https://redirect.github.com/pulumi/pulumi/pull/23212)

-   \[cli] Add `pulumi org audit-log list`
[#&#8203;23211](https://redirect.github.com/pulumi/pulumi/pull/23211)

- \[cli] Add `pulumi policy compliance list` to list compliance results
grouped by entity
[#&#8203;23209](https://redirect.github.com/pulumi/pulumi/pull/23209)

- \[cli] Add `pulumi policy group new` command to allow creating new
policy groups
[#&#8203;23202](https://redirect.github.com/pulumi/pulumi/pull/23202)

-   \[cli] Add the `pulumi policy issue get` command
[#&#8203;23200](https://redirect.github.com/pulumi/pulumi/pull/23200)

- \[cli/cloud] Add `pulumi insights account list` to list Insights
accounts in an organization
[#&#8203;23091](https://redirect.github.com/pulumi/pulumi/pull/23091)

- \[cli/cloud] Add `pulumi insights account new` to create a Pulumi
Insights account
[#&#8203;23093](https://redirect.github.com/pulumi/pulumi/pull/23093)

- \[cli/cloud] Add `pulumi insights account scan log` to fetch log
output for a Pulumi Insights scan
[#&#8203;23092](https://redirect.github.com/pulumi/pulumi/pull/23092)

- \[cli/cloud] Add `pulumi insights account scan` to trigger a resource
discovery scan for an Insights account
[#&#8203;23094](https://redirect.github.com/pulumi/pulumi/pull/23094)

- \[cli/cloud] Implement `pulumi stack history events` to retrieve
engine events for a Pulumi Cloud update
[#&#8203;23109](https://redirect.github.com/pulumi/pulumi/pull/23109)

- \[cli/cloud] Add `pulumi deployment cancel` to terminate an
in-progress deployment
[#&#8203;23164](https://redirect.github.com/pulumi/pulumi/pull/23164)

- \[cli/cloud] Add `pulumi org member list` to list the members of an
organization
[#&#8203;23170](https://redirect.github.com/pulumi/pulumi/pull/23170)

- \[cli/cloud] Add `pulumi org usage get` to fetch the
resources-under-management summary for an organization
[#&#8203;23166](https://redirect.github.com/pulumi/pulumi/pull/23166)

- \[cli/cloud] Add `pulumi org role assign` to assign a custom role to a
team
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role edit` to update a custom role's
name, description, or permission tree
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role list` to list custom roles for an
organization
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role new` to create a custom role from a
permission descriptor JSON file
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

- \[cli/cloud] Add `pulumi org role remove` to delete a custom role from
an organization
[#&#8203;23117](https://redirect.github.com/pulumi/pulumi/pull/23117)

-   \[cli/env] Update esc to v0.24.0
[#&#8203;23213](https://redirect.github.com/pulumi/pulumi/pull/23213)

- \[cli/neo] Show tool call arguments and results in `pulumi neo` via a
`ctrl+o` overlay
[#&#8203;23075](https://redirect.github.com/pulumi/pulumi/pull/23075)

- \[cli/neo] Multi-line input in `pulumi neo` - Enter sends, Shift+Enter
/ Alt+Enter / Ctrl+J / trailing `\` insert a newline
[#&#8203;23151](https://redirect.github.com/pulumi/pulumi/pull/23151)

- \[cli/neo] Make `pulumi neo` visible by default; the
`PULUMI_EXPERIMENTAL` gate has been removed
[#&#8203;23228](https://redirect.github.com/pulumi/pulumi/pull/23228)

-   \[cli/policy] Add `pulumi policy group edit` to edit policy groups
[#&#8203;23206](https://redirect.github.com/pulumi/pulumi/pull/23206)

- \[cli/policy] Add `pulumi policy group remove` command to remove
policies
[#&#8203;23208](https://redirect.github.com/pulumi/pulumi/pull/23208)

-   \[cli/policy] Add the `pulumi policy group get` command
[#&#8203;23203](https://redirect.github.com/pulumi/pulumi/pull/23203)

##### Bug Fixes

-   \[cli] Add `pulumi policy issue list` command
[#&#8203;23198](https://redirect.github.com/pulumi/pulumi/pull/23198)

- \[cli] Fix `pulumi org role list` to send the `uxPurpose` query
parameter the service requires
[#&#8203;23231](https://redirect.github.com/pulumi/pulumi/pull/23231)

- \[engine] Fix `pulumi import` dropping map entries whose value matched
the enum member of a `Union<Input<Enum<T>>, ...>` element type
[#&#8203;23190](https://redirect.github.com/pulumi/pulumi/pull/23190)

- \[cli/cloud] Surface a clear error when `pulumi api --all` is used
against an endpoint whose response is not paginatable, instead of
silently emitting an empty array
[#&#8203;23191](https://redirect.github.com/pulumi/pulumi/pull/23191)
[#&#8203;23128](https://redirect.github.com/pulumi/pulumi/pull/23128)

- \[cli/cloud] `pulumi deployment settings edit` no longer clears fields
that the patch does not mention
[#&#8203;23217](https://redirect.github.com/pulumi/pulumi/pull/23217)

- \[cli/import] Generate PCL for asset and archive inputs when importing
resources, instead of returning a "NYI" error
[#&#8203;22938](https://redirect.github.com/pulumi/pulumi/pull/22938)

- \[cli/import] Preserve asset/archive/resource-reference values inside
map and array inputs, and HCL-escape map keys containing `${` or `%{`
template sequences
[#&#8203;23222](https://redirect.github.com/pulumi/pulumi/pull/23222)

- \[cli/install] Hint at adding a `.git` / `_git` when VCS URL
resolution fails
[#&#8203;22831](https://redirect.github.com/pulumi/pulumi/pull/22831)

- \[cli/neo] Transparently reconnect the Neo event stream after a
transient network drop, resuming from the last seen event ID
[#&#8203;23134](https://redirect.github.com/pulumi/pulumi/pull/23134)

- \[cli/neo] Show `preparing` in the live preview/up block until the
first resource arrives
[#&#8203;23155](https://redirect.github.com/pulumi/pulumi/pull/23155)

- \[cli/new] Support specific versions when using registry-backed
templates with `pulumi new`
[#&#8203;22909](https://redirect.github.com/pulumi/pulumi/pull/22909)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-19 02:23:38 +00:00
Ian Wahbe
a748e088ca Add HCL Examples & Docs (#852)
Fixes https://github.com/pulumi/pulumi-docker-build/issues/844
2026-05-18 12:11:41 +02:00
pulumi-renovate[bot]
55d6f8f216 Update first-party Pulumi dependencies (#855)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.237.0` ->
`3.239.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.237.0/3.239.0)
|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.23.0` -> `v0.24.0` |
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.16` -> `v0.0.17` |
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | patch | `v3.106.1` -> `v3.106.2` |
|
[github.com/pulumi/pulumi-java](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.26.1` -> `v1.27.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.237.0` -> `v3.239.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.239.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32390-2026-05-14)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.238.0...v3.239.0)

##### Features

- \[cli] Add `--output json` to `pulumi import` for a structured JSON
summary of the operation result
[#&#8203;22929](https://redirect.github.com/pulumi/pulumi/pull/22929)

- \[cli] Add `pulumi stack get` to retrieve detailed information about a
stack
[#&#8203;23106](https://redirect.github.com/pulumi/pulumi/pull/23106)

- \[cli] Add `pulumi stack webhook get` to inspect a single stack
webhook
[#&#8203;23088](https://redirect.github.com/pulumi/pulumi/pull/23088)

- \[cli] Add `pulumi stack webhook ping` to send a test ping to a stack
webhook

- \[cli/cloud] Add `pulumi deployment list` to list deployment
executions for a stack
[#&#8203;23114](https://redirect.github.com/pulumi/pulumi/pull/23114)

- \[sdkgen] Validate that schema names can't conflict with module paths
[#&#8203;22956](https://redirect.github.com/pulumi/pulumi/pull/22956)

##### Bug Fixes

-   \[engine] Fix batch encrypt/decrypt errors being silently dropped
[#&#8203;23149](https://redirect.github.com/pulumi/pulumi/pull/23149)

- \[cli/cloud] Fix `pulumi api` help examples that referenced
non-existent operation IDs and response fields
[#&#8203;23125](https://redirect.github.com/pulumi/pulumi/pull/23125)

###
[`v3.238.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32380-2026-05-13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.237.0...v3.238.0)

##### Features

- \[cli] Add a `--language` flag to `pulumi package add` to run outside
a Pulumi project or plugin
[#&#8203;22791](https://redirect.github.com/pulumi/pulumi/pull/22791)

- \[cli] Add `--output json` to `pulumi up` for a structured JSON
summary of the operation result
[#&#8203;22870](https://redirect.github.com/pulumi/pulumi/pull/22870)

- \[cli] Recommend `pulumi cloud api describe` in `pulumi cloud api
--help` to verify operation parameters before calling
[#&#8203;22881](https://redirect.github.com/pulumi/pulumi/pull/22881)

- \[cli] Add `pulumi stack webhook list` to list all webhooks configured
for a stack
[#&#8203;23082](https://redirect.github.com/pulumi/pulumi/pull/23082)

-   \[cli/cloud] Rename `pulumi cloud api` to `pulumi api`
[#&#8203;22970](https://redirect.github.com/pulumi/pulumi/pull/22970)

- \[cli/cloud] Add `pulumi insights resource get` to look up a single
resource discovered by Pulumi Insights
[#&#8203;23077](https://redirect.github.com/pulumi/pulumi/pull/23077)

- \[cli/cloud] Add `pulumi template list` to list registry-backed
templates
[#&#8203;23074](https://redirect.github.com/pulumi/pulumi/pull/23074)

- \[cli/cloud] Rename the `--format` flag to `--output` on `pulumi api`
and its subcommands
[#&#8203;23072](https://redirect.github.com/pulumi/pulumi/pull/23072)

- \[cli/cloud] Add `pulumi insights resource search` to search for
resources discovered by Pulumi Insights
[#&#8203;23087](https://redirect.github.com/pulumi/pulumi/pull/23087)

- \[cli/engine] Add `--skip-plugin-pre-install` to skip up-front plugin
installation

-   \[engine] Fail the deployment when an after hook fails
[#&#8203;22935](https://redirect.github.com/pulumi/pulumi/pull/22935)

-   \[cli/neo] Render the agent's TODO list in the `pulumi neo` TUI
[#&#8203;22864](https://redirect.github.com/pulumi/pulumi/pull/22864)

- \[cli/neo] Add `--approval-mode` and `--permission-mode` flags to
`pulumi neo`, with Ctrl+A and Ctrl+R hotkeys to switch modes mid-session
[#&#8203;22950](https://redirect.github.com/pulumi/pulumi/pull/22950)

- \[cli/package] When invoked by an AI coding agent, print `pulumi api`
pointers after `pulumi package add` and `pulumi package gen-sdk`
[#&#8203;22904](https://redirect.github.com/pulumi/pulumi/pull/22904)

- \[pkg/testing] Recognize the `hcl` and `pcl` runtimes in
`integration.ProgramTest`
[#&#8203;23018](https://redirect.github.com/pulumi/pulumi/pull/23018)

- \[pkg/testing] Add `l1-config-types-optional` conformance test for
PCL's `optional` type constructor
[#&#8203;23108](https://redirect.github.com/pulumi/pulumi/pull/23108)

##### Bug Fixes

- \[backend/diy] Minify JSON persisted by the DIY backend for
checkpoints, history, and stack tags
[#&#8203;22245](https://redirect.github.com/pulumi/pulumi/pull/22245)

- \[cli/import] Ignore property values that do not conform to the schema
in maps
[#&#8203;23076](https://redirect.github.com/pulumi/pulumi/pull/23076)

- \[cli/import] Stop dropping map values whose element type is a union
of Input-wrapped types during HCL2 import

- \[cli/neo] Use the selected stack's organization when starting a
`pulumi neo` task instead of the user's default organization
[#&#8203;22951](https://redirect.github.com/pulumi/pulumi/pull/22951)

- \[cli/neo] Include the failure reason in `pulumi_preview` and
`pulumi_up` tool results when they fail, so the agent can react instead
of seeing a blank error
[#&#8203;22948](https://redirect.github.com/pulumi/pulumi/pull/22948)

- \[cli/neo] Retry `pulumi neo` task creation without the attached stack
when the backend rejects it with an "invalid entities" error
[#&#8203;22945](https://redirect.github.com/pulumi/pulumi/pull/22945)

- \[cli/neo] Surface the failure reason when a `filesystem` tool call
fails, instead of returning an empty result to the agent
[#&#8203;23019](https://redirect.github.com/pulumi/pulumi/pull/23019)

- \[cli/package] Use `--output=markdown` (not the renamed-away
`--format=markdown`) in the `pulumi api` pointers printed by `pulumi
package add` and `pulumi package gen-sdk`
[#&#8203;23098](https://redirect.github.com/pulumi/pulumi/pull/23098)

- \[programgen/pcl] Stop reporting spurious circular references when an
`ignoreChanges`, `hideDiffs`, `replaceOnChanges`, or
`additionalSecretOutputs` entry shares a name with a top-level node
[#&#8203;22931](https://redirect.github.com/pulumi/pulumi/pull/22931)

- \[sdk/python] Speed up python program resolution by using a set
instead of deque to track outputs
[#&#8203;22946](https://redirect.github.com/pulumi/pulumi/pull/22946)

##### Miscellaneous

- \[cli/neo] Tag Neo tasks created from the CLI with a `cli` source so
the service can attribute their origin
[#&#8203;23099](https://redirect.github.com/pulumi/pulumi/pull/23099)

- \[sdk/nodejs] Add registerPackage helper to cache package references
per deployment
[#&#8203;23014](https://redirect.github.com/pulumi/pulumi/pull/23014)

</details>

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.24.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.24.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.23.0...v0.24.0)

##### Improvements

##### Bug Fixes

##### Breaking changes

</details>

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.17`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.16...v0.0.17)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.16...v0.0.17)

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.106.2`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31062---2026-05-13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.106.1...v3.106.2)

##### Bug Fixes

- \[sdk] Fix programgen for arrays containing only null literals by
generating explicit `new object?[]` type annotation
[#&#8203;948](https://redirect.github.com/pulumi/pulumi-dotnet/pull/948)

- \[runtime] Translate PCL `length()` on strings to
`StringInfo.LengthInTextElements` so it returns Unicode grapheme
clusters rather than UTF-16 code units
[#&#8203;1000](https://redirect.github.com/pulumi/pulumi-dotnet/pull/1000)

- \[runtime] Translate PCL `singleOrNone()` to
`Enumerable.SingleOrDefault` so it returns null on an empty list instead
of throwing
[#&#8203;1001](https://redirect.github.com/pulumi/pulumi-dotnet/pull/1001)

- \[runtime] Generate correct .NET property names when the schema
version contains a hyphen
[#&#8203;1005](https://redirect.github.com/pulumi/pulumi-dotnet/pull/1005)

</details>

<details>
<summary>pulumi/pulumi-java (github.com/pulumi/pulumi-java)</summary>

###
[`v1.27.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1270---2026-05-13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.26.1...v1.27.0)

##### Bug Fixes

- \[sdk] Fix child resources unable to override protect, retainOnDelete,
and deleteBeforeReplace from parent
[#&#8203;2156](https://redirect.github.com/pulumi/pulumi-java/pull/2156)

##### Improvements

- \[codegen] Implement the PCL `fromBase64` and `toBase64` builtins in
the Java program codegen
[#&#8203;2171](https://redirect.github.com/pulumi/pulumi-java/pull/2171)

- \[codegen] Fix l1-builtin-string by emitting a grapheme-cluster
counter for PCL length() on strings, and wrapping split() results as
List<String> so they serialize correctly through ctx.export
[#&#8203;2170](https://redirect.github.com/pulumi/pulumi-java/pull/2170)

- \[codegen] Fix l2-map-keys by fully qualifying generated Args types
when their simple names collide across imported packages
[#&#8203;2178](https://redirect.github.com/pulumi/pulumi-java/pull/2178)

- \[sdk/java] Implement the PCL `rootDirectory` builtin and surface the
project root directory on `Deployment`
[#&#8203;2176](https://redirect.github.com/pulumi/pulumi-java/pull/2176)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.239.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.239.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.238.0...v3.239.0)

#### 3.239.0 (2026-05-14)

##### Features

- \[cli] Add `--output json` to `pulumi import` for a structured JSON
summary of the operation result
[#&#8203;22929](https://redirect.github.com/pulumi/pulumi/pull/22929)

- \[cli] Add `pulumi stack get` to retrieve detailed information about a
stack
[#&#8203;23106](https://redirect.github.com/pulumi/pulumi/pull/23106)

- \[cli] Add `pulumi stack webhook get` to inspect a single stack
webhook
[#&#8203;23088](https://redirect.github.com/pulumi/pulumi/pull/23088)

- \[cli] Add `pulumi stack webhook ping` to send a test ping to a stack
webhook

- \[cli/cloud] Add `pulumi deployment list` to list deployment
executions for a stack
[#&#8203;23114](https://redirect.github.com/pulumi/pulumi/pull/23114)

- \[sdkgen] Validate that schema names can't conflict with module paths
[#&#8203;22956](https://redirect.github.com/pulumi/pulumi/pull/22956)

##### Bug Fixes

-   \[engine] Fix batch encrypt/decrypt errors being silently dropped
[#&#8203;23149](https://redirect.github.com/pulumi/pulumi/pull/23149)

- \[cli/cloud] Fix `pulumi api` help examples that referenced
non-existent operation IDs and response fields
[#&#8203;23125](https://redirect.github.com/pulumi/pulumi/pull/23125)

###
[`v3.238.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.238.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.237.0...v3.238.0)

#### 3.238.0 (2026-05-13)

##### Features

- \[cli] Add a `--language` flag to `pulumi package add` to run outside
a Pulumi project or plugin
[#&#8203;22791](https://redirect.github.com/pulumi/pulumi/pull/22791)

- \[cli] Add `--output json` to `pulumi up` for a structured JSON
summary of the operation result
[#&#8203;22870](https://redirect.github.com/pulumi/pulumi/pull/22870)

- \[cli] Recommend `pulumi cloud api describe` in `pulumi cloud api
--help` to verify operation parameters before calling
[#&#8203;22881](https://redirect.github.com/pulumi/pulumi/pull/22881)

- \[cli] Add `pulumi stack webhook list` to list all webhooks configured
for a stack
[#&#8203;23082](https://redirect.github.com/pulumi/pulumi/pull/23082)

-   \[cli/cloud] Rename `pulumi cloud api` to `pulumi api`
[#&#8203;22970](https://redirect.github.com/pulumi/pulumi/pull/22970)

- \[cli/cloud] Add `pulumi insights resource get` to look up a single
resource discovered by Pulumi Insights
[#&#8203;23077](https://redirect.github.com/pulumi/pulumi/pull/23077)

- \[cli/cloud] Add `pulumi template list` to list registry-backed
templates
[#&#8203;23074](https://redirect.github.com/pulumi/pulumi/pull/23074)

- \[cli/cloud] Rename the `--format` flag to `--output` on `pulumi api`
and its subcommands
[#&#8203;23072](https://redirect.github.com/pulumi/pulumi/pull/23072)

- \[cli/cloud] Add `pulumi insights resource search` to search for
resources discovered by Pulumi Insights
[#&#8203;23087](https://redirect.github.com/pulumi/pulumi/pull/23087)

- \[cli/engine] Add `--skip-plugin-pre-install` to skip up-front plugin
installation

-   \[engine] Fail the deployment when an after hook fails
[#&#8203;22935](https://redirect.github.com/pulumi/pulumi/pull/22935)

-   \[cli/neo] Render the agent's TODO list in the `pulumi neo` TUI
[#&#8203;22864](https://redirect.github.com/pulumi/pulumi/pull/22864)

- \[cli/neo] Add `--approval-mode` and `--permission-mode` flags to
`pulumi neo`, with Ctrl+A and Ctrl+R hotkeys to switch modes mid-session
[#&#8203;22950](https://redirect.github.com/pulumi/pulumi/pull/22950)

- \[cli/package] When invoked by an AI coding agent, print `pulumi api`
pointers after `pulumi package add` and `pulumi package gen-sdk`
[#&#8203;22904](https://redirect.github.com/pulumi/pulumi/pull/22904)

- \[pkg/testing] Recognize the `hcl` and `pcl` runtimes in
`integration.ProgramTest`
[#&#8203;23018](https://redirect.github.com/pulumi/pulumi/pull/23018)

- \[pkg/testing] Add `l1-config-types-optional` conformance test for
PCL's `optional` type constructor
[#&#8203;23108](https://redirect.github.com/pulumi/pulumi/pull/23108)

##### Bug Fixes

- \[backend/diy] Minify JSON persisted by the DIY backend for
checkpoints, history, and stack tags
[#&#8203;22245](https://redirect.github.com/pulumi/pulumi/pull/22245)

- \[cli/import] Ignore property values that do not conform to the schema
in maps
[#&#8203;23076](https://redirect.github.com/pulumi/pulumi/pull/23076)

- \[cli/import] Stop dropping map values whose element type is a union
of Input-wrapped types during HCL2 import

- \[cli/neo] Use the selected stack's organization when starting a
`pulumi neo` task instead of the user's default organization
[#&#8203;22951](https://redirect.github.com/pulumi/pulumi/pull/22951)

- \[cli/neo] Include the failure reason in `pulumi_preview` and
`pulumi_up` tool results when they fail, so the agent can react instead
of seeing a blank error
[#&#8203;22948](https://redirect.github.com/pulumi/pulumi/pull/22948)

- \[cli/neo] Retry `pulumi neo` task creation without the attached stack
when the backend rejects it with an "invalid entities" error
[#&#8203;22945](https://redirect.github.com/pulumi/pulumi/pull/22945)

- \[cli/neo] Surface the failure reason when a `filesystem` tool call
fails, instead of returning an empty result to the agent
[#&#8203;23019](https://redirect.github.com/pulumi/pulumi/pull/23019)

- \[cli/package] Use `--output=markdown` (not the renamed-away
`--format=markdown`) in the `pulumi api` pointers printed by `pulumi
package add` and `pulumi package gen-sdk`
[#&#8203;23098](https://redirect.github.com/pulumi/pulumi/pull/23098)

- \[programgen/pcl] Stop reporting spurious circular references when an
`ignoreChanges`, `hideDiffs`, `replaceOnChanges`, or
`additionalSecretOutputs` entry shares a name with a top-level node
[#&#8203;22931](https://redirect.github.com/pulumi/pulumi/pull/22931)

- \[sdk/python] Speed up python program resolution by using a set
instead of deque to track outputs
[#&#8203;22946](https://redirect.github.com/pulumi/pulumi/pull/22946)

##### Miscellaneous

- \[cli/neo] Tag Neo tasks created from the CLI with a `cli` source so
the service can attribute their origin
[#&#8203;23099](https://redirect.github.com/pulumi/pulumi/pull/23099)

- \[sdk/nodejs] Add registerPackage helper to cache package references
per deployment
[#&#8203;23014](https://redirect.github.com/pulumi/pulumi/pull/23014)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-16 06:27:17 +00:00
pulumi-provider-automation[bot]
cfadb02782 Update GitHub Actions workflows. (#858)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[17a365754b545672c6b27aad2cd4a0cab814afa4](17a365754b).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-15 06:45:19 +00:00
Pulumi Bot
278187a0c2 Automated upgrade: bump pulumi/pulumi to 3.239.0 (#857)
Automated upgrade: bump pulumi/pulumi to 3.239.0
2026-05-14 16:57:39 +01:00
pulumi-provider-automation[bot]
e4130f8f2e Update GitHub Actions workflows. (#856)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[c883c8df6276d935ea2aa3ca8a8a7cf8ffd5e8ed](c883c8df62).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-14 06:40:09 +00:00
pulumi-provider-automation[bot]
6082a91390 Update GitHub Actions workflows. (#854)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[cae837f93d8b6f38e281e84e045127160dd98d9c](cae837f93d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-13 06:39:13 +00:00
pulumi-renovate[bot]
8cecb2fb4b Update module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild to v0.0.16 (#853)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.15` -> `v0.0.16` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.16`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.15...v0.0.16)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.15...v0.0.16)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-05-13 04:07:44 +00:00
Bryce Lampe
df2dcca9a8 Fix 404 handling when deleting a manifest (#850)
Upstream was previously using an internal notFound error, and we were
relying on fragile string matching to detect it. This broke when we
upgraded to Docker v28.

d25e260d2e (diff-a5e122cd2318f2dc156f373804a59d30355b0c308b9e64f48e0713344fcdba33L164)

Nowadays containerd exposes a public ErrNotFound which we can use
instead.

Fixes #849.
2026-05-12 10:46:54 -07:00
pulumi-provider-automation[bot]
9048892848 Update GitHub Actions workflows. (#851)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[daf8aba035d6ed8919db6089c780f56cb7fefc69](daf8aba035).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-12 06:35:37 +00:00
pulumi-provider-automation[bot]
d8c7696758 Update GitHub Actions workflows. (#848)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4cbd027aa555ac5a576d57358400a2e24e329c2c](4cbd027aa5).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-10 06:31:10 +00:00
pulumi-provider-automation[bot]
0d1a1b4fd3 Update GitHub Actions workflows. (#847)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[97b5e096a3ec277f7b970353d7b048d4800cdb61](97b5e096a3).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-09 06:28:31 +00:00
pulumi-renovate[bot]
8dff8f0e21 Update first-party Pulumi dependencies (#846)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.236.0` ->
`3.237.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.236.0/3.237.0)
|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.105.0` -> `v3.106.1` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.236.0` -> `v3.237.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.237.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.237.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.236.0...v3.237.0)

##### 3.237.0 (2026-05-08)

##### Features

- \[cli] Include the running command name and detected AI agent (when
present) in the User-Agent header on Pulumi Cloud API requests
[#&#8203;22908](https://redirect.github.com/pulumi/pulumi/pull/22908)

-   \[engine] Include `result` on the summary engine event
[#&#8203;22883](https://redirect.github.com/pulumi/pulumi/pull/22883)

-   \[sdkgen] Eagerly error on schemas with unconstructable types
[#&#8203;22890](https://redirect.github.com/pulumi/pulumi/pull/22890)

- \[cli/cloud] Auto-fill `lang` and `os` query parameters on `pulumi
cloud api` GET/HEAD requests when the matched OpenAPI operation declares
them and the caller hasn't supplied them
[#&#8203;22726](https://redirect.github.com/pulumi/pulumi/pull/22726)

- \[cli/package] Add `pulumi package new` to bootstrap a Pulumi package
from a template
[#&#8203;22837](https://redirect.github.com/pulumi/pulumi/pull/22837)

##### Bug Fixes

- \[cli] Add blank-line gaps between `pulumi neo` TUI conversation
blocks
[#&#8203;22846](https://redirect.github.com/pulumi/pulumi/pull/22846)

- \[cli/import] Preserve `__`-prefixed keys when generating PCL for
imported resource state, so provider-defined payloads round-trip
correctly
[#&#8203;22856](https://redirect.github.com/pulumi/pulumi/pull/22856)

- \[cli/neo] Render `ux__ask_user` clarifying questions as questions
instead of approval prompts
[#&#8203;22862](https://redirect.github.com/pulumi/pulumi/pull/22862)

-   \[cli/neo] Fix a panic when cancelling a `pulumi neo` session
[#&#8203;22898](https://redirect.github.com/pulumi/pulumi/pull/22898)

- \[cli/neo] Render every assistant message in the TUI scrollback so
multi-turn commentary no longer disappears between tool calls

- \[cli/neo] Return the bare stack name and canonical project name from
`pulumi_preview` and `pulumi_up` tool results instead of echoing the raw
input
[#&#8203;22891](https://redirect.github.com/pulumi/pulumi/pull/22891)

- \[codegen/pcl] Stop reporting spurious circular references when an
`ignoreChanges`, `hideDiffs`, `replaceOnChanges`, or
`additionalSecretOutputs` entry shares a name with a top-level node
[#&#8203;22916](https://redirect.github.com/pulumi/pulumi/pull/22916)

- \[programgen/pcl] Fix PCL binder panic when a conditional mixes a
Promise-typed branch with a try() branch
[#&#8203;22907](https://redirect.github.com/pulumi/pulumi/pull/22907)

- \[sdk/python] Support `NotRequired`, `Required` and `total=False` in
TypedDicts for component resource arg types
[#&#8203;22858](https://redirect.github.com/pulumi/pulumi/pull/22858)

##### Miscellaneous

- \[cli/cloud] Auto-fit `pulumi cloud api list` table to terminal width
and replace the
    `tabular` table renderer with `go-pretty`

[#&#8203;22874](https://redirect.github.com/pulumi/pulumi/pull/22874)

-   \[sdk/nodejs] Test on Node.js 26 and drop 20
[#&#8203;22872](https://redirect.github.com/pulumi/pulumi/pull/22872)

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.106.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31061---2026-05-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.106.0...v3.106.1)

##### Bug Fixes

- \[sdk] Revert
[#&#8203;983](https://redirect.github.com/pulumi/pulumi-dotnet/issues/983),
restoring the framework version to v6
[#&#8203;997](https://redirect.github.com/pulumi/pulumi-dotnet/pull/997)

###
[`v3.106.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31060---2026-05-07)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.105.0...v3.106.0)

##### Bug Fixes

- \[sdk] Bump minimum .NET version to 8.0, to help fix a security
vulnerability
[#&#8203;983](https://redirect.github.com/pulumi/pulumi-dotnet/pull/983)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-09 00:40:47 +00:00
pulumi-renovate[bot]
b73395a7fa Update module github.com/pulumi/pulumi-java to v1.26.1 (#845)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-java](https://redirect.github.com/pulumi/pulumi-java)
| require | patch | `v1.26.0` -> `v1.26.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-java (github.com/pulumi/pulumi-java)</summary>

###
[`v1.26.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1261---2026-05-07)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.26.0...v1.26.1)

##### Bug Fixes

- \[sdk] Fix inherited input properties missing from component schema
when args class inherits from a base class
[#&#8203;2129](https://redirect.github.com/pulumi/pulumi-java/pull/2129)

- \[runtime] Wait for debugger attach only when it is requested
[#&#8203;2161](https://redirect.github.com/pulumi/pulumi-java/pull/2161)

- \[codegen] Generate `unsecret(...)` as `.asPlaintext()` and emit
`config.requireSecret` for secret config variables in PCL programs
[#&#8203;2155](https://redirect.github.com/pulumi/pulumi-java/pull/2155)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-05-08 08:01:45 +00:00
pulumi-renovate[bot]
05962fcc01 Update first-party Pulumi dependencies to v3.236.0 (#842)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.235.0` ->
`3.236.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.235.0/3.236.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.234.0` -> `v3.236.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.236.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32360-2026-05-06)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.235.0...v3.236.0)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.236.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.236.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.235.0...v3.236.0)

#### 3.236.0 (2026-05-06)

###
[`v3.235.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.235.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.234.0...v3.235.0)

#### 3.235.0 (2026-05-05)

##### Features

-   \[cli] Add `pulumi logs decrypt` command for viewing logs
[#&#8203;22523](https://redirect.github.com/pulumi/pulumi/pull/22523)

-   \[cli] Bundle the `hcl` language host (from pulumi-labs/pulumi-hcl)
[#&#8203;22807](https://redirect.github.com/pulumi/pulumi/pull/22807)

- \[cli] Automatically install the `hcl` converter from
pulumi-labs/pulumi-hcl when running `pulumi convert --from hcl`
[#&#8203;22816](https://redirect.github.com/pulumi/pulumi/pull/22816)

- \[pcl] Add `read` blocks to PCL to read resources via ID and query
instead of registering them
[#&#8203;22641](https://redirect.github.com/pulumi/pulumi/pull/22641)

- \[cli/cloud] Add `pulumi cloud api <op-or-path>` for calling any
Pulumi Cloud API
endpoint, with `--field`/`--header`/`--input`/`--body` flag handling,
path
template binding, content negotiation via `--format`, and `--dry-run`

[#&#8203;22771](https://redirect.github.com/pulumi/pulumi/pull/22771)

- \[cli/cloud] Add `--paginate` to `pulumi cloud api`: follow
continuation cursors,
    accumulate items into a single JSON envelope, and surface progress
    events to stderr with `--emit-events` (page, complete, truncated,
    partial_failure, cancelled).

[#&#8203;22772](https://redirect.github.com/pulumi/pulumi/pull/22772)

##### Bug Fixes

- \[cli] Fix the `pulumi neo` shell tool to honor the agent-supplied
`timeout` and to terminate the whole process tree (and unblock cmd.Wait)
when the deadline fires, so commands like `kubectl logs -f` no longer
hang Neo indefinitely.
[#&#8203;22820](https://redirect.github.com/pulumi/pulumi/pull/22820)

- \[cli] Surface the error and exit when `pulumi neo` fails to create
the underlying task, instead of leaving the TUI stuck in `Thinking…`
[#&#8203;22825](https://redirect.github.com/pulumi/pulumi/pull/22825)

- \[codegen/go] Correctly generate `[]pulumi.Asset` & `[]pulumi.Archive`
[#&#8203;22827](https://redirect.github.com/pulumi/pulumi/pull/22827)

- \[cli/neo] Exit cleanly when the user presses Ctrl+C twice in `pulumi
neo` instead of hanging until a third press
[#&#8203;22821](https://redirect.github.com/pulumi/pulumi/pull/22821)

- \[engine] The engine now caches schemas at `PULUMI_HOME/schemas`, and
will cache for parameterised packages as well
[#&#8203;22812](https://redirect.github.com/pulumi/pulumi/pull/22812)

- \[sdk-python] Preserve `__`-prefixed keys (e.g. `__type`
discriminators) across RPC deserialization, matching the behavior of the
other language SDKs
[#&#8203;22834](https://redirect.github.com/pulumi/pulumi/pull/22834)

- \[programgen/{nodejs,python}] Fix programgen to emit the right
`length` check for string length
[#&#8203;22802](https://redirect.github.com/pulumi/pulumi/pull/22802)

##### Miscellaneous

- \[cli] Replace the Pulumipus mascot in the `pulumi neo` welcome banner
with new Neo-branded ASCII art.
[#&#8203;22817](https://redirect.github.com/pulumi/pulumi/pull/22817)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-05-07 21:40:04 +00:00
pulumi-provider-automation[bot]
766009ab42 Update GitHub Actions workflows. (#841)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[59779d0eefa4d7d6810a40f8190ef01a101acfe1](59779d0eef).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-07 06:32:50 +00:00
pulumi-renovate[bot]
0110626c42 Update first-party Pulumi dependencies (#819)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.231.0` ->
`3.235.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.231.0/3.235.0)
|
|
[github.com/pulumi/providertest](https://redirect.github.com/pulumi/providertest)
| require | minor | `v0.6.0` -> `v0.7.0` |
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.103.0` -> `v3.105.0` |
|
[github.com/pulumi/pulumi-go-provider](https://redirect.github.com/pulumi/pulumi-go-provider)
| require | patch | `v1.3.1` -> `v1.3.2` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.230.0` -> `v3.234.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.235.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.235.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.234.0...v3.235.0)

##### 3.235.0 (2026-05-05)

##### Features

-   \[cli] Add `pulumi logs decrypt` command for viewing logs
[#&#8203;22523](https://redirect.github.com/pulumi/pulumi/pull/22523)

-   \[cli] Bundle the `hcl` language host (from pulumi-labs/pulumi-hcl)
[#&#8203;22807](https://redirect.github.com/pulumi/pulumi/pull/22807)

- \[cli] Automatically install the `hcl` converter from
pulumi-labs/pulumi-hcl when running `pulumi convert --from hcl`
[#&#8203;22816](https://redirect.github.com/pulumi/pulumi/pull/22816)

- \[pcl] Add `read` blocks to PCL to read resources via ID and query
instead of registering them
[#&#8203;22641](https://redirect.github.com/pulumi/pulumi/pull/22641)

- \[cli/cloud] Add `pulumi cloud api <op-or-path>` for calling any
Pulumi Cloud API
endpoint, with `--field`/`--header`/`--input`/`--body` flag handling,
path
template binding, content negotiation via `--format`, and `--dry-run`

[#&#8203;22771](https://redirect.github.com/pulumi/pulumi/pull/22771)

- \[cli/cloud] Add `--paginate` to `pulumi cloud api`: follow
continuation cursors,
    accumulate items into a single JSON envelope, and surface progress
    events to stderr with `--emit-events` (page, complete, truncated,
    partial_failure, cancelled).

[#&#8203;22772](https://redirect.github.com/pulumi/pulumi/pull/22772)

##### Bug Fixes

- \[cli] Fix the `pulumi neo` shell tool to honor the agent-supplied
`timeout` and to terminate the whole process tree (and unblock cmd.Wait)
when the deadline fires, so commands like `kubectl logs -f` no longer
hang Neo indefinitely.
[#&#8203;22820](https://redirect.github.com/pulumi/pulumi/pull/22820)

- \[cli] Surface the error and exit when `pulumi neo` fails to create
the underlying task, instead of leaving the TUI stuck in `Thinking…`
[#&#8203;22825](https://redirect.github.com/pulumi/pulumi/pull/22825)

- \[codegen/go] Correctly generate `[]pulumi.Asset` & `[]pulumi.Archive`
[#&#8203;22827](https://redirect.github.com/pulumi/pulumi/pull/22827)

- \[cli/neo] Exit cleanly when the user presses Ctrl+C twice in `pulumi
neo` instead of hanging until a third press
[#&#8203;22821](https://redirect.github.com/pulumi/pulumi/pull/22821)

- \[engine] The engine now caches schemas at `PULUMI_HOME/schemas`, and
will cache for parameterised packages as well
[#&#8203;22812](https://redirect.github.com/pulumi/pulumi/pull/22812)

- \[sdk-python] Preserve `__`-prefixed keys (e.g. `__type`
discriminators) across RPC deserialization, matching the behavior of the
other language SDKs
[#&#8203;22834](https://redirect.github.com/pulumi/pulumi/pull/22834)

- \[programgen/{nodejs,python}] Fix programgen to emit the right
`length` check for string length
[#&#8203;22802](https://redirect.github.com/pulumi/pulumi/pull/22802)

##### Miscellaneous

- \[cli] Replace the Pulumipus mascot in the `pulumi neo` welcome banner
with new Neo-branded ASCII art.
[#&#8203;22817](https://redirect.github.com/pulumi/pulumi/pull/22817)

###
[`v3.234.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32340-2026-05-01)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.233.0...v3.234.0)

##### Features

- \[cli/cloud] Add `pulumi cloud api describe` for inspecting the
parameters, request
    body, and response schema of any Pulumi Cloud API operation, with
    text, markdown, and JSON output

[#&#8203;22770](https://redirect.github.com/pulumi/pulumi/pull/22770)

- \[cli/cloud] Add `pulumi cloud api list` for browsing every endpoint
exposed by the Pulumi
    Cloud OpenAPI spec, with table and JSON output

[#&#8203;22769](https://redirect.github.com/pulumi/pulumi/pull/22769)

##### Bug Fixes

- \[engine] Revert changes to property path parsing that resulted in
errors for currently valid paths

###
[`v3.233.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32330-2026-04-30)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.232.0...v3.233.0)

##### Features

- \[auto/python] Expose the auto-generated Pulumi CLI interface as
`workspace.cli_api`
[#&#8203;22638](https://redirect.github.com/pulumi/pulumi/pull/22638)

- \[cli] Add encrypted logging to ~/.pulumi/logs; use the
PULUMI_ENABLE_AUTOMATIC_LOGGING feature flag to turn it on
[#&#8203;22494](https://redirect.github.com/pulumi/pulumi/pull/22494)

- \[cli] Implement the `filesystem__grep` and
`filesystem__content_replace` local tools
for `pulumi neo`. `grep` runs a regex search across files in the project
root
with an optional `include` glob filter and returns results in
`path:lineno: line`
form. `content_replace` performs a literal multi-file search-and-replace
with a
`file_pattern` glob and `dry_run` preview mode. Both tools skip binary
files,
hidden directories, and `node_modules`, and reject paths outside the
project
    root. Their input schemas match the cloud-side tool definitions.

[#&#8203;22655](https://redirect.github.com/pulumi/pulumi/pull/22655)

- \[cli] Add `pulumi_preview` and `pulumi_up` as local tools for the
experimental `pulumi neo`
agent. The Neo TUI renders a persistent bordered block for each
operation that
streams changed resources and diagnostics as the engine runs and
finalizes with a
    summary of the op counts. Hidden behind PULUMI_EXPERIMENTAL.

[#&#8203;22697](https://redirect.github.com/pulumi/pulumi/pull/22697)

-   \[engine] Add `List` to the provider protocol and schema
[#&#8203;22693](https://redirect.github.com/pulumi/pulumi/pull/22693)

##### Bug Fixes

- \[engine] Return a clear error when two installed plugins claim the
same default provider package name (for example, a native `scaleway`
provider alongside a `terraform-provider` bridge parameterized as
`scaleway`) instead of panicking with "Should not have seen an older
plugin if sorting is correct!"
[#&#8203;22679](https://redirect.github.com/pulumi/pulumi/pull/22679)

- \[programgen] Do not wrap a `call(...)` on a method whose return type
is marked plain in an Output. Previously
PCL bound every method call's return type as `Output<T>`, which caused
downstream program-gen
to emit broken `.apply(...)`/`.ApplyT(...)` traversals against plain
struct returns (e.g.
methods with `liftSingleValueMethodReturns=true` or
`ReturnTypePlain=true`).

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[backend/diy] When using a backend url containing creds (e.g.
PostgreSQL conn string), mask user:pass as in lock-related error
messages
[#&#8203;22701](https://redirect.github.com/pulumi/pulumi/pull/22701)

- \[codegen/go] Generate unqualified `Provider` references for the
package's own provider resource. Previously
the Go codegen always emitted `<pkg>.Provider` even when the reference
appeared inside `<pkg>`
itself, producing identifiers that would not compile. Affects generated
code for method return
types (and other schema positions) that reference
`pulumi:providers:<pkg>`.

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[codegen/nodejs] Generate unqualified `Provider` references for the
package's own provider resource when emitting
TypeScript code inside that package. Previously the generator always
qualified the name as
`<pkg>.Provider`, which does not resolve when no `<pkg>` namespace
import is in scope.

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[codegen/nodejs] Import the correct class name for a provider
resource. Imports for `pulumi:providers:<pkg>` used
the title-cased package name instead of `Provider`, producing a phantom
identifier that clashed
    with the containing package's component/resource classes.

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[programgen/nodejs] Emit `await` for `call(...)` invocations of
methods whose return type is marked plain, and
force the generated program into an async `export = async () => ...`
wrapper whenever such a
call is present. The Node SDK returns `Promise<T>` for plain methods;
previously program-gen
    used the result directly, which did not match its runtime type.

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[codegen/python] Avoid a self-import (`import pulumi_<pkg>` inside
`pulumi_<pkg>/<module>.py`) when referencing
the package's own provider resource. Python referenced the Provider as
`pulumi_<pkg>.Provider`
    even inside that package, which caused a circular import at runtime.

[#&#8203;22696](https://redirect.github.com/pulumi/pulumi/pull/22696)

- \[sdk/python] Reduce internal `Output[T]` data to a single
`asyncio.Future`
[#&#8203;22661](https://redirect.github.com/pulumi/pulumi/pull/22661)

- \[sdkgen/{nodejs,python}] Generate optional input types that accept
undefined/None values
[#&#8203;22552](https://redirect.github.com/pulumi/pulumi/pull/22552)

##### Miscellaneous

- \[auto/go] Drop the "With" prefix from generated option helpers so
they match the naming of the existing optXxx packages
[#&#8203;22682](https://redirect.github.com/pulumi/pulumi/pull/22682)

###
[`v3.232.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32320-2026-04-22)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.231.0...v3.232.0)

##### Features

- \[cli] Add an experimental `pulumi neo` command that creates a Pulumi
Neo agent task in CLI
tool-execution mode and runs the local tool loop. Filesystem and shell
tool calls
issued by the agent run on the user's machine in their working
directory; the
interactive chat continues to happen in the Pulumi Console at the URL
the command
    prints. Hidden behind PULUMI_EXPERIMENTAL.

[#&#8203;22473](https://redirect.github.com/pulumi/pulumi/pull/22473)

- \[cli] Add support for handling user approval requests in the `pulumi
neo` terminal UI.
When the agent requests confirmation for a sensitive action, the TUI
prompts the
user and forwards their response back to the Pulumi Console. Hidden
behind
    PULUMI_EXPERIMENTAL.

[#&#8203;22589](https://redirect.github.com/pulumi/pulumi/pull/22589)

- \[cli] Add an interactive terminal UI for `pulumi neo` built with
bubbletea, rendering
agent messages, tool calls, and streaming output in the terminal
alongside the
    Pulumi Console session. Hidden behind PULUMI_EXPERIMENTAL.

[#&#8203;22570](https://redirect.github.com/pulumi/pulumi/pull/22570)

-   \[cli] Switch logging library from glog to slog.

BREAKING: any `if logging.V(x) {` need to be changed to `if
logging.V(x).Enabled()`

[#&#8203;22548](https://redirect.github.com/pulumi/pulumi/pull/22548)

- \[cli] Add a plan-mode toggle to the `pulumi neo` TUI, bound to
Shift+Tab. When
plan mode is on, Neo explores and asks questions without writing files,
running `pulumi up`, or opening PRs, and surfaces an approved plan via a
dedicated approval gate. The toggle must be set before the first message
(plan mode is task-level on the wire); approving the proposed plan exits
    plan mode automatically.

[#&#8203;22634](https://redirect.github.com/pulumi/pulumi/pull/22634)

- \[cli] The `pulumi neo` TUI now drives its "thinking" spinner off a
single declarative
rule (the spinner stays on until a final event — final assistant
message, approval
request, cancellation, or error — lands), so the indicator no longer
flickers off
when the agent hands off tool calls to the CLI or when streaming text
arrives
between tools. Press `Esc` during a turn to ask the agent to cancel; the
label
    switches to "Cancelling..." until the backend acknowledges.

[#&#8203;22637](https://redirect.github.com/pulumi/pulumi/pull/22637)

- \[cli] `pulumi neo` now executes the `edit` filesystem tool locally,
matching the schema
and response wording of the upstream mcp-claude-code tool so the agent
sees
identical output whether the call ran on Cloud or CLI. `edit` performs
exact-string
replacement with occurrence-count validation, and creates a new file
when the
    target is missing and `old_string` is empty.

[#&#8203;22654](https://redirect.github.com/pulumi/pulumi/pull/22654)

##### Bug Fixes

- \[cli] Render user messages in the `pulumi neo` TUI as soon as they're
submitted
instead of waiting for the Pulumi Cloud event stream to echo them back.
    The initial prompt passed on the command line also appears in the
transcript at startup. Self-echoes from the server are de-duplicated;
user input that originated from another client (e.g. the web UI on the
    same task) still renders.

[#&#8203;22629](https://redirect.github.com/pulumi/pulumi/pull/22629)

- \[cli] Wrap warnings, errors, and user-message bubbles to the terminal
width in the
`pulumi neo` TUI. Previously these blocks rendered as single long lines
that
were clipped at the right edge of the viewport. On resize, all
width-dependent
transcript blocks (user messages, warnings, errors, assistant messages)
now
    reflow to the new terminal width.

[#&#8203;22635](https://redirect.github.com/pulumi/pulumi/pull/22635)

- \[cli/policy] Fix `policy ls` to use the default org name, not
username
[#&#8203;22656](https://redirect.github.com/pulumi/pulumi/pull/22656)

- \[engine] Fix provider registry race condition in parallel
delete-before-replace
[#&#8203;21487](https://redirect.github.com/pulumi/pulumi/pull/21487)

- \[engine] Signal providers to cancel before closing them during
replacement

-   \[sdkgen] Error on 'id' in state inputs
[#&#8203;22636](https://redirect.github.com/pulumi/pulumi/pull/22636)

- \[programgen/python] Add necessary casts between types in generated
programs
[#&#8203;22567](https://redirect.github.com/pulumi/pulumi/pull/22567)

- \[sdkgen/go] Fix caching of package references to be per-deployment
not per-process
[#&#8203;22170](https://redirect.github.com/pulumi/pulumi/pull/22170)

##### Miscellaneous

-   \[java] Upgrade java to v1.25.0
[#&#8203;22673](https://redirect.github.com/pulumi/pulumi/pull/22673)

- \[auto/go] Generate command methods for the Go Automation API codegen
[#&#8203;22612](https://redirect.github.com/pulumi/pulumi/pull/22612)

- \[sdk] Clarify docs on the `remote` parameter of `ComponentResource` /
`Resource` in the Node and Python SDKs
[#&#8203;22603](https://redirect.github.com/pulumi/pulumi/pull/22603)

-   \[sdk/dotnet] Upgrade dotnet to v3.103.1
[#&#8203;22676](https://redirect.github.com/pulumi/pulumi/pull/22676)

-   \[yaml] Upgrade yaml to v1.32.0
[#&#8203;22674](https://redirect.github.com/pulumi/pulumi/pull/22674)

</details>

<details>
<summary>pulumi/providertest (github.com/pulumi/providertest)</summary>

###
[`v0.7.0`](https://redirect.github.com/pulumi/providertest/releases/tag/v0.7.0)

[Compare
Source](https://redirect.github.com/pulumi/providertest/compare/v0.6.0...v0.7.0)

##### What's Changed

- Bump golang.org/x/crypto from 0.36.0 to 0.45.0 in the go_modules group
across 1 directory by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot]
in[https://github.com/pulumi/providertest/pull/159](https://redirect.github.com/pulumi/providertest/pull/159)9
- Fix python_gcp test by adding setuptools dependency by
[@&#8203;pose](https://redirect.github.com/pose) in
[https://github.com/pulumi/providertest/pull/167](https://redirect.github.com/pulumi/providertest/pull/167)
- Rename project to python_gcp and update description by
[@&#8203;pose](https://redirect.github.com/pose) in
[https://github.com/pulumi/providertest/pull/166](https://redirect.github.com/pulumi/providertest/pull/166)
- fix(pulumitest): start fresh providers per engine operation by
[@&#8203;rshade](https://redirect.github.com/rshade) in
[https://github.com/pulumi/providertest/pull/170](https://redirect.github.com/pulumi/providertest/pull/170)
- feat(pulumitest): log pulumi version and plugins on stack creation by
[@&#8203;rshade](https://redirect.github.com/rshade) in
[https://github.com/pulumi/providertest/pull/171](https://redirect.github.com/pulumi/providertest/pull/171)

**Full Changelog**:
https://github.com/pulumi/providertest/compare/v0.6.0...v0.7.0

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.105.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31050---2026-05-04)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.104.0...v3.105.0)

###
[`v3.104.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31040---2026-04-29)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.103.1...v3.104.0)

##### Improvements

- \[runtime] Support the `getOutput` pcl intrinsic in codegen
[#&#8203;977](https://redirect.github.com/pulumi/pulumi-dotnet/pull/977)

###
[`v3.103.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31031---2026-04-21)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.103.0...v3.103.1)

##### Bug Fixes

- \[runtime] Ensure that 'main' is always respected for selecting
projects to run
[#&#8203;55](https://redirect.github.com/pulumi/pulumi-dotnet/pull/55)

- \[runtime] Generate compilable C# for resources whose range is an
Output-typed expression such as `length(someInvoke.result)`. The loop is
now wrapped in `.Apply(rangeBody => { ... })` so the loop bound sees a
plain `int`, and `length` on an `Output<ImmutableArray<T>>` is emitted
as the extension method `.Length()` (with parentheses) rather than as a
property.
[#&#8203;969](https://redirect.github.com/pulumi/pulumi-dotnet/pull/969)

- \[runtime] Fix codegen for nested `InputMap` literals so the produced
C# compiles
([#&#8203;833](https://redirect.github.com/pulumi/pulumi-dotnet/issues/833))
[#&#8203;970](https://redirect.github.com/pulumi/pulumi-dotnet/pull/970)

</details>

<details>
<summary>pulumi/pulumi-go-provider
(github.com/pulumi/pulumi-go-provider)</summary>

###
[`v1.3.2`](https://redirect.github.com/pulumi/pulumi-go-provider/releases/tag/v1.3.2)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-go-provider/compare/v1.3.1...v1.3.2)

#### What's Changed

- Update module github.com/pulumi/pulumi/pkg/v3 to v3.230.0 by
[@&#8203;pulumi-renovate](https://redirect.github.com/pulumi-renovate)\[bot]
in[https://github.com/pulumi/pulumi-go-provider/pull/509](https://redirect.github.com/pulumi/pulumi-go-provider/pull/509)9
- Correctly encode & decode `types.AssetOrArchive` by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/512](https://redirect.github.com/pulumi/pulumi-go-provider/pull/512)
- Resolve framework version via runtime/debug.ReadBuildInfo by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/514](https://redirect.github.com/pulumi/pulumi-go-provider/pull/514)

**Full Changelog**:
https://github.com/pulumi/pulumi-go-provider/compare/v1.3.1...v1.3.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: Ian Wahbe <me@iwahbe.com>
2026-05-06 16:57:43 +00:00
pulumi-provider-automation[bot]
27b5636c61 Update GitHub Actions workflows. (#840)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[27c21ceadaafd5a7de6e5158a02338d7c19730a1](27c21ceada).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-06 06:33:07 +00:00
pulumi-provider-automation[bot]
ed5396c425 Update GitHub Actions workflows. (#839)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4a9e45cebb804597b1a77dd1d1ba390731ba0d82](4a9e45cebb).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-05 06:23:28 +00:00
pulumi-provider-automation[bot]
4ba5f703d4 Update GitHub Actions workflows. (#838)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[f19d25e099c54e3ca45528e9e2348cf6873c5534](f19d25e099).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-04 06:32:46 +00:00
pulumi-provider-automation[bot]
72c3e93b42 Update GitHub Actions workflows. (#837)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[46ca3056938b5f6ddaec3f8eb550dcc34a2e3782](46ca305693).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-05-02 06:21:15 +00:00
pulumi-provider-automation[bot]
f864eda3e0 Update GitHub Actions workflows. (#834)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[3b016890d44c5e5e2e184c4b10b07484d9708cc3](3b016890d4).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-30 06:32:36 +00:00
pulumi-provider-automation[bot]
4e01c39bf9 Update GitHub Actions workflows. (#833)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[f99b830821cb45c5b332123be59c6a755cd4fadc](f99b830821).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-29 06:35:12 +00:00
pulumi-provider-automation[bot]
bab57d912d Update GitHub Actions workflows. (#832)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[dbc8a4c59b47e1406420ea87372068fb3780dce8](dbc8a4c59b).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-28 06:32:00 +00:00
pulumi-provider-automation[bot]
96b9de72a5 Update GitHub Actions workflows. (#831)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[fbb025ea2dd9c071a4b0a626d092c4104fc57644](fbb025ea2d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-27 06:29:59 +00:00
pulumi-provider-automation[bot]
bae0f1379a Update GitHub Actions workflows. (#829)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4a821ea4d38895a0aa6b855593ea108774165ff6](4a821ea4d3).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-25 06:06:14 +00:00
pulumi-provider-automation[bot]
30e1a98140 Update GitHub Actions workflows. (#828)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[88db566266daeb5f581215c84cd3e8c5f389a18d](88db566266).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-24 06:17:53 +00:00
pulumi-provider-automation[bot]
0b291cf120 Update GitHub Actions workflows. (#826)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[a4ba5d1c3db54f4aa8e7674e03c3032eabd24aaa](a4ba5d1c3d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-23 06:14:45 +00:00
pulumi-provider-automation[bot]
2e27061ccc Update GitHub Actions workflows. (#825)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[e46e1ac50228764e2a7fa7a76403fca94224df68](e46e1ac502).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-22 06:12:50 +00:00
pulumi-provider-automation[bot]
740410488f Update GitHub Actions workflows. (#824)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4065ed8e56aa6623046a204c35d57c0376c7cf6c](4065ed8e56).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-21 06:12:31 +00:00
pulumi-provider-automation[bot]
f24d1e662a Update GitHub Actions workflows. (#823)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[7f0c56e9f79bc22f3b4cc6379312d705a56411c6](7f0c56e9f7).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-20 06:21:00 +00:00
pulumi-provider-automation[bot]
703dd21dc8 Update GitHub Actions workflows. (#822)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[144a8c45ec5f8a164b55365078d914dd6955b209](144a8c45ec).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-19 06:12:17 +00:00
pulumi-provider-automation[bot]
8328de32ef Update GitHub Actions workflows. (#821)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[2bc9cb47c63304319f6a34a84c861bedc53274ae](2bc9cb47c6).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-18 06:01:53 +00:00
pulumi-provider-automation[bot]
c9ec41986b Update GitHub Actions workflows. (#820)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[5aad94d008deea2e7db42fa2579fe93fb88256b8](5aad94d008).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-17 06:14:06 +00:00
pulumi-renovate[bot]
ef554c455f Update dependency @pulumi/pulumi to v3.231.0 (#818)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.230.0` ->
`3.231.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.230.0/3.231.0)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.231.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.231.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.230.0...v3.231.0)

##### 3.231.0 (2026-04-16)

##### Features

- \[cli] Auto-detect Mercurial repository metadata for `pulumi up` /
`pulumi preview` updates, mirroring existing Git support
[#&#8203;22618](https://redirect.github.com/pulumi/pulumi/pull/22618)

- \[engine] Send Cancel RPC to plugins on host close for graceful
shutdown
[#&#8203;22569](https://redirect.github.com/pulumi/pulumi/pull/22569)

-   \[engine] Pass resource options to hooks through the engine
[#&#8203;22582](https://redirect.github.com/pulumi/pulumi/pull/22582)

-   \[engine] Add GetDeploymentInfo to the resource monitor service

-   \[auto/go] Add `New` command to Automation API
[#&#8203;22439](https://redirect.github.com/pulumi/pulumi/pull/22439)

-   \[auto/{go,nodejs,python}] Add --diff to automation api for destroy
[#&#8203;22563](https://redirect.github.com/pulumi/pulumi/pull/22563)

-   \[auto/python] Add `new` command to Automation API
[#&#8203;22439](https://redirect.github.com/pulumi/pulumi/pull/22439)

-   \[pcl] Support for resource hooks in PCL
[#&#8203;22365](https://redirect.github.com/pulumi/pulumi/pull/22365)

- \[sdk-nodejs] Warn when a non-ComponentResource class is passed in the
explicit `components` list to `componentProviderHost`
[#&#8203;22619](https://redirect.github.com/pulumi/pulumi/pull/22619)

- \[sdk-python] Warn when a non-ComponentResource class is passed in the
explicit `components` list to `component_provider_host`
[#&#8203;22619](https://redirect.github.com/pulumi/pulumi/pull/22619)

- \[cli/import] Add support for providers to be defined in the same
import file as their users
[#&#8203;21671](https://redirect.github.com/pulumi/pulumi/pull/21671)

-   \[cli/policy] ESC environment support for local policy packs
[#&#8203;22495](https://redirect.github.com/pulumi/pulumi/pull/22495)

-   \[sdk/nodejs] Support package.yaml when using pnpm
[#&#8203;22491](https://redirect.github.com/pulumi/pulumi/pull/22491)

- \[sdk/python] Add function decorator variants for resource and error
hooks
[#&#8203;22519](https://redirect.github.com/pulumi/pulumi/pull/22519)

##### Bug Fixes

- \[auto/{nodejs,python}] Support --run-program for inline programs with
preview_refresh/destroy

- \[backend/diy] Remove state lock for destroy and import with preview
only for diy backend
[#&#8203;22561](https://redirect.github.com/pulumi/pulumi/pull/22561)

- \[engine] Fix snapshot integrity error with component/provider
resources in refresh --run-program
[#&#8203;21817](https://redirect.github.com/pulumi/pulumi/pull/21817)

-   \[pcl] Type list and tuple indices as integers not numbers
[#&#8203;22592](https://redirect.github.com/pulumi/pulumi/pull/22592)

- \[pcl] Builtin functions element and range take int parameters not
numbers
[#&#8203;22597](https://redirect.github.com/pulumi/pulumi/pull/22597)

- \[programgen/{go,nodejs,python}] Fix some cases of name conflicts in
program gen not being handled correctly
[#&#8203;22556](https://redirect.github.com/pulumi/pulumi/pull/22556)

- \[programgen/nodejs] Add necessary casts between types in generated
programs
[#&#8203;22557](https://redirect.github.com/pulumi/pulumi/pull/22557)

-   \[programgen/{nodejs,python}] Fix imports of camelCase modules
[#&#8203;22536](https://redirect.github.com/pulumi/pulumi/pull/22536)

- \[sdk/python] Support Input\[Optional\[T]] in Python runtime type
unwrapping
[#&#8203;22553](https://redirect.github.com/pulumi/pulumi/pull/22553)

- \[sdkgen] Warn about modules nested under the index module which are
not supported
[#&#8203;22531](https://redirect.github.com/pulumi/pulumi/pull/22531)

##### Miscellaneous

-   \[java] Upgrade java to v1.24.0
[#&#8203;22615](https://redirect.github.com/pulumi/pulumi/pull/22615)

-   \[yaml] Upgrade yaml to v1.31.1
[#&#8203;22610](https://redirect.github.com/pulumi/pulumi/pull/22610)

-   \[sdk/dotnet] Upgrade dotnet to v3.103.0
[#&#8203;22614](https://redirect.github.com/pulumi/pulumi/pull/22614)

-   \[sdk/nodejs] Replace `got` by `fetch`
[#&#8203;22533](https://redirect.github.com/pulumi/pulumi/pull/22533)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-04-16 20:16:47 +00:00
pulumi-provider-automation[bot]
0b52de6543 Update GitHub Actions workflows. (#816)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b05dbe61dbea8fb6ea0c4cde662bde1101961819](b05dbe61db).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-16 06:16:23 +00:00
pulumi-renovate[bot]
a3072f6aa3 Update module github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 to v3.103.0 (#815)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.102.1` -> `v3.103.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.103.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31030---2026-04-15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.102.1...v3.103.0)

##### Improvements

- \[sdk] Clarify docs on the `remote` parameter of `ComponentResource` /
`Resource`
[#&#8203;963](https://redirect.github.com/pulumi/pulumi-dotnet/pull/963)

##### Bug Fixes

- \[sdk] Fix `ResourceTransforms` being silently dropped when
`CustomResourceOptions.Merge` is called (affects all generated SDK
resources using the `MakeResourceOptions` pattern)
[#&#8203;958](https://redirect.github.com/pulumi/pulumi-dotnet/pull/958)

- \[sdk] Add missing `[Input]` attribute to `StashArgs.Input`, fixing
serialization of the Stash resource
[#&#8203;960](https://redirect.github.com/pulumi/pulumi-dotnet/pull/960)

- \[sdk/auto] Fix running inline programs with refresh/destroy and
--run-program
[#&#8203;725](https://redirect.github.com/pulumi/pulumi-dotnet/pull/725)

##### Improvements

- \[runtime] Add codegen support for AdditionalSecretOutputs, Version,
and PluginDownloadURL resource options
[#&#8203;953](https://redirect.github.com/pulumi/pulumi-dotnet/pull/953)

##### Bug Fixes

- \[runtime] Fix property paths in resource options (IgnoreChanges,
ReplaceOnChanges, HideDiffs) being incorrectly prefixed with @&#8203;
for C# reserved words
[#&#8203;934](https://redirect.github.com/pulumi/pulumi-dotnet/pull/934)

- \[runtime] Fix NuGet package name and version extraction for packages
with prerelease versions (e.g. `3.0.0-alpha.1.internal`)
[#&#8203;947](https://redirect.github.com/pulumi/pulumi-dotnet/pull/947)

- \[runtime] Support call methods in program generation
[#&#8203;946](https://redirect.github.com/pulumi/pulumi-dotnet/pull/946)

- \[runtime] Add missing `System` namespace import for `sha1` builtin,
fixing `BitConverter` not found error
[#&#8203;961](https://redirect.github.com/pulumi/pulumi-dotnet/pull/961)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-04-15 17:55:53 +00:00
pulumi-provider-automation[bot]
afe301cb52 Update GitHub Actions workflows. (#814)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[bf992a9000f6297ee7e288347f354ed2ca8d6bbf](bf992a9000).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-15 06:13:32 +00:00
Keith Mosher
b0c5918c7c Migrate Windows code signing to Azure Trusted Signing (#811)
## Summary

Migrates Windows binary signing from Azure Key Vault (`jsign --storetype
AZUREKEYVAULT`) to [Azure Trusted
Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/). The
previous AKV code-signing cert expired, breaking the release pipeline.
Trusted Signing issues short-lived Microsoft-managed certs so there's
nothing to rotate.

- `Makefile` / `scripts/crossbuild.mk`: bump `jsign` 6.0 → 7.4, switch
`--storetype` to `TRUSTEDSIGNING`, use the
`https://codesigning.azure.net` token audience, derive the keystore host
from `AZURE_SIGNING_ACCOUNT_ENDPOINT`, pass account/profile via
`--alias`, update the `SKIP_SIGNING` guard and error message.
- `.github/workflows/{build,release,prerelease,build_provider}.yml`:
replace the `AZURE_SIGNING_KEY_VAULT_URI` env passthrough with the three
new `AZURE_SIGNING_ACCOUNT_*` outputs and update the `SKIP_SIGNING`
expression.

Companion to pulumi/ci-mgmt#2126, pulumi/pulumi-command#1200, and
pulumi/pulumi-provider-boilerplate#1236. The ESC environment already
exposes the new variables and the signing SP has the `Artifact Signing
Certificate Profile Signer` role on the
`pulumi-code-signing/pulumi-code-signing` profile. Verified end-to-end
against pulumi-command, pulumi-random, and pulumi-provider-boilerplate.

## Test plan

- [ ] CI release build produces a Windows binary with a valid Trusted
Signing certificate chain
2026-04-09 16:52:15 -07:00
pulumi-provider-automation[bot]
00ec8e3ebe Update GitHub Actions workflows. (#812)
This PR was triggered by @kmosher generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[9753531fe8d3f70139c072186a6ddcaa32d27b63](9753531fe8).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-04-09 23:49:54 +00:00
pulumi-renovate[bot]
2079e52a5f Update first-party Pulumi dependencies to v3.230.0 (#809)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.229.0` ->
`3.230.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.229.0/3.230.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.229.0` -> `v3.230.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.230.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32300-2026-04-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.229.0...v3.230.0)

##### Features

-   \[cli] Detect AI agents and send in update metadata
[#&#8203;22497](https://redirect.github.com/pulumi/pulumi/pull/22497)

- \[auto/nodejs] Add "org" commands (get-default, set-default, search,
search ai) to the auto-generated interface
[#&#8203;22395](https://redirect.github.com/pulumi/pulumi/pull/22395)

-   \[auto/nodejs] Add "new" command to the auto-generated interface
[#&#8203;22421](https://redirect.github.com/pulumi/pulumi/pull/22421)

- \[sdk/{nodejs,python}] Add Cancel handler to Python & Node.js
providers
[#&#8203;22516](https://redirect.github.com/pulumi/pulumi/pull/22516)

-   \[cli/policy] Add ESC environment resolution for policy packs
[#&#8203;22425](https://redirect.github.com/pulumi/pulumi/pull/22425)

##### Bug Fixes

- \[auto/go] Insert --non-interactive flag before "--" positional
separator to avoid misinterpretation as a positional argument
[#&#8203;22462](https://redirect.github.com/pulumi/pulumi/pull/22462)

- \[ci] Add code coverage collection for Node.js automation tools tests
[#&#8203;22412](https://redirect.github.com/pulumi/pulumi/pull/22412)

-   \[pcl] Allow key indexing into a map of resources created by range
[#&#8203;22498](https://redirect.github.com/pulumi/pulumi/pull/22498)

- \[programgen/go] Fix an issue with formatted index modules not
importing correctly

- \[cli/state] Check for Pulumi.yaml projects and `backend` option in
`state upgrade`
[#&#8203;22483](https://redirect.github.com/pulumi/pulumi/pull/22483)

- \[sdk/go] Fix Go program generation for ternary expressions inside
apply callbacks, add Go predeclared identifiers to reserved words,
handle optional list types in union type codegen, and fix
unmarshalOutput for known outputs with null elements.
[#&#8203;22460](https://redirect.github.com/pulumi/pulumi/pull/22460)

- \[sdk/nodejs] Fix inherited input properties missing from component
schema when args interface extends another interface
[#&#8203;22446](https://redirect.github.com/pulumi/pulumi/pull/22446)

- \[sdk/python] Fix inherited input properties missing from component
schema when args class inherits from a base class
[#&#8203;22484](https://redirect.github.com/pulumi/pulumi/pull/22484)

##### Miscellaneous

-   \[java] Upgrade java to v1.23.0

-   \[sdk/dotnet] Upgrade dotnet to v3.102.1

-   \[yaml] Upgrade to v1.31.0
[#&#8203;22501](https://redirect.github.com/pulumi/pulumi/pull/22501)

- \[programgen/{dotnet,go,java,nodejs,pcl,python,yaml}] Remove
`mimeType` & `readDir` from PCL
[#&#8203;22449](https://redirect.github.com/pulumi/pulumi/pull/22449)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.230.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.230.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.229.0...v3.230.0)

#### 3.230.0 (2026-04-08)

##### Features

-   \[cli] Detect AI agents and send in update metadata
[#&#8203;22497](https://redirect.github.com/pulumi/pulumi/pull/22497)

- \[auto/nodejs] Add "org" commands (get-default, set-default, search,
search ai) to the auto-generated interface
[#&#8203;22395](https://redirect.github.com/pulumi/pulumi/pull/22395)

-   \[auto/nodejs] Add "new" command to the auto-generated interface
[#&#8203;22421](https://redirect.github.com/pulumi/pulumi/pull/22421)

- \[sdk/{nodejs,python}] Add Cancel handler to Python & Node.js
providers
[#&#8203;22516](https://redirect.github.com/pulumi/pulumi/pull/22516)

-   \[cli/policy] Add ESC environment resolution for policy packs
[#&#8203;22425](https://redirect.github.com/pulumi/pulumi/pull/22425)

##### Bug Fixes

- \[auto/go] Insert --non-interactive flag before "--" positional
separator to avoid misinterpretation as a positional argument
[#&#8203;22462](https://redirect.github.com/pulumi/pulumi/pull/22462)

- \[ci] Add code coverage collection for Node.js automation tools tests
[#&#8203;22412](https://redirect.github.com/pulumi/pulumi/pull/22412)

-   \[pcl] Allow key indexing into a map of resources created by range
[#&#8203;22498](https://redirect.github.com/pulumi/pulumi/pull/22498)

- \[programgen/go] Fix an issue with formatted index modules not
importing correctly

- \[cli/state] Check for Pulumi.yaml projects and `backend` option in
`state upgrade`
[#&#8203;22483](https://redirect.github.com/pulumi/pulumi/pull/22483)

- \[sdk/go] Fix Go program generation for ternary expressions inside
apply callbacks, add Go predeclared identifiers to reserved words,
handle optional list types in union type codegen, and fix
unmarshalOutput for known outputs with null elements.
[#&#8203;22460](https://redirect.github.com/pulumi/pulumi/pull/22460)

- \[sdk/nodejs] Fix inherited input properties missing from component
schema when args interface extends another interface
[#&#8203;22446](https://redirect.github.com/pulumi/pulumi/pull/22446)

- \[sdk/python] Fix inherited input properties missing from component
schema when args class inherits from a base class
[#&#8203;22484](https://redirect.github.com/pulumi/pulumi/pull/22484)

##### Miscellaneous

-   \[java] Upgrade java to v1.23.0

-   \[sdk/dotnet] Upgrade dotnet to v3.102.1

-   \[yaml] Upgrade to v1.31.0
[#&#8203;22501](https://redirect.github.com/pulumi/pulumi/pull/22501)

- \[programgen/{dotnet,go,java,nodejs,pcl,python,yaml}] Remove
`mimeType` & `readDir` from PCL
[#&#8203;22449](https://redirect.github.com/pulumi/pulumi/pull/22449)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-09 01:05:50 +00:00
pulumi-renovate[bot]
fd5b2ee95b Update first-party Pulumi dependencies (#807)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | patch | `v3.102.0` -> `v3.102.1` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.228.0` -> `v3.229.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.102.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31021---2026-04-08)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.102.0...v3.102.1)

##### Bug Fixes

- \[sdk] Fix inherited \[Input] properties missing from component schema
when using base class inheritance on args types
[#&#8203;930](https://redirect.github.com/pulumi/pulumi-dotnet/pull/930)

- \[sdk] Fix GetResourceType() returning empty string for
DependencyProviderResource
[#&#8203;922](https://redirect.github.com/pulumi/pulumi-dotnet/pull/922)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.229.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.229.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.228.0...v3.229.0)

#### 3.229.0 (2026-04-02)

##### Features

- \[auto/python] Add org get-default and set-default commands to
Automation API

- \[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve
performance
[#&#8203;22373](https://redirect.github.com/pulumi/pulumi/pull/22373)

- \[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the
pulumi spans under an existing parent span
[#&#8203;22369](https://redirect.github.com/pulumi/pulumi/pull/22369)

- \[cli/display] Add `--urns` flag to display full resource URNs instead
of short names in preview, up, destroy, refresh, import, and watch
commands
[#&#8203;22007](https://redirect.github.com/pulumi/pulumi/pull/22007)

-   \[pcl] Type integer literals as integers rather than numbers in PCL
[#&#8203;22268](https://redirect.github.com/pulumi/pulumi/pull/22268)

-   \[pcl] Support parameterized providers in PCL
[#&#8203;22251](https://redirect.github.com/pulumi/pulumi/pull/22251)

- \[protobuf] Add RunPlugin2 bidirectional streaming RPC to
LanguageRuntime proto
[#&#8203;22389](https://redirect.github.com/pulumi/pulumi/pull/22389)

-   \[yaml] Update YAML runtime to 1.30.2
[#&#8203;22426](https://redirect.github.com/pulumi/pulumi/pull/22426)

- \[sdk/go] Add org get-default and set-default commands to Automation
API

- \[sdk/nodejs] Modernize generated tsconfig.json to align with
TypeScript defaults
[#&#8203;22370](https://redirect.github.com/pulumi/pulumi/pull/22370)

- \[cli/policy] Add a new `policy analyze` command to run a policy pack
against existing state
[#&#8203;22250](https://redirect.github.com/pulumi/pulumi/pull/22250)

##### Bug Fixes

- \[backend/diy] Remove state lock for refresh --preview-only for diy
backend
[#&#8203;22385](https://redirect.github.com/pulumi/pulumi/pull/22385)

-   \[cli] Fix OTEL flushing on provider shutdown
[#&#8203;22358](https://redirect.github.com/pulumi/pulumi/pull/22358)

- \[cli/display] Fix deadlock in message renderer when cancelling an
operation
[#&#8203;22433](https://redirect.github.com/pulumi/pulumi/pull/22433)

- \[engine] Fix `--include` and `--exclude` not working for
program-based refresh (RefreshV2)
[#&#8203;22404](https://redirect.github.com/pulumi/pulumi/pull/22404)

-   \[engine] Parallelize plugin cancellation in SignalCancellation
[#&#8203;22431](https://redirect.github.com/pulumi/pulumi/pull/22431)

-   \[pcl] Fix looking up variables in parent scopes
[#&#8203;22379](https://redirect.github.com/pulumi/pulumi/pull/22379)

-   \[pcl] Apply default values from resource schemas
[#&#8203;22393](https://redirect.github.com/pulumi/pulumi/pull/22393)

-   \[sdk/{bun,go,nodejs,python}] Wire Cancel RPC to language host Run
[#&#8203;22397](https://redirect.github.com/pulumi/pulumi/pull/22397)

-   \[sdk/nodejs] Allow TypeScript 6 as a peer dependency
[#&#8203;22340](https://redirect.github.com/pulumi/pulumi/pull/22340)

- \[sdk/nodejs] Fix closure serialization for \__importStar-wrapped
modules
[#&#8203;22388](https://redirect.github.com/pulumi/pulumi/pull/22388)

- \[sdk/python] Cache type metadata and class references in Python SDK
to reduce CPU overhead during serialization
[#&#8203;22422](https://redirect.github.com/pulumi/pulumi/pull/22422)

- \[sdk/python] Replace busy-wait polling in wait_for_rpcs with
asyncio.wait
[#&#8203;22411](https://redirect.github.com/pulumi/pulumi/pull/22411)

##### Miscellaneous

-   \[cli] Add update metadata to the otel root span
[#&#8203;22357](https://redirect.github.com/pulumi/pulumi/pull/22357)

-   \[java] Update to v1.22.0
[#&#8203;22437](https://redirect.github.com/pulumi/pulumi/pull/22437)

-   \[sdk/nodejs] Use nodenext for moduleResolution and module
[#&#8203;22363](https://redirect.github.com/pulumi/pulumi/pull/22363)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-08 13:51:13 +00:00
pulumi-renovate[bot]
8ef055d5e7 Update first-party Pulumi dependencies (#803)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.227.0` ->
`3.229.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.227.0/3.229.0)
|
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.21.3` -> `v1.22.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.227.0` -> `v3.228.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.229.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.229.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.228.0...v3.229.0)

#### 3.229.0 (2026-04-02)

##### Features

- \[auto/python] Add org get-default and set-default commands to
Automation API

- \[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve
performance
[#&#8203;22373](https://redirect.github.com/pulumi/pulumi/pull/22373)

- \[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the
pulumi spans under an existing parent span
[#&#8203;22369](https://redirect.github.com/pulumi/pulumi/pull/22369)

- \[cli/display] Add `--urns` flag to display full resource URNs instead
of short names in preview, up, destroy, refresh, import, and watch
commands
[#&#8203;22007](https://redirect.github.com/pulumi/pulumi/pull/22007)

-   \[pcl] Type integer literals as integers rather than numbers in PCL
[#&#8203;22268](https://redirect.github.com/pulumi/pulumi/pull/22268)

-   \[pcl] Support parameterized providers in PCL
[#&#8203;22251](https://redirect.github.com/pulumi/pulumi/pull/22251)

- \[protobuf] Add RunPlugin2 bidirectional streaming RPC to
LanguageRuntime proto
[#&#8203;22389](https://redirect.github.com/pulumi/pulumi/pull/22389)

-   \[yaml] Update YAML runtime to 1.30.2
[#&#8203;22426](https://redirect.github.com/pulumi/pulumi/pull/22426)

- \[sdk/go] Add org get-default and set-default commands to Automation
API

- \[sdk/nodejs] Modernize generated tsconfig.json to align with
TypeScript defaults
[#&#8203;22370](https://redirect.github.com/pulumi/pulumi/pull/22370)

- \[cli/policy] Add a new `policy analyze` command to run a policy pack
against existing state
[#&#8203;22250](https://redirect.github.com/pulumi/pulumi/pull/22250)

##### Bug Fixes

- \[backend/diy] Remove state lock for refresh --preview-only for diy
backend
[#&#8203;22385](https://redirect.github.com/pulumi/pulumi/pull/22385)

-   \[cli] Fix OTEL flushing on provider shutdown
[#&#8203;22358](https://redirect.github.com/pulumi/pulumi/pull/22358)

- \[cli/display] Fix deadlock in message renderer when cancelling an
operation
[#&#8203;22433](https://redirect.github.com/pulumi/pulumi/pull/22433)

- \[engine] Fix `--include` and `--exclude` not working for
program-based refresh (RefreshV2)
[#&#8203;22404](https://redirect.github.com/pulumi/pulumi/pull/22404)

-   \[engine] Parallelize plugin cancellation in SignalCancellation
[#&#8203;22431](https://redirect.github.com/pulumi/pulumi/pull/22431)

-   \[pcl] Fix looking up variables in parent scopes
[#&#8203;22379](https://redirect.github.com/pulumi/pulumi/pull/22379)

-   \[pcl] Apply default values from resource schemas
[#&#8203;22393](https://redirect.github.com/pulumi/pulumi/pull/22393)

-   \[sdk/{bun,go,nodejs,python}] Wire Cancel RPC to language host Run
[#&#8203;22397](https://redirect.github.com/pulumi/pulumi/pull/22397)

-   \[sdk/nodejs] Allow TypeScript 6 as a peer dependency
[#&#8203;22340](https://redirect.github.com/pulumi/pulumi/pull/22340)

- \[sdk/nodejs] Fix closure serialization for \__importStar-wrapped
modules
[#&#8203;22388](https://redirect.github.com/pulumi/pulumi/pull/22388)

- \[sdk/python] Cache type metadata and class references in Python SDK
to reduce CPU overhead during serialization
[#&#8203;22422](https://redirect.github.com/pulumi/pulumi/pull/22422)

- \[sdk/python] Replace busy-wait polling in wait_for_rpcs with
asyncio.wait
[#&#8203;22411](https://redirect.github.com/pulumi/pulumi/pull/22411)

##### Miscellaneous

-   \[cli] Add update metadata to the otel root span
[#&#8203;22357](https://redirect.github.com/pulumi/pulumi/pull/22357)

-   \[java] Update to v1.22.0
[#&#8203;22437](https://redirect.github.com/pulumi/pulumi/pull/22437)

-   \[sdk/nodejs] Use nodenext for moduleResolution and module
[#&#8203;22363](https://redirect.github.com/pulumi/pulumi/pull/22363)

###
[`v3.228.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32280-2026-03-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.227.0...v3.228.0)

##### Features

- \[cli] Don't apply the secrets filter to `true` and `false`
(case-insensitive)
[#&#8203;22269](https://redirect.github.com/pulumi/pulumi/pull/22269)

- \[cli] Add grpcs:// support and header authentication to OTLP exporter
[#&#8203;22320](https://redirect.github.com/pulumi/pulumi/pull/22320)

-   \[cli] Read OTEL_RESOURCE_ATTRIBUTES
[#&#8203;22329](https://redirect.github.com/pulumi/pulumi/pull/22329)

- \[auto/nodejs] Add low-level "cancel" command to the auto-generated
interface
[#&#8203;22156](https://redirect.github.com/pulumi/pulumi/pull/22156)

- \[cli/state] Allow `pulumi state delete` to accept multiple resource
URNs and delete them in a dependency-safe order

##### Bug Fixes

-   \[cli] Allow relative file paths for --otel-traces
[#&#8203;22300](https://redirect.github.com/pulumi/pulumi/pull/22300)

-   \[cli] Bridge opentracing spans from providers into OTel
[#&#8203;22313](https://redirect.github.com/pulumi/pulumi/pull/22313)

-   \[cli] Correctly end spans for GRPC streams
[#&#8203;22304](https://redirect.github.com/pulumi/pulumi/pull/22304)

-   \[cli/about] Do not include the access token in plain text
[#&#8203;22347](https://redirect.github.com/pulumi/pulumi/pull/22347)

- \[display] Fix detailed diff indentation so changed resources are not
visually nested under unrelated visible resources when unchanged parents
are hidden.
[#&#8203;22317](https://redirect.github.com/pulumi/pulumi/pull/22317)

- \[cli/import] Fix import codegen when generating references to
non-standard names
[#&#8203;22319](https://redirect.github.com/pulumi/pulumi/pull/22319)

-   \[engine] Update golang version
[#&#8203;22277](https://redirect.github.com/pulumi/pulumi/pull/22277)

-   \[pcl] Typecheck component inputs in PCL programs
[#&#8203;22292](https://redirect.github.com/pulumi/pulumi/pull/22292)

- \[programgen/{nodejs,python}] Fix literal conversion when calling into
local components
[#&#8203;22306](https://redirect.github.com/pulumi/pulumi/pull/22306)

##### Miscellaneous

-   \[cli] Add CLI metadata to the root span
[#&#8203;22305](https://redirect.github.com/pulumi/pulumi/pull/22305)

-   \[cli] Add more OTel interceptors for GRPC clients
[#&#8203;22309](https://redirect.github.com/pulumi/pulumi/pull/22309)

- \[cli] Add spans for plugin installation and add more attributes for
dependency installation
[#&#8203;22303](https://redirect.github.com/pulumi/pulumi/pull/22303)

-   \[cli] Allow setting a GRPC endpoint for performance tests
[#&#8203;22330](https://redirect.github.com/pulumi/pulumi/pull/22330)

- \[backend/diy] Start deprecation of non-project mode for DIY backends
[#&#8203;19625](https://redirect.github.com/pulumi/pulumi/pull/19625)

</details>

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.22.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1220---2026-04-01)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.3...v1.22.0)

##### Bug Fixes

- \[runtime] Do not leak java processes on failed resource creates
[#&#8203;2103](https://redirect.github.com/pulumi/pulumi-java/pull/2103)

##### Improvements

- \[codegen] Support `cwd()` builtin in program generation
[#&#8203;2092](https://redirect.github.com/pulumi/pulumi-java/pull/2092)

- \[codegen] Support `additionalSecretOutputs` resource option in
program generation
[#&#8203;2098](https://redirect.github.com/pulumi/pulumi-java/pull/2098)

- \[codegen] Support `deleteBeforeReplace` and `replaceOnChanges`
resource options in program and SDK generation
[#&#8203;2101](https://redirect.github.com/pulumi/pulumi-java/pull/2101)

##### Bug Fixes

- \[codegen] Emit integer numbers as floats so generated code compiles
[#&#8203;2102](https://redirect.github.com/pulumi/pulumi-java/pull/2102)

- \[codegen] Generate `pom.xml` in the program directory when `main` is
set in `Pulumi.yaml`
[#&#8203;2093](https://redirect.github.com/pulumi/pulumi-java/pull/2093)

- \[codegen] Fix generated SDK `settings.gradle` to work with Gradle 9
[#&#8203;2097](https://redirect.github.com/pulumi/pulumi-java/pull/2097)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-04-02 17:58:57 +00:00
pulumi-renovate[bot]
f98315e8ee Update first-party Pulumi dependencies to v3.227.0 (#802)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.226.0` ->
`3.227.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.226.0/3.227.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.226.0` -> `v3.227.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.227.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32270-2026-03-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.226.0...v3.227.0)

##### Features

- \[engine] The engine will fill in Name and Type for ResourceReference
values on the wire protocol
[#&#8203;22208](https://redirect.github.com/pulumi/pulumi/pull/22208)

-   \[sdk/bun] Add support for running policy packs with bun
[#&#8203;22206](https://redirect.github.com/pulumi/pulumi/pull/22206)

-   \[cli/policy] Auto-install missing policy analyzer plugins
[#&#8203;22196](https://redirect.github.com/pulumi/pulumi/pull/22196)

- \[sdk/python] Add lock file detection for picking the Python toolchain
[#&#8203;22234](https://redirect.github.com/pulumi/pulumi/pull/22234)

##### Bug Fixes

-   \[cli] Use distinct exit codes for different types of error
[#&#8203;22205](https://redirect.github.com/pulumi/pulumi/pull/22205)

-   \[cli] Improve SAML SSO reauthorization error message

- \[engine] Fix snapshot integrity error in refresh v2 with changed
parents
[#&#8203;22190](https://redirect.github.com/pulumi/pulumi/pull/22190)

- \[pcl] Continue running after errors when running with
--continue-on-error
[#&#8203;22171](https://redirect.github.com/pulumi/pulumi/pull/22171)

-   \[pcl] Deprecate labels on package blocks
[#&#8203;22253](https://redirect.github.com/pulumi/pulumi/pull/22253)

- \[programgen] Preserve traversal parts in
rewriteRelativeTraversalExpression
[#&#8203;22249](https://redirect.github.com/pulumi/pulumi/pull/22249)

-   \[sdk/bun] Check for an SDK version compatible with bun
[#&#8203;22262](https://redirect.github.com/pulumi/pulumi/pull/22262)

-   \[programgen/nodejs] Correctly generate `for` expressions
[#&#8203;22219](https://redirect.github.com/pulumi/pulumi/pull/22219)

- \[sdk/go] Add support for Azure DevOps git URLs in pulumi package
publish code paths
[#&#8203;22217](https://redirect.github.com/pulumi/pulumi/pull/22217)

- \[programgen/python] Correctly generate list & dictionary
comprehension in Python code
[#&#8203;22182](https://redirect.github.com/pulumi/pulumi/pull/22182)

##### Miscellaneous

-   \[backend] Move CloudConsoleURL from httpstate to httpstate/client
[#&#8203;22258](https://redirect.github.com/pulumi/pulumi/pull/22258)

-   \[docs] Move remaining content from /developer-docs to /docs
[#&#8203;22225](https://redirect.github.com/pulumi/pulumi/pull/22225)

- \[sdk/bun] Add a test for the function serialization error message
when using bun
[#&#8203;22207](https://redirect.github.com/pulumi/pulumi/pull/22207)

-   \[sdk/bun] Run policy language tests for bun
[#&#8203;22209](https://redirect.github.com/pulumi/pulumi/pull/22209)

-   \[sdk/bun] Mark pulumi-language-bun as a bundled plugin
[#&#8203;22265](https://redirect.github.com/pulumi/pulumi/pull/22265)

- \[sdk/{bun,nodejs}] Use defaultErrorMessage in run-plugin and
run-policy-pack
[#&#8203;22210](https://redirect.github.com/pulumi/pulumi/pull/22210)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.227.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.227.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.226.0...v3.227.0)

##### 3.227.0 (2026-03-19)

##### Features

- \[engine] The engine will fill in Name and Type for ResourceReference
values on the wire protocol
[#&#8203;22208](https://redirect.github.com/pulumi/pulumi/pull/22208)

-   \[sdk/bun] Add support for running policy packs with bun
[#&#8203;22206](https://redirect.github.com/pulumi/pulumi/pull/22206)

-   \[cli/policy] Auto-install missing policy analyzer plugins
[#&#8203;22196](https://redirect.github.com/pulumi/pulumi/pull/22196)

- \[sdk/python] Add lock file detection for picking the Python toolchain
[#&#8203;22234](https://redirect.github.com/pulumi/pulumi/pull/22234)

##### Bug Fixes

-   \[cli] Use distinct exit codes for different types of error
[#&#8203;22205](https://redirect.github.com/pulumi/pulumi/pull/22205)

-   \[cli] Improve SAML SSO reauthorization error message

- \[engine] Fix snapshot integrity error in refresh v2 with changed
parents
[#&#8203;22190](https://redirect.github.com/pulumi/pulumi/pull/22190)

- \[pcl] Continue running after errors when running with
--continue-on-error
[#&#8203;22171](https://redirect.github.com/pulumi/pulumi/pull/22171)

-   \[pcl] Deprecate labels on package blocks
[#&#8203;22253](https://redirect.github.com/pulumi/pulumi/pull/22253)

- \[programgen] Preserve traversal parts in
rewriteRelativeTraversalExpression
[#&#8203;22249](https://redirect.github.com/pulumi/pulumi/pull/22249)

-   \[sdk/bun] Check for an SDK version compatible with bun
[#&#8203;22262](https://redirect.github.com/pulumi/pulumi/pull/22262)

-   \[programgen/nodejs] Correctly generate `for` expressions
[#&#8203;22219](https://redirect.github.com/pulumi/pulumi/pull/22219)

- \[sdk/go] Add support for Azure DevOps git URLs in pulumi package
publish code paths
[#&#8203;22217](https://redirect.github.com/pulumi/pulumi/pull/22217)

- \[programgen/python] Correctly generate list & dictionary
comprehension in Python code
[#&#8203;22182](https://redirect.github.com/pulumi/pulumi/pull/22182)

##### Miscellaneous

-   \[backend] Move CloudConsoleURL from httpstate to httpstate/client
[#&#8203;22258](https://redirect.github.com/pulumi/pulumi/pull/22258)

-   \[docs] Move remaining content from /developer-docs to /docs
[#&#8203;22225](https://redirect.github.com/pulumi/pulumi/pull/22225)

- \[sdk/bun] Add a test for the function serialization error message
when using bun
[#&#8203;22207](https://redirect.github.com/pulumi/pulumi/pull/22207)

-   \[sdk/bun] Run policy language tests for bun
[#&#8203;22209](https://redirect.github.com/pulumi/pulumi/pull/22209)

-   \[sdk/bun] Mark pulumi-language-bun as a bundled plugin
[#&#8203;22265](https://redirect.github.com/pulumi/pulumi/pull/22265)

- \[sdk/{bun,nodejs}] Use defaultErrorMessage in run-plugin and
run-policy-pack
[#&#8203;22210](https://redirect.github.com/pulumi/pulumi/pull/22210)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-19 22:21:40 +00:00
pulumi-renovate[bot]
a479383c41 Update module google.golang.org/grpc to v1.79.3 [SECURITY] (#800)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
indirect | patch | `v1.79.2` -> `v1.79.3` |
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
indirect | minor | `v1.72.1` -> `v1.79.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[CVE-2026-33186](https://redirect.github.com/grpc/grpc-go/security/advisories/GHSA-p77j-4mvh-x3m3)

### Impact
_What kind of vulnerability is it? Who is impacted?_

It is an **Authorization Bypass** resulting from **Improper Input
Validation** of the HTTP/2 `:path` pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting
requests where the `:path` omitted the mandatory leading slash (e.g.,
`Service/Method` instead of `/Service/Method`). While the server
successfully routed these requests to the correct handler, authorization
interceptors (including the official `grpc/authz` package) evaluated the
raw, non-canonical path string. Consequently, "deny" rules defined using
canonical paths (starting with `/`) failed to match the incoming
request, allowing it to bypass the policy if a fallback "allow" rule was
present.

**Who is impacted?**
This affects gRPC-Go servers that meet both of the following criteria:
1. They use path-based authorization interceptors, such as the official
RBAC implementation in `google.golang.org/grpc/authz` or custom
interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`.
2. Their security policy contains specific "deny" rules for canonical
paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2
frames with malformed `:path` headers directly to the gRPC server.

### Patches
_Has the problem been patched? What versions should users upgrade to?_

Yes, the issue has been patched. The fix ensures that any request with a
`:path` that does not start with a leading slash is immediately rejected
with a `codes.Unimplemented` error, preventing it from reaching
authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):
* **v1.79.3**
* The latest **master** branch.

It is recommended that all users employing path-based authorization
(especially `grpc/authz`) upgrade as soon as the patch is available in a
tagged release.

### Workarounds
_Is there a way for users to fix or remediate the vulnerability without
upgrading?_

While upgrading is the most secure and recommended path, users can
mitigate the vulnerability using one of the following methods:

#### 1. Use a Validating Interceptor (Recommended Mitigation)
Add an "outermost" interceptor to your server that validates the path
before any other authorization logic runs:

```go
func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)
```

#### 2. Infrastructure-Level Normalization
If your gRPC server is behind a reverse proxy or load balancer (such as
Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to
enforce strict HTTP/2 compliance for pseudo-headers and reject or
normalize requests where the `:path` header does not start with a
leading slash.

#### 3. Policy Hardening
Switch to a "default deny" posture in your authorization policies
(explicitly listing all allowed paths and denying everything else) to
reduce the risk of bypasses via malformed inputs.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.79.3`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.79.3):
Release 1.79.3

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3)

### Security

- server: fix an authorization bypass where malformed :path headers
(missing the leading slash) could bypass path-based restricted "deny"
rules in interceptors like `grpc/authz`. Any request with a
non-canonical path is now immediately rejected with an `Unimplemented`
error.
([#&#8203;8981](https://redirect.github.com/grpc/grpc-go/issues/8981))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-19 05:12:33 +00:00
pulumi-provider-automation[bot]
474e757992 Update GitHub Actions workflows. (#799)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[4eeb9c0311bcea38a166c43eb897cf2a2f88ea4c](4eeb9c0311).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-18 06:01:10 +00:00
pulumi-renovate[bot]
23583bfdc8 Update module github.com/pulumi/pulumi-go-provider to v1.3.1 (#798)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-go-provider](https://redirect.github.com/pulumi/pulumi-go-provider)
| require | patch | `v1.3.0` -> `v1.3.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi-go-provider
(github.com/pulumi/pulumi-go-provider)</summary>

###
[`v1.3.1`](https://redirect.github.com/pulumi/pulumi-go-provider/releases/tag/v1.3.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-go-provider/compare/v1.3.0...v1.3.1)

#### What's Changed

- Update module github.com/pulumi/pulumi/pkg/v3 to v3.226.0 by
[@&#8203;pulumi-renovate](https://redirect.github.com/pulumi-renovate)\[bot]
in[https://github.com/pulumi/pulumi-go-provider/pull/487](https://redirect.github.com/pulumi/pulumi-go-provider/pull/487)7
- Serialize Enum Names by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/488](https://redirect.github.com/pulumi/pulumi-go-provider/pull/488)
- Allow annotating enums by
[@&#8203;iwahbe](https://redirect.github.com/iwahbe) in
[https://github.com/pulumi/pulumi-go-provider/pull/489](https://redirect.github.com/pulumi/pulumi-go-provider/pull/489)

**Full Changelog**:
https://github.com/pulumi/pulumi-go-provider/compare/v1.3.0...v1.3.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-17 15:59:50 +00:00
pulumi-renovate[bot]
c1ec48af0a Update first-party Pulumi dependencies to v3.226.0 (#796)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.225.1` ->
`3.226.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.225.1/3.226.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.225.1` -> `v3.226.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.226.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32260-2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.1...v3.226.0)

##### Features

- \[backend/service] Automatically repair snapshot integrity issues,
while sending an error event to the backend for further diagnosis
[#&#8203;22179](https://redirect.github.com/pulumi/pulumi/pull/22179)

- \[cli] Add a --otel-traces flag, that allows writing otel traces to a
file, or directly to a grpc interface
[#&#8203;22129](https://redirect.github.com/pulumi/pulumi/pull/22129)

- \[engine] Engine will use provider references from `__self__`
arguments to calls
[#&#8203;22114](https://redirect.github.com/pulumi/pulumi/pull/22114)

-   \[sdk/bun] Support bun as a runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)
[#&#8203;22049](https://redirect.github.com/pulumi/pulumi/pull/22049)

-   \[sdk/bun] Add debugger support for the bun runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)

-   \[sdk/bun] Add support for Bun as a plugin runtime
[#&#8203;22189](https://redirect.github.com/pulumi/pulumi/pull/22189)

##### Bug Fixes

-   \[engine] Fix ReplacementTrigger firing due to dependency changes
[#&#8203;22119](https://redirect.github.com/pulumi/pulumi/pull/22119)

- \[engine] Correctly serialize output values to the snapshot rather
than always recording them as computed even when known
[#&#8203;22120](https://redirect.github.com/pulumi/pulumi/pull/22120)

-   \[pcl] Support resource ranges in PCL
[#&#8203;22144](https://redirect.github.com/pulumi/pulumi/pull/22144)

- \[cli/config] Include environments used when refreshing a stack's
config
[#&#8203;22103](https://redirect.github.com/pulumi/pulumi/pull/22103)

- \[cli/display] Fix `pulumi destroy` not showing parent resource
hierarchy
[#&#8203;22148](https://redirect.github.com/pulumi/pulumi/pull/22148)

-   \[cli/package] Correctly parse package URLs with .git in them
[#&#8203;22174](https://redirect.github.com/pulumi/pulumi/pull/22174)

- \[cli/plugin] Fix package get-schema for binary providers at relative
paths
[#&#8203;22107](https://redirect.github.com/pulumi/pulumi/pull/22107)

- \[sdk/python] Handle null detailedDiff in automation StepEventMetadata
JSON parsing
[#&#8203;22140](https://redirect.github.com/pulumi/pulumi/pull/22140)

- \[cli/state] Fix state move integrity errors when copied providers
depend on resources left in source stack
[#&#8203;22141](https://redirect.github.com/pulumi/pulumi/pull/22141)

##### Miscellaneous

-   \[cli/about] Show bun information in `pulumi about`
[#&#8203;22121](https://redirect.github.com/pulumi/pulumi/pull/22121)

- \[programgen/go] Target go 1.25 for generated go.mod files (instead of
go 1.23)
[#&#8203;22070](https://redirect.github.com/pulumi/pulumi/pull/22070)

- \[sdkgen/go] Target go 1.25 for generated go.mod files for SDKs
(instead of go 1.20)
[#&#8203;22131](https://redirect.github.com/pulumi/pulumi/pull/22131)

- \[sdk/python] Read Poetry and uv lockfiles to determine program
dependencies
[#&#8203;22072](https://redirect.github.com/pulumi/pulumi/pull/22072)

- \[sdk/python] Use importlib to find pulumi-plugin.json for installed
packages
[#&#8203;22127](https://redirect.github.com/pulumi/pulumi/pull/22127)

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.226.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.226.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.1...v3.226.0)

#### 3.226.0 (2026-03-11)

##### Features

- \[backend/service] Automatically repair snapshot integrity issues,
while sending an error event to the backend for further diagnosis
[#&#8203;22179](https://redirect.github.com/pulumi/pulumi/pull/22179)

- \[cli] Add a --otel-traces flag, that allows writing otel traces to a
file, or directly to a grpc interface
[#&#8203;22129](https://redirect.github.com/pulumi/pulumi/pull/22129)

- \[engine] Engine will use provider references from `__self__`
arguments to calls
[#&#8203;22114](https://redirect.github.com/pulumi/pulumi/pull/22114)

-   \[sdk/bun] Support bun as a runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)
[#&#8203;22049](https://redirect.github.com/pulumi/pulumi/pull/22049)

-   \[sdk/bun] Add debugger support for the bun runtime
[#&#8203;22177](https://redirect.github.com/pulumi/pulumi/pull/22177)

-   \[sdk/bun] Add support for Bun as a plugin runtime
[#&#8203;22189](https://redirect.github.com/pulumi/pulumi/pull/22189)

##### Bug Fixes

-   \[engine] Fix ReplacementTrigger firing due to dependency changes
[#&#8203;22119](https://redirect.github.com/pulumi/pulumi/pull/22119)

- \[engine] Correctly serialize output values to the snapshot rather
than always recording them as computed even when known
[#&#8203;22120](https://redirect.github.com/pulumi/pulumi/pull/22120)

-   \[pcl] Support resource ranges in PCL
[#&#8203;22144](https://redirect.github.com/pulumi/pulumi/pull/22144)

- \[cli/config] Include environments used when refreshing a stack's
config
[#&#8203;22103](https://redirect.github.com/pulumi/pulumi/pull/22103)

- \[cli/display] Fix `pulumi destroy` not showing parent resource
hierarchy
[#&#8203;22148](https://redirect.github.com/pulumi/pulumi/pull/22148)

-   \[cli/package] Correctly parse package URLs with .git in them
[#&#8203;22174](https://redirect.github.com/pulumi/pulumi/pull/22174)

- \[cli/plugin] Fix package get-schema for binary providers at relative
paths
[#&#8203;22107](https://redirect.github.com/pulumi/pulumi/pull/22107)

- \[sdk/python] Handle null detailedDiff in automation StepEventMetadata
JSON parsing
[#&#8203;22140](https://redirect.github.com/pulumi/pulumi/pull/22140)

- \[cli/state] Fix state move integrity errors when copied providers
depend on resources left in source stack
[#&#8203;22141](https://redirect.github.com/pulumi/pulumi/pull/22141)

##### Miscellaneous

-   \[cli/about] Show bun information in `pulumi about`
[#&#8203;22121](https://redirect.github.com/pulumi/pulumi/pull/22121)

- \[programgen/go] Target go 1.25 for generated go.mod files (instead of
go 1.23)
[#&#8203;22070](https://redirect.github.com/pulumi/pulumi/pull/22070)

- \[sdkgen/go] Target go 1.25 for generated go.mod files for SDKs
(instead of go 1.20)
[#&#8203;22131](https://redirect.github.com/pulumi/pulumi/pull/22131)

- \[sdk/python] Read Poetry and uv lockfiles to determine program
dependencies
[#&#8203;22072](https://redirect.github.com/pulumi/pulumi/pull/22072)

- \[sdk/python] Use importlib to find pulumi-plugin.json for installed
packages
[#&#8203;22127](https://redirect.github.com/pulumi/pulumi/pull/22127)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-13 16:28:43 +00:00
pulumi-renovate[bot]
20b453c00b Update module github.com/pulumi/esc to v0.23.0 (#795)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.22.0` -> `v0.23.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.23.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.23.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.22.0...v0.23.0)

##### Improvements

-   Add warning in CLI when using an ambiguous 2-part environment ref
    [#&#8203;622](https://redirect.github.com/pulumi/esc/pull/622)

- Add support for `fn::final` built-in function that marks values as
final and unable to be overwritten.
    [#&#8203;621](https://redirect.github.com/pulumi/esc/pull/621)

##### Bug Fixes

##### Breaking changes

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-12 20:38:53 +00:00
Pulumi Bot
f6b499a9d4 [rollout] Set up GH-AW and install shared PR review workflows (#794)
## Summary

This PR sets up GitHub Agentic Workflows (GH-AW) and installs shared PR
review workflows in `pulumi/pulumi-docker-build`.

### Commands Executed

- `gh-aw version` → `v0.56.2` (used as entrypoint)
- `gh-aw init` → ran (`.github/aw/` was not present)
- `gh-aw add
pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-review.md@main
--name docker-build-pr-review --force`
- `gh-aw add
pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-rereview.md@main
--name docker-build-pr-rereview --force`
- `gh-aw compile`
- `gh-aw validate`

### Configuration

| Property | Value |
|---|---|
| AW entrypoint | `gh-aw` (v0.56.2) |
| Target base branch | `main` |
| `prefix_stem` | `docker-build` |
| `gh-aw init` | Ran (was not previously initialized) |

### Changed Files

- `.gitattributes` — added `merge=ours` strategy for
`.github/workflows/*.lock.yml`
- `.github/agents/agentic-workflows.agent.md` — created by `gh-aw init`
- `.github/workflows/copilot-setup-steps.yml` — generated dependency
workflow
- `.github/workflows/docker-build-pr-review.md` — shared PR review
workflow source
- `.github/workflows/docker-build-pr-review.lock.yml` — compiled lock
file
- `.github/workflows/docker-build-pr-rereview.md` — shared PR re-review
workflow source
- `.github/workflows/docker-build-pr-rereview.lock.yml` — compiled lock
file
- `.github/workflows/shared/review.md` — imported shared workflow
- `.github/workflows/shared/plugins/code-review/code-review.md` —
imported shared plugin

### Validation Output

**compile:**
````
⚠ Compiled 2 workflow(s): 0 error(s), 2 warning(s)
```

**validate:**
```
⚠ Compiled 2 workflow(s): 0 error(s), 2 warning(s)
```

### Validation Warnings

Both workflows produced the same non-blocking warning:
```
warning: This workflow grants id-token: write permission
OIDC tokens can authenticate to cloud providers (AWS, Azure, GCP).
Ensure proper audience validation and trust policies are configured.
````

These warnings are expected for the shared review workflows which use
OIDC for cloud authentication and are non-blocking.

---
Rollout triggered by
[provider-ops#41](https://github.com/pulumi/provider-ops/issues/41).




> Generated by [Generic Rollout
Worker](https://github.com/pulumi/provider-ops/actions/runs/23014445857)
·
[◷](https://github.com/search?q=repo%3Apulumi%2Fpulumi-docker-build+%22gh-aw-workflow-id%3A+gh-aw-workflow-rollout-worker%22&type=pullrequests)

<!-- gh-aw-agentic-workflow: Generic Rollout Worker, engine: claude, id:
23014445857, workflow_id: gh-aw-workflow-rollout-worker, run:
https://github.com/pulumi/provider-ops/actions/runs/23014445857 -->

<!-- gh-aw-workflow-id: gh-aw-workflow-rollout-worker -->

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 15:25:04 -04:00
pulumi-renovate[bot]
a8af1bfb5d Update module github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 to v3.102.0 (#792)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | minor | `v3.101.2` -> `v3.102.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.102.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31020---2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.101.2...v3.102.0)

##### Improvements

- \[runtime] Support 'secret' in pcl config blocks
[#&#8203;897](https://redirect.github.com/pulumi/pulumi-dotnet/pull/897)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-12 04:43:00 +00:00
pulumi-renovate[bot]
158160e33c Update module github.com/pulumi/pulumi-java/pkg to v1.21.3 (#791)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | patch | `v1.21.2` -> `v1.21.3` |

---

### Release Notes

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.21.3`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1213---2026-03-11)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.2...v1.21.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-11 22:59:16 +00:00
pulumi-provider-automation[bot]
c7b308d64b Update GitHub Actions workflows. (#789)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[7dff4f888cb6e5bfa153146d3658d3e86ba74c6f](7dff4f888c).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-11 05:55:42 +00:00
Cam Soper
ac9653175b Fix syntax for language chooser in documentation (#771)
@pose Fixes a bug in the doc that prevents completion of the build in
`pulumi/registry`.
2026-03-06 09:42:06 -08:00
pulumi-renovate[bot]
76a990fcb2 Update module github.com/pulumi/pulumi/pkg/v3 to v3.225.1 (#788)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.225.0` -> `v3.225.1` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.225.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.0...v3.225.1)

#### 3.225.1 (2026-03-05)

##### Bug Fixes

- \[engine] Fix inheritence of default providers across resources of
different packages
[#&#8203;22101](https://redirect.github.com/pulumi/pulumi/pull/22101)

- \[programgen/go] Fix panic on digit-prefixed schema properties in Go
code generation
[#&#8203;21917](https://redirect.github.com/pulumi/pulumi/pull/21917)

- \[programgen/go] Fix plain values not always being lifted to
input/output values when needed
[#&#8203;22084](https://redirect.github.com/pulumi/pulumi/pull/22084)

-   \[programgen/python] Fix generation of `entries` and `lookup` calls
[#&#8203;22086](https://redirect.github.com/pulumi/pulumi/pull/22086)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-06 08:17:59 +00:00
pulumi-provider-automation[bot]
aeb64dc959 Update GitHub Actions workflows. (#787)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[46f89691d9162d78e8ac301d8b8746b1469b2338](46f89691d9).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-03-06 05:53:08 +00:00
pulumi-renovate[bot]
14fafe1ba2 Update dependency @pulumi/pulumi to v3.225.1 (#786)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | patch | [`3.225.0` ->
`3.225.1`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.225.0/3.225.1)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.225.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.225.0...v3.225.1)

#### 3.225.1 (2026-03-05)

##### Bug Fixes

- \[engine] Fix inheritence of default providers across resources of
different packages
[#&#8203;22101](https://redirect.github.com/pulumi/pulumi/pull/22101)

- \[programgen/go] Fix panic on digit-prefixed schema properties in Go
code generation
[#&#8203;21917](https://redirect.github.com/pulumi/pulumi/pull/21917)

- \[programgen/go] Fix plain values not always being lifted to
input/output values when needed
[#&#8203;22084](https://redirect.github.com/pulumi/pulumi/pull/22084)

-   \[programgen/python] Fix generation of `entries` and `lookup` calls
[#&#8203;22086](https://redirect.github.com/pulumi/pulumi/pull/22086)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-03-05 23:39:57 +00:00
pulumi-renovate[bot]
38664fbc57 Update first-party Pulumi dependencies to v3.225.0 (#784)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.224.0` ->
`3.225.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.224.0/3.225.0)
|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.224.0` -> `v3.225.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.225.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.225.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.224.0...v3.225.0)

##### 3.225.0 (2026-03-04)

##### Features

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets
[#&#8203;21959](https://redirect.github.com/pulumi/pulumi/pull/21959)

- \[engine] The engine now handles the inheritance of the `provider`
option in resource registrations
[#&#8203;21999](https://redirect.github.com/pulumi/pulumi/pull/21999)

- \[engine] Enable journaling by default. It can still be turned off
using the PULUMI_DISABLE_JOURNALING env variable
[#&#8203;22041](https://redirect.github.com/pulumi/pulumi/pull/22041)

- \[programgen] PCL can now express config values should be read as
secrets
[#&#8203;22066](https://redirect.github.com/pulumi/pulumi/pull/22066)

-   \[yaml] Update yaml to v1.30.0

- \[cli/engine] Add a flag for automatically opening a Neo task on
preview/up failure
[#&#8203;21960](https://redirect.github.com/pulumi/pulumi/pull/21960)

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

- \[cli] Fix `stack import` panicking when importing a service stack
into a DIY backend
[#&#8203;22076](https://redirect.github.com/pulumi/pulumi/pull/22076)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

-   \[sdk/nodejs] Implement GetProgramDependencies for bun and pnpm
[#&#8203;22065](https://redirect.github.com/pulumi/pulumi/pull/22065)

##### Miscellaneous

- \[cli] Build language plugins with the grpcnotrace tag to reduce the
binary size
[#&#8203;22012](https://redirect.github.com/pulumi/pulumi/pull/22012)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-03-05 12:51:45 +00:00
pulumi-renovate[bot]
8befdfed62 Update module github.com/pulumi/pulumi/pkg/v3 to v3.224.0 (#780)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.223.0` -> `v3.224.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.224.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.224.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.223.0...v3.224.0)

##### 3.224.0 (2026-02-26)

##### Features

- \[backend/diy] Add zstd compression option for DIY backend state files
[#&#8203;21877](https://redirect.github.com/pulumi/pulumi/pull/21877)

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

-   \[pkg] Correct the schema for "pulumi:pulumi:StackReference"
[#&#8203;21895](https://redirect.github.com/pulumi/pulumi/pull/21895)

- \[programgen/nodejs] Correct the semantics of singleOrNone in
generated files
[#&#8203;21947](https://redirect.github.com/pulumi/pulumi/pull/21947)

- \[sdk/python] Fix `StepEventMetadata.from_json` reading
`detailed_diff` (snake_case) instead of `detailedDiff` (camelCase), and
`PolicyEvent.from_json` reading `resource_urn` instead of `resourceUrn`,
causing both fields to always be `None`
[#&#8203;21714](https://redirect.github.com/pulumi/pulumi/pull/21714)

-   \[sdk/python] Convert integer component inputs to `int`
[#&#8203;21944](https://redirect.github.com/pulumi/pulumi/pull/21944)

-   \[sdk/python] Fix crash in forked processes using automation API
[#&#8203;21937](https://redirect.github.com/pulumi/pulumi/pull/21937)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

##### Miscellaneous

-   \[sdk] Update java, dotnet & yaml
[#&#8203;21961](https://redirect.github.com/pulumi/pulumi/pull/21961)

- \[sdk/python] Improve the performance of `contains_unknowns` for large
objects
[#&#8203;21893](https://redirect.github.com/pulumi/pulumi/pull/21893)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-27 12:43:28 +00:00
pulumi-renovate[bot]
1e0f067064 Update module github.com/cloudflare/circl to v1.6.3 [SECURITY] (#776)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/cloudflare/circl](https://redirect.github.com/cloudflare/circl)
| indirect | patch | `v1.6.1` -> `v1.6.3` |

### GitHub Vulnerability Alerts

####
[CVE-2026-1229](https://redirect.github.com/cloudflare/circl/security/advisories/GHSA-q9hv-hpm4-hj6x)

The CombinedMult function in the CIRCL ecc/p384 package (secp384r1
curve) produces an incorrect value for specific inputs. The issue is
fixed by using complete addition formulas.
ECDH and ECDSA signing relying on this curve are not affected.

The bug was fixed in
**[v1.6.3](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.3)**.

---

### Release Notes

<details>
<summary>cloudflare/circl (github.com/cloudflare/circl)</summary>

###
[`v1.6.3`](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.3):
CIRCL v1.6.3

[Compare
Source](https://redirect.github.com/cloudflare/circl/compare/v1.6.2...v1.6.3)

##### CIRCL v1.6.3

Fix a bug on ecc/p384 scalar multiplication.

##### What's Changed

- sign/mldsa: Check opts for nil value by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/582](https://redirect.github.com/cloudflare/circl/pull/582)
- ecc/p384: Point addition must handle point doubling case. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/583](https://redirect.github.com/cloudflare/circl/pull/583)
- Release CIRCL v1.6.3 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/584](https://redirect.github.com/cloudflare/circl/pull/584)

**Full Changelog**:
https://github.com/cloudflare/circl/compare/v1.6.2...v1.6.3

###
[`v1.6.2`](https://redirect.github.com/cloudflare/circl/releases/tag/v1.6.2):
CIRCL v1.6.2

[Compare
Source](https://redirect.github.com/cloudflare/circl/compare/v1.6.1...v1.6.2)

##### CIRCL v1.6.2

-   New SLH-DSA, improvements in ML-DSA for arm64.
-   Tested compilation on WASM.

##### What's Changed

- Optimize pairing product computation by moving exponentiations to G1.
by [@&#8203;dfaranha](https://redirect.github.com/dfaranha) in
[https://github.com/cloudflare/circl/pull/547](https://redirect.github.com/cloudflare/circl/pull/547)
- sign: Adding SLH-DSA signature by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/512](https://redirect.github.com/cloudflare/circl/pull/512)
- Update code generators to CIRCL v1.6.1. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/548](https://redirect.github.com/cloudflare/circl/pull/548)
- ML-DSA: Add preliminary Wycheproof test vectors by
[@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/552](https://redirect.github.com/cloudflare/circl/pull/552)
- go fmt by [@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/554](https://redirect.github.com/cloudflare/circl/pull/554)
- gz-compressing test vectors, use of HexBytes and ReadGzip functions.
by [@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/555](https://redirect.github.com/cloudflare/circl/pull/555)
- group: Removes use of elliptic Marshal and Unmarshal functions. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/556](https://redirect.github.com/cloudflare/circl/pull/556)
- Support encoding/decoding ML-DSA private keys (as long as they contain
seeds) by [@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/559](https://redirect.github.com/cloudflare/circl/pull/559)
- Update to golangci-lint v2 by
[@&#8203;bwesterb](https://redirect.github.com/bwesterb) in
[https://github.com/cloudflare/circl/pull/560](https://redirect.github.com/cloudflare/circl/pull/560)
- Preparation for ARM64 Implementation of poly operations for dilithium
package. by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/562](https://redirect.github.com/cloudflare/circl/pull/562)
- prepare power2Round for custom implementations in assembly by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/564](https://redirect.github.com/cloudflare/circl/pull/564)
- ARM64 implementation for poly.PackLe16 by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/563](https://redirect.github.com/cloudflare/circl/pull/563)
- add arm64 version of polyMulBy2toD by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/565](https://redirect.github.com/cloudflare/circl/pull/565)
- add arm64 version of polySub by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/566](https://redirect.github.com/cloudflare/circl/pull/566)
- group: add byteLen method for short groups and RandomScalar uses
rand.Int by [@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/568](https://redirect.github.com/cloudflare/circl/pull/568)
- add arm64 version of poly.Add/Sub by
[@&#8203;elementrics](https://redirect.github.com/elementrics) in
[https://github.com/cloudflare/circl/pull/572](https://redirect.github.com/cloudflare/circl/pull/572)
- group: Adding cryptobyte marshaling to scalars by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/569](https://redirect.github.com/cloudflare/circl/pull/569)
- Bumping up to Go1.25 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/574](https://redirect.github.com/cloudflare/circl/pull/574)
- ci: Including WASM compilation. by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/577](https://redirect.github.com/cloudflare/circl/pull/577)
- Revert to using package-declared HPKE errors for shortkem instead of
standard library errors by
[@&#8203;harshiniwho](https://redirect.github.com/harshiniwho) in
[https://github.com/cloudflare/circl/pull/578](https://redirect.github.com/cloudflare/circl/pull/578)
- Release v1.6.2 by
[@&#8203;armfazh](https://redirect.github.com/armfazh) in
[https://github.com/cloudflare/circl/pull/579](https://redirect.github.com/cloudflare/circl/pull/579)

##### New Contributors

- [@&#8203;dfaranha](https://redirect.github.com/dfaranha) made their
first contribution in
[https://github.com/cloudflare/circl/pull/547](https://redirect.github.com/cloudflare/circl/pull/547)
- [@&#8203;elementrics](https://redirect.github.com/elementrics) made
their first contribution in
[https://github.com/cloudflare/circl/pull/562](https://redirect.github.com/cloudflare/circl/pull/562)
- [@&#8203;harshiniwho](https://redirect.github.com/harshiniwho) made
their first contribution in
[https://github.com/cloudflare/circl/pull/578](https://redirect.github.com/cloudflare/circl/pull/578)

**Full Changelog**:
https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-26 21:42:18 +00:00
pulumi-renovate[bot]
52f09191a7 Update first-party Pulumi dependencies (#769)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.221.0` ->
`3.224.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.221.0/3.224.0)
|
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.12` -> `v0.0.15` |
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | patch | `v3.101.0` -> `v3.101.2` |
|
[github.com/pulumi/pulumi-java/pkg](https://redirect.github.com/pulumi/pulumi-java)
| require | minor | `v1.16.0` -> `v1.21.2` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.220.0` -> `v3.223.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.224.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.224.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.223.0...v3.224.0)

##### 3.224.0 (2026-02-26)

##### Features

- \[backend/diy] Add zstd compression option for DIY backend state files
[#&#8203;21877](https://redirect.github.com/pulumi/pulumi/pull/21877)

- \[engine] Automatically make invoke outputs secret when there is a
secret input, and the invoke provider does not support secrets

- \[cli/package] Support source-based packages in `pulumi schema check`,
not just schema files
[#&#8203;21897](https://redirect.github.com/pulumi/pulumi/pull/21897)

##### Bug Fixes

-   \[pkg] Correct the schema for "pulumi:pulumi:StackReference"
[#&#8203;21895](https://redirect.github.com/pulumi/pulumi/pull/21895)

- \[programgen/nodejs] Correct the semantics of singleOrNone in
generated files
[#&#8203;21947](https://redirect.github.com/pulumi/pulumi/pull/21947)

- \[sdk/python] Fix `StepEventMetadata.from_json` reading
`detailed_diff` (snake_case) instead of `detailedDiff` (camelCase), and
`PolicyEvent.from_json` reading `resource_urn` instead of `resourceUrn`,
causing both fields to always be `None`
[#&#8203;21714](https://redirect.github.com/pulumi/pulumi/pull/21714)

-   \[sdk/python] Convert integer component inputs to `int`
[#&#8203;21944](https://redirect.github.com/pulumi/pulumi/pull/21944)

-   \[sdk/python] Fix crash in forked processes using automation API
[#&#8203;21937](https://redirect.github.com/pulumi/pulumi/pull/21937)

- \[engine] Fix panic when a new component resource in the program is
not targeted
[#&#8203;21957](https://redirect.github.com/pulumi/pulumi/pull/21957)

##### Miscellaneous

-   \[sdk] Update java, dotnet & yaml
[#&#8203;21961](https://redirect.github.com/pulumi/pulumi/pull/21961)

- \[sdk/python] Improve the performance of `contains_unknowns` for large
objects
[#&#8203;21893](https://redirect.github.com/pulumi/pulumi/pull/21893)

###
[`v3.223.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32230-2026-02-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.222.0...v3.223.0)

##### Bug Fixes

-   \[engine] Report policy pack installation errors
[#&#8203;21882](https://redirect.github.com/pulumi/pulumi/pull/21882)

###
[`v3.222.0`](https://redirect.github.com/pulumi/pulumi/blob/HEAD/CHANGELOG.md#32220-2026-02-18)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.221.0...v3.222.0)

##### Features

-   \[programgen/go] Generate Call requests
[#&#8203;21836](https://redirect.github.com/pulumi/pulumi/pull/21836)

##### Bug Fixes

- \[sdk/{nodejs,python}] Fix hang when loading policy packs that use
v1.18.1 or older of the policy SDK
[#&#8203;21866](https://redirect.github.com/pulumi/pulumi/pull/21866)

</details>

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.15`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.14...v0.0.15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.14...v0.0.15)

###
[`v0.0.14`](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.13...v0.0.14)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.13...v0.0.14)

###
[`v0.0.13`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.12...v0.0.13)

#### What's Changed

- Improve exec error messages by
[@&#8203;blampe](https://redirect.github.com/blampe) in
[https://github.com/pulumi/pulumi-docker-build/pull/553](https://redirect.github.com/pulumi/pulumi-docker-build/pull/553)
- Update p-go-provider to fix version replacement behavior by
[@&#8203;blampe](https://redirect.github.com/blampe) in
[https://github.com/pulumi/pulumi-docker-build/pull/584](https://redirect.github.com/pulumi/pulumi-docker-build/pull/584)

**Full Changelog**:
https://github.com/pulumi/pulumi-docker-build/compare/v0.0.12...v0.0.13

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3)</summary>

###
[`v3.101.2`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v31012---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.101.0...v3.101.2)

</details>

<details>
<summary>pulumi/pulumi-java
(github.com/pulumi/pulumi-java/pkg)</summary>

###
[`v1.21.2`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1212---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.1...v1.21.2)

###
[`v1.21.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1211---2026-02-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.21.0...v1.21.1)

##### Bug Fixes

- \[runtime] Fix `unknown provider package` error in automation API and
correctly propagate errors from inline programs.
[#&#8203;2029](https://redirect.github.com/pulumi/pulumi-java/pull/2029)

###
[`v1.21.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1210---2026-01-28)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.20.0...v1.21.0)

##### Improvements

- \[sdk] Add Deployment.requirePulumiVersion
[#&#8203;1979](https://redirect.github.com/pulumi/pulumi-java/pull/1979)

- \[codegen] Implement alias resource options generation
[#&#8203;1982](https://redirect.github.com/pulumi/pulumi-java/pull/1982)

##### Bug Fixes

- \[codegen] Use config.require in codegen when there is no default
value
[#&#8203;1983](https://redirect.github.com/pulumi/pulumi-java/pull/1983)

###
[`v1.20.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#vv1200---2025-12-29)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.19.0...v1.20.0)

##### Improvements

- \[sdk] Add support for the `replacementTrigger` resource option
[#&#8203;1958](https://redirect.github.com/pulumi/pulumi-java/pull/1958)

###
[`v1.19.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1190---2025-12-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.18.0...v1.19.0)

##### Improvements

- \[codegen] Add .gitattributes file to generated SDKs
[#&#8203;1949](https://redirect.github.com/pulumi/pulumi-java/pull/1949)

##### Bug Fixes

- \[language] Stop parsing runtime options at startup
[#&#8203;1947](https://redirect.github.com/pulumi/pulumi-java/pull/1947)

###
[`v1.18.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1180---2025-12-03)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.17.1...v1.18.0)

##### Improvements

-   \[sdk] Add `ReplaceWith` as a resource option

###
[`v1.17.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1171---2025-11-26)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.17.0...v1.17.1)

##### Improvements

-   \[sdk] Dependency bumps

###
[`v1.17.0`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1170---2025-11-12)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.3...v1.17.0)

##### Improvements

- \[sdk] Get the event log in the automation API over gRPC, instead of
through a text file

###
[`v1.16.3`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1163---2025-11-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.2...v1.16.3)

##### Improvements

-   \[sdk] Update pulumi pkg & sdk to 3.205.0
-   \[runtime] Implement `Language.Link`

###
[`v1.16.2`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1162---2025-10-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.1...v1.16.2)

##### Bug Fixes

-   \[sdk] Add `hideDiffs` as a new resource option. See details

###
[`v1.16.1`](https://redirect.github.com/pulumi/pulumi-java/blob/HEAD/CHANGELOG.md#v1161---2025-07-31)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-java/compare/v1.16.0...v1.16.1)

##### Bug Fixes

-   \[codegen] Fix generated 'plan' argument of 'preview' command

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-26 21:24:50 +00:00
pulumi-provider-automation[bot]
7a9b31c60f Update GitHub Actions workflows. (#777)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[599b3ade95c3408830d062a38ea7cf9c8607a12f](599b3ade95).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-26 06:00:24 +00:00
Pulumi Bot
e5da099be4 Upgrade to golangci-lint v2 (#775)
Upgrades golangci-lint from v1 to v2. Automated by Linear issue IT-144.

Co-authored-by: CI <ci@pulumi.com>
2026-02-25 12:40:02 -08:00
pulumi-provider-automation[bot]
1b95d18edc Update GitHub Actions workflows. (#773)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[b8b29dc51d452160accc76a310efd6eb38760b50](b8b29dc51d).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-24 06:01:23 +00:00
pulumi-provider-automation[bot]
5eabae0608 Update GitHub Actions workflows. (#772)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[f591fbcab3c096e497ab858d7155b31b12495ed1](f591fbcab3).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-20 05:57:28 +00:00
pulumi-provider-automation[bot]
583183d5e6 Update GitHub Actions workflows. (#768)
This PR was triggered by @t0yv0 generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit
[cf7cafe004bfe263736eb8a33fbeead26cc57b58](cf7cafe004).

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-18 06:02:18 +00:00
pulumi-renovate[bot]
a30d557dc3 Update dependency @pulumi/pulumi to v3.221.0 (#767)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.220.0` ->
`3.221.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.220.0/3.221.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.221.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.221.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.220.0...v3.221.0)

#### 3.221.0 (2026-02-17)

##### Features

-   \[auto] Support Go 1.26
[#&#8203;21835](https://redirect.github.com/pulumi/pulumi/pull/21835)

- \[engine] BREAKING: Rename `pulumiVersionRange` to
`requiredPulumiVersion` in `PulumiPlugin.yaml`
[#&#8203;21807](https://redirect.github.com/pulumi/pulumi/pull/21807)

-   \[cli/plugin] Reduce GitHub API usage when downloading plugins
[#&#8203;21774](https://redirect.github.com/pulumi/pulumi/pull/21774)

-   \[protobuf] Add loader_target to RunPluginRequest
[#&#8203;21763](https://redirect.github.com/pulumi/pulumi/pull/21763)

-   \[sdk/nodejs] Support enums when inferring schemas from components
[#&#8203;21787](https://redirect.github.com/pulumi/pulumi/pull/21787)

- \[sdk/nodejs] Support the Partial<T> utility type in component schema
inference
[#&#8203;21802](https://redirect.github.com/pulumi/pulumi/pull/21802)

- \[sdk/nodejs] Support the Required<T> utility type in component schema
inference
[#&#8203;21803](https://redirect.github.com/pulumi/pulumi/pull/21803)

##### Bug Fixes

-   \[cli] Make stack graph output deterministic
[#&#8203;21786](https://redirect.github.com/pulumi/pulumi/pull/21786)

- \[engine] Fix snapshot integrity error in `refresh --run-program` with
component resources
[#&#8203;21806](https://redirect.github.com/pulumi/pulumi/pull/21806)

-   \[engine] Fix race in refresh --run-program
[#&#8203;21815](https://redirect.github.com/pulumi/pulumi/pull/21815)

-   \[programgen/go] Correctly handle import paths for nested modules
[#&#8203;21812](https://redirect.github.com/pulumi/pulumi/pull/21812)

- \[sdkgen] Support type references to parameterized and third-party
packages
[#&#8203;21804](https://redirect.github.com/pulumi/pulumi/pull/21804)

-   \[sdkgen/go] Do not depend on pulumix against instructions for enums
[#&#8203;21818](https://redirect.github.com/pulumi/pulumi/pull/21818)

- \[cli/{install,package}] Don't panic when a non-absolute path is
passed to `pulumi package get-schema` where the PulumiPlugin.yaml has a
packages section
[#&#8203;21794](https://redirect.github.com/pulumi/pulumi/pull/21794)

-   \[cli/{install,package}] Only link a Pulumi project once
[#&#8203;21788](https://redirect.github.com/pulumi/pulumi/pull/21788)

- \[cli/{install,package}] Run in the correct location when using `uv`
to link python packages
[#&#8203;21796](https://redirect.github.com/pulumi/pulumi/pull/21796)

-   \[cli/package] Allow underscores in the path of plugin URLs
[#&#8203;21778](https://redirect.github.com/pulumi/pulumi/pull/21778)

- \[sdk/{nodejs,python}] Use new policy plugin support to run policy
packs
[#&#8203;21684](https://redirect.github.com/pulumi/pulumi/pull/21684)

-   \[sdk/python] Surface errors from uv, poetry or pip during linking
[#&#8203;21770](https://redirect.github.com/pulumi/pulumi/pull/21770)

- \[sdk/python] Always surface errors from uv, poetry or pip during
dependency installation
[#&#8203;21814](https://redirect.github.com/pulumi/pulumi/pull/21814)

-   \[sdkgen/python] Add missing blank line before :param lists
[#&#8203;21789](https://redirect.github.com/pulumi/pulumi/pull/21789)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-02-18 01:31:26 +00:00
Bryce Lampe
710f5d816b Remove unnecessary envOverride (#766)
Our DockerHub password is in ESC, and a bunch of the other variables
were copy-pasted defaults. We need to keep GCP because that isn't in
ESC yet.

Refs https://github.com/pulumi/ci-mgmt/issues/1583.
2026-02-13 15:57:47 -08:00
pulumi-provider-automation[bot]
6aa0b4dde7 Update GitHub Actions workflows. (#765)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit ee5e1047ced9aa4de854f25974720cb5d4243799.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-13 06:04:28 +00:00
Alberto Pose
13a14388f2 Fix workflow failure by ensuring bin directory exists (#762)
# **Note: This is a temporary fix until we get this to `ci-mgmt`**

## Summary
Fixes the GoReleaser workflow failure that started on Feb 6, 2026.

## Root Cause
Commit 491f7de deleted `bin/pulumi-language-python-exec`, which was the
last file in the `bin/` directory. Since Git doesn't track empty
directories, the `bin/` directory disappeared from the repository.

When GoReleaser runs the post-build hook `make
sign-goreleaser-exe-amd64`, it attempts to download `jsign-6.0.jar` to
`bin/jsign-6.0.jar`, but fails with:
```
bin/jsign-6.0.jar: No such file or directory
make: *** [Makefile:260: bin/jsign-6.0.jar] Error 1
```

## Changes
Added `@mkdir -p bin` to Makefile targets that write to the `bin/`
directory:
- `bin/jsign-6.0.jar` target (line 260) - **Critical fix**
- `bin/pulumi-gen-${PACK}` target (line 185) - Defensive fix

This ensures the directory exists before attempting to create files in
it.

Fixes #756

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 15:31:19 +00:00
pulumi-renovate[bot]
13acd934b6 Update first-party Pulumi dependencies (#760)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/pulumi/esc](https://redirect.github.com/pulumi/esc) |
indirect | minor | `v0.21.0` -> `v0.22.0` |
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.219.0` -> `v3.220.0` |

---

### Release Notes

<details>
<summary>pulumi/esc (github.com/pulumi/esc)</summary>

###
[`v0.22.0`](https://redirect.github.com/pulumi/esc/releases/tag/v0.22.0)

[Compare
Source](https://redirect.github.com/pulumi/esc/compare/v0.21.0...v0.22.0)

##### Improvements

##### Bug Fixes

##### Breaking changes

</details>

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.220.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.220.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

##### 3.220.0 (2026-02-10)

##### Features

- \[cli] Show environment variables that were set if a snapshot
integrity error happens
[#&#8203;21709](https://redirect.github.com/pulumi/pulumi/pull/21709)

- \[cli/{install,package}] Use the Pulumi Cloud Registry by default to
resolve package names

-   \[engine] Pass replacement trigger through to Construct
[#&#8203;21408](https://redirect.github.com/pulumi/pulumi/pull/21408)

- \[engine] Add EnvVarMappings resource option for provider resources,
allowing environment variables to be remapped before being passed to the
provider
[#&#8203;21572](https://redirect.github.com/pulumi/pulumi/pull/21572)

- \[pkg] BREAKING: Deprecate
github.com/pulumi/pulumi/pkg/v3/codegen/dotnet in favor of
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen. This
package will be removed from pulumi/pulumi soon!
[#&#8203;21720](https://redirect.github.com/pulumi/pulumi/pull/21720)

##### Bug Fixes

- \[cli] Retry `yarn install` when it fails (e.g. during `pulumi
install`)
[#&#8203;21707](https://redirect.github.com/pulumi/pulumi/pull/21707)

-   \[engine] Deal with errors in elided journal entries correctly
[#&#8203;21576](https://redirect.github.com/pulumi/pulumi/pull/21576)

- \[sdk/nodejs] Fix remote components with
PULUMI_NODEJS_SKIP_COMPONENT_INPUTS

- \[sdk/python] Fix `_LazyModule` to not trigger full module load for
introspection attributes
[#&#8203;21620](https://redirect.github.com/pulumi/pulumi/pull/21620)

- \[sdkgen/python] Remove workaround for slow typechecking with MyPy and
PyCharm
[#&#8203;21722](https://redirect.github.com/pulumi/pulumi/pull/21722)

##### Miscellaneous

- \[cli] Write logfile location if verbosity is >= 1 to stderr instead
of stdout
[#&#8203;21663](https://redirect.github.com/pulumi/pulumi/pull/21663)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
Co-authored-by: Ian Wahbe <me@iwahbe.com>
2026-02-11 10:27:46 +00:00
pulumi-provider-automation[bot]
8cb8d21332 Update GitHub Actions workflows. (#761)
This PR was automatically generated by the
update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt
repo, from commit f34bb277a6b5001ebd945cebced51ef890cdb7b9.

Co-authored-by: Pulumi Bot <bot@pulumi.com>
2026-02-11 06:04:08 +00:00
pulumi-renovate[bot]
c11144e1b3 Update dependency @pulumi/pulumi to v3.220.0 (#759)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | minor | [`3.219.0` ->
`3.220.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.219.0/3.220.0)
|

---

### Release Notes

<details>
<summary>pulumi/pulumi (@&#8203;pulumi/pulumi)</summary>

###
[`v3.220.0`](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.219.0...v3.220.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Monday through Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2026-02-10 17:51:07 +00:00
pulumi-renovate[bot]
ca8a59a077 Update module github.com/go-git/go-git/v5 to v5.16.5 [SECURITY] (#758)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/go-git/go-git/v5](https://redirect.github.com/go-git/go-git)
| indirect | patch | `v5.16.0` -> `v5.16.5` |

### GitHub Vulnerability Alerts

####
[CVE-2026-25934](https://redirect.github.com/go-git/go-git/security/advisories/GHSA-37cx-329c-33x3)

### Impact 

A vulnerability was discovered in `go-git` whereby data integrity values
for `.pack` and `.idx` files were not properly verified. This resulted
in `go-git` potentially consuming corrupted files, which would likely
result in unexpected errors such as `object not found`.

For context, clients fetch
[`packfiles`](https://git-scm.com/docs/pack-protocol#_packfile_data)
from upstream Git servers. Those files contain a checksum of their
contents, so that clients can perform integrity checks before consuming
it. The pack indexes (`.idx`) are
[generated](https://git-scm.com/docs/pack-format) locally by `go-git`,
or the `git` cli, when new `.pack` files are received and processed. The
integrity checks for both files were not being verified correctly.

Note that the lack of verification of the packfile checksum has no
impact on the trust relationship between the client and server, which is
enforced based on the protocol being used (e.g. TLS in the case of
`https://` or known hosts for `ssh://`). In other words, the packfile
checksum verification does not provide any security benefits when
connecting to a malicious or compromised Git server.

### Patches

Users should upgrade to `v5.16.5`, or the latest `v6`
[pseudo-version](https://go.dev/ref/mod#pseudo-versions), in order to
mitigate this vulnerability.

### Workarounds

In case updating to a fixed version of `go-git` is not possible, users
can run [git fsck](https://git-scm.com/docs/git-fsck) from the `git` cli
to check for data corruption on a given repository.

### Credit

Thanks @&#8203;N0zoM1z0 for finding and reporting this issue privately
to the `go-git` project.

---

### Release Notes

<details>
<summary>go-git/go-git (github.com/go-git/go-git/v5)</summary>

###
[`v5.16.5`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.5)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.4...v5.16.5)

##### What's Changed

- build: Update module golang.org/x/crypto to v0.45.0 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1744](https://redirect.github.com/go-git/go-git/pull/1744)4
- build: Bump Go test versions to 1.23-1.25 (v5) by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1746](https://redirect.github.com/go-git/go-git/pull/1746)
- \[v5] git: worktree, Don't delete local untracked files when resetting
worktree by [@&#8203;Ch00k](https://redirect.github.com/Ch00k) in
[https://github.com/go-git/go-git/pull/1800](https://redirect.github.com/go-git/go-git/pull/1800)
- Expand packfile checks by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1836](https://redirect.github.com/go-git/go-git/pull/1836)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.4...v5.16.5

###
[`v5.16.4`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.4)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.3...v5.16.4)

##### What's Changed

- backport plumbing: format/idxfile, prevent panic by
[@&#8203;swills](https://redirect.github.com/swills) in
[https://github.com/go-git/go-git/pull/1732](https://redirect.github.com/go-git/go-git/pull/1732)
- \[backport] build: test, Fix build on Windows. by
[@&#8203;pjbgf](https://redirect.github.com/pjbgf) in
[https://github.com/go-git/go-git/pull/1734](https://redirect.github.com/go-git/go-git/pull/1734)
- build: Update module golang.org/x/net to v0.38.0 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1742](https://redirect.github.com/go-git/go-git/pull/1742)2
- build: Update module github.com/cloudflare/circl to v1.6.1 \[SECURITY]
(releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1741](https://redirect.github.com/go-git/go-git/pull/1741)1
- build: Update module github.com/go-git/go-git/v5 to v5.13.0
\[SECURITY] (releases/v5.x) by
[@&#8203;go-git-renovate](https://redirect.github.com/go-git-renovate)\[bot]
in[https://github.com/go-git/go-git/pull/1743](https://redirect.github.com/go-git/go-git/pull/1743)3

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.3...v5.16.4

###
[`v5.16.3`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.3)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.2...v5.16.3)

##### What's Changed

- internal: Expand regex to fix build \[5.x] by
[@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1644](https://redirect.github.com/go-git/go-git/pull/1644)
- build: raise timeouts for windows CI tests and disable CIFuzz \[5.x]
by [@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1646](https://redirect.github.com/go-git/go-git/pull/1646)
- plumbing: support commits extra headers, support jujutsu signed commit
\[5.x] by [@&#8203;baloo](https://redirect.github.com/baloo) in
[https://github.com/go-git/go-git/pull/1633](https://redirect.github.com/go-git/go-git/pull/1633)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.2...v5.16.3

###
[`v5.16.2`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.2)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.1...v5.16.2)

##### What's Changed

- utils: fix diff so subpaths work for sparse checkouts, fixes 1455 to
releases/v5.x by [@&#8203;kane8n](https://redirect.github.com/kane8n) in
[https://github.com/go-git/go-git/pull/1567](https://redirect.github.com/go-git/go-git/pull/1567)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.1...v5.16.2

###
[`v5.16.1`](https://redirect.github.com/go-git/go-git/releases/tag/v5.16.1)

[Compare
Source](https://redirect.github.com/go-git/go-git/compare/v5.16.0...v5.16.1)

##### What's Changed

- utils: merkletrie, Fix diff on sparse-checkout index. Fixes
[#&#8203;1406](https://redirect.github.com/go-git/go-git/issues/1406) to
releases/v5.x by [@&#8203;kane8n](https://redirect.github.com/kane8n) in
[https://github.com/go-git/go-git/pull/1561](https://redirect.github.com/go-git/go-git/pull/1561)

##### New Contributors

- [@&#8203;kane8n](https://redirect.github.com/kane8n) made their first
contribution in
[https://github.com/go-git/go-git/pull/1561](https://redirect.github.com/go-git/go-git/pull/1561)

**Full Changelog**:
https://github.com/go-git/go-git/compare/v5.16.0...v5.16.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - Monday through
Friday ( * * * * 1-5 ) (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJpbXBhY3Qvbm8tY2hhbmdlbG9nLXJlcXVpcmVkIl19-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: pulumi-bot <bot@pulumi.com>
2026-02-10 00:50:46 +00:00
94 changed files with 7027 additions and 3111 deletions

View File

@@ -9,21 +9,12 @@ gcp: true
sdkModuleDir: sdk/go/dockerbuild
parallel: 3
esc:
enabled: true
enabled: true
envOverride:
AWS_REGION: us-west-2
PULUMI_API: "https://api.pulumi-staging.io"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: "895284651812"
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a

View File

@@ -1,3 +1,4 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
# Overrides for test workflows -- currently empty.
[tools]
"aqua:gotestyourself/gotestsum" = "1.12.0"

View File

@@ -8,8 +8,7 @@ PULUMI_HOME = "{{config_root}}/.pulumi"
[tools]
# Runtimes
# TODO: we may not need 'get_env' once https://github.com/jdx/mise/discussions/6339 is fixed
go = "{{ get_env(name='GO_VERSION_MISE', default='latest') }}"
go = "{{ env.GO_VERSION_MISE }}"
node = '20.19.5'
python = '3.11.8'
"vfox:version-fox/vfox-dotnet" = "8.0.20" # vfox backend doesn't work on Windows, gives "error converting Lua table to PreInstall (no version returned from vfox plugin)" https://github.com/jdx/mise/discussions/5876 https://github.com/jdx/mise/discussions/5550
@@ -17,11 +16,12 @@ python = '3.11.8'
java = 'corretto-11'
# Executable tools
"github:pulumi/pulumi" = "{{ get_env(name='PULUMI_VERSION_MISE', default='latest') }}"
"github:pulumi/pulumi" = "{{ env.PULUMI_VERSION_MISE }}"
"github:pulumi/pulumictl" = '0.0.50'
"github:pulumi/schema-tools" = "0.6.0"
"go:github.com/pulumi/upgrade-provider" = "main"
"aqua:gradle/gradle-distributions" = '7.6.6'
golangci-lint = "1.64.8" # See note about about overrides if you need to customize this.
golangci-lint = "2.9.0" # See note about about overrides if you need to customize this.
"npm:yarn" = "1.22.22"
[settings]

2
.gitattributes vendored
View File

@@ -1,2 +1,2 @@
sdk/**/* linguist-generated=true
provider/internal/mock*.go linguist-generated=true
.github/workflows/*.lock.yml linguist-generated=true merge=ours

View File

@@ -5,7 +5,7 @@ runs:
using: "composite"
steps:
- name: Download provider
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin

View File

@@ -10,7 +10,7 @@ runs:
using: "composite"
steps:
- name: Download SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.language }}-sdk.tar.gz
path: ${{ github.workspace }}/sdk/

View File

@@ -14,14 +14,13 @@ runs:
using: "composite"
steps:
- name: Setup mise
uses: blampe/mise-action@blampe/plugins
uses: jdx/mise-action@8d3b0ba20a9cea7b883d922ea958553c941ab082
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.1.1
version: 2026.3.7
cache_save: ${{ inputs.cache }}
github_token: ${{ inputs.github_token }}
plugin_install: https://github.com/pulumi/vfox-pulumi
- name: Setup Go Cache
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
@@ -35,7 +34,7 @@ runs:
*.sum
- name: Setup Node
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
# we don't set node-version because we install with mise.
# this step is needed to setup npm auth

View File

@@ -0,0 +1,177 @@
---
description: GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
disable-model-invocation: true
---
# GitHub Agentic Workflows Agent
This agent helps you work with **GitHub Agentic Workflows (gh-aw)**, a CLI extension for creating AI-powered workflows in natural language using markdown files.
## What This Agent Does
This is a **dispatcher agent** that routes your request to the appropriate specialized prompt based on your task:
- **Creating new workflows**: Routes to `create` prompt
- **Updating existing workflows**: Routes to `update` prompt
- **Debugging workflows**: Routes to `debug` prompt
- **Upgrading workflows**: Routes to `upgrade-agentic-workflows` prompt
- **Creating report-generating workflows**: Routes to `report` prompt — consult this whenever the workflow posts status updates, audits, analyses, or any structured output as issues, discussions, or comments
- **Creating shared components**: Routes to `create-shared-agentic-workflow` prompt
- **Fixing Dependabot PRs**: Routes to `dependabot` prompt — use this when Dependabot opens PRs that modify generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`). Never merge those PRs directly; instead update the source `.md` files and rerun `gh aw compile --dependabot` to bundle all fixes
- **Analyzing test coverage**: Routes to `test-coverage` prompt — consult this whenever the workflow reads, analyzes, or reports on test coverage data from PRs or CI runs
Workflows may optionally include:
- **Project tracking / monitoring** (GitHub Projects updates, status reporting)
- **Orchestration / coordination** (one workflow assigning agents or dispatching and coordinating other workflows)
## Files This Applies To
- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
- Workflow lock files: `.github/workflows/*.lock.yml`
- Shared components: `.github/workflows/shared/*.md`
- Configuration: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/github-agentic-workflows.md
## Problems This Solves
- **Workflow Creation**: Design secure, validated agentic workflows with proper triggers, tools, and permissions
- **Workflow Debugging**: Analyze logs, identify missing tools, investigate failures, and fix configuration issues
- **Version Upgrades**: Migrate workflows to new gh-aw versions, apply codemods, fix breaking changes
- **Component Design**: Create reusable shared workflow components that wrap MCP servers
## How to Use
When you interact with this agent, it will:
1. **Understand your intent** - Determine what kind of task you're trying to accomplish
2. **Route to the right prompt** - Load the specialized prompt file for your task
3. **Execute the task** - Follow the detailed instructions in the loaded prompt
## Available Prompts
### Create New Workflow
**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/create-agentic-workflow.md
**Use cases**:
- "Create a workflow that triages issues"
- "I need a workflow to label pull requests"
- "Design a weekly research automation"
### Update Existing Workflow
**Load when**: User wants to modify, improve, or refactor an existing workflow
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/update-agentic-workflow.md
**Use cases**:
- "Add web-fetch tool to the issue-classifier workflow"
- "Update the PR reviewer to use discussions instead of issues"
- "Improve the prompt for the weekly-research workflow"
### Debug Workflow
**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/debug-agentic-workflow.md
**Use cases**:
- "Why is this workflow failing?"
- "Analyze the logs for workflow X"
- "Investigate missing tool calls in run #12345"
### Upgrade Agentic Workflows
**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/upgrade-agentic-workflows.md
**Use cases**:
- "Upgrade all workflows to the latest version"
- "Fix deprecated fields in workflows"
- "Apply breaking changes from the new release"
### Create a Report-Generating Workflow
**Load when**: The workflow being created or updated produces reports — recurring status updates, audit summaries, analyses, or any structured output posted as a GitHub issue, discussion, or comment
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/report.md
**Use cases**:
- "Create a weekly CI health report"
- "Post a daily security audit to Discussions"
- "Add a status update comment to open PRs"
### Create Shared Agentic Workflow
**Load when**: User wants to create a reusable workflow component or wrap an MCP server
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/create-shared-agentic-workflow.md
**Use cases**:
- "Create a shared component for Notion integration"
- "Wrap the Slack MCP server as a reusable component"
- "Design a shared workflow for database queries"
### Fix Dependabot PRs
**Load when**: User needs to close or fix open Dependabot PRs that update dependencies in generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`)
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/dependabot.md
**Use cases**:
- "Fix the open Dependabot PRs for npm dependencies"
- "Bundle and close the Dependabot PRs for workflow dependencies"
- "Update @playwright/test to fix the Dependabot PR"
### Analyze Test Coverage
**Load when**: The workflow reads, analyzes, or reports test coverage — whether triggered by a PR, a schedule, or a slash command. Always consult this prompt before designing the coverage data strategy.
**Prompt file**: https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/test-coverage.md
**Use cases**:
- "Create a workflow that comments coverage on PRs"
- "Analyze coverage trends over time"
- "Add a coverage gate that blocks PRs below a threshold"
## Instructions
When a user interacts with you:
1. **Identify the task type** from the user's request
2. **Load the appropriate prompt** from the GitHub repository URLs listed above
3. **Follow the loaded prompt's instructions** exactly
4. **If uncertain**, ask clarifying questions to determine the right prompt
## Quick Reference
```bash
# Initialize repository for agentic workflows
gh aw init
# Generate the lock file for a workflow
gh aw compile [workflow-name]
# Debug workflow runs
gh aw logs [workflow-name]
gh aw audit <run-id>
# Upgrade workflows
gh aw fix --write
gh aw compile --validate
```
## Key Features of gh-aw
- **Natural Language Workflows**: Write workflows in markdown with YAML frontmatter
- **AI Engine Support**: Copilot, Claude, Codex, or custom engines
- **MCP Server Integration**: Connect to Model Context Protocol servers for tools
- **Safe Outputs**: Structured communication between AI and GitHub API
- **Strict Mode**: Security-first validation and sandboxing
- **Shared Components**: Reusable workflow building blocks
- **Repo Memory**: Persistent git-backed storage for agents
- **Sandboxed Execution**: All workflows run in the Agent Workflow Firewall (AWF) sandbox, enabling full `bash` and `edit` tools by default
## Important Notes
- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.56.2/.github/aw/github-agentic-workflows.md for complete documentation
- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
- Follow security best practices: minimal permissions, explicit network access, no template injection
- **Single-file output**: When creating a workflow, produce exactly **one** workflow `.md` file. Do not create separate documentation files (architecture docs, runbooks, usage guides, etc.). If documentation is needed, add a brief `## Usage` section inside the workflow file itself.

41
.github/aw/actions-lock.json vendored Normal file
View File

@@ -0,0 +1,41 @@
{
"entries": {
"actions/github-script@v9.0.0": {
"repo": "actions/github-script",
"version": "v9.0.0",
"sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
},
"github/gh-aw-actions/setup@v0.76.1": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.76.1",
"sha": "46d564922b082d0db93244972e8005ea6904ee5f"
},
"github/gh-aw/actions/setup@v0.76.1": {
"repo": "github/gh-aw/actions/setup",
"version": "v0.76.1",
"sha": "58d1bedbb7200f59c2d224151339e38fd8687d05"
}
},
"containers": {
"ghcr.io/github/gh-aw-firewall/agent:0.25.55": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.25.55",
"digest": "sha256:138c363411decc9a61a5af9b95e8d64c76648b00add0ba06fc7ba786f0e72731",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.25.55@sha256:138c363411decc9a61a5af9b95e8d64c76648b00add0ba06fc7ba786f0e72731"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.55": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.25.55",
"digest": "sha256:4142b873b678cd3279b98dcbe464857d56ea2f2348719b00379cdf35dd843ff3",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.25.55@sha256:4142b873b678cd3279b98dcbe464857d56ea2f2348719b00379cdf35dd843ff3"
},
"ghcr.io/github/gh-aw-firewall/squid:0.25.55": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.25.55",
"digest": "sha256:74084b704d8d3664a363655986664d70bd9cdb4830532d0b35cd784d867aabca",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.25.55@sha256:74084b704d8d3664a363655986664d70bd9cdb4830532d0b35cd784d867aabca"
},
"ghcr.io/github/gh-aw-mcpg:v0.3.19": {
"image": "ghcr.io/github/gh-aw-mcpg:v0.3.19",
"digest": "sha256:a6c890d7c24d7190c9ef97b9c954cc4cffaae6b01c371ced1f959f1370b1f68f",
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.3.19@sha256:a6c890d7c24d7190c9ef97b9c954cc4cffaae6b01c371ced1f959f1370b1f68f"
}
}
}

View File

@@ -16,19 +16,12 @@ on:
workflow_dispatch: {}
env:
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -37,6 +30,9 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
jobs:
prerequisites:
@@ -47,7 +43,7 @@ jobs:
pull-requests: write # For schema check comment.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -59,7 +55,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -79,7 +75,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
@@ -134,19 +130,16 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
env:
ARM_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.ARM_CLIENT_SECRET }}
DIGITALOCEAN_TOKEN: ${{ steps.esc-secrets.outputs.DIGITALOCEAN_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ steps.esc-secrets.outputs.DOCKER_HUB_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
@@ -176,7 +169,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -188,7 +181,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -227,7 +220,7 @@ jobs:
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
@@ -251,7 +244,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -296,7 +289,7 @@ jobs:
id-token: write # For ESC secrets and Pulumi access token OIDC.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -308,7 +301,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -352,7 +345,7 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false
- name: Export AWS Credentials
uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
uses: pulumi/esc-action@f3cfbabf37488463817366338165b92b5f99117e
env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with:
@@ -399,7 +392,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -411,7 +404,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -438,7 +431,7 @@ jobs:
swap-storage: true
large-packages: false
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1
uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885 # v6.1.1
with:
aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
@@ -454,8 +447,10 @@ jobs:
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_KEY_VAULT_URI: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI == '' }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
@@ -478,7 +473,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -490,7 +485,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -504,7 +499,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: ci-scripts
repository: pulumi/scripts
@@ -514,7 +509,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download python SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -522,7 +517,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -530,7 +525,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/

View File

@@ -45,8 +45,8 @@ jobs:
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
uses: pulumi/esc-action@f3cfbabf37488463817366338165b92b5f99117e
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
- name: Checkout PR head (if applicable)
@@ -56,15 +56,19 @@ jobs:
PR_NUMBER: ${{ github.event.pull_request.number || github.event.issue.number }}
run: gh pr checkout "$PR_NUMBER"
- name: Setup mise
uses: blampe/mise-action@blampe/plugins
uses: jdx/mise-action@8d3b0ba20a9cea7b883d922ea958553c941ab082
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.1.1
version: 2026.3.7
github_token: ${{ secrets.GITHUB_TOKEN }}
plugin_install: https://github.com/pulumi/vfox-pulumi
# only saving the cache in the prerequisites job
cache_save: false
- name: Set git identity
run: |-
git config --global user.name "claude[bot]"
git config --global user.email "bot@pulumi.com"
shell: bash
- name: Prepare local workspace
# this runs install_plugins and upstream
run: make prepare_local_workspace
@@ -75,7 +79,7 @@ jobs:
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude review')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude review'))
id: claude-review
uses: anthropics/claude-code-action@8341a564b0c1693e9fa29c681852ee3714980098 # v1
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1
with:
anthropic_api_key: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
prompt: |
@@ -97,7 +101,7 @@ jobs:
!contains(github.event.comment.body, '@claude review') &&
!contains(github.event.review.body, '@claude review')
id: claude-action
uses: anthropics/claude-code-action@8341a564b0c1693e9fa29c681852ee3714980098 # v1
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1
with:
anthropic_api_key: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
# This allows claude to read github action logs
@@ -116,19 +120,19 @@ jobs:
}
claude_args: |
--max-turns 50
--allowedTools "Skill,Edit,MultiEdit,Write,Read,Glob,Grep,LS,Bash(upgrade-provider *),Bash(./scripts/upstream.sh *),Bash(git *),Bash(GIT_EDITOR=* git *),Bash(make *),Bash(gh *),Bash(mkdir *),Bash(go install *),Bash(ls *),Bash(test *),Bash(cat *),Bash(pwd),Bash(head *),Bash(tail *),Bash(tee *),Bash(rg *),Bash(grep *),Bash(sed *),Bash(awk *),Bash(find *)"
--allowedTools "Skill,Edit,MultiEdit,Write,Read,Glob,Grep,LS,Bash(upgrade-provider *),Bash(./scripts/upstream.sh *),Bash(git *),Bash(GIT_EDITOR=* git *),Bash(make *),Bash(gh *),Bash(mkdir *),Bash(go mod tidy *),Bash(ls *),Bash(test *),Bash(cat *),Bash(pwd),Bash(head *),Bash(tail *),Bash(tee *),Bash(rg *),Bash(grep *),Bash(sed *),Bash(awk *),Bash(find *)"
# If the claude action fails you don't get any logs on what claude was doing
# Uploading the artifact allows you to download the artifact from the UI
- name: Upload Claude review output on failure
if: failure() && steps.claude-review.outputs.execution_file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: claude-review-execution-log
path: ${{ steps.claude-review.outputs.execution_file }}
retention-days: 7
- name: Upload Claude output on failure
if: failure() && steps.claude-action.outputs.execution_file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: claude-execution-log
path: ${{ steps.claude-action.outputs.execution_file }}

View File

@@ -1,11 +1,6 @@
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
env:
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -14,7 +9,10 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs:
command-dispatch-for-testing:
@@ -25,7 +23,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- env:

View File

@@ -6,18 +6,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- id: schema_changed
name: Check for diff in schema
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
with:
filters: "changed: 'provider/cmd/**/schema.json'"
- id: sdk_changed
if: steps.schema_changed.outputs.changed == 'false'
name: Check for diff in sdk/**
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
with:
filters: "changed: 'sdk/**'"
- if: steps.sdk_changed.outputs.changed == 'true' &&

View File

@@ -8,7 +8,7 @@ jobs:
steps:
- name: Generate a GitHub token
id: generate-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3
with:
app-id: 1256780 # Export Secrets GitHub App
private-key: ${{ secrets.EXPORT_SECRETS_PRIVATE_KEY }}

1427
.github/workflows/gh-aw-pr-rereview.lock.yml generated vendored Normal file

File diff suppressed because it is too large Load Diff

20
.github/workflows/gh-aw-pr-rereview.md vendored Normal file
View File

@@ -0,0 +1,20 @@
---
on:
slash_command:
events:
- pull_request_comment
- pull_request_review_comment
name: review-again
permissions:
contents: read
id-token: write
pull-requests: read
imports:
- shared/review.md
- shared/plugins/code-review/code-review.md
description: Run PR re-review on explicit maintainer slash command.
source: pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-rereview.md@8a92f53fac170563f7727cacab2dbedb5d5b9e29
strict: true
timeout-minutes: 15
---
# Internal PR Re-Review (Slash Command)

1367
.github/workflows/gh-aw-pr-review.lock.yml generated vendored Normal file

File diff suppressed because it is too large Load Diff

25
.github/workflows/gh-aw-pr-review.md vendored Normal file
View File

@@ -0,0 +1,25 @@
---
on:
pull_request:
types:
- opened
- ready_for_review
workflow_dispatch:
inputs:
pr_number:
description: Pull request number to review
required: true
type: string
permissions:
contents: read
id-token: write
pull-requests: read
imports:
- shared/review.md
- shared/plugins/code-review/code-review.md
description: Automated PR review for trusted internal contributors.
source: pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-review.md@8a92f53fac170563f7727cacab2dbedb5d5b9e29
strict: true
timeout-minutes: 15
---
# Internal Trusted PR Reviewer

View File

@@ -1,4 +1,4 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
name: lint
@@ -7,20 +7,6 @@ on:
inputs: {}
env:
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -29,29 +15,52 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs:
lint:
name: lint
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
persist-credentials: false
- env:
ESC_ACTION_ENVIRONMENT: github-secrets/${{ github.repository_owner }}-${{ github.event.repository.name }}
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Setup mise
uses: jdx/mise-action@8d3b0ba20a9cea7b883d922ea958553c941ab082
env:
MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s
with:
version: 2026.3.7
github_token: ${{ steps.app-auth.outputs.token }}
- name: Disarm go:embed directives to enable linters that compile source code
run: git grep -l 'go:embed' -- provider | xargs --no-run-if-empty sed -i
's/go:embed/ goembed/g'
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
with:
install-mode: none # Handled by mise.
working-directory: .
name: lint
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
cache_save: false # A different job handles caching our tools.
- name: prepare workspace
continue-on-error: true
run: make prepare_local_workspace
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: lint
run: make lint

View File

@@ -7,19 +7,12 @@ on:
- v*.*.*-**
env:
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -28,6 +21,9 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
IS_PRERELEASE: true
jobs:
@@ -39,7 +35,7 @@ jobs:
pull-requests: write # For schema check comment.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -51,7 +47,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -71,7 +67,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
@@ -126,19 +122,16 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
env:
ARM_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.ARM_CLIENT_SECRET }}
DIGITALOCEAN_TOKEN: ${{ steps.esc-secrets.outputs.DIGITALOCEAN_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ steps.esc-secrets.outputs.DOCKER_HUB_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
@@ -168,7 +161,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -180,7 +173,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -219,7 +212,7 @@ jobs:
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
@@ -252,7 +245,7 @@ jobs:
id-token: write # For ESC secrets and Pulumi access token OIDC.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -264,7 +257,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -308,7 +301,7 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false
- name: Export AWS Credentials
uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
uses: pulumi/esc-action@f3cfbabf37488463817366338165b92b5f99117e
env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with:
@@ -355,7 +348,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -367,7 +360,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -394,7 +387,7 @@ jobs:
swap-storage: true
large-packages: false
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1
uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885 # v6.1.1
with:
aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
@@ -410,8 +403,10 @@ jobs:
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_KEY_VAULT_URI: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI == '' }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
@@ -434,7 +429,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -446,7 +441,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -460,7 +455,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: ci-scripts
repository: pulumi/scripts
@@ -470,7 +465,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download python SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -478,7 +473,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -486,7 +481,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -522,7 +517,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -534,7 +529,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -552,7 +547,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download java SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -560,7 +555,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Setup Gradle
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
with:
gradle-version: "7.6"
- name: Publish Java SDK
@@ -578,7 +573,7 @@ jobs:
needs: publish_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- id: version
@@ -589,7 +584,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download go SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/

View File

@@ -10,7 +10,7 @@ jobs:
name: comment-on-pr
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- name: Comment PR

View File

@@ -8,19 +8,12 @@ on:
- "!v*.*.*-**"
env:
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -29,6 +22,9 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TF_APPEND_USER_AGENT: pulumi
jobs:
prerequisites:
@@ -39,7 +35,7 @@ jobs:
pull-requests: write # For schema check comment.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -51,7 +47,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -71,7 +67,7 @@ jobs:
github_token: ${{ steps.app-auth.outputs.token }}
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
@@ -126,19 +122,16 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
env:
ARM_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.ARM_CLIENT_SECRET }}
DIGITALOCEAN_TOKEN: ${{ steps.esc-secrets.outputs.DIGITALOCEAN_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ steps.esc-secrets.outputs.DOCKER_HUB_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
@@ -168,7 +161,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -180,7 +173,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -219,7 +212,7 @@ jobs:
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
@@ -252,7 +245,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -264,7 +257,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -308,7 +301,7 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false
- name: Export AWS Credentials
uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
uses: pulumi/esc-action@f3cfbabf37488463817366338165b92b5f99117e
env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with:
@@ -355,7 +348,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -367,7 +360,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -394,7 +387,7 @@ jobs:
swap-storage: true
large-packages: false
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1
uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885 # v6.1.1
with:
aws-access-key-id: ${{ steps.esc-secrets.outputs.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
@@ -410,8 +403,10 @@ jobs:
AZURE_SIGNING_CLIENT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID }}
AZURE_SIGNING_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET }}
AZURE_SIGNING_TENANT_ID: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID }}
AZURE_SIGNING_KEY_VAULT_URI: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_KEY_VAULT_URI == '' }}
AZURE_SIGNING_ACCOUNT_ENDPOINT: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT }}
AZURE_SIGNING_ACCOUNT_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME }}
AZURE_SIGNING_CERT_PROFILE_NAME: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME }}
SKIP_SIGNING: ${{ steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CLIENT_SECRET == '' && steps.esc-secrets.outputs.AZURE_SIGNING_TENANT_ID == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_ENDPOINT == '' && steps.esc-secrets.outputs.AZURE_SIGNING_ACCOUNT_NAME == '' && steps.esc-secrets.outputs.AZURE_SIGNING_CERT_PROFILE_NAME == '' }}
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
with:
args: -p 3 release --clean --timeout 60m0s
@@ -434,7 +429,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -446,7 +441,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -460,7 +455,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Scripts Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: ci-scripts
repository: pulumi/scripts
@@ -470,7 +465,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download python SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -478,7 +473,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -486,7 +481,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -522,7 +517,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -534,7 +529,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -552,7 +547,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download java SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -560,7 +555,7 @@ jobs:
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Setup Gradle
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
with:
gradle-version: "7.6"
- name: Publish Java SDK
@@ -578,7 +573,7 @@ jobs:
needs: publish_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- id: version
@@ -589,7 +584,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download go SDK
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: go-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -614,7 +609,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -626,14 +621,14 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
private-key: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with:
repo: pulumi/pulumictl
- name: Dispatch Event

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- env:

View File

@@ -11,19 +11,12 @@ on:
workflow_dispatch: {}
env:
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -32,7 +25,10 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }}
jobs:
comment-notification:
@@ -41,7 +37,7 @@ jobs:
name: comment-notification
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
@@ -66,7 +62,7 @@ jobs:
pull-requests: write # For schema check comment.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
@@ -80,7 +76,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -100,7 +96,7 @@ jobs:
github_token: ${{ steps.app-auth.outputs.token }}
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
@@ -202,19 +198,16 @@ jobs:
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
env:
ARM_CLIENT_SECRET: ${{ steps.esc-secrets.outputs.ARM_CLIENT_SECRET }}
DIGITALOCEAN_TOKEN: ${{ steps.esc-secrets.outputs.DIGITALOCEAN_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ steps.esc-secrets.outputs.DOCKER_HUB_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
env:
CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
@@ -246,7 +239,7 @@ jobs:
id-token: write # For ESC secrets.
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
@@ -260,7 +253,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -278,7 +271,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download provider
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
@@ -351,7 +344,7 @@ jobs:
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
@@ -387,7 +380,7 @@ jobs:
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
@@ -401,7 +394,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -419,7 +412,7 @@ jobs:
with:
github_token: ${{ steps.app-auth.outputs.token }}
- name: Download provider
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
@@ -431,7 +424,7 @@ jobs:
-exec chmod +x {} \;
- name: Download SDK
if: ${{ matrix.language != 'yaml' }}
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
@@ -459,7 +452,7 @@ jobs:
requested-token-type: urn:pulumi:token-type:access_token:organization
export-environment-variables: false
- name: Export AWS Credentials
uses: pulumi/esc-action@9840934db12128a33f6afb60b17d9de8f7ec5519
uses: pulumi/esc-action@f3cfbabf37488463817366338165b92b5f99117e
env:
PULUMI_ACCESS_TOKEN: ${{ steps.generate_pulumi_token.outputs.pulumi-access-token }}
with:
@@ -504,7 +497,7 @@ jobs:
name: sentinel
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
persist-credentials: false
@@ -519,7 +512,7 @@ jobs:
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- name: Mark workflow as successful
uses: guibranco/github-status-action-v2@631f55ea0251f0fb284525ad86c30e9f7a8dd284 # v1.1.14
uses: guibranco/github-status-action-v2@77639353504055053524efa7a3719aaf0b731ce9 # v1.2.4
with:
authToken: ${{ secrets.GITHUB_TOKEN }}
context: Sentinel
@@ -536,26 +529,8 @@ jobs:
- prerequisites
- lint
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
lfs: true
persist-credentials: false
ref: ${{ env.PR_COMMIT_SHA }}
- name: Setup Tools
uses: ./.github/actions/setup-tools
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Disarm go:embed directives to enable linters that compile source code
run: git grep -l 'go:embed' -- provider | xargs --no-run-if-empty sed -i
's/go:embed/ goembed/g'
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
with:
install-mode: none # Handled by mise.
working-directory: .
name: lint
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: lint
uses: ./.github/workflows/lint.yml
secrets: inherit

View File

@@ -0,0 +1,214 @@
---
description: High-signal PR review for gh-aw workflows using safe outputs
---
Provide a code review for the given pull request.
**Agent assumptions (applies to all agents and subagents):**
- All tools are functional and will work without error. Do not test tools or make exploratory calls. Make sure this is clear to every subagent that is launched.
- Only call a tool if it is required to complete the task. Every tool call should have a clear purpose.
- Use GitHub MCP tools for repository reads. Do not use `gh` CLI commands for repository inspection or for posting review output.
- Use the workflow PR number as the authoritative target.
- Review output must be terse and issue-focused. Do not praise the PR, narrate checks that passed, explain why code is correct, or offer "good change" commentary.
- Use only gh-aw safe outputs for review side effects:
- `create-pull-request-review-comment` for actionable inline findings on changed lines
- `resolve-pull-request-review-thread` for unresolved bot-authored review threads that are now fixed or clearly acknowledged
- `submit-pull-request-review` for the final review decision
- `noop` when no action should be taken
- Use cache-memory only for short-lived continuity and deduplication hints. Treat live PR state and current review threads as the source of truth.
- Never post free-form issue comments or use any side channel for review output.
- Respect the workflow safe-output limits. Prioritize the highest-signal unique findings and keep the inline review set within the configured maximum.
- Consult `.gitattributes` when relevant and treat files matched there as generated by default. Ignore findings that exist only in generated outputs such as `.lock.yml` files unless the corresponding source-of-truth files show a real behavioral problem.
To do this, follow these steps precisely:
1. Create a short todo list for yourself before starting.
2. Launch a fast subagent to check if any of the following are true:
- The pull request is closed
- The pull request is a draft
- The pull request does not need code review (e.g. automated PR, trivial change that is obviously correct)
- Required PR context cannot be read from the workflow tools
If any condition is true, call `noop` with a brief reason and stop.
Note: Do not skip solely because prior automated review comments exist. Use prior comments for deduplication and stale-thread cleanup instead.
3. Read any prior review memory for this PR from cache-memory before you start detailed analysis.
Use a PR-specific file such as:
- `/tmp/gh-aw/cache-memory/pr-${PR_NUMBER}.json`
If a prior memory file exists, use it only as a hint for:
- Previously reported issues
- Dedupe patterns
- Prior review timestamps
- Risk areas worth re-checking
Do not trust cache-memory over current GitHub state. If memory conflicts with the live PR, changed files, or review threads, trust the live PR and ignore stale memory.
4. Launch a fast subagent to return a list of file paths (not their contents) for all relevant `CLAUDE.md` files including:
- The root CLAUDE.md file, if it exists
- Any CLAUDE.md files in directories containing files modified by the pull request
5. Launch a subagent to summarize:
- The PR title and description
- The changed files
- The main behavioral changes in the diff
- Any obvious risk areas worth checking carefully
6. Fetch existing review comments and review threads on the PR before preparing any new findings. Use them to identify:
- Similar issues already flagged
- Threads where a human already acknowledged the feedback
- Comments on code that has changed since the earlier review and may now be stale
- Unresolved bot-authored review threads that may now be fixed or obsolete
7. Launch 4 review subagents in parallel. Each agent should return a list of candidate issues, where each issue includes:
- A concise description
- The reason it was flagged (for example `CLAUDE.md adherence` or `bug`)
- The changed file path
- The changed line or closest changed hunk
- Why the issue is likely real
Agents 1 + 2: CLAUDE.md compliance sonnet agents
Audit changes for `CLAUDE.md` compliance in parallel. When evaluating a file, only consider `CLAUDE.md` files that share a path scope with that file or its parents.
Agent 3: bug-focused review agent
Scan for obvious bugs. Focus only on the diff itself without reading extra context. Flag only significant bugs; ignore nitpicks and likely false positives. Do not flag issues that you cannot validate without looking at context outside of the git diff.
Agent 4: behavior-focused review agent
Look for problems introduced by the new code, including security issues, incorrect logic, regressions, and missing error handling. Only look for issues that fall within changed code.
**CRITICAL: We only want HIGH SIGNAL issues.** Flag issues where:
- The code will fail to compile or parse (syntax errors, type errors, missing imports, unresolved references)
- The code will definitely produce wrong results regardless of inputs (clear logic errors)
- The code introduces a clear security or regression bug in changed lines
- Clear, unambiguous `CLAUDE.md` violations where you can quote the exact rule being broken
Do NOT flag:
- Code style or quality concerns
- Potential issues that depend on specific inputs or state
- Subjective suggestions or improvements
If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time.
Each review subagent should receive the PR title and description so it can evaluate intent.
8. For each candidate issue, launch validation subagents in parallel. Each validator should receive the PR title, description, issue description, affected file, and affected hunk. The validator must confirm that the issue is real with high confidence.
For bug and logic issues, verify the changed code actually causes the stated problem.
For `CLAUDE.md` issues, verify both:
- The cited rule exists
- The rule applies to that file path and is actually violated
9. Filter out any issue that fails validation.
10. Deduplicate and prune the validated issue list. Remove:
- Issues already covered by an existing review comment
- Issues in threads where a human has already acknowledged the feedback
- Issues that were present in an earlier revision but are fixed in the latest code
- Duplicate findings reported by multiple subagents
- Findings that are not on changed lines or cannot be tied to a changed hunk
- Findings that only came from cache-memory and are not confirmed by the current PR state
Also create a separate internal list of review threads to resolve. A thread is eligible for resolution only when all of the following are true:
- The thread is currently unresolved
- The thread was started by this automation or another bot, not by a human reviewer
- The underlying issue is fixed in the latest diff, outdated, or explicitly acknowledged by a human as intentionally left as-is
- You have high confidence that resolving it will not hide an outstanding real issue
Never resolve human-authored review threads. When uncertain, leave the thread unresolved.
11. Classify the remaining issues:
- `Blocking`: correctness, security, regression, data loss, or clear required-rule violations
- `Non-blocking`: actionable but not merge-blocking concerns that are still worth interrupting the author for now
Drop any candidate that is merely:
- praise
- reassurance
- a follow-up idea
- a readability suggestion with no concrete risk
- an observation that does not require author action
12. Produce a short internal summary of findings for yourself:
- If issues remain, list the highest-signal ones first
- If no issues remain, summarize that no actionable high-signal issues were found
13. If no actionable issues remain, submit exactly one final review with `submit-pull-request-review`:
- Use `APPROVE`
- Use one short sentence only, such as `No actionable issues found.`
- Do not create inline comments
- Do not include praise, summaries of what was checked, or correctness narration
- Before stopping, write a compact review memory file for this PR containing:
- review timestamp
- PR number
- files reviewed
- summary of what was checked
- `issues_reported: []`
- Stop after the final review is submitted and memory is updated
14. If actionable issues remain, choose the highest-signal unique issues up to the safe-output comment limit. Create a list of planned inline comments for yourself before posting anything.
Prefer zero comments over low-signal comments. Non-blocking comments should be rare.
15. Post one inline comment per chosen issue using `create-pull-request-review-comment`. For each comment:
- Provide a brief description of the issue
- Explain why it matters
- Reference the exact changed line
- Cite the relevant `CLAUDE.md` rule when applicable
- Keep the comment concise and actionable
- Do not post comments that merely suggest optional follow-up cleanup or extra documentation
- Do not post comments whose conclusion is that the code is acceptable as-is
- Do not post duplicate comments for the same issue
16. Resolve eligible stale review threads using `resolve-pull-request-review-thread` before submitting the final review.
- Resolve only threads from your internal resolution list
- Resolve only bot-authored threads
- Do not add explanatory comments when resolving
- If no threads qualify, do nothing
17. Submit exactly one final review using `submit-pull-request-review`:
- Use `REQUEST_CHANGES` when at least one blocking issue remains
- Use `APPROVE` otherwise, including when only non-blocking inline comments were left
- Do not use `COMMENT` as the final review state
- Keep the summary to one or two short sentences
- Do not restate inline comments in the final review; point readers to the inline comments instead
- Do not include praise, correctness checklists, or "overall LGTM" framing unless there are zero inline comments and you are using the exact terse approval style above
18. After the final review is submitted, update the PR-specific cache-memory file with a compact record of this review. Store only short-lived operational state such as:
- review timestamp
- PR number
- files reviewed
- issue fingerprints or short summaries
- whether the final review was `APPROVE` or `REQUEST_CHANGES`
Do not store secrets, tokens, personal data, or large blobs. Keep the file concise so future runs can use it for continuity and dedupe.
Use this list when evaluating issues in Steps 4 and 5 (these are false positives, do NOT flag):
- Pre-existing issues
- Something that appears to be a bug but is actually correct
- Pedantic nitpicks that a senior engineer would not flag
- Issues that a linter will catch (do not run the linter to verify)
- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md
- Issues mentioned in CLAUDE.md but explicitly silenced in the code (e.g., via a lint ignore comment)
- Differences that exist only in files classified as generated by `.gitattributes`, unless they expose a real issue in the source workflow, prompt, or other source-of-truth file
- Explanations that a change is good, correct, well-structured, or acceptable as-is
- Non-blocking observations that do not require the author to change anything now
- Requests for extra comments or documentation unless their absence creates a concrete correctness risk
Notes:
- Use GitHub tools for all repository reads. Do not use web fetch.
- Always operate on the workflow PR target rather than guessing from local git state.
- Inline comments should only be created for actionable issues on changed lines.
- If you leave inline comments, the final review should not repeat them.
- Cache-memory is best-effort and may be missing or stale. Use it to improve continuity, never to override current repository state.
- When linking to code in an inline comment, use a full GitHub blob URL with a full SHA and a line range, for example: https://github.com/anthropics/claude-code/blob/c21d3c10bc8e898b7ac1a2d745bdc9bc4e423afe/package.json#L10-L15
- Requires full git sha
- Do not use shell substitution in the URL
- Repo name must match the repo you're code reviewing
- Use `#L[start]-L[end]`
- Provide at least one line of context before and after when possible
- If context checks fail or the PR is not reviewable, call `noop` with a brief explanation instead of exiting silently.

74
.github/workflows/shared/review.md vendored Normal file
View File

@@ -0,0 +1,74 @@
---
permissions:
contents: read
pull-requests: read
id-token: write
engine:
id: claude
env:
ANTHROPIC_API_KEY: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY || '__GH_AW_ACTIVATION_PLACEHOLDER__' }}
steps:
- env:
ESC_ACTION_ENVIRONMENT: imports/github-secrets
ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: "false"
ESC_ACTION_OIDC_AUTH: "true"
ESC_ACTION_OIDC_ORGANIZATION: pulumi
ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1.5.0
- name: Validate ESC secret output
env:
ANTHROPIC_API_KEY_FROM_ESC: ${{ steps.esc-secrets.outputs.ANTHROPIC_API_KEY }}
run: |
test -n "$ANTHROPIC_API_KEY_FROM_ESC" || {
echo "ESC did not return ANTHROPIC_API_KEY";
exit 1;
}
tools:
cache-memory: true
github:
toolsets: [pull_requests, repos]
safe-outputs:
threat-detection: false
create-pull-request-review-comment:
max: 12
side: "RIGHT"
target: "${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}"
target-repo: "${{ github.repository }}"
resolve-pull-request-review-thread:
max: 12
target: "${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}"
target-repo: "${{ github.repository }}"
submit-pull-request-review:
max: 1
allowed-events: [APPROVE, REQUEST_CHANGES, COMMENT]
target: "${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}"
noop:
max: 1
messages:
footer: "> Reviewed by [{workflow_name}]({run_url})"
run-started: "Started automated PR review for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}."
run-success: "Finished automated PR review for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}."
run-failure: "Automated PR review failed for #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }} ({status})."
---
Review pull request #${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }} in repository `${{ github.repository }}`.
Workflow-specific rules:
- Use `${{ github.event.pull_request.number || github.event.inputs.pr_number || github.event.issue.number }}` as the authoritative PR target.
- Treat the imported review prompt as the source of the review procedure.
- Use only gh-aw safe outputs for side effects:
- `create-pull-request-review-comment` for actionable inline findings on changed lines
- `resolve-pull-request-review-thread` for previously reported bot-authored threads that are now fixed or clearly acknowledged
- `submit-pull-request-review` for the final review
- `noop` when the PR is not reviewable or required context is missing
- Submit exactly one final review:
- `REQUEST_CHANGES` when at least one blocking issue exists.
- `APPROVE` otherwise, including when only non-blocking observations exist.
- Do not submit `COMMENT` as the final review state.
- Do not post free-form issue comments outside safe outputs.
- Respect the configured inline comment limit and prioritize the highest-signal unique findings.
- Use cache-memory only as a best-effort continuity aid; live PR state and current review threads are authoritative.
- Ignore discovery steps intended for runs without PR context.

View File

@@ -8,19 +8,12 @@ on:
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
TRAVIS_OS_NAME: linux
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
GOVERSION: "1.21.x"
NODEVERSION: "20.x"
PYTHONVERSION: "3.11.8"
DOTNETVERSION: "8.0.x"
JAVAVERSION: "11"
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
AWS_REGION: us-west-2
AZURE_LOCATION: westus
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
@@ -29,7 +22,10 @@ env:
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_PULUMI_ENABLE_JOURNALING: "true"
TF_APPEND_USER_AGENT: pulumi
jobs:
weekly-pulumi-update:
@@ -37,7 +33,7 @@ jobs:
permissions: write-all
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- env:
@@ -49,7 +45,7 @@ jobs:
id: esc-secrets
name: Fetch secrets from ESC
uses: pulumi/esc-action@9eb774255b1a4afb7855678ae8d4a77359da0d9b
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-auth
with:
app-id: ${{ steps.esc-secrets.outputs.PULUMI_PROVIDER_AUTOMATION_APP_ID }}
@@ -113,9 +109,7 @@ jobs:
msg="Automated upgrade: bump pulumi/pulumi to ${ver}"
# See https://github.com/cli/cli/issues/6485#issuecomment-2560935183 for --head workaround
gh pr create -t "$msg" -b "$msg" --head "$(git branch --show-current)"
gh pr create -t "$msg" -b "$msg"
env:
GITHUB_TOKEN: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }}
name: weekly-pulumi-update

View File

@@ -1,104 +1,53 @@
run:
timeout: 10m
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
version: "2"
linters:
enable-all: false
enable:
- depguard
- errcheck
- exhaustive
- copyloopvar
- gci
- gocritic
- gofumpt
- goheader
- goconst
- gosec
- govet
- importas
- ineffassign
- lll
- misspell
- nakedret
- nolintlint
- paralleltest
- perfsprint
- prealloc
- revive
- unconvert
- unused
linters-settings:
depguard:
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- schema.go
- pulumiManifest.go
- pkg/vendored
- third_party$
- builtin$
- examples$
rules:
protobuf:
deny:
- pkg: "github.com/golang/protobuf"
desc: Use google.golang.org/protobuf instead
gci:
sections:
- standard # Standard section: captures all standard library packages.
- blank # Blank section: contains all blank imports.
- default # Default section: contains all imports that could not be matched to another section type.
- prefix(github.com/pulumi/) # Custom section: groups all imports with the github.com/pulumi/ prefix.
- prefix(github.com/pulumi/pulumi-docker-build) # Custom section: local imports
custom-order: true
gocritic:
enable-all: true
disabled-checks:
- hugeParam
- importShadow
goheader:
template: |-
Copyright 2024, Pulumi Corporation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
govet:
enable:
- nilness
# Reject comparisons of reflect.Value with DeepEqual or '=='.
- reflectvaluecompare
# Reject sort.Slice calls with a non-slice argument.
- sortslice
# Detect write to struct/arrays by-value that aren't read again.
- unusedwrite
nakedret:
# Make an issue if func has more lines of code than this setting, and it has naked returns.
# Default: 30
max-func-lines: 60
nolintlint:
# Some linter exclusions are added to generated or templated files
# pre-emptively.
# Don't complain about these.
allow-unused: true
issues:
exclude-use-default: false
exclude-rules:
# Don't warn on unused parameters.
# Parameter names are useful; replacing them with '_' is undesirable.
- linters: [revive]
text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _'
# staticcheck already has smarter checks for empty blocks.
# revive's empty-block linter has false positives.
# For example, as of writing this, the following is not allowed.
# for foo() { }
- linters: [revive]
text: "empty-block: this block is empty, you can remove it"
# We *frequently* use the term 'new' in the context of properties
# (new and old properties),
# and we rarely use the 'new' built-in function.
# It's fine to ignore these cases.
- linters: [revive]
text: "redefines-builtin-id: redefinition of the built-in function new"
- linters:
- revive
path: pkg/
text: "var-naming" # https://github.com/pulumi/ci-mgmt/issues/2100
formatters:
enable:
- gci
- gofmt
settings:
gci:
sections:
- standard # Standard section: captures all standard library packages.
- blank # Blank section: contains all blank imports.
- default # Default section: contains all imports that could not be matched to another section type.
- prefix(github.com/pulumi/) # Custom section: groups all imports with the github.com/pulumi/ prefix.
- prefix(github.com/pulumi/pulumi-docker-build) # Custom section: local imports
custom-order: true
exclusions:
generated: lax
paths:
- schema.go
- pulumiManifest.go
- pkg/vendored
- third_party$
- builtin$
- examples$

View File

@@ -1 +1 @@
3.192.0
3.239.0

View File

@@ -1,6 +1,12 @@
## Unreleased
## Changed
### Fixed
- Fixes a regression where a 404 status code during deletion wasn't considered deleted. (https://github.com/pulumi/pulumi-docker-build/issues/849)
## 0.0.15 (2025-10-17)
### Changed
- Arguments `CacheFromGitHubActions.URL` and `CacheFromGitHubActions.Token` have been removed. If the previous behaviour is desired, set the `ACTIONS_CACHE_URL` and `ACTIONS_RUNTIME_TOKEN` environment variables. (https://github.com/pulumi/pulumi-docker-build/issues/75)

View File

@@ -58,7 +58,7 @@ test_all:: test_provider test_examples
gen_examples:
examples: $(shell mkdir -p examples)
examples: sdk examples/yaml examples/go examples/nodejs examples/python examples/dotnet examples/java
examples: sdk examples/yaml examples/go examples/nodejs examples/python examples/dotnet examples/java examples/hcl
examples/yaml:
rm -rf ${WORKING_DIR}/examples/yaml/app
@@ -84,6 +84,9 @@ examples/java: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,java)
@git checkout examples/java/pom.xml
examples/hcl: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,hcl)
define pulumi_login
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
pulumi login --local;
@@ -182,6 +185,7 @@ bin/${PROVIDER}: $(shell find ./provider -name '*.go') go.mod
(cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
bin/pulumi-gen-${PACK}: # Required by CI
@mkdir -p bin
touch bin/pulumi-gen-${PACK}
go.mod: $(shell find . -name '*.go')
@@ -249,29 +253,32 @@ docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -na
go generate docs/generate.go
@touch docs
# Set these variables to enable signing of the windows binary
# Set these variables to enable signing of the windows binary with Azure Trusted Signing.
AZURE_SIGNING_CLIENT_ID ?=
AZURE_SIGNING_CLIENT_SECRET ?=
AZURE_SIGNING_TENANT_ID ?=
AZURE_SIGNING_KEY_VAULT_URI ?=
AZURE_SIGNING_ACCOUNT_ENDPOINT ?=
AZURE_SIGNING_ACCOUNT_NAME ?=
AZURE_SIGNING_CERT_PROFILE_NAME ?=
SKIP_SIGNING ?=
bin/jsign-6.0.jar:
wget https://github.com/ebourg/jsign/releases/download/6.0/jsign-6.0.jar --output-document=bin/jsign-6.0.jar
bin/jsign-7.4.jar:
@mkdir -p bin
wget https://github.com/ebourg/jsign/releases/download/7.4/jsign-7.4.jar --output-document=bin/jsign-7.4.jar
sign-goreleaser-exe-amd64: GORELEASER_ARCH := amd64_v1
sign-goreleaser-exe-arm64: GORELEASER_ARCH := arm64
# Set the shell to bash to allow for the use of bash syntax.
sign-goreleaser-exe-%: SHELL:=/bin/bash
sign-goreleaser-exe-%: bin/jsign-6.0.jar
sign-goreleaser-exe-%: bin/jsign-7.4.jar
@# Only sign windows binary if fully configured.
@# Test variables set by joining with | between and looking for || showing at least one variable is empty.
@# Move the binary to a temporary location and sign it there to avoid the target being up-to-date if signing fails.
@set -e; \
if [[ "${SKIP_SIGNING}" != "true" ]]; then \
if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_KEY_VAULT_URI}|" == *"||"* ]]; then \
echo "Can't sign windows binaries as required configuration not set: AZURE_SIGNING_CLIENT_ID, AZURE_SIGNING_CLIENT_SECRET, AZURE_SIGNING_TENANT_ID, AZURE_SIGNING_KEY_VAULT_URI"; \
if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_ACCOUNT_ENDPOINT}|${AZURE_SIGNING_ACCOUNT_NAME}|${AZURE_SIGNING_CERT_PROFILE_NAME}|" == *"||"* ]]; then \
echo "Can't sign windows binaries as required configuration not set: AZURE_SIGNING_CLIENT_ID, AZURE_SIGNING_CLIENT_SECRET, AZURE_SIGNING_TENANT_ID, AZURE_SIGNING_ACCOUNT_ENDPOINT, AZURE_SIGNING_ACCOUNT_NAME, AZURE_SIGNING_CERT_PROFILE_NAME"; \
echo "To rebuild with signing delete the unsigned windows exe file and rebuild with the fixed configuration"; \
if [[ "${CI}" == "true" ]]; then exit 1; fi; \
else \
@@ -282,12 +289,15 @@ sign-goreleaser-exe-%: bin/jsign-6.0.jar
--password "${AZURE_SIGNING_CLIENT_SECRET}" \
--tenant "${AZURE_SIGNING_TENANT_ID}" \
--output none; \
ACCESS_TOKEN=$$(az account get-access-token --resource "https://vault.azure.net" | jq -r .accessToken); \
java -jar bin/jsign-6.0.jar \
--storetype AZUREKEYVAULT \
--keystore "PulumiCodeSigning" \
--url "${AZURE_SIGNING_KEY_VAULT_URI}" \
ACCESS_TOKEN=$$(az account get-access-token --resource "https://codesigning.azure.net" | jq -r .accessToken); \
ENDPOINT_HOST="$${AZURE_SIGNING_ACCOUNT_ENDPOINT#https://}"; \
ENDPOINT_HOST="$${ENDPOINT_HOST#http://}"; \
ENDPOINT_HOST="$${ENDPOINT_HOST%/}"; \
java -jar bin/jsign-7.4.jar \
--storetype TRUSTEDSIGNING \
--keystore "$${ENDPOINT_HOST}" \
--storepass "$${ACCESS_TOKEN}" \
--alias "${AZURE_SIGNING_ACCOUNT_NAME}/${AZURE_SIGNING_CERT_PROFILE_NAME}" \
$${file}.unsigned; \
mv $${file}.unsigned $${file}; \
az logout; \

View File

@@ -24,7 +24,7 @@ image, publish it to a remote AWS ECR registry, and use an [inline
cache](https://docs.docker.com/build/cache/backends/inline/) to speed up
subsequent builds.
{{< chooser language "typescript,python,csharp,go,yaml,java" / >}}
{{< chooser language "typescript,python,csharp,go,yaml,java" >}}
{{% choosable language typescript %}}

View File

@@ -81,6 +81,7 @@ func markdownExample(description string,
csharp string,
golang string,
yaml string,
hcl string,
java string,
) string {
return fmt.Sprintf("{{%% example %%}}\n### %s\n\n"+
@@ -89,9 +90,10 @@ func markdownExample(description string,
"```csharp\n%s```\n"+
"```go\n%s```\n"+
"```yaml\n%s```\n"+
"```hcl\n%s```\n"+
"```java\n%s```\n"+
"{{%% /example %%}}\n",
description, typescript, python, csharp, golang, yaml, java)
description, typescript, python, csharp, golang, yaml, hcl, java)
}
func convert(language, tempDir, programFile string) (string, error) {
@@ -186,6 +188,10 @@ func processYaml(path, mdDir string) error {
if err != nil {
return false, err
}
hcl, err := convert("hcl", dir, "program.hcl")
if err != nil {
return false, err
}
yamlContent, err := os.ReadFile(filepath.Clean(filepath.Join(dir, "Pulumi.yaml")))
if err != nil {
@@ -193,7 +199,9 @@ func processYaml(path, mdDir string) error {
}
yaml := string(yamlContent)
exampleStrings = append(exampleStrings, markdownExample(description, typescript, python, csharp, golang, yaml, java))
exampleStrings = append(exampleStrings, markdownExample(
description, typescript, python, csharp, golang, yaml, hcl, java,
))
return true, nil
}()

View File

@@ -62,7 +62,7 @@ resources:
username: pulumibot
password: ${dockerHubPassword}
outputs:
ref: ${my-image.ref}
ref: ${image.ref}
---
name: caching
runtime: yaml

View File

@@ -10,8 +10,9 @@ import (
"path/filepath"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
)
func TestDotNetExample(t *testing.T) {

View File

@@ -1,12 +1,10 @@
module provider-docker-build
go 1.24.7
toolchain go1.24.13
go 1.25.8
require (
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12
github.com/pulumi/pulumi/sdk/v3 v3.209.0
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.18
github.com/pulumi/pulumi/sdk/v3 v3.242.0
)
require (
@@ -18,79 +16,103 @@ require (
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/blang/semver v3.5.1+incompatible // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect
github.com/charmbracelet/bubbletea v1.3.4 // indirect
github.com/charmbracelet/colorprofile v0.3.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/bubbles v1.0.0 // indirect
github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/charmbracelet/x/ansi v0.11.7 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/djherbis/times v1.6.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // indirect
github.com/go-git/go-git/v5 v5.16.0 // indirect
github.com/go-git/go-billy/v5 v5.9.0 // indirect
github.com/go-git/go-git/v5 v5.19.1 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.4 // indirect
github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.22 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-runewidth v0.0.23 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pgavlin/fx/v2 v2.0.12 // indirect
github.com/pjbgf/sha1cd v0.6.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.21.0 // indirect
github.com/pulumi/esc v0.24.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.4.0 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/pflag v1.0.9 // indirect
github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/zclconf/go-cty v1.16.2 // indirect
go.opentelemetry.io/otel/sdk v1.36.0 // indirect
github.com/zclconf/go-cty v1.17.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/collector/featuregate v1.58.0 // indirect
go.opentelemetry.io/collector/pdata v1.58.0 // indirect
go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
go.opentelemetry.io/otel/metric v1.43.0 // indirect
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
go.opentelemetry.io/otel/trace v1.43.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
golang.org/x/mod v0.29.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/tools v0.38.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect
google.golang.org/grpc v1.72.1 // indirect
google.golang.org/protobuf v1.36.6 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.51.0 // indirect
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.54.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.44.0 // indirect
golang.org/x/term v0.43.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/tools v0.44.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260519071638-aa98bba5eb94 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260519071638-aa98bba5eb94 // indirect
google.golang.org/grpc v1.81.1 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.5.1 // indirect

View File

@@ -21,27 +21,35 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs=
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
github.com/charmbracelet/colorprofile v0.3.0 h1:KtLh9uuu1RCt+Hml4s6Hz+kB1PfV3wi++1h5ia65yKQ=
github.com/charmbracelet/colorprofile v0.3.0/go.mod h1:oHJ340RS2nmG1zRGPmhJKJ/jf4FPNNk0P39/wBPA1G0=
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q=
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI=
github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ=
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -55,37 +63,41 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM=
github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
github.com/go-git/go-billy/v5 v5.9.0 h1:jItGXszUDRtR/AlferWPTMN4j38BQ88XnXKbilmmBPA=
github.com/go-git/go-billy/v5 v5.9.0/go.mod h1:jCnQMLj9eUgGU7+ludSTYoZL/GGmii14RxKFj7ROgHw=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.16.0 h1:k3kuOEpkc0DeY7xlL6NaaNg39xdgQbtH5mwCafHO9AQ=
github.com/go-git/go-git/v5 v5.16.0/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-git/go-git/v5 v5.19.1 h1:nX27AnaU43/K5bKktKwgBmR9lawoYVe1Ckg0rgzzN00=
github.com/go-git/go-git/v5 v5.19.1/go.mod h1:Pb1v0c7/g8aGQJwx9Us09W85yGoyvSwuhEGMH7zjDKQ=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -93,17 +105,25 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos=
github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/hashicorp/go-version v1.9.0 h1:CeOIz6k+LoN3qX9Z0tyQrPtiB1DFYRPfCIBtaXPSCnA=
github.com/hashicorp/go-version v1.9.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE=
github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -111,24 +131,30 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4=
github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
@@ -144,10 +170,10 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pgavlin/fx/v2 v2.0.10 h1:ggyQ6pB+lEQEbEae48Wh/X221eLOamMD7i01ISe88u4=
github.com/pgavlin/fx/v2 v2.0.10/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
github.com/pgavlin/fx/v2 v2.0.12 h1:SjjaJ68Dt8Z4zHwOpY/RPijd7lShs6xYupJbF9ra00M=
github.com/pgavlin/fx/v2 v2.0.12/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU=
github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
@@ -157,13 +183,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.21.0 h1:TR8Ff22SU+z8cooTmUKkmk2FltXW/wDPrIwI9BP88Vk=
github.com/pulumi/esc v0.21.0/go.mod h1:mkghIFn/TvN3XnP4jmCB4U5BG1I4UjGluARi39ckrCE=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12 h1:uzmw+0iic764m0Yvh4I/jRV1x3q49dVh5Ctq9RllsQ8=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.12/go.mod h1:6zFMe786NvFDO03BVJwdw1R/Yms4F6vAU49iBHo8zbQ=
github.com/pulumi/pulumi/sdk/v3 v3.209.0 h1:Ti0FohAset2HEgogTxTOWoyvQd2N2+pkTSIn5DW3W7s=
github.com/pulumi/pulumi/sdk/v3 v3.209.0/go.mod h1:qBMg01woyYVNqNDJXpFL1e5gdN7oQQvCNNNtfq1gsEo=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/pulumi/esc v0.24.0 h1:sCtiB0qbyrlU1ZNzJn4dTLYiChl8xeCBFbHWl1YoXJg=
github.com/pulumi/esc v0.24.0/go.mod h1:eCOOkcDJS6eooGwdE4/E0+pOsvUWG254+KBmPCFwJpA=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.18 h1:emkSEfjXfz7i2vNDi43WTqABhP9TY2mQnO2zdL683hw=
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.18/go.mod h1:BriBqoV2I/58/AZy4/4oJfoiJYX7Nf/NxsAmGXDgvgo=
github.com/pulumi/pulumi/sdk/v3 v3.242.0 h1:gQIZ1ALbT5gCMuRoBscGzk7Rdbx9mbOc+YwDFxvRyss=
github.com/pulumi/pulumi/sdk/v3 v3.242.0/go.mod h1:P9VS6pQws3YBu67uszFRHn24n5AwzeMlyC2hIiHGWHg=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
@@ -178,10 +203,11 @@ github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnB
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
@@ -189,8 +215,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
@@ -203,49 +229,72 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/zclconf/go-cty v1.16.2 h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70=
github.com/zclconf/go-cty v1.16.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg=
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E=
go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE=
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs=
go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs=
go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY=
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w=
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA=
github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0=
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/collector/featuregate v1.58.0 h1:Kh6Dpgbxywv/Q3D6qPehaSxNCxvr/U/ki7CL4y3udCo=
go.opentelemetry.io/collector/featuregate v1.58.0/go.mod h1:4ga1QBMPEejXXmpyJS8lmaRpknJ3Lb9Bvk6e420bUFU=
go.opentelemetry.io/collector/internal/testutil v0.152.0 h1:8LGwekR7mLcUDhT1ofLmdnrHRFuUa3U7PBd95ZvJEjQ=
go.opentelemetry.io/collector/internal/testutil v0.152.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE=
go.opentelemetry.io/collector/pdata v1.58.0 h1:5Lxut3NxKp87066Pzt+3q7+JUuFI5B3teCyLZIF8wIs=
go.opentelemetry.io/collector/pdata v1.58.0/go.mod h1:4vZtODINbC/JF3eGocnatdImzbRHseOywIcr+aULjCg=
go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 h1:RAE+JPfvEmvy+0LzyUA25/SGawPwIUbZ6u0Wug54sLc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0/go.mod h1:AGmbycVGEsRx9mXMZ75CsOyhSP6MFIcj/6dnG+vhVjk=
go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g=
go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk=
go.opentelemetry.io/proto/slim/otlp v1.10.0 h1:iR97Vs/ZDR+y9TfuP9b1XBtdPWeC+OMslIBmhcLU7jM=
go.opentelemetry.io/proto/slim/otlp v1.10.0/go.mod h1:lV9250stpjYLPNA5viFabIgP2QlUGRT1GdTgAf8SIUk=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0 h1:RUF5rO0hAlgiJt1fzQVzcVs3vZVNHIcMLgOgG4rWNcQ=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0/go.mod h1:I89cynRj8y+383o7tEQVg2SVA6SRgDVIouWPUVXjx0U=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0 h1:CQvJSldHRUN6Z8jsUeYv8J0lXRvygALXIzsmAeCcZE0=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0/go.mod h1:xSQ+mEfJe/GjK1LXEyVOoSI1N9JV9ZI923X5kup43W4=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w=
golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -260,35 +309,38 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
google.golang.org/genproto/googleapis/api v0.0.0-20260519071638-aa98bba5eb94 h1:DddG61lE5LkX6144z22i0gma9BMBs5aZ9B8lZLobxyw=
google.golang.org/genproto/googleapis/api v0.0.0-20260519071638-aa98bba5eb94/go.mod h1:1dCETSCY2YKZNXQE3h4fun3TYwF5p8jejRKZgfWAgAY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260519071638-aa98bba5eb94 h1:eZCjr/aAF8c5ccm5pb6T4EXgIei5MlAAPWPJk+5ArfY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260519071638-aa98bba5eb94/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -302,5 +354,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q=
pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=

View File

@@ -1,9 +1,10 @@
package main
import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
)
func main() {

View File

@@ -8,8 +8,9 @@ import (
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
)
func TestGoExample(t *testing.T) {

View File

@@ -0,0 +1,2 @@
command-output
tmp

10
examples/hcl/Pulumi.yaml Normal file
View File

@@ -0,0 +1,10 @@
name: provider-docker-build
runtime: hcl
config:
dockerHubPassword:
type: string
secret: true
plugins:
providers:
- name: docker-build
path: ../../bin

View File

@@ -0,0 +1,2 @@
FROM alpine
RUN echo 👍

View File

@@ -0,0 +1,5 @@
FROM alpine
ARG SET_ME_TO_TRUE
RUN [ "$SET_ME_TO_TRUE" = "true" ]
RUN echo "That's the correct build arg, thanks! 👍"

View File

@@ -0,0 +1,2 @@
FROM alpine
RUN echo "This image doesn't use any local files, so it doesn't need a context parameter 👍"

View File

@@ -0,0 +1,3 @@
FROM bash AS base
RUN getent hosts metadata.google.internal

View File

@@ -0,0 +1,7 @@
FROM --platform=$BUILDPLATFORM alpine as build
RUN echo ${BUILDPLATFORM} > buildplatform
RUN echo ${TARGETPLATFORM} > targetplatform
FROM build
RUN cat buildplatform
RUN cat targetplatform

View File

@@ -0,0 +1,5 @@
# syntax=docker/dockerfile:1.4
FROM golang:latest
RUN version="$(go version)" && echo $version && [ "$version" = "go version go1.21.7 linux/amd64" ]
RUN echo "This image uses named contexts to pin golang:latest to a specific SHA 👍"

View File

@@ -0,0 +1,4 @@
FROM alpine
RUN --mount=type=secret,id=password [ "$(cat /run/secrets/password)" = "hunter2" ]

View File

@@ -0,0 +1,5 @@
FROM alpine
RUN apk add openssh-client
RUN --mount=type=ssh ssh-add -l

View File

@@ -0,0 +1,8 @@
FROM alpine as build-me
RUN echo 👍
FROM build-me as also-build-me
RUN echo 🤙
FROM build-me as dont-build-me
RUN [ "true" = "false" ]

171
examples/hcl/program.hcl Normal file
View File

@@ -0,0 +1,171 @@
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.1.0-alpha.0+dev"
}
}
}
resource "docker-build_image" "multiPlatform" {
push = false
dockerfile = {
location = "./app/Dockerfile.multiPlatform"
}
context = {
location = "./app"
}
platforms = ["plan9/amd64", "plan9/386"]
}
resource "docker-build_image" "registryPush" {
push = false
context = {
location = "./app"
}
tags = ["docker.io/pulumibot/buildkit-e2e:example"]
exports {
registry = {
oci_media_types = true
push = false
}
}
registries {
address = "docker.io"
username = "pulumibot"
password = var.dockerHubPassword
}
}
resource "docker-build_image" "cached" {
push = false
context = {
location = "./app"
}
cache_to {
local = {
dest = "tmp/cache"
mode = "max"
}
}
cache_from {
local = {
src = "tmp/cache"
}
}
}
resource "docker-build_image" "buildArgs" {
push = false
dockerfile = {
location = "./app/Dockerfile.buildArgs"
}
context = {
location = "./app"
}
build_args = {
"SET_ME_TO_TRUE" = "true"
}
}
resource "docker-build_image" "extraHosts" {
push = false
dockerfile = {
location = "./app/Dockerfile.extraHosts"
}
context = {
location = "./app"
}
add_hosts = ["metadata.google.internal:169.254.169.254"]
}
resource "docker-build_image" "sshMount" {
push = false
dockerfile = {
location = "./app/Dockerfile.sshMount"
}
context = {
location = "./app"
}
ssh {
id = "default"
}
}
resource "docker-build_image" "secrets" {
push = false
dockerfile = {
location = "./app/Dockerfile.secrets"
}
context = {
location = "./app"
}
secrets = {
"password" = "hunter2"
}
}
resource "docker-build_image" "labels" {
push = false
context = {
location = "./app"
}
labels = {
"description" = "This image will get a descriptive label 👍"
}
}
resource "docker-build_image" "target" {
push = false
dockerfile = {
location = "./app/Dockerfile.target"
}
context = {
location = "./app"
}
target = "build-me"
}
resource "docker-build_image" "namedContexts" {
push = false
dockerfile = {
location = "./app/Dockerfile.namedContexts"
}
context = {
location = "./app"
named = {
"golang:latest" = {
location = "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
}
}
}
}
resource "docker-build_image" "remoteContext" {
push = false
context = {
location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
}
}
resource "docker-build_image" "remoteContextWithInline" {
push = false
dockerfile = {
inline = "FROM busybox\nCOPY hello.c ./\n"
}
context = {
location = "https://github.com/docker-library/hello-world.git"
}
}
resource "docker-build_image" "inline" {
push = false
dockerfile = {
inline = "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"
}
}
resource "docker-build_image" "dockerLoad" {
push = false
context = {
location = "./app"
}
exports {
docker = {
tar = true
}
}
}
variable "dockerHubPassword" {
type = string
}
output "platforms" {
value = docker-build_image.multiPlatform.platforms
}

View File

@@ -8,8 +8,9 @@ import (
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
)
func TestJavaExample(t *testing.T) {

View File

@@ -5,6 +5,6 @@
},
"dependencies": {
"typescript": "^4.0.0",
"@pulumi/pulumi": "3.219.0"
"@pulumi/pulumi": "3.244.0"
}
}

View File

@@ -16,14 +16,15 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ecr"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/pulumi/providertest"
"github.com/pulumi/providertest/optproviderupgrade"
"github.com/pulumi/providertest/pulumitest"
"github.com/pulumi/providertest/pulumitest/assertpreview"
"github.com/pulumi/providertest/pulumitest/opttest"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNodeExample(t *testing.T) {

View File

@@ -8,8 +8,9 @@ import (
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
)
func TestPythonExample(t *testing.T) {

View File

@@ -4,6 +4,6 @@
"@types/node": "^20.0.0"
},
"dependencies": {
"@pulumi/pulumi": "3.219.0"
"@pulumi/pulumi": "3.244.0"
}
}

View File

@@ -2,22 +2,22 @@
# yarn lockfile v1
"@grpc/grpc-js@^1.10.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.11.1.tgz#a92f33e98f1959feffcd1b25a33b113d2c977b70"
integrity sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==
"@grpc/grpc-js@^1.10.1", "@grpc/grpc-js@^1.7.1":
version "1.14.3"
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.14.3.tgz#4c9b817a900ae4020ddc28515ae4b52c78cfb8da"
integrity sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==
dependencies:
"@grpc/proto-loader" "^0.7.13"
"@grpc/proto-loader" "^0.8.0"
"@js-sdsl/ordered-map" "^4.4.2"
"@grpc/proto-loader@^0.7.13":
version "0.7.13"
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
"@grpc/proto-loader@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.8.0.tgz#b6c324dd909c458a0e4aa9bfd3d69cf78a4b9bd8"
integrity sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==
dependencies:
lodash.camelcase "^4.3.0"
long "^5.0.0"
protobufjs "^7.2.5"
protobufjs "^7.5.3"
yargs "^17.7.2"
"@isaacs/balanced-match@^4.0.1":
@@ -208,10 +208,10 @@
proc-log "^6.0.0"
which "^6.0.0"
"@opentelemetry/api-logs@0.55.0":
version "0.55.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz#5cd7461820d864600250deb3803c32367a6bb2d2"
integrity sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==
"@opentelemetry/api-logs@0.57.2":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz#d4001b9aa3580367b40fe889f3540014f766cc87"
integrity sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==
dependencies:
"@opentelemetry/api" "^1.3.0"
@@ -232,7 +232,20 @@
dependencies:
"@opentelemetry/semantic-conventions" "1.28.0"
"@opentelemetry/exporter-zipkin@^1.28":
"@opentelemetry/exporter-trace-otlp-grpc@^0.57":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.2.tgz#1c1e593a987c211a0e9134037b7a2a7f3836f8ba"
integrity sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==
dependencies:
"@grpc/grpc-js" "^1.7.1"
"@opentelemetry/core" "1.30.1"
"@opentelemetry/otlp-exporter-base" "0.57.2"
"@opentelemetry/otlp-grpc-exporter-base" "0.57.2"
"@opentelemetry/otlp-transformer" "0.57.2"
"@opentelemetry/resources" "1.30.1"
"@opentelemetry/sdk-trace-base" "1.30.1"
"@opentelemetry/exporter-zipkin@^1.30":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.30.1.tgz#d96213a38d201ef2d50c3ba29faeb6e579f70e77"
integrity sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==
@@ -242,26 +255,57 @@
"@opentelemetry/sdk-trace-base" "1.30.1"
"@opentelemetry/semantic-conventions" "1.28.0"
"@opentelemetry/instrumentation-grpc@^0.55":
version "0.55.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.55.0.tgz#b5161359060999f7ccbef26d6550beef021572fa"
integrity sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==
"@opentelemetry/instrumentation-grpc@^0.57":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.57.2.tgz#18c2a5a1e168defd6452514c3416d085f4c72223"
integrity sha512-TR6YQA67cLSZzdxbf2SrbADJy2Y8eBW1+9mF15P0VK2MYcpdoUSmQTF1oMkBwa3B9NwqDFA2fq7wYTTutFQqaQ==
dependencies:
"@opentelemetry/instrumentation" "0.55.0"
"@opentelemetry/semantic-conventions" "1.27.0"
"@opentelemetry/instrumentation" "0.57.2"
"@opentelemetry/semantic-conventions" "1.28.0"
"@opentelemetry/instrumentation@0.55.0", "@opentelemetry/instrumentation@^0.55":
version "0.55.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz#ecac8afd8706f6e99b3bb6951b9e07c4c81533f0"
integrity sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==
"@opentelemetry/instrumentation@0.57.2", "@opentelemetry/instrumentation@^0.57":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz#8924549d7941ba1b5c6f04d5529cf48330456d1d"
integrity sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==
dependencies:
"@opentelemetry/api-logs" "0.55.0"
"@opentelemetry/api-logs" "0.57.2"
"@types/shimmer" "^1.2.0"
import-in-the-middle "^1.8.1"
require-in-the-middle "^7.1.1"
semver "^7.5.2"
shimmer "^1.2.1"
"@opentelemetry/otlp-exporter-base@0.57.2":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.2.tgz#10636c8d0e377f3311e55741b0550b06f32a3e98"
integrity sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==
dependencies:
"@opentelemetry/core" "1.30.1"
"@opentelemetry/otlp-transformer" "0.57.2"
"@opentelemetry/otlp-grpc-exporter-base@0.57.2":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.2.tgz#655ecb3a2a67da90c0042e34cbeaa57df266794e"
integrity sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==
dependencies:
"@grpc/grpc-js" "^1.7.1"
"@opentelemetry/core" "1.30.1"
"@opentelemetry/otlp-exporter-base" "0.57.2"
"@opentelemetry/otlp-transformer" "0.57.2"
"@opentelemetry/otlp-transformer@0.57.2":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.2.tgz#a3bdd2c82ddd6fd87f513860fb4f6260e555d2c0"
integrity sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==
dependencies:
"@opentelemetry/api-logs" "0.57.2"
"@opentelemetry/core" "1.30.1"
"@opentelemetry/resources" "1.30.1"
"@opentelemetry/sdk-logs" "0.57.2"
"@opentelemetry/sdk-metrics" "1.30.1"
"@opentelemetry/sdk-trace-base" "1.30.1"
protobufjs "^7.3.0"
"@opentelemetry/propagator-b3@1.30.1":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz#b73321e5f30f062a9229887a4aa80c771107fdd2"
@@ -276,7 +320,7 @@
dependencies:
"@opentelemetry/core" "1.30.1"
"@opentelemetry/resources@1.30.1", "@opentelemetry/resources@^1.28":
"@opentelemetry/resources@1.30.1", "@opentelemetry/resources@^1.30":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964"
integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==
@@ -284,7 +328,24 @@
"@opentelemetry/core" "1.30.1"
"@opentelemetry/semantic-conventions" "1.28.0"
"@opentelemetry/sdk-trace-base@1.30.1", "@opentelemetry/sdk-trace-base@^1.28":
"@opentelemetry/sdk-logs@0.57.2":
version "0.57.2"
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.57.2.tgz#ddc9d1e2b86052b4b6bb954dd90fa3878bed8a23"
integrity sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==
dependencies:
"@opentelemetry/api-logs" "0.57.2"
"@opentelemetry/core" "1.30.1"
"@opentelemetry/resources" "1.30.1"
"@opentelemetry/sdk-metrics@1.30.1":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz#70e2bcd275b9df6e7e925e3fe53cfe71329b5fc8"
integrity sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==
dependencies:
"@opentelemetry/core" "1.30.1"
"@opentelemetry/resources" "1.30.1"
"@opentelemetry/sdk-trace-base@1.30.1", "@opentelemetry/sdk-trace-base@^1.30":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz#41a42234096dc98e8f454d24551fc80b816feb34"
integrity sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==
@@ -293,7 +354,7 @@
"@opentelemetry/resources" "1.30.1"
"@opentelemetry/semantic-conventions" "1.28.0"
"@opentelemetry/sdk-trace-node@^1.28":
"@opentelemetry/sdk-trace-node@^1.30":
version "1.30.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz#bd7d68fcfb4d4ae76ea09810df9668b7dd09a2e5"
integrity sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==
@@ -305,11 +366,6 @@
"@opentelemetry/sdk-trace-base" "1.30.1"
semver "^7.5.2"
"@opentelemetry/semantic-conventions@1.27.0":
version "1.27.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c"
integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==
"@opentelemetry/semantic-conventions@1.28.0":
version "1.28.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6"
@@ -368,34 +424,33 @@
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
"@pulumi/pulumi@3.219.0":
version "3.219.0"
resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.219.0.tgz#23bbb6caf2845d6bbc20b22f72bae6d3f157c57a"
integrity sha512-0AO1ZBJooKALToZYvPj/93PpToGA2rEKvIGQi95zNHevTTC3ibQrKXJDLwQzjHy6HZrON2jbxzakKrU4C2w+hA==
"@pulumi/pulumi@3.244.0":
version "3.244.0"
resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.244.0.tgz#cb99cb9ae446d8ebdf1ee3e7de32d537a9a4a2f9"
integrity sha512-vJnzsxPalz0mtatiheaVvZmImiBIufaPyXRpfABLM8l6Q/sQJHp/BDdX359XeAdxg1uuNTAxIQEgoIDjQYKlMg==
dependencies:
"@grpc/grpc-js" "^1.10.1"
"@logdna/tail-file" "^2.0.6"
"@npmcli/arborist" "^9.0.0"
"@opentelemetry/api" "^1.9"
"@opentelemetry/exporter-zipkin" "^1.28"
"@opentelemetry/instrumentation" "^0.55"
"@opentelemetry/instrumentation-grpc" "^0.55"
"@opentelemetry/resources" "^1.28"
"@opentelemetry/sdk-trace-base" "^1.28"
"@opentelemetry/sdk-trace-node" "^1.28"
"@opentelemetry/exporter-trace-otlp-grpc" "^0.57"
"@opentelemetry/exporter-zipkin" "^1.30"
"@opentelemetry/instrumentation" "^0.57"
"@opentelemetry/instrumentation-grpc" "^0.57"
"@opentelemetry/resources" "^1.30"
"@opentelemetry/sdk-trace-base" "^1.30"
"@opentelemetry/sdk-trace-node" "^1.30"
"@types/google-protobuf" "^3.15.5"
"@types/semver" "^7.5.6"
"@types/tmp" "^0.2.6"
execa "^5.1.0"
fdir "^6.5.0"
google-protobuf "^3.21.4"
got "^11.8.6"
ini "^2.0.0"
js-yaml "^3.14.2"
minimist "^1.2.6"
normalize-package-data "^6.0.0"
package-directory "^8.1.0"
picomatch "^3.0.1"
picomatch "^4.0.0"
require-from-string "^2.0.1"
semver "^7.5.2"
source-map-support "^0.5.6"
@@ -448,18 +503,6 @@
"@sigstore/core" "^3.1.0"
"@sigstore/protobuf-specs" "^0.5.0"
"@sindresorhus/is@^4.0.0":
version "4.6.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
"@szmarczak/http-timer@^4.0.5":
version "4.0.6"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
dependencies:
defer-to-connect "^2.0.0"
"@tufjs/canonical-json@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
@@ -473,34 +516,12 @@
"@tufjs/canonical-json" "2.0.0"
minimatch "^10.1.1"
"@types/cacheable-request@^6.0.1":
version "6.0.3"
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
dependencies:
"@types/http-cache-semantics" "*"
"@types/keyv" "^3.1.4"
"@types/node" "*"
"@types/responselike" "^1.0.0"
"@types/google-protobuf@^3.15.5":
version "3.15.12"
resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.12.tgz#eb2ba0eddd65712211a2b455dc6071d665ccf49b"
integrity sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==
"@types/http-cache-semantics@*":
version "4.0.4"
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
"@types/keyv@^3.1.4":
version "3.1.4"
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
dependencies:
"@types/node" "*"
"@types/node@*", "@types/node@>=13.7.0":
"@types/node@>=13.7.0":
version "22.1.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b"
integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==
@@ -514,13 +535,6 @@
dependencies:
undici-types "~5.26.4"
"@types/responselike@^1.0.0":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
dependencies:
"@types/node" "*"
"@types/semver@^7.5.6":
version "7.5.8"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
@@ -610,24 +624,6 @@ cacache@^20.0.0, cacache@^20.0.1:
ssri "^13.0.0"
unique-filename "^5.0.0"
cacheable-lookup@^5.0.3:
version "5.0.4"
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
cacheable-request@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817"
integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
dependencies:
clone-response "^1.0.2"
get-stream "^5.1.0"
http-cache-semantics "^4.0.0"
keyv "^4.0.0"
lowercase-keys "^2.0.0"
normalize-url "^6.0.1"
responselike "^2.0.0"
chownr@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4"
@@ -647,13 +643,6 @@ cliui@^8.0.1:
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
clone-response@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
dependencies:
mimic-response "^1.0.0"
cmd-shim@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-8.0.0.tgz#5be238f22f40faf3f7e8c92edc3f5d354f7657b2"
@@ -697,18 +686,6 @@ debug@4, debug@^4.3.4, debug@^4.3.5, debug@^4.4.3:
dependencies:
ms "^2.1.3"
decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
dependencies:
mimic-response "^3.1.0"
defer-to-connect@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -721,13 +698,6 @@ encoding@^0.1.13:
dependencies:
iconv-lite "^0.6.2"
end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
env-paths@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
@@ -773,11 +743,6 @@ fdir@^6.5.0:
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
find-up-simple@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.1.tgz#18fb90ad49e45252c4d7fca56baade04fa3fca1e"
integrity sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==
fs-minipass@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54"
@@ -795,13 +760,6 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
dependencies:
pump "^3.0.0"
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -821,23 +779,6 @@ google-protobuf@^3.21.4:
resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.4.tgz#2f933e8b6e5e9f8edde66b7be0024b68f77da6c9"
integrity sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==
got@^11.8.6:
version "11.8.6"
resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a"
integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
dependencies:
"@sindresorhus/is" "^4.0.0"
"@szmarczak/http-timer" "^4.0.5"
"@types/cacheable-request" "^6.0.1"
"@types/responselike" "^1.0.0"
cacheable-lookup "^5.0.3"
cacheable-request "^7.0.2"
decompress-response "^6.0.0"
http2-wrapper "^1.0.0-beta.5.2"
lowercase-keys "^2.0.0"
p-cancelable "^2.0.0"
responselike "^2.0.0"
graceful-fs@^4.2.6:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
@@ -864,7 +805,7 @@ hosted-git-info@^9.0.0:
dependencies:
lru-cache "^11.1.0"
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1:
http-cache-semantics@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
@@ -877,14 +818,6 @@ http-proxy-agent@^7.0.0:
agent-base "^7.1.0"
debug "^4.3.4"
http2-wrapper@^1.0.0-beta.5.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
dependencies:
quick-lru "^5.1.1"
resolve-alpn "^1.0.0"
https-proxy-agent@^7.0.1:
version "7.0.5"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2"
@@ -985,11 +918,6 @@ jsbn@1.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
json-buffer@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
json-parse-even-better-errors@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz#93c89f529f022e5dadc233409324f0167b1e903e"
@@ -1015,13 +943,6 @@ just-diff@^6.0.0:
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
keyv@^4.0.0:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
dependencies:
json-buffer "3.0.1"
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
@@ -1032,11 +953,6 @@ long@^5.0.0:
resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
lowercase-keys@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
lru-cache@^10.0.1:
version "10.4.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
@@ -1074,16 +990,6 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
minimatch@^10.0.3, minimatch@^10.1.1, minimatch@^10.1.2:
version "10.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.2.tgz#6c3f289f9de66d628fa3feb1842804396a43d81c"
@@ -1201,11 +1107,6 @@ normalize-package-data@^6.0.0:
semver "^7.3.5"
validate-npm-package-license "^3.0.4"
normalize-url@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
npm-bundled@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-5.0.0.tgz#5025d847cfd06c7b8d9432df01695d0133d9ee80"
@@ -1274,13 +1175,6 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
@@ -1288,23 +1182,11 @@ onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
p-cancelable@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
p-map@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.4.tgz#b81814255f542e252d5729dca4d66e5ec14935b8"
integrity sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==
package-directory@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/package-directory/-/package-directory-8.1.0.tgz#75737f33380df04490de8cacb47d682116661401"
integrity sha512-qHKRW0pw3lYdZMQVkjDBqh8HlamH/LCww2PH7OWEp4Qrt3SFeYMNpnJrQzlSnGrDD5zGR51XqBh7FnNCdVNEHA==
dependencies:
find-up-simple "^1.0.0"
pacote@^21.0.0, pacote@^21.0.2:
version "21.2.0"
resolved "https://registry.yarnpkg.com/pacote/-/pacote-21.2.0.tgz#d5d22839d2805d0c260b723f7cbebec3811efc8a"
@@ -1355,15 +1237,10 @@ path-scurry@^2.0.0:
lru-cache "^11.0.0"
minipass "^7.1.2"
picomatch@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516"
integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==
picomatch@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
picomatch@^4.0.0, picomatch@^4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
postcss-selector-parser@^7.0.0:
version "7.1.1"
@@ -1401,10 +1278,10 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
protobufjs@^7.2.5:
version "7.3.2"
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4"
integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==
protobufjs@^7.3.0, protobufjs@^7.5.3:
version "7.5.4"
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.5.4.tgz#885d31fe9c4b37f25d1bb600da30b1c5b37d286a"
integrity sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==
dependencies:
"@protobufjs/aspromise" "^1.1.2"
"@protobufjs/base64" "^1.1.2"
@@ -1419,19 +1296,6 @@ protobufjs@^7.2.5:
"@types/node" ">=13.7.0"
long "^5.0.0"
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
quick-lru@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
read-cmd-shim@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-6.0.0.tgz#98f5c8566e535829f1f8afb1595aaf05fd0f3970"
@@ -1456,11 +1320,6 @@ require-in-the-middle@^7.1.1:
module-details-from-path "^1.0.3"
resolve "^1.22.8"
resolve-alpn@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
resolve@^1.22.8:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
@@ -1470,13 +1329,6 @@ resolve@^1.22.8:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
responselike@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"
integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
dependencies:
lowercase-keys "^2.0.0"
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -1748,11 +1600,6 @@ wrap-ansi@^7.0.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
write-file-atomic@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-7.0.0.tgz#f89def4f223e9bf8b06cc6fdb12bda3a917505c7"

View File

@@ -4,6 +4,6 @@
"@types/node": "^20.0.0"
},
"dependencies": {
"@pulumi/pulumi": "3.219.0"
"@pulumi/pulumi": "3.244.0"
}
}

View File

@@ -38,3 +38,5 @@ variables:
auth-token:
fn::aws:ecr:getAuthorizationToken:
registryId: ${ecr-repository.registryId}
config:
aws:region: us-west-2

View File

@@ -5,6 +5,6 @@
},
"dependencies": {
"typescript": "^4.0.0",
"@pulumi/pulumi": "3.219.0"
"@pulumi/pulumi": "3.244.0"
}
}

View File

@@ -8,15 +8,17 @@ import (
"path"
"testing"
"github.com/stretchr/testify/require"
"github.com/pulumi/providertest"
"github.com/pulumi/providertest/providers"
"github.com/pulumi/providertest/pulumitest"
"github.com/pulumi/providertest/pulumitest/assertpreview"
"github.com/pulumi/providertest/pulumitest/opttest"
"github.com/pulumi/pulumi-docker-build/provider"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
"github.com/stretchr/testify/require"
"github.com/pulumi/pulumi-docker-build/provider"
)
func TestYAMLExample(t *testing.T) {
@@ -33,6 +35,20 @@ func TestYAMLExample(t *testing.T) {
integration.ProgramTest(t, &test)
}
func TestHCLExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "hcl"),
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}
func TestYAMLExampleUpgrade(t *testing.T) {
pt := pulumitest.NewPulumiTest(t, "upgrade",
opttest.AttachProviderServer("docker-build", providerServerFactory))

295
go.mod
View File

@@ -1,145 +1,158 @@
module github.com/pulumi/pulumi-docker-build
go 1.24.7
go 1.25.8
require (
github.com/aws/aws-sdk-go v1.55.5
github.com/blang/semver v3.5.1+incompatible
github.com/containerd/errdefs v1.0.0
github.com/distribution/reference v0.6.0
github.com/docker/buildx v0.22.0
github.com/docker/cli v28.0.4+incompatible
github.com/docker/cli v29.2.1+incompatible
github.com/docker/docker v28.0.1+incompatible
github.com/moby/buildkit v0.20.1
github.com/moby/patternmatcher v0.6.0
github.com/moby/buildkit v0.28.1
github.com/moby/patternmatcher v0.6.1
github.com/muesli/reflow v0.3.0
github.com/otiai10/copy v1.14.0
github.com/pulumi/providertest v0.6.0
github.com/pulumi/pulumi-go-provider v1.3.0
github.com/pulumi/pulumi-java/pkg v1.16.0
github.com/pulumi/pulumi/pkg/v3 v3.219.0
github.com/pulumi/pulumi/sdk/v3 v3.219.0
github.com/pulumi/providertest v0.7.0
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.106.2
github.com/pulumi/pulumi-go-provider v1.3.2
github.com/pulumi/pulumi-java v1.28.0
github.com/pulumi/pulumi/pkg/v3 v3.243.0
github.com/pulumi/pulumi/sdk/v3 v3.243.0
github.com/regclient/regclient v0.7.1
github.com/sirupsen/logrus v1.9.3
github.com/sirupsen/logrus v1.9.4
github.com/spf13/afero v1.14.0
github.com/stretchr/testify v1.11.1
github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a
github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4
go.opentelemetry.io/otel/metric v1.36.0
go.opentelemetry.io/otel/sdk v1.36.0
go.opentelemetry.io/otel/trace v1.36.0
github.com/tonistiigi/fsutil v0.0.0-20251211185533-a2aa163d723f
github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0
go.opentelemetry.io/otel/metric v1.43.0
go.opentelemetry.io/otel/sdk v1.43.0
go.opentelemetry.io/otel/trace v1.43.0
go.uber.org/mock v0.6.0
golang.org/x/crypto v0.47.0
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792
google.golang.org/protobuf v1.36.6
golang.org/x/crypto v0.51.0
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f
google.golang.org/protobuf v1.36.11
gopkg.in/yaml.v3 v3.0.1
)
require (
cloud.google.com/go v0.112.1 // indirect
cloud.google.com/go/compute/metadata v0.6.0 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
cloud.google.com/go/iam v1.1.6 // indirect
cloud.google.com/go/kms v1.15.7 // indirect
cloud.google.com/go/logging v1.9.0 // indirect
cloud.google.com/go/longrunning v0.5.5 // indirect
cloud.google.com/go/storage v1.39.1 // indirect
dario.cat/mergo v1.0.1 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
dario.cat/mergo v1.0.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 // indirect
github.com/BurntSushi/toml v1.5.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect
github.com/BurntSushi/toml v1.6.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.2.0 // indirect
github.com/ProtonMail/go-crypto v1.3.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect
github.com/apparentlymart/go-cidr v1.0.1 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aws/aws-sdk-go-v2 v1.30.3 // indirect
github.com/aws/aws-sdk-go-v2/config v1.27.27 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect
github.com/aws/aws-sdk-go-v2 v1.41.5 // indirect
github.com/aws/aws-sdk-go-v2/config v1.32.7 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.19.7 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
github.com/aws/smithy-go v1.20.3 // indirect
github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 // indirect
github.com/aws/smithy-go v1.24.2 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82 // indirect
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect
github.com/charmbracelet/bubbletea v1.3.4 // indirect
github.com/charmbracelet/colorprofile v0.3.0 // indirect
github.com/charmbracelet/bubbles v1.0.0 // indirect
github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/charmbracelet/x/ansi v0.11.7 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/compose-spec/compose-go/v2 v2.4.8 // indirect
github.com/containerd/console v1.0.4 // indirect
github.com/containerd/containerd/api v1.8.0 // indirect
github.com/containerd/containerd/v2 v2.0.7 // indirect
github.com/containerd/console v1.0.5 // indirect
github.com/containerd/containerd/api v1.10.0 // indirect
github.com/containerd/containerd/v2 v2.2.1 // indirect
github.com/containerd/continuity v0.4.5 // indirect
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v1.0.0-rc.1 // indirect
github.com/containerd/platforms v1.0.0-rc.2 // indirect
github.com/containerd/ttrpc v1.2.7 // indirect
github.com/containerd/typeurl/v2 v2.2.3 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
github.com/djherbis/times v1.6.0 // indirect
github.com/docker/cli-docs-tool v0.9.0 // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect
github.com/docker/go-connections v0.5.0 // indirect
github.com/docker/go-metrics v0.0.1 // indirect
github.com/docker/docker-credential-helpers v0.9.5 // indirect
github.com/docker/go-connections v0.7.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
github.com/edsrzf/mmap-go v1.2.0 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/fatih/color v1.17.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fvbommel/sortorder v1.0.1 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/git-pkgs/manifests v0.4.1 // indirect
github.com/git-pkgs/packageurl-go v0.3.1 // indirect
github.com/git-pkgs/purl v0.1.10 // indirect
github.com/git-pkgs/vers v0.2.4 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // indirect
github.com/go-git/go-git/v5 v5.16.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-git/go-billy/v5 v5.9.0 // indirect
github.com/go-git/go-git/v5 v5.19.1 // indirect
github.com/go-jose/go-jose/v3 v3.0.5 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.4 // indirect
github.com/go-openapi/jsonpointer v0.22.4 // indirect
github.com/go-openapi/jsonreference v0.21.4 // indirect
github.com/go-openapi/swag v0.25.4 // indirect
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
github.com/go-openapi/swag/conv v0.25.4 // indirect
github.com/go-openapi/swag/fileutils v0.25.4 // indirect
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
github.com/go-openapi/swag/loading v0.25.4 // indirect
github.com/go-openapi/swag/mangling v0.25.4 // indirect
github.com/go-openapi/swag/netutils v0.25.4 // indirect
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
github.com/go-test/deep v1.1.1 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/gofrs/flock v0.13.0 // indirect
github.com/gofrs/uuid v4.2.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
github.com/golang/glog v1.2.4 // indirect
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/s2a-go v0.1.7 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
@@ -147,38 +160,38 @@ require (
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-cty-funcs v0.0.0-20241120183456-c51673e0b3dd // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
github.com/hashicorp/go-sockaddr v1.0.6 // indirect
github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/hashicorp/vault/api v1.12.0 // indirect
github.com/iancoleman/strcase v0.3.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/in-toto/in-toto-golang v0.5.0 // indirect
github.com/in-toto/attestation v1.1.2 // indirect
github.com/in-toto/in-toto-golang v0.11.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/iwdgo/sigintwindows v0.2.2 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/klauspost/compress v1.18.4 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.22 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-runewidth v0.0.23 // indirect
github.com/mattn/go-shellwords v1.0.12 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -189,16 +202,19 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/locker v1.0.1 // indirect
github.com/moby/spdystream v0.4.0 // indirect
github.com/moby/moby/api v1.54.2 // indirect
github.com/moby/moby/client v0.4.1 // indirect
github.com/moby/spdystream v0.5.1 // indirect
github.com/moby/sys/atomicwriter v0.1.0 // indirect
github.com/moby/sys/mountinfo v0.7.2 // indirect
github.com/moby/sys/sequential v0.6.0 // indirect
github.com/moby/sys/signal v0.7.1 // indirect
github.com/moby/sys/user v0.3.0 // indirect
github.com/moby/sys/user v0.4.0 // indirect
github.com/moby/sys/userns v0.1.0 // indirect
github.com/moby/term v0.5.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/morikuni/aec v1.0.0 // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/morikuni/aec v1.1.0 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
@@ -207,43 +223,42 @@ require (
github.com/natefinch/atomic v1.0.1 // indirect
github.com/nxadm/tail v1.4.11 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pgavlin/fx/v2 v2.0.12 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pjbgf/sha1cd v0.6.0 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.21.0 // indirect
github.com/pulumi/esc v0.24.0 // indirect
github.com/pulumi/inflector v0.2.1 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
github.com/secure-systems-lab/go-securesystemslib v0.10.0 // indirect
github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/encoding v0.4.1 // indirect
github.com/sergi/go-diff v1.4.0 // indirect
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
github.com/shibumi/go-pathspec v1.3.0 // indirect
github.com/sigstore/sigstore v1.10.4 // indirect
github.com/sigstore/sigstore-go v1.1.4 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 // indirect
github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 // indirect
github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250211190051-7d4944a45bb6 // indirect
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect
github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect
@@ -256,51 +271,57 @@ require (
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/zclconf/go-cty v1.16.3 // indirect
github.com/zclconf/go-cty v1.17.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect
go.opentelemetry.io/otel v1.36.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
go.opentelemetry.io/proto/otlp v1.6.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/collector/featuregate v1.58.0 // indirect
go.opentelemetry.io/collector/pdata v1.58.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/bridge/opentracing v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
gocloud.dev v0.37.0 // indirect
gocloud.dev/secrets/hashivault v0.37.0 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.49.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/term v0.39.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.40.0 // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.55.0 // indirect
golang.org/x/oauth2 v0.36.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.45.0 // indirect
golang.org/x/term v0.43.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.44.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
google.golang.org/api v0.169.0 // indirect
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect
google.golang.org/grpc v1.72.1 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260522204824-7f3bc5b78da9 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260522204824-7f3bc5b78da9 // indirect
google.golang.org/grpc v1.81.1 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/api v0.31.2 // indirect
k8s.io/apimachinery v0.31.2 // indirect
k8s.io/client-go v0.31.2 // indirect
k8s.io/api v0.34.1 // indirect
k8s.io/apimachinery v0.34.1 // indirect
k8s.io/client-go v0.34.1 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
lukechampine.com/frand v1.5.1 // indirect
mvdan.cc/gofumpt v0.6.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)

808
go.sum

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -24,6 +24,7 @@ import (
"os"
"strings"
"github.com/containerd/errdefs"
"github.com/distribution/reference"
buildx "github.com/docker/buildx/build"
"github.com/docker/buildx/builder"
@@ -339,6 +340,9 @@ func (c *cli) ManifestInspect(ctx context.Context, target string) (string, error
}
m, err := rc.ManifestHead(ctx, ref)
if errors.Is(err, errs.ErrNotFound) {
return "", fmt.Errorf("fetching %q: %w", ref, errdefs.ErrNotFound)
}
if err != nil {
return "", fmt.Errorf("fetching %q: %w", ref, err)
}
@@ -359,6 +363,9 @@ func (c *cli) ManifestDelete(ctx context.Context, target string) error {
provider.GetLogger(ctx).Warning("this registry does not support deletions")
return nil
}
if errors.Is(err, errs.ErrNotFound) {
return nil
}
if err != nil {
return err
}

View File

@@ -170,7 +170,7 @@ func hashFile(
if fileMode.IsDir() {
return nil
}
if !(fileMode.IsRegular() || fileMode.Type() == os.ModeSymlink) {
if !fileMode.IsRegular() && fileMode.Type() != os.ModeSymlink {
return nil
}

View File

@@ -143,7 +143,7 @@ package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
@@ -241,6 +241,54 @@ variables:
fn::aws:ecr:getAuthorizationToken:
registryId: ${ecr-repository.registryId}
```
```hcl
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
version = "7.29.0"
}
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
data "aws_ecr_getauthorizationtoken" "authToken" {
registry_id = aws_ecr_repository.ecr-repository.registry_id
}
resource "aws_ecr_repository" "ecr-repository" {
}
resource "docker-build_image" "my-image" {
cache_from {
registry = {
ref ="${aws_ecr_repository.ecr-repository.repository_url}:cache"
}
}
cache_to {
registry = {
image_manifest = true
oci_media_types = true
ref ="${aws_ecr_repository.ecr-repository.repository_url}:cache"
}
}
context = {
location = "./app"
}
push = true
registries {
address = aws_ecr_repository.ecr-repository.repository_url
password = data.aws_ecr_getauthorizationtoken.authToken.password
username = data.aws_ecr_getauthorizationtoken.authToken.user_name
}
tags = ["${aws_ecr_repository.ecr-repository.repository_url}:latest"]
}
output "ref" {
value = docker-build_image.my-image.ref
}
```
```java
package generated_program;
@@ -258,8 +306,8 @@ import com.pulumi.dockerbuild.inputs.CacheToArgs;
import com.pulumi.dockerbuild.inputs.CacheToRegistryArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -280,14 +328,14 @@ public class App {
var myImage = new Image("myImage", ImageArgs.builder()
.cacheFrom(CacheFromArgs.builder()
.registry(CacheFromRegistryArgs.builder()
.ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
.ref(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:cache", _repositoryUrl)))
.build())
.build())
.cacheTo(CacheToArgs.builder()
.registry(CacheToRegistryArgs.builder()
.imageManifest(true)
.ociMediaTypes(true)
.ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
.ref(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:cache", _repositoryUrl)))
.build())
.build())
.context(BuildContextArgs.builder()
@@ -296,10 +344,10 @@ public class App {
.push(true)
.registries(RegistryArgs.builder()
.address(ecrRepository.repositoryUrl())
.password(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.password())))
.username(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.userName())))
.password(authToken.applyValue(_authToken -> _authToken.password()))
.username(authToken.applyValue(_authToken -> _authToken.userName()))
.build())
.tags(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
.tags(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:latest", _repositoryUrl)))
.build());
ctx.export("ref", myImage.ref());
@@ -406,6 +454,24 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
}
platforms = ["plan9/amd64", "plan9/386"]
push = false
}
```
```java
package generated_program;
@@ -415,8 +481,8 @@ import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -461,7 +527,7 @@ const image = new docker_build.Image("image", {
}],
tags: ["docker.io/pulumi/pulumi:3.107.0"],
});
export const ref = myImage.ref;
export const ref = image.ref;
```
```python
import pulumi
@@ -478,7 +544,7 @@ image = docker_build.Image("image",
"username": "pulumibot",
}],
tags=["docker.io/pulumi/pulumi:3.107.0"])
pulumi.export("ref", my_image["ref"])
pulumi.export("ref", image.ref)
```
```csharp
using System.Collections.Generic;
@@ -512,7 +578,7 @@ return await Deployment.RunAsync(() =>
return new Dictionary<string, object?>
{
["ref"] = myImage.Ref,
["ref"] = image.Ref,
};
});
@@ -527,7 +593,7 @@ import (
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
image, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("app"),
},
@@ -546,7 +612,7 @@ func main() {
if err != nil {
return err
}
ctx.Export("ref", myImage.Ref)
ctx.Export("ref", image.Ref)
return nil
})
}
@@ -555,7 +621,7 @@ func main() {
description: Registry export
name: registry
outputs:
ref: ${my-image.ref}
ref: ${image.ref}
resources:
image:
properties:
@@ -571,6 +637,32 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
}
push = true
registries {
address = "docker.io"
password = dockerHubPassword
username = "pulumibot"
}
tags = ["docker.io/pulumi/pulumi:3.107.0"]
}
output "ref" {
value = docker-build_image.image.ref
}
```
```java
package generated_program;
@@ -581,8 +673,8 @@ import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -607,7 +699,7 @@ public class App {
.tags("docker.io/pulumi/pulumi:3.107.0")
.build());
ctx.export("ref", myImage.ref());
ctx.export("ref", image.ref());
}
}
```
@@ -756,6 +848,34 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
cache_from {
local = {
src = "tmp/cache"
}
}
cache_to {
local = {
dest = "tmp/cache"
mode = "max"
}
}
context = {
location = "app"
}
push = false
}
```
```java
package generated_program;
@@ -769,8 +889,8 @@ import com.pulumi.dockerbuild.inputs.CacheFromLocalArgs;
import com.pulumi.dockerbuild.inputs.CacheToArgs;
import com.pulumi.dockerbuild.inputs.CacheToLocalArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -903,6 +1023,27 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
builder = {
name = "cloud-builder-name"
}
context = {
location = "app"
}
exec = true
push = false
}
```
```java
package generated_program;
@@ -913,8 +1054,8 @@ import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuilderConfigArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1035,6 +1176,26 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
build_args = {
"SET_ME_TO_TRUE" = "true"
}
context = {
location = "app"
}
push = false
}
```
```java
package generated_program;
@@ -1044,8 +1205,8 @@ import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1153,6 +1314,24 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
}
push = false
target = "build-me"
}
```
```java
package generated_program;
@@ -1162,8 +1341,8 @@ import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1291,6 +1470,28 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
named = {
"golang:latest" = {
location = "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
}
}
}
push = false
}
```
```java
package generated_program;
@@ -1300,8 +1501,8 @@ import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1316,12 +1517,13 @@ public class App {
var image = new Image("image", ImageArgs.builder()
.context(BuildContextArgs.builder()
.location("app")
.named(Map.of("golang:latest", Map.of("location", "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
.build())
.push(false)
.build());
.named(Map.of("golang:latest", ContextArgs.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression)))
.build())
.push(false)
.build());
}
}
}
```
{{% /example %}}
@@ -1404,6 +1606,23 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
}
push = false
}
```
```java
package generated_program;
@@ -1413,8 +1632,8 @@ import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1539,6 +1758,26 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
}
dockerfile = {
inline = "FROM busybox\nCOPY hello.c ./\n"
}
push = false
}
```
```java
package generated_program;
@@ -1549,8 +1788,8 @@ import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.DockerfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1673,6 +1912,26 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "https://github.com/docker-library/hello-world.git"
}
dockerfile = {
location = "app/Dockerfile"
}
push = false
}
```
```java
package generated_program;
@@ -1683,8 +1942,8 @@ import com.pulumi.dockerbuild.Image;
import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.DockerfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
@@ -1819,6 +2078,28 @@ resources:
type: docker-build:Image
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "image" {
context = {
location = "app"
}
exports {
docker = {
tar = true
}
}
push = false
}
```
```java
package generated_program;
@@ -1830,8 +2111,8 @@ import com.pulumi.dockerbuild.ImageArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.inputs.ExportArgs;
import com.pulumi.dockerbuild.inputs.ExportDockerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;

View File

@@ -327,6 +327,60 @@ resources:
type: docker-build:Index
runtime: yaml
```
```hcl
pulumi {
required_providers {
docker-build = {
source = "pulumi/docker-build"
version = "0.0.15"
}
}
}
resource "docker-build_image" "amd64" {
cache_from {
registry = {
ref = "docker.io/pulumi/pulumi:cache-amd64"
}
}
cache_to {
registry = {
mode = "max"
ref = "docker.io/pulumi/pulumi:cache-amd64"
}
}
context = {
location = "app"
}
platforms = ["linux/amd64"]
tags = ["docker.io/pulumi/pulumi:3.107.0-amd64"]
}
resource "docker-build_image" "arm64" {
cache_from {
registry = {
ref = "docker.io/pulumi/pulumi:cache-arm64"
}
}
cache_to {
registry = {
mode = "max"
ref = "docker.io/pulumi/pulumi:cache-arm64"
}
}
context = {
location = "app"
}
platforms = ["linux/arm64"]
tags = ["docker.io/pulumi/pulumi:3.107.0-arm64"]
}
resource "docker-build_index" "index" {
sources = [docker-build_image.amd64.ref, docker-build_image.arm64.ref]
tag = "docker.io/pulumi/pulumi:3.107.0"
}
output "ref" {
value = docker-build_index.index.ref
}
```
```java
package generated_program;
@@ -342,8 +396,8 @@ import com.pulumi.dockerbuild.inputs.CacheToRegistryArgs;
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
import com.pulumi.dockerbuild.Index;
import com.pulumi.dockerbuild.IndexArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;

View File

@@ -98,13 +98,13 @@ func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, err
if err != nil && build.ShouldExec() && strings.HasPrefix(opts.Builder, "cloud-") {
//nolint:revive // Human-readable.
err = errors.Join(err,
errors.New("Make sure you're logged in to Docker (`docker login`) if you're trying to use a cloud builder."),
errors.New("Make sure you have the correct buildx plugin installed (https://github.com/docker/buildx-desktop)."),
errors.New("Make sure you're logged in to Docker (`docker login`) if you're trying to use a cloud builder"), //nolint:lll,staticcheck
errors.New("Make sure you have the correct buildx plugin installed (https://github.com/docker/buildx-desktop)"), //nolint:lll,staticcheck
)
}
if err != nil && build.ShouldExec() {
//nolint:revive // Human-readable.
err = errors.Join(err, errors.New(
err = errors.Join(err, errors.New( //nolint:staticcheck
"Make sure your buildx plugin is executable (`docker buildx version`)"),
)
}
@@ -176,8 +176,8 @@ func (h *host) builderFor(ctx context.Context, build Build) (*cachedBuilder, err
if err != nil && !build.ShouldExec() {
if strings.Contains(err.Error(), "failed to find driver") {
//nolint:revive // Human-readable.
err = errors.Join(err, errors.New(
"Use `exec: true` if you're trying to use Docker Build Cloud or other custom drivers.",
err = errors.Join(err, errors.New( //nolint:staticcheck
"Use `exec: true` if you're trying to use Docker Build Cloud or other custom drivers",
))
}
return nil, fmt.Errorf("loading nodes: %w", err)

View File

@@ -28,9 +28,9 @@ import (
_ "github.com/docker/buildx/driver/kubernetes"
_ "github.com/docker/buildx/driver/remote"
"github.com/containerd/errdefs"
"github.com/distribution/reference"
controllerapi "github.com/docker/buildx/controller/pb"
"github.com/docker/docker/errdefs"
"github.com/moby/buildkit/exporter/containerimage/exptypes"
"github.com/moby/buildkit/session"
"github.com/moby/buildkit/session/secrets/secretsprovider"

View File

@@ -19,11 +19,11 @@ import (
"errors"
"fmt"
"reflect"
"strings"
// For examples/docs.
_ "embed"
"github.com/containerd/errdefs"
"github.com/regclient/regclient/types/errs"
provider "github.com/pulumi/pulumi-go-provider"
@@ -223,7 +223,7 @@ func (i *Index) Read(
provider.GetLogger(ctx).Debug("reading index with tag " + input.Tag)
digest, err := cli.ManifestInspect(ctx, input.Tag)
if errors.Is(err, errs.ErrNotFound) {
if errdefs.IsNotFound(err) {
// A remote tag was expected but isn't there -- delete the resource.
return infer.ReadResponse[IndexArgs, IndexState]{ID: "", Inputs: input, State: state}, nil
}
@@ -304,9 +304,7 @@ func (i *Index) Delete(
}
err = cli.ManifestDelete(ctx, state.Ref)
// TODO: Upstream buildx swallows the error types we'd like to test for
// here.
if err != nil && strings.Contains(err.Error(), "No such manifest:") {
if errdefs.IsNotFound(err) {
return infer.DeleteResponse{}, nil
}
return infer.DeleteResponse{}, err

View File

@@ -24,6 +24,7 @@ import (
"go.uber.org/mock/gomock"
provider "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi-go-provider/infer"
"github.com/pulumi/pulumi-go-provider/integration"
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
"github.com/pulumi/pulumi/sdk/v3/go/common/util/mapper"
@@ -235,3 +236,26 @@ func TestIndexDiff(t *testing.T) {
})
}
}
func TestIndexDelete(t *testing.T) {
t.Parallel()
t.Run("manifest already deleted (404)", func(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
client := NewMockClient(ctrl)
client.EXPECT().
ManifestDelete(gomock.Any(), "docker.io/pulumi/test:manifest").
Return(errNotFound{})
i := &Index{clientF: mockClientF(client)}
_, err := i.Delete(t.Context(), infer.DeleteRequest[IndexState]{
ID: "foo",
State: IndexState{
IndexArgs: IndexArgs{Tag: "docker.io/pulumi/test:manifest"},
Ref: "docker.io/pulumi/test:manifest",
},
})
assert.NoError(t, err)
})
}

View File

@@ -18,11 +18,11 @@ import (
"context"
"fmt"
csgen "github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen"
provider "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi-go-provider/infer"
pschema "github.com/pulumi/pulumi-go-provider/middleware/schema"
"github.com/pulumi/pulumi-java/pkg/codegen/java"
csgen "github.com/pulumi/pulumi/pkg/v3/codegen/dotnet"
gogen "github.com/pulumi/pulumi/pkg/v3/codegen/go"
tsgen "github.com/pulumi/pulumi/pkg/v3/codegen/nodejs"
pygen "github.com/pulumi/pulumi/pkg/v3/codegen/python"

2
sdk/dotnet/Image.cs generated
View File

@@ -240,7 +240,7 @@ namespace Pulumi.DockerBuild
///
/// return new Dictionary&lt;string, object?&gt;
/// {
/// ["ref"] = myImage.Ref,
/// ["ref"] = image.Ref,
/// };
/// });
///

View File

@@ -1,100 +1,124 @@
module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild
go 1.24.7
go 1.25.8
require (
github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi/sdk/v3 v3.219.0
github.com/pulumi/pulumi/sdk/v3 v3.243.0
)
require (
dario.cat/mergo v1.0.1 // indirect
github.com/BurntSushi/toml v1.6.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.2.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect
github.com/charmbracelet/bubbletea v1.3.4 // indirect
github.com/charmbracelet/colorprofile v0.3.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/bubbles v1.0.0 // indirect
github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/charmbracelet/x/ansi v0.11.7 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/djherbis/times v1.6.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/fatih/color v1.17.0 // indirect
github.com/frankban/quicktest v1.14.6 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.2 // indirect
github.com/go-git/go-git/v5 v5.16.0 // indirect
github.com/go-git/go-billy/v5 v5.9.0 // indirect
github.com/go-git/go-git/v5 v5.19.1 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.4 // indirect
github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.22 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-runewidth v0.0.23 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/fx/v2 v2.0.10 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pgavlin/fx/v2 v2.0.12 // indirect
github.com/pjbgf/sha1cd v0.6.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.21.0 // indirect
github.com/pulumi/esc v0.24.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.4.0 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/stretchr/testify v1.11.1 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/zclconf/go-cty v1.16.3 // indirect
go.opentelemetry.io/otel/sdk v1.36.0 // indirect
github.com/zclconf/go-cty v1.17.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/collector/featuregate v1.58.0 // indirect
go.opentelemetry.io/collector/pdata v1.58.0 // indirect
go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
go.opentelemetry.io/otel/metric v1.43.0 // indirect
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
go.opentelemetry.io/otel/trace v1.43.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.47.0 // indirect
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.49.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/term v0.39.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/tools v0.40.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect
google.golang.org/grpc v1.72.1 // indirect
google.golang.org/protobuf v1.36.6 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.51.0 // indirect
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.55.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.45.0 // indirect
golang.org/x/term v0.43.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/tools v0.44.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260522204824-7f3bc5b78da9 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260522204824-7f3bc5b78da9 // indirect
google.golang.org/grpc v1.81.1 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.5.1 // indirect
pgregory.net/rapid v1.2.0 // indirect
)

View File

@@ -1,5 +1,7 @@
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
@@ -21,28 +23,35 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs=
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
github.com/charmbracelet/colorprofile v0.3.0 h1:KtLh9uuu1RCt+Hml4s6Hz+kB1PfV3wi++1h5ia65yKQ=
github.com/charmbracelet/colorprofile v0.3.0/go.mod h1:oHJ340RS2nmG1zRGPmhJKJ/jf4FPNNk0P39/wBPA1G0=
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q=
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI=
github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ=
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -56,38 +65,41 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM=
github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
github.com/go-git/go-billy/v5 v5.9.0 h1:jItGXszUDRtR/AlferWPTMN4j38BQ88XnXKbilmmBPA=
github.com/go-git/go-billy/v5 v5.9.0/go.mod h1:jCnQMLj9eUgGU7+ludSTYoZL/GGmii14RxKFj7ROgHw=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.16.0 h1:k3kuOEpkc0DeY7xlL6NaaNg39xdgQbtH5mwCafHO9AQ=
github.com/go-git/go-git/v5 v5.16.0/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-git/go-git/v5 v5.19.1 h1:nX27AnaU43/K5bKktKwgBmR9lawoYVe1Ckg0rgzzN00=
github.com/go-git/go-git/v5 v5.19.1/go.mod h1:Pb1v0c7/g8aGQJwx9Us09W85yGoyvSwuhEGMH7zjDKQ=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -95,17 +107,25 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos=
github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/hashicorp/go-version v1.9.0 h1:CeOIz6k+LoN3qX9Z0tyQrPtiB1DFYRPfCIBtaXPSCnA=
github.com/hashicorp/go-version v1.9.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE=
github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -113,24 +133,30 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4=
github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
@@ -146,11 +172,10 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pgavlin/fx/v2 v2.0.10 h1:ggyQ6pB+lEQEbEae48Wh/X221eLOamMD7i01ISe88u4=
github.com/pgavlin/fx/v2 v2.0.10/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pgavlin/fx/v2 v2.0.12 h1:SjjaJ68Dt8Z4zHwOpY/RPijd7lShs6xYupJbF9ra00M=
github.com/pgavlin/fx/v2 v2.0.12/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU=
github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
@@ -160,14 +185,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.21.0 h1:TR8Ff22SU+z8cooTmUKkmk2FltXW/wDPrIwI9BP88Vk=
github.com/pulumi/esc v0.21.0/go.mod h1:mkghIFn/TvN3XnP4jmCB4U5BG1I4UjGluARi39ckrCE=
github.com/pulumi/pulumi/sdk/v3 v3.219.0 h1:OwTSwk1ZuOI4hQUdSccWuIAuqs4fL/FcppesPOAKHQ8=
github.com/pulumi/pulumi/sdk/v3 v3.219.0/go.mod h1:ZOBPPC2NZOZf729AdCX+CctfNc5SN6aJh0bdqNdzQC4=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/pulumi/esc v0.24.0 h1:sCtiB0qbyrlU1ZNzJn4dTLYiChl8xeCBFbHWl1YoXJg=
github.com/pulumi/esc v0.24.0/go.mod h1:eCOOkcDJS6eooGwdE4/E0+pOsvUWG254+KBmPCFwJpA=
github.com/pulumi/pulumi/sdk/v3 v3.243.0 h1:pZaMx58nXrdh4XB0cgTlHnL3EMy3/JQwuin3aDuWyRM=
github.com/pulumi/pulumi/sdk/v3 v3.243.0/go.mod h1:BPWWuYPXcPH5YbXGoyy9Rrfa+evrh6IdM51AjDhcDpM=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -180,8 +203,8 @@ github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnB
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -206,49 +229,72 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/zclconf/go-cty v1.16.3 h1:osr++gw2T61A8KVYHoQiFbFd1Lh3JOCXc/jFLJXKTxk=
github.com/zclconf/go-cty v1.16.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg=
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E=
go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE=
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs=
go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs=
go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY=
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w=
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA=
github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0=
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/collector/featuregate v1.58.0 h1:Kh6Dpgbxywv/Q3D6qPehaSxNCxvr/U/ki7CL4y3udCo=
go.opentelemetry.io/collector/featuregate v1.58.0/go.mod h1:4ga1QBMPEejXXmpyJS8lmaRpknJ3Lb9Bvk6e420bUFU=
go.opentelemetry.io/collector/internal/testutil v0.152.0 h1:8LGwekR7mLcUDhT1ofLmdnrHRFuUa3U7PBd95ZvJEjQ=
go.opentelemetry.io/collector/internal/testutil v0.152.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE=
go.opentelemetry.io/collector/pdata v1.58.0 h1:5Lxut3NxKp87066Pzt+3q7+JUuFI5B3teCyLZIF8wIs=
go.opentelemetry.io/collector/pdata v1.58.0/go.mod h1:4vZtODINbC/JF3eGocnatdImzbRHseOywIcr+aULjCg=
go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 h1:RAE+JPfvEmvy+0LzyUA25/SGawPwIUbZ6u0Wug54sLc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0/go.mod h1:AGmbycVGEsRx9mXMZ75CsOyhSP6MFIcj/6dnG+vhVjk=
go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g=
go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk=
go.opentelemetry.io/proto/slim/otlp v1.10.0 h1:iR97Vs/ZDR+y9TfuP9b1XBtdPWeC+OMslIBmhcLU7jM=
go.opentelemetry.io/proto/slim/otlp v1.10.0/go.mod h1:lV9250stpjYLPNA5viFabIgP2QlUGRT1GdTgAf8SIUk=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0 h1:RUF5rO0hAlgiJt1fzQVzcVs3vZVNHIcMLgOgG4rWNcQ=
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0/go.mod h1:I89cynRj8y+383o7tEQVg2SVA6SRgDVIouWPUVXjx0U=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0 h1:CQvJSldHRUN6Z8jsUeYv8J0lXRvygALXIzsmAeCcZE0=
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0/go.mod h1:xSQ+mEfJe/GjK1LXEyVOoSI1N9JV9ZI923X5kup43W4=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8=
golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -263,35 +309,38 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
google.golang.org/genproto/googleapis/api v0.0.0-20260522204824-7f3bc5b78da9 h1:dlKupvNsf7YXJYxduemxBzqGX8zjzedsttskfjgLIO8=
google.golang.org/genproto/googleapis/api v0.0.0-20260522204824-7f3bc5b78da9/go.mod h1:1dCETSCY2YKZNXQE3h4fun3TYwF5p8jejRKZgfWAgAY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260522204824-7f3bc5b78da9 h1:UScUq4IhqF8ll85bMGS/l0D+iGzwQXpX5RBYQEwjahU=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260522204824-7f3bc5b78da9/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

View File

@@ -124,7 +124,7 @@ import (
//
// "fmt"
//
// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
@@ -234,7 +234,7 @@ import (
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
// image, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
@@ -253,7 +253,7 @@ import (
// if err != nil {
// return err
// }
// ctx.Export("ref", myImage.Ref)
// ctx.Export("ref", image.Ref)
// return nil
// })
// }

View File

@@ -124,7 +124,7 @@ import (
//
// "fmt"
//
// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
@@ -234,7 +234,7 @@ import (
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
// image, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
@@ -253,7 +253,7 @@ import (
// if err != nil {
// return err
// }
// ctx.Export("ref", myImage.Ref)
// ctx.Export("ref", image.Ref)
// return nil
// })
// }

View File

@@ -11,4 +11,3 @@ pluginManagement {
}
rootProject.name = "com.pulumi.docker-build"
include("lib")

View File

@@ -148,8 +148,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.inputs.CacheToRegistryArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.inputs.RegistryArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -170,14 +170,14 @@ import javax.annotation.Nullable;
* var myImage = new Image("myImage", ImageArgs.builder()
* .cacheFrom(CacheFromArgs.builder()
* .registry(CacheFromRegistryArgs.builder()
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
* .ref(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:cache", _repositoryUrl)))
* .build())
* .build())
* .cacheTo(CacheToArgs.builder()
* .registry(CacheToRegistryArgs.builder()
* .imageManifest(true)
* .ociMediaTypes(true)
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
* .ref(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:cache", _repositoryUrl)))
* .build())
* .build())
* .context(BuildContextArgs.builder()
@@ -186,10 +186,10 @@ import javax.annotation.Nullable;
* .push(true)
* .registries(RegistryArgs.builder()
* .address(ecrRepository.repositoryUrl())
* .password(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.password())))
* .username(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.userName())))
* .password(authToken.applyValue(_authToken -> _authToken.password()))
* .username(authToken.applyValue(_authToken -> _authToken.userName()))
* .build())
* .tags(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
* .tags(ecrRepository.repositoryUrl().applyValue(_repositoryUrl -> String.format("%s:latest", _repositoryUrl)))
* .build());
*
* ctx.export("ref", myImage.ref());
@@ -208,8 +208,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -247,8 +247,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.inputs.RegistryArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -273,7 +273,7 @@ import javax.annotation.Nullable;
* .tags("docker.io/pulumi/pulumi:3.107.0")
* .build());
*
* ctx.export("ref", myImage.ref());
* ctx.export("ref", image.ref());
* }
* }
* }
@@ -293,8 +293,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.inputs.CacheToArgs;
* import com.pulumi.dockerbuild.inputs.CacheToLocalArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -340,8 +340,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuilderConfigArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -379,8 +379,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -415,8 +415,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -451,29 +451,30 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App }{{@code
* public static void main(String[] args) }{{@code
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }}{@code
* }
*
* public static void stack(Context ctx) }{{@code
* public static void stack(Context ctx) {
* var image = new Image("image", ImageArgs.builder()
* .context(BuildContextArgs.builder()
* .location("app")
* .named(Map.of("golang:latest", Map.of("location", "docker-image://golang}{@literal @}{@code sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
* .build())
* .push(false)
* .build());
* .named(Map.of("golang:latest", ContextArgs.builder()
* %!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression)))
* .build())
* .push(false)
* .build());
*
* }}{@code
* }}{@code
* }
* }
* }
* </pre>
* ### Remote context
@@ -487,8 +488,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.Image;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -523,8 +524,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.inputs.DockerfileArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -565,8 +566,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.ImageArgs;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.inputs.DockerfileArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
@@ -605,8 +606,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.inputs.ExportArgs;
* import com.pulumi.dockerbuild.inputs.ExportDockerArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;

View File

@@ -55,8 +55,8 @@ import javax.annotation.Nullable;
* import com.pulumi.dockerbuild.inputs.BuildContextArgs;
* import com.pulumi.dockerbuild.Index;
* import com.pulumi.dockerbuild.IndexArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Arrays;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;

44
sdk/nodejs/image.ts generated
View File

@@ -312,7 +312,7 @@ import * as utilities from "./utilities";
* }],
* tags: ["docker.io/pulumi/pulumi:3.107.0"],
* });
* export const ref = myImage.ref;
* export const ref = image.ref;
* ```
* ### Caching
*
@@ -798,7 +798,7 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--add-host` flag.
*/
addHosts?: pulumi.Input<pulumi.Input<string>[]>;
addHosts?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* `ARG` names and values to set during the build.
*
@@ -810,7 +810,7 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--build-arg` flag.
*/
buildArgs?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
buildArgs?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
@@ -824,35 +824,35 @@ export interface ImageArgs {
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*/
buildOnPreview?: pulumi.Input<boolean>;
buildOnPreview?: pulumi.Input<boolean | undefined>;
/**
* Builder configuration.
*/
builder?: pulumi.Input<inputs.BuilderConfigArgs>;
builder?: pulumi.Input<inputs.BuilderConfigArgs | undefined>;
/**
* Cache export configuration.
*
* Equivalent to Docker's `--cache-from` flag.
*/
cacheFrom?: pulumi.Input<pulumi.Input<inputs.CacheFromArgs>[]>;
cacheFrom?: pulumi.Input<pulumi.Input<inputs.CacheFromArgs>[] | undefined>;
/**
* Cache import configuration.
*
* Equivalent to Docker's `--cache-to` flag.
*/
cacheTo?: pulumi.Input<pulumi.Input<inputs.CacheToArgs>[]>;
cacheTo?: pulumi.Input<pulumi.Input<inputs.CacheToArgs>[] | undefined>;
/**
* Build context settings. Defaults to the current directory.
*
* Equivalent to Docker's `PATH | URL | -` positional argument.
*/
context?: pulumi.Input<inputs.BuildContextArgs>;
context?: pulumi.Input<inputs.BuildContextArgs | undefined>;
/**
* Dockerfile settings.
*
* Equivalent to Docker's `--file` flag.
*/
dockerfile?: pulumi.Input<inputs.DockerfileArgs>;
dockerfile?: pulumi.Input<inputs.DockerfileArgs | undefined>;
/**
* Use `exec` mode to build this image.
*
@@ -875,7 +875,7 @@ export interface ImageArgs {
* are temporarily written to disk in order to provide them to the
* `docker-buildx` binary.
*/
exec?: pulumi.Input<boolean>;
exec?: pulumi.Input<boolean | undefined>;
/**
* Controls where images are persisted after building.
*
@@ -887,13 +887,13 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--output` flag.
*/
exports?: pulumi.Input<pulumi.Input<inputs.ExportArgs>[]>;
exports?: pulumi.Input<pulumi.Input<inputs.ExportArgs>[] | undefined>;
/**
* Attach arbitrary key/value metadata to the image.
*
* Equivalent to Docker's `--label` flag.
*/
labels?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
labels?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* When `true` the build will automatically include a `docker` export.
*
@@ -901,7 +901,7 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--load` flag.
*/
load?: pulumi.Input<boolean>;
load?: pulumi.Input<boolean | undefined>;
/**
* Set the network mode for `RUN` instructions. Defaults to `default`.
*
@@ -909,25 +909,25 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--network` flag.
*/
network?: pulumi.Input<enums.NetworkMode>;
network?: pulumi.Input<enums.NetworkMode | undefined>;
/**
* Do not import cache manifests when building the image.
*
* Equivalent to Docker's `--no-cache` flag.
*/
noCache?: pulumi.Input<boolean>;
noCache?: pulumi.Input<boolean | undefined>;
/**
* Set target platform(s) for the build. Defaults to the host's platform.
*
* Equivalent to Docker's `--platform` flag.
*/
platforms?: pulumi.Input<pulumi.Input<enums.Platform>[]>;
platforms?: pulumi.Input<pulumi.Input<enums.Platform>[] | undefined>;
/**
* Always pull referenced images.
*
* Equivalent to Docker's `--pull` flag.
*/
pull?: pulumi.Input<boolean>;
pull?: pulumi.Input<boolean | undefined>;
/**
* When `true` the build will automatically include a `registry` export.
*
@@ -945,7 +945,7 @@ export interface ImageArgs {
*
* Similar to `docker login`.
*/
registries?: pulumi.Input<pulumi.Input<inputs.RegistryArgs>[]>;
registries?: pulumi.Input<pulumi.Input<inputs.RegistryArgs>[] | undefined>;
/**
* A mapping of secret names to their corresponding values.
*
@@ -957,13 +957,13 @@ export interface ImageArgs {
*
* Similar to Docker's `--secret` flag.
*/
secrets?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
secrets?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* SSH agent socket or keys to expose to the build.
*
* Equivalent to Docker's `--ssh` flag.
*/
ssh?: pulumi.Input<pulumi.Input<inputs.SSHArgs>[]>;
ssh?: pulumi.Input<pulumi.Input<inputs.SSHArgs>[] | undefined>;
/**
* Name and optionally a tag (format: `name:tag`).
*
@@ -972,7 +972,7 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--tag` flag.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Set the target build stage(s) to build.
*
@@ -980,5 +980,5 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--target` flag.
*/
target?: pulumi.Input<string>;
target?: pulumi.Input<string | undefined>;
}

4
sdk/nodejs/index_.ts generated
View File

@@ -178,13 +178,13 @@ export interface IndexArgs {
*
* Defaults to `true`.
*/
push?: pulumi.Input<boolean>;
push?: pulumi.Input<boolean | undefined>;
/**
* Authentication for the registry where the tagged index will be pushed.
*
* Credentials can also be included with the provider's configuration.
*/
registry?: pulumi.Input<inputs.RegistryArgs>;
registry?: pulumi.Input<inputs.RegistryArgs | undefined>;
/**
* Existing images to include in the index.
*/

View File

@@ -17,8 +17,8 @@
"@pulumi/pulumi": "^3.142.0"
},
"devDependencies": {
"@types/node": "^18",
"typescript": "^4.3.5"
"@types/node": "^20",
"typescript": "^4.7.0"
},
"pulumi": {
"resource": true,

View File

@@ -53,6 +53,6 @@ export interface ProviderArgs {
/**
* The build daemon's address.
*/
host?: pulumi.Input<string>;
registries?: pulumi.Input<pulumi.Input<inputs.RegistryArgs>[]>;
host?: pulumi.Input<string | undefined>;
registries?: pulumi.Input<pulumi.Input<inputs.RegistryArgs>[] | undefined>;
}

View File

@@ -1,16 +1,22 @@
{
"compilerOptions": {
// Output
"outDir": "bin",
"target": "ES2020",
"module": "commonjs",
"moduleResolution": "node",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"stripInternal": true,
"experimentalDecorators": true,
// Environment
"target": "ES2022",
"module": "nodenext",
"moduleResolution": "nodenext",
"moduleDetection": "force",
"types": ["node"],
// Type Checking
"strict": true,
"noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true,
"strict": true
"noImplicitReturns": true,
"skipLibCheck": true
},
"files": [
"config/index.ts",

View File

@@ -28,7 +28,7 @@ export interface BuildContextArgs {
*
* Values can be local paths, HTTP URLs, or `docker-image://` images.
*/
named?: pulumi.Input<{[key: string]: pulumi.Input<inputs.ContextArgs>}>;
named?: pulumi.Input<{[key: string]: pulumi.Input<inputs.ContextArgs>} | undefined>;
}
export interface BuilderConfigArgs {
@@ -40,43 +40,43 @@ export interface BuilderConfigArgs {
*
* Equivalent to Docker's `--builder` flag.
*/
name?: pulumi.Input<string>;
name?: pulumi.Input<string | undefined>;
}
export interface CacheFromArgs {
/**
* Upload build caches to Azure's blob storage service.
*/
azblob?: pulumi.Input<inputs.CacheFromAzureBlobArgs>;
azblob?: pulumi.Input<inputs.CacheFromAzureBlobArgs | undefined>;
/**
* When `true` this entry will be excluded. Defaults to `false`.
*/
disabled?: pulumi.Input<boolean>;
disabled?: pulumi.Input<boolean | undefined>;
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to
* expose appropriate credentials to your GitHub workflow.
*/
gha?: pulumi.Input<inputs.CacheFromGitHubActionsArgs>;
gha?: pulumi.Input<inputs.CacheFromGitHubActionsArgs | undefined>;
/**
* A simple backend which caches images on your local filesystem.
*/
local?: pulumi.Input<inputs.CacheFromLocalArgs>;
local?: pulumi.Input<inputs.CacheFromLocalArgs | undefined>;
/**
* A raw string as you would provide it to the Docker CLI (e.g.,
* `type=inline`).
*/
raw?: pulumi.Input<string>;
raw?: pulumi.Input<string | undefined>;
/**
* Upload build caches to remote registries.
*/
registry?: pulumi.Input<inputs.CacheFromRegistryArgs>;
registry?: pulumi.Input<inputs.CacheFromRegistryArgs | undefined>;
/**
* Upload build caches to AWS S3 or an S3-compatible services such as
* MinIO.
*/
s3?: pulumi.Input<inputs.CacheFromS3Args>;
s3?: pulumi.Input<inputs.CacheFromS3Args | undefined>;
}
/**
* cacheFromArgsProvideDefaults sets the appropriate defaults for CacheFromArgs
@@ -84,8 +84,8 @@ export interface CacheFromArgs {
export function cacheFromArgsProvideDefaults(val: CacheFromArgs): CacheFromArgs {
return {
...val,
gha: (val.gha ? pulumi.output(val.gha).apply(inputs.cacheFromGitHubActionsArgsProvideDefaults) : undefined),
s3: (val.s3 ? pulumi.output(val.s3).apply(inputs.cacheFromS3ArgsProvideDefaults) : undefined),
gha: pulumi.output(val.gha).apply(v => v === undefined ? undefined : inputs.cacheFromGitHubActionsArgsProvideDefaults(v)),
s3: pulumi.output(val.s3).apply(v => v === undefined ? undefined : inputs.cacheFromS3ArgsProvideDefaults(v)),
};
}
@@ -93,7 +93,7 @@ export interface CacheFromAzureBlobArgs {
/**
* Base URL of the storage account.
*/
accountUrl?: pulumi.Input<string>;
accountUrl?: pulumi.Input<string | undefined>;
/**
* The name of the cache image.
*/
@@ -101,7 +101,7 @@ export interface CacheFromAzureBlobArgs {
/**
* Blob storage account key.
*/
secretAccessKey?: pulumi.Input<string>;
secretAccessKey?: pulumi.Input<string | undefined>;
}
/**
@@ -117,7 +117,7 @@ export interface CacheFromGitHubActionsArgs {
* This should be set if building and caching multiple images in one
* workflow, otherwise caches will overwrite each other.
*/
scope?: pulumi.Input<string>;
scope?: pulumi.Input<string | undefined>;
}
/**
* cacheFromGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheFromGitHubActionsArgs
@@ -133,7 +133,7 @@ export interface CacheFromLocalArgs {
/**
* Digest of manifest to import.
*/
digest?: pulumi.Input<string>;
digest?: pulumi.Input<string | undefined>;
/**
* Path of the local directory where cache gets imported from.
*/
@@ -151,11 +151,11 @@ export interface CacheFromS3Args {
/**
* Defaults to `$AWS_ACCESS_KEY_ID`.
*/
accessKeyId?: pulumi.Input<string>;
accessKeyId?: pulumi.Input<string | undefined>;
/**
* Prefix to prepend to blob filenames.
*/
blobsPrefix?: pulumi.Input<string>;
blobsPrefix?: pulumi.Input<string | undefined>;
/**
* Name of the S3 bucket.
*/
@@ -163,15 +163,15 @@ export interface CacheFromS3Args {
/**
* Endpoint of the S3 bucket.
*/
endpointUrl?: pulumi.Input<string>;
endpointUrl?: pulumi.Input<string | undefined>;
/**
* Prefix to prepend on manifest filenames.
*/
manifestsPrefix?: pulumi.Input<string>;
manifestsPrefix?: pulumi.Input<string | undefined>;
/**
* Name of the cache image.
*/
name?: pulumi.Input<string>;
name?: pulumi.Input<string | undefined>;
/**
* The geographic location of the bucket. Defaults to `$AWS_REGION`.
*/
@@ -179,15 +179,15 @@ export interface CacheFromS3Args {
/**
* Defaults to `$AWS_SECRET_ACCESS_KEY`.
*/
secretAccessKey?: pulumi.Input<string>;
secretAccessKey?: pulumi.Input<string | undefined>;
/**
* Defaults to `$AWS_SESSION_TOKEN`.
*/
sessionToken?: pulumi.Input<string>;
sessionToken?: pulumi.Input<string | undefined>;
/**
* Uses `bucket` in the URL instead of hostname when `true`.
*/
usePathStyle?: pulumi.Input<boolean>;
usePathStyle?: pulumi.Input<boolean | undefined>;
}
/**
* cacheFromS3ArgsProvideDefaults sets the appropriate defaults for CacheFromS3Args
@@ -206,42 +206,42 @@ export interface CacheToArgs {
/**
* Push cache to Azure's blob storage service.
*/
azblob?: pulumi.Input<inputs.CacheToAzureBlobArgs>;
azblob?: pulumi.Input<inputs.CacheToAzureBlobArgs | undefined>;
/**
* When `true` this entry will be excluded. Defaults to `false`.
*/
disabled?: pulumi.Input<boolean>;
disabled?: pulumi.Input<boolean | undefined>;
/**
* Recommended for use with GitHub Actions workflows.
*
* An action like `crazy-max/ghaction-github-runtime` is recommended to
* expose appropriate credentials to your GitHub workflow.
*/
gha?: pulumi.Input<inputs.CacheToGitHubActionsArgs>;
gha?: pulumi.Input<inputs.CacheToGitHubActionsArgs | undefined>;
/**
* The inline cache storage backend is the simplest implementation to get
* started with, but it does not handle multi-stage builds. Consider the
* `registry` cache backend instead.
*/
inline?: pulumi.Input<inputs.CacheToInlineArgs>;
inline?: pulumi.Input<inputs.CacheToInlineArgs | undefined>;
/**
* A simple backend which caches imagines on your local filesystem.
*/
local?: pulumi.Input<inputs.CacheToLocalArgs>;
local?: pulumi.Input<inputs.CacheToLocalArgs | undefined>;
/**
* A raw string as you would provide it to the Docker CLI (e.g.,
* `type=inline`)
*/
raw?: pulumi.Input<string>;
raw?: pulumi.Input<string | undefined>;
/**
* Push caches to remote registries. Incompatible with the `docker` build
* driver.
*/
registry?: pulumi.Input<inputs.CacheToRegistryArgs>;
registry?: pulumi.Input<inputs.CacheToRegistryArgs | undefined>;
/**
* Push cache to AWS S3 or S3-compatible services such as MinIO.
*/
s3?: pulumi.Input<inputs.CacheToS3Args>;
s3?: pulumi.Input<inputs.CacheToS3Args | undefined>;
}
/**
* cacheToArgsProvideDefaults sets the appropriate defaults for CacheToArgs
@@ -249,11 +249,11 @@ export interface CacheToArgs {
export function cacheToArgsProvideDefaults(val: CacheToArgs): CacheToArgs {
return {
...val,
azblob: (val.azblob ? pulumi.output(val.azblob).apply(inputs.cacheToAzureBlobArgsProvideDefaults) : undefined),
gha: (val.gha ? pulumi.output(val.gha).apply(inputs.cacheToGitHubActionsArgsProvideDefaults) : undefined),
local: (val.local ? pulumi.output(val.local).apply(inputs.cacheToLocalArgsProvideDefaults) : undefined),
registry: (val.registry ? pulumi.output(val.registry).apply(inputs.cacheToRegistryArgsProvideDefaults) : undefined),
s3: (val.s3 ? pulumi.output(val.s3).apply(inputs.cacheToS3ArgsProvideDefaults) : undefined),
azblob: pulumi.output(val.azblob).apply(v => v === undefined ? undefined : inputs.cacheToAzureBlobArgsProvideDefaults(v)),
gha: pulumi.output(val.gha).apply(v => v === undefined ? undefined : inputs.cacheToGitHubActionsArgsProvideDefaults(v)),
local: pulumi.output(val.local).apply(v => v === undefined ? undefined : inputs.cacheToLocalArgsProvideDefaults(v)),
registry: pulumi.output(val.registry).apply(v => v === undefined ? undefined : inputs.cacheToRegistryArgsProvideDefaults(v)),
s3: pulumi.output(val.s3).apply(v => v === undefined ? undefined : inputs.cacheToS3ArgsProvideDefaults(v)),
};
}
@@ -261,15 +261,15 @@ export interface CacheToAzureBlobArgs {
/**
* Base URL of the storage account.
*/
accountUrl?: pulumi.Input<string>;
accountUrl?: pulumi.Input<string | undefined>;
/**
* Ignore errors caused by failed cache exports.
*/
ignoreError?: pulumi.Input<boolean>;
ignoreError?: pulumi.Input<boolean | undefined>;
/**
* The cache mode to use. Defaults to `min`.
*/
mode?: pulumi.Input<enums.CacheMode>;
mode?: pulumi.Input<enums.CacheMode | undefined>;
/**
* The name of the cache image.
*/
@@ -277,7 +277,7 @@ export interface CacheToAzureBlobArgs {
/**
* Blob storage account key.
*/
secretAccessKey?: pulumi.Input<string>;
secretAccessKey?: pulumi.Input<string | undefined>;
}
/**
* cacheToAzureBlobArgsProvideDefaults sets the appropriate defaults for CacheToAzureBlobArgs
@@ -300,18 +300,18 @@ export interface CacheToGitHubActionsArgs {
/**
* Ignore errors caused by failed cache exports.
*/
ignoreError?: pulumi.Input<boolean>;
ignoreError?: pulumi.Input<boolean | undefined>;
/**
* The cache mode to use. Defaults to `min`.
*/
mode?: pulumi.Input<enums.CacheMode>;
mode?: pulumi.Input<enums.CacheMode | undefined>;
/**
* The scope to use for cache keys. Defaults to `buildkit`.
*
* This should be set if building and caching multiple images in one
* workflow, otherwise caches will overwrite each other.
*/
scope?: pulumi.Input<string>;
scope?: pulumi.Input<string | undefined>;
}
/**
* cacheToGitHubActionsArgsProvideDefaults sets the appropriate defaults for CacheToGitHubActionsArgs
@@ -335,11 +335,11 @@ export interface CacheToLocalArgs {
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* Path of the local directory to export the cache.
*/
@@ -347,15 +347,15 @@ export interface CacheToLocalArgs {
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Ignore errors caused by failed cache exports.
*/
ignoreError?: pulumi.Input<boolean>;
ignoreError?: pulumi.Input<boolean | undefined>;
/**
* The cache mode to use. Defaults to `min`.
*/
mode?: pulumi.Input<enums.CacheMode>;
mode?: pulumi.Input<enums.CacheMode | undefined>;
}
/**
* cacheToLocalArgsProvideDefaults sets the appropriate defaults for CacheToLocalArgs
@@ -375,19 +375,19 @@ export interface CacheToRegistryArgs {
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Ignore errors caused by failed cache exports.
*/
ignoreError?: pulumi.Input<boolean>;
ignoreError?: pulumi.Input<boolean | undefined>;
/**
* Export cache manifest as an OCI-compatible image manifest instead of a
* manifest list. Requires `ociMediaTypes` to also be `true`.
@@ -397,16 +397,16 @@ export interface CacheToRegistryArgs {
*
* Defaults to `false` to match Docker's default behavior.
*/
imageManifest?: pulumi.Input<boolean>;
imageManifest?: pulumi.Input<boolean | undefined>;
/**
* The cache mode to use. Defaults to `min`.
*/
mode?: pulumi.Input<enums.CacheMode>;
mode?: pulumi.Input<enums.CacheMode | undefined>;
/**
* Whether to use OCI media types in exported manifests. Defaults to
* `true`.
*/
ociMediaTypes?: pulumi.Input<boolean>;
ociMediaTypes?: pulumi.Input<boolean | undefined>;
/**
* Fully qualified name of the cache image to import.
*/
@@ -432,11 +432,11 @@ export interface CacheToS3Args {
/**
* Defaults to `$AWS_ACCESS_KEY_ID`.
*/
accessKeyId?: pulumi.Input<string>;
accessKeyId?: pulumi.Input<string | undefined>;
/**
* Prefix to prepend to blob filenames.
*/
blobsPrefix?: pulumi.Input<string>;
blobsPrefix?: pulumi.Input<string | undefined>;
/**
* Name of the S3 bucket.
*/
@@ -444,23 +444,23 @@ export interface CacheToS3Args {
/**
* Endpoint of the S3 bucket.
*/
endpointUrl?: pulumi.Input<string>;
endpointUrl?: pulumi.Input<string | undefined>;
/**
* Ignore errors caused by failed cache exports.
*/
ignoreError?: pulumi.Input<boolean>;
ignoreError?: pulumi.Input<boolean | undefined>;
/**
* Prefix to prepend on manifest filenames.
*/
manifestsPrefix?: pulumi.Input<string>;
manifestsPrefix?: pulumi.Input<string | undefined>;
/**
* The cache mode to use. Defaults to `min`.
*/
mode?: pulumi.Input<enums.CacheMode>;
mode?: pulumi.Input<enums.CacheMode | undefined>;
/**
* Name of the cache image.
*/
name?: pulumi.Input<string>;
name?: pulumi.Input<string | undefined>;
/**
* The geographic location of the bucket. Defaults to `$AWS_REGION`.
*/
@@ -468,15 +468,15 @@ export interface CacheToS3Args {
/**
* Defaults to `$AWS_SECRET_ACCESS_KEY`.
*/
secretAccessKey?: pulumi.Input<string>;
secretAccessKey?: pulumi.Input<string | undefined>;
/**
* Defaults to `$AWS_SESSION_TOKEN`.
*/
sessionToken?: pulumi.Input<string>;
sessionToken?: pulumi.Input<string | undefined>;
/**
* Uses `bucket` in the URL instead of hostname when `true`.
*/
usePathStyle?: pulumi.Input<boolean>;
usePathStyle?: pulumi.Input<boolean | undefined>;
}
/**
* cacheToS3ArgsProvideDefaults sets the appropriate defaults for CacheToS3Args
@@ -515,7 +515,7 @@ export interface DockerfileArgs {
*
* Equivalent to invoking Docker with `-f -`.
*/
inline?: pulumi.Input<string>;
inline?: pulumi.Input<string | undefined>;
/**
* Location of the Dockerfile to use.
*
@@ -525,7 +525,7 @@ export interface DockerfileArgs {
*
* Conflicts with `inline`.
*/
location?: pulumi.Input<string>;
location?: pulumi.Input<string | undefined>;
}
export interface ExportArgs {
@@ -533,40 +533,40 @@ export interface ExportArgs {
* A no-op export. Helpful for silencing the 'no exports' warning if you
* just want to populate caches.
*/
cacheonly?: pulumi.Input<inputs.ExportCacheOnlyArgs>;
cacheonly?: pulumi.Input<inputs.ExportCacheOnlyArgs | undefined>;
/**
* When `true` this entry will be excluded. Defaults to `false`.
*/
disabled?: pulumi.Input<boolean>;
disabled?: pulumi.Input<boolean | undefined>;
/**
* Export as a Docker image layout.
*/
docker?: pulumi.Input<inputs.ExportDockerArgs>;
docker?: pulumi.Input<inputs.ExportDockerArgs | undefined>;
/**
* Outputs the build result into a container image format.
*/
image?: pulumi.Input<inputs.ExportImageArgs>;
image?: pulumi.Input<inputs.ExportImageArgs | undefined>;
/**
* Export to a local directory as files and directories.
*/
local?: pulumi.Input<inputs.ExportLocalArgs>;
local?: pulumi.Input<inputs.ExportLocalArgs | undefined>;
/**
* Identical to the Docker exporter but uses OCI media types by default.
*/
oci?: pulumi.Input<inputs.ExportOCIArgs>;
oci?: pulumi.Input<inputs.ExportOCIArgs | undefined>;
/**
* A raw string as you would provide it to the Docker CLI (e.g.,
* `type=docker`)
*/
raw?: pulumi.Input<string>;
raw?: pulumi.Input<string | undefined>;
/**
* Identical to the Image exporter, but pushes by default.
*/
registry?: pulumi.Input<inputs.ExportRegistryArgs>;
registry?: pulumi.Input<inputs.ExportRegistryArgs | undefined>;
/**
* Export to a local directory as a tarball.
*/
tar?: pulumi.Input<inputs.ExportTarArgs>;
tar?: pulumi.Input<inputs.ExportTarArgs | undefined>;
}
/**
* exportArgsProvideDefaults sets the appropriate defaults for ExportArgs
@@ -574,10 +574,10 @@ export interface ExportArgs {
export function exportArgsProvideDefaults(val: ExportArgs): ExportArgs {
return {
...val,
docker: (val.docker ? pulumi.output(val.docker).apply(inputs.exportDockerArgsProvideDefaults) : undefined),
image: (val.image ? pulumi.output(val.image).apply(inputs.exportImageArgsProvideDefaults) : undefined),
oci: (val.oci ? pulumi.output(val.oci).apply(inputs.exportOCIArgsProvideDefaults) : undefined),
registry: (val.registry ? pulumi.output(val.registry).apply(inputs.exportRegistryArgsProvideDefaults) : undefined),
docker: pulumi.output(val.docker).apply(v => v === undefined ? undefined : inputs.exportDockerArgsProvideDefaults(v)),
image: pulumi.output(val.image).apply(v => v === undefined ? undefined : inputs.exportImageArgsProvideDefaults(v)),
oci: pulumi.output(val.oci).apply(v => v === undefined ? undefined : inputs.exportOCIArgsProvideDefaults(v)),
registry: pulumi.output(val.registry).apply(v => v === undefined ? undefined : inputs.exportRegistryArgsProvideDefaults(v)),
};
}
@@ -588,35 +588,35 @@ export interface ExportDockerArgs {
/**
* Attach an arbitrary key/value annotation to the image.
*/
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* The local export path.
*/
dest?: pulumi.Input<string>;
dest?: pulumi.Input<string | undefined>;
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Specify images names to export. This is overridden if tags are already specified.
*/
names?: pulumi.Input<pulumi.Input<string>[]>;
names?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Use OCI media types in exporter manifests.
*/
ociMediaTypes?: pulumi.Input<boolean>;
ociMediaTypes?: pulumi.Input<boolean | undefined>;
/**
* Bundle the output into a tarball layout.
*/
tar?: pulumi.Input<boolean>;
tar?: pulumi.Input<boolean | undefined>;
}
/**
* exportDockerArgsProvideDefaults sets the appropriate defaults for ExportDockerArgs
@@ -636,47 +636,47 @@ export interface ExportImageArgs {
/**
* Attach an arbitrary key/value annotation to the image.
*/
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* Name image with `prefix@<digest>`, used for anonymous images.
*/
danglingNamePrefix?: pulumi.Input<string>;
danglingNamePrefix?: pulumi.Input<string | undefined>;
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Allow pushing to an insecure registry.
*/
insecure?: pulumi.Input<boolean>;
insecure?: pulumi.Input<boolean | undefined>;
/**
* Add additional canonical name (`name@<digest>`).
*/
nameCanonical?: pulumi.Input<boolean>;
nameCanonical?: pulumi.Input<boolean | undefined>;
/**
* Specify images names to export. This is overridden if tags are already specified.
*/
names?: pulumi.Input<pulumi.Input<string>[]>;
names?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Use OCI media types in exporter manifests.
*/
ociMediaTypes?: pulumi.Input<boolean>;
ociMediaTypes?: pulumi.Input<boolean | undefined>;
/**
* Push after creating the image. Defaults to `false`.
*/
push?: pulumi.Input<boolean>;
push?: pulumi.Input<boolean | undefined>;
/**
* Push image without name.
*/
pushByDigest?: pulumi.Input<boolean>;
pushByDigest?: pulumi.Input<boolean | undefined>;
/**
* Store resulting images to the worker's image store and ensure all of
* its blobs are in the content store.
@@ -686,12 +686,12 @@ export interface ExportImageArgs {
* Ignored if the worker doesn't have image store (when using OCI workers,
* for example).
*/
store?: pulumi.Input<boolean>;
store?: pulumi.Input<boolean | undefined>;
/**
* Unpack image after creation (for use with containerd). Defaults to
* `false`.
*/
unpack?: pulumi.Input<boolean>;
unpack?: pulumi.Input<boolean | undefined>;
}
/**
* exportImageArgsProvideDefaults sets the appropriate defaults for ExportImageArgs
@@ -718,35 +718,35 @@ export interface ExportOCIArgs {
/**
* Attach an arbitrary key/value annotation to the image.
*/
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* The local export path.
*/
dest?: pulumi.Input<string>;
dest?: pulumi.Input<string | undefined>;
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Specify images names to export. This is overridden if tags are already specified.
*/
names?: pulumi.Input<pulumi.Input<string>[]>;
names?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Use OCI media types in exporter manifests.
*/
ociMediaTypes?: pulumi.Input<boolean>;
ociMediaTypes?: pulumi.Input<boolean | undefined>;
/**
* Bundle the output into a tarball layout.
*/
tar?: pulumi.Input<boolean>;
tar?: pulumi.Input<boolean | undefined>;
}
/**
* exportOCIArgsProvideDefaults sets the appropriate defaults for ExportOCIArgs
@@ -766,47 +766,47 @@ export interface ExportRegistryArgs {
/**
* Attach an arbitrary key/value annotation to the image.
*/
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
annotations?: pulumi.Input<{[key: string]: pulumi.Input<string>} | undefined>;
/**
* The compression type to use.
*/
compression?: pulumi.Input<enums.CompressionType>;
compression?: pulumi.Input<enums.CompressionType | undefined>;
/**
* Compression level from 0 to 22.
*/
compressionLevel?: pulumi.Input<number>;
compressionLevel?: pulumi.Input<number | undefined>;
/**
* Name image with `prefix@<digest>`, used for anonymous images.
*/
danglingNamePrefix?: pulumi.Input<string>;
danglingNamePrefix?: pulumi.Input<string | undefined>;
/**
* Forcefully apply compression.
*/
forceCompression?: pulumi.Input<boolean>;
forceCompression?: pulumi.Input<boolean | undefined>;
/**
* Allow pushing to an insecure registry.
*/
insecure?: pulumi.Input<boolean>;
insecure?: pulumi.Input<boolean | undefined>;
/**
* Add additional canonical name (`name@<digest>`).
*/
nameCanonical?: pulumi.Input<boolean>;
nameCanonical?: pulumi.Input<boolean | undefined>;
/**
* Specify images names to export. This is overridden if tags are already specified.
*/
names?: pulumi.Input<pulumi.Input<string>[]>;
names?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Use OCI media types in exporter manifests.
*/
ociMediaTypes?: pulumi.Input<boolean>;
ociMediaTypes?: pulumi.Input<boolean | undefined>;
/**
* Push after creating the image. Defaults to `true`.
*/
push?: pulumi.Input<boolean>;
push?: pulumi.Input<boolean | undefined>;
/**
* Push image without name.
*/
pushByDigest?: pulumi.Input<boolean>;
pushByDigest?: pulumi.Input<boolean | undefined>;
/**
* Store resulting images to the worker's image store and ensure all of
* its blobs are in the content store.
@@ -816,12 +816,12 @@ export interface ExportRegistryArgs {
* Ignored if the worker doesn't have image store (when using OCI workers,
* for example).
*/
store?: pulumi.Input<boolean>;
store?: pulumi.Input<boolean | undefined>;
/**
* Unpack image after creation (for use with containerd). Defaults to
* `false`.
*/
unpack?: pulumi.Input<boolean>;
unpack?: pulumi.Input<boolean | undefined>;
}
/**
* exportRegistryArgsProvideDefaults sets the appropriate defaults for ExportRegistryArgs
@@ -853,11 +853,11 @@ export interface RegistryArgs {
/**
* Password or token for the registry.
*/
password?: pulumi.Input<string>;
password?: pulumi.Input<string | undefined>;
/**
* Username for the registry.
*/
username?: pulumi.Input<string>;
username?: pulumi.Input<string | undefined>;
}
export interface SSHArgs {
@@ -878,5 +878,5 @@ export interface SSHArgs {
* agent. Run `ssh-add -l` locally to confirm which public keys are
* visible to the agent; these will be exposed to your build.
*/
paths?: pulumi.Input<pulumi.Input<string>[]>;
paths?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}

File diff suppressed because it is too large Load Diff

View File

@@ -71,9 +71,6 @@ def _get_semver_version():
# <some module>._utilities. <some module> is the module we want to query the version for.
root_package, *rest = __name__.split('.')
# pkg_resources uses setuptools to inspect the set of installed packages. We use it here to ask
# for the currently installed version of the root package (i.e. us) and get its version.
# Unfortunately, PEP440 and semver differ slightly in incompatible ways. The Pulumi engine expects
# to receive a valid semver string when receiving requests from the language host, so it's our
# responsibility as the library to convert our own PEP440 version into a valid semver string.
@@ -89,7 +86,7 @@ def _get_semver_version():
elif pep440_version.pre_tag == 'rc':
prerelease = f"rc.{pep440_version.pre}"
elif pep440_version.dev is not None:
# PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge
# PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge
# between the two, we convert our dev build version into a prerelease tag. This matches what all of our other
# packages do when constructing their own semver string.
prerelease = f"dev.{pep440_version.dev}"

View File

@@ -23,29 +23,30 @@ __all__ = ['ImageArgs', 'Image']
class ImageArgs:
def __init__(__self__, *,
push: pulumi.Input[_builtins.bool],
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: Optional[pulumi.Input[_builtins.bool]] = None,
builder: Optional[pulumi.Input['BuilderConfigArgs']] = None,
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input['CacheFromArgs']]]] = None,
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input['CacheToArgs']]]] = None,
context: Optional[pulumi.Input['BuildContextArgs']] = None,
dockerfile: Optional[pulumi.Input['DockerfileArgs']] = None,
exec_: Optional[pulumi.Input[_builtins.bool]] = None,
exports: Optional[pulumi.Input[Sequence[pulumi.Input['ExportArgs']]]] = None,
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: Optional[pulumi.Input[_builtins.bool]] = None,
network: Optional[pulumi.Input['NetworkMode']] = None,
no_cache: Optional[pulumi.Input[_builtins.bool]] = None,
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
pull: Optional[pulumi.Input[_builtins.bool]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]] = None,
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: Optional[pulumi.Input[Sequence[pulumi.Input['SSHArgs']]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: Optional[pulumi.Input[_builtins.str]] = None):
add_hosts: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: pulumi.Input[Optional[_builtins.bool]] = None,
builder: pulumi.Input[Optional['BuilderConfigArgs']] = None,
cache_from: pulumi.Input[Optional[Sequence[pulumi.Input['CacheFromArgs']]]] = None,
cache_to: pulumi.Input[Optional[Sequence[pulumi.Input['CacheToArgs']]]] = None,
context: pulumi.Input[Optional['BuildContextArgs']] = None,
dockerfile: pulumi.Input[Optional['DockerfileArgs']] = None,
exec_: pulumi.Input[Optional[_builtins.bool]] = None,
exports: pulumi.Input[Optional[Sequence[pulumi.Input['ExportArgs']]]] = None,
labels: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: pulumi.Input[Optional[_builtins.bool]] = None,
network: pulumi.Input[Optional['NetworkMode']] = None,
no_cache: pulumi.Input[Optional[_builtins.bool]] = None,
platforms: pulumi.Input[Optional[Sequence[pulumi.Input['Platform']]]] = None,
pull: pulumi.Input[Optional[_builtins.bool]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]] = None,
secrets: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: pulumi.Input[Optional[Sequence[pulumi.Input['SSHArgs']]]] = None,
tags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Image resource.
:param pulumi.Input[_builtins.bool] push: When `true` the build will automatically include a `registry` export.
Defaults to `false`.
@@ -235,7 +236,7 @@ class ImageArgs:
@_builtins.property
@pulumi.getter(name="addHosts")
def add_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def add_hosts(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Custom `host:ip` mappings to use during the build.
@@ -244,12 +245,12 @@ class ImageArgs:
return pulumi.get(self, "add_hosts")
@add_hosts.setter
def add_hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def add_hosts(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "add_hosts", value)
@_builtins.property
@pulumi.getter(name="buildArgs")
def build_args(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
def build_args(self) -> pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]:
"""
`ARG` names and values to set during the build.
@@ -264,12 +265,12 @@ class ImageArgs:
return pulumi.get(self, "build_args")
@build_args.setter
def build_args(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
def build_args(self, value: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "build_args", value)
@_builtins.property
@pulumi.getter(name="buildOnPreview")
def build_on_preview(self) -> Optional[pulumi.Input[_builtins.bool]]:
def build_on_preview(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Setting this to `false` will always skip image builds during previews,
and setting it to `true` will always build images during previews.
@@ -286,24 +287,24 @@ class ImageArgs:
return pulumi.get(self, "build_on_preview")
@build_on_preview.setter
def build_on_preview(self, value: Optional[pulumi.Input[_builtins.bool]]):
def build_on_preview(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "build_on_preview", value)
@_builtins.property
@pulumi.getter
def builder(self) -> Optional[pulumi.Input['BuilderConfigArgs']]:
def builder(self) -> pulumi.Input[Optional['BuilderConfigArgs']]:
"""
Builder configuration.
"""
return pulumi.get(self, "builder")
@builder.setter
def builder(self, value: Optional[pulumi.Input['BuilderConfigArgs']]):
def builder(self, value: pulumi.Input[Optional['BuilderConfigArgs']]):
pulumi.set(self, "builder", value)
@_builtins.property
@pulumi.getter(name="cacheFrom")
def cache_from(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CacheFromArgs']]]]:
def cache_from(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['CacheFromArgs']]]]:
"""
Cache export configuration.
@@ -312,12 +313,12 @@ class ImageArgs:
return pulumi.get(self, "cache_from")
@cache_from.setter
def cache_from(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CacheFromArgs']]]]):
def cache_from(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['CacheFromArgs']]]]):
pulumi.set(self, "cache_from", value)
@_builtins.property
@pulumi.getter(name="cacheTo")
def cache_to(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CacheToArgs']]]]:
def cache_to(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['CacheToArgs']]]]:
"""
Cache import configuration.
@@ -326,12 +327,12 @@ class ImageArgs:
return pulumi.get(self, "cache_to")
@cache_to.setter
def cache_to(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CacheToArgs']]]]):
def cache_to(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['CacheToArgs']]]]):
pulumi.set(self, "cache_to", value)
@_builtins.property
@pulumi.getter
def context(self) -> Optional[pulumi.Input['BuildContextArgs']]:
def context(self) -> pulumi.Input[Optional['BuildContextArgs']]:
"""
Build context settings. Defaults to the current directory.
@@ -340,12 +341,12 @@ class ImageArgs:
return pulumi.get(self, "context")
@context.setter
def context(self, value: Optional[pulumi.Input['BuildContextArgs']]):
def context(self, value: pulumi.Input[Optional['BuildContextArgs']]):
pulumi.set(self, "context", value)
@_builtins.property
@pulumi.getter
def dockerfile(self) -> Optional[pulumi.Input['DockerfileArgs']]:
def dockerfile(self) -> pulumi.Input[Optional['DockerfileArgs']]:
"""
Dockerfile settings.
@@ -354,12 +355,12 @@ class ImageArgs:
return pulumi.get(self, "dockerfile")
@dockerfile.setter
def dockerfile(self, value: Optional[pulumi.Input['DockerfileArgs']]):
def dockerfile(self, value: pulumi.Input[Optional['DockerfileArgs']]):
pulumi.set(self, "dockerfile", value)
@_builtins.property
@pulumi.getter(name="exec")
def exec_(self) -> Optional[pulumi.Input[_builtins.bool]]:
def exec_(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Use `exec` mode to build this image.
@@ -385,12 +386,12 @@ class ImageArgs:
return pulumi.get(self, "exec_")
@exec_.setter
def exec_(self, value: Optional[pulumi.Input[_builtins.bool]]):
def exec_(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "exec_", value)
@_builtins.property
@pulumi.getter
def exports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExportArgs']]]]:
def exports(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['ExportArgs']]]]:
"""
Controls where images are persisted after building.
@@ -405,12 +406,12 @@ class ImageArgs:
return pulumi.get(self, "exports")
@exports.setter
def exports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExportArgs']]]]):
def exports(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['ExportArgs']]]]):
pulumi.set(self, "exports", value)
@_builtins.property
@pulumi.getter
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
def labels(self) -> pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]:
"""
Attach arbitrary key/value metadata to the image.
@@ -419,12 +420,12 @@ class ImageArgs:
return pulumi.get(self, "labels")
@labels.setter
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
def labels(self, value: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "labels", value)
@_builtins.property
@pulumi.getter
def load(self) -> Optional[pulumi.Input[_builtins.bool]]:
def load(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
When `true` the build will automatically include a `docker` export.
@@ -435,12 +436,12 @@ class ImageArgs:
return pulumi.get(self, "load")
@load.setter
def load(self, value: Optional[pulumi.Input[_builtins.bool]]):
def load(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "load", value)
@_builtins.property
@pulumi.getter
def network(self) -> Optional[pulumi.Input['NetworkMode']]:
def network(self) -> pulumi.Input[Optional['NetworkMode']]:
"""
Set the network mode for `RUN` instructions. Defaults to `default`.
@@ -451,12 +452,12 @@ class ImageArgs:
return pulumi.get(self, "network")
@network.setter
def network(self, value: Optional[pulumi.Input['NetworkMode']]):
def network(self, value: pulumi.Input[Optional['NetworkMode']]):
pulumi.set(self, "network", value)
@_builtins.property
@pulumi.getter(name="noCache")
def no_cache(self) -> Optional[pulumi.Input[_builtins.bool]]:
def no_cache(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Do not import cache manifests when building the image.
@@ -465,12 +466,12 @@ class ImageArgs:
return pulumi.get(self, "no_cache")
@no_cache.setter
def no_cache(self, value: Optional[pulumi.Input[_builtins.bool]]):
def no_cache(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "no_cache", value)
@_builtins.property
@pulumi.getter
def platforms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]]:
def platforms(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['Platform']]]]:
"""
Set target platform(s) for the build. Defaults to the host's platform.
@@ -479,12 +480,12 @@ class ImageArgs:
return pulumi.get(self, "platforms")
@platforms.setter
def platforms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]]):
def platforms(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['Platform']]]]):
pulumi.set(self, "platforms", value)
@_builtins.property
@pulumi.getter
def pull(self) -> Optional[pulumi.Input[_builtins.bool]]:
def pull(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Always pull referenced images.
@@ -493,12 +494,12 @@ class ImageArgs:
return pulumi.get(self, "pull")
@pull.setter
def pull(self, value: Optional[pulumi.Input[_builtins.bool]]):
def pull(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "pull", value)
@_builtins.property
@pulumi.getter
def registries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]:
def registries(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]]:
"""
Registry credentials. Required if reading or exporting to private
repositories.
@@ -511,12 +512,12 @@ class ImageArgs:
return pulumi.get(self, "registries")
@registries.setter
def registries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]):
def registries(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]]):
pulumi.set(self, "registries", value)
@_builtins.property
@pulumi.getter
def secrets(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
def secrets(self) -> pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]:
"""
A mapping of secret names to their corresponding values.
@@ -531,12 +532,12 @@ class ImageArgs:
return pulumi.get(self, "secrets")
@secrets.setter
def secrets(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
def secrets(self, value: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "secrets", value)
@_builtins.property
@pulumi.getter
def ssh(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SSHArgs']]]]:
def ssh(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['SSHArgs']]]]:
"""
SSH agent socket or keys to expose to the build.
@@ -545,12 +546,12 @@ class ImageArgs:
return pulumi.get(self, "ssh")
@ssh.setter
def ssh(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SSHArgs']]]]):
def ssh(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['SSHArgs']]]]):
pulumi.set(self, "ssh", value)
@_builtins.property
@pulumi.getter
def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def tags(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Name and optionally a tag (format: `name:tag`).
@@ -562,12 +563,12 @@ class ImageArgs:
return pulumi.get(self, "tags")
@tags.setter
def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def tags(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "tags", value)
@_builtins.property
@pulumi.getter
def target(self) -> Optional[pulumi.Input[_builtins.str]]:
def target(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Set the target build stage(s) to build.
@@ -578,7 +579,7 @@ class ImageArgs:
return pulumi.get(self, "target")
@target.setter
def target(self, value: Optional[pulumi.Input[_builtins.str]]):
def target(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "target", value)
@@ -588,28 +589,28 @@ class Image(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: Optional[pulumi.Input[_builtins.bool]] = None,
builder: Optional[pulumi.Input[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
context: Optional[pulumi.Input[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
dockerfile: Optional[pulumi.Input[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
exec_: Optional[pulumi.Input[_builtins.bool]] = None,
exports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: Optional[pulumi.Input[_builtins.bool]] = None,
network: Optional[pulumi.Input['NetworkMode']] = None,
no_cache: Optional[pulumi.Input[_builtins.bool]] = None,
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
pull: Optional[pulumi.Input[_builtins.bool]] = None,
push: Optional[pulumi.Input[_builtins.bool]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: Optional[pulumi.Input[_builtins.str]] = None,
add_hosts: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: pulumi.Input[Optional[_builtins.bool]] = None,
builder: pulumi.Input[Optional[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
cache_from: pulumi.Input[Optional[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
cache_to: pulumi.Input[Optional[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
context: pulumi.Input[Optional[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
dockerfile: pulumi.Input[Optional[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
exec_: pulumi.Input[Optional[_builtins.bool]] = None,
exports: pulumi.Input[Optional[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
labels: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: pulumi.Input[Optional[_builtins.bool]] = None,
network: pulumi.Input[Optional['NetworkMode']] = None,
no_cache: pulumi.Input[Optional[_builtins.bool]] = None,
platforms: pulumi.Input[Optional[Sequence[pulumi.Input['Platform']]]] = None,
pull: pulumi.Input[Optional[_builtins.bool]] = None,
push: pulumi.Input[Optional[_builtins.bool]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
secrets: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: pulumi.Input[Optional[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
tags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A Docker image built using buildx -- Docker's interface to the improved
@@ -779,7 +780,7 @@ class Image(pulumi.CustomResource):
"username": "pulumibot",
}],
tags=["docker.io/pulumi/pulumi:3.107.0"])
pulumi.export("ref", my_image["ref"])
pulumi.export("ref", image.ref)
```
### Caching
```python
@@ -918,6 +919,7 @@ class Image(pulumi.CustomResource):
push=False)
```
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] add_hosts: Custom `host:ip` mappings to use during the build.
@@ -1217,7 +1219,7 @@ class Image(pulumi.CustomResource):
"username": "pulumibot",
}],
tags=["docker.io/pulumi/pulumi:3.107.0"])
pulumi.export("ref", my_image["ref"])
pulumi.export("ref", image.ref)
```
### Caching
```python
@@ -1356,6 +1358,7 @@ class Image(pulumi.CustomResource):
push=False)
```
:param str resource_name: The name of the resource.
:param ImageArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -1371,28 +1374,28 @@ class Image(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: Optional[pulumi.Input[_builtins.bool]] = None,
builder: Optional[pulumi.Input[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
context: Optional[pulumi.Input[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
dockerfile: Optional[pulumi.Input[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
exec_: Optional[pulumi.Input[_builtins.bool]] = None,
exports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: Optional[pulumi.Input[_builtins.bool]] = None,
network: Optional[pulumi.Input['NetworkMode']] = None,
no_cache: Optional[pulumi.Input[_builtins.bool]] = None,
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
pull: Optional[pulumi.Input[_builtins.bool]] = None,
push: Optional[pulumi.Input[_builtins.bool]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: Optional[pulumi.Input[_builtins.str]] = None,
add_hosts: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
build_args: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
build_on_preview: pulumi.Input[Optional[_builtins.bool]] = None,
builder: pulumi.Input[Optional[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
cache_from: pulumi.Input[Optional[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
cache_to: pulumi.Input[Optional[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
context: pulumi.Input[Optional[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
dockerfile: pulumi.Input[Optional[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
exec_: pulumi.Input[Optional[_builtins.bool]] = None,
exports: pulumi.Input[Optional[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
labels: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
load: pulumi.Input[Optional[_builtins.bool]] = None,
network: pulumi.Input[Optional['NetworkMode']] = None,
no_cache: pulumi.Input[Optional[_builtins.bool]] = None,
platforms: pulumi.Input[Optional[Sequence[pulumi.Input['Platform']]]] = None,
pull: pulumi.Input[Optional[_builtins.bool]] = None,
push: pulumi.Input[Optional[_builtins.bool]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
secrets: pulumi.Input[Optional[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
ssh: pulumi.Input[Optional[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
tags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
target: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):

View File

@@ -23,10 +23,11 @@ class IndexArgs:
def __init__(__self__, *,
sources: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
tag: pulumi.Input[_builtins.str],
push: Optional[pulumi.Input[_builtins.bool]] = None,
registry: Optional[pulumi.Input['RegistryArgs']] = None):
push: pulumi.Input[Optional[_builtins.bool]] = None,
registry: pulumi.Input[Optional['RegistryArgs']] = None):
"""
The set of arguments for constructing a Index resource.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sources: Existing images to include in the index.
:param pulumi.Input[_builtins.str] tag: The tag to apply to the index.
:param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry.
@@ -71,7 +72,7 @@ class IndexArgs:
@_builtins.property
@pulumi.getter
def push(self) -> Optional[pulumi.Input[_builtins.bool]]:
def push(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
If true, push the index to the target registry.
@@ -80,12 +81,12 @@ class IndexArgs:
return pulumi.get(self, "push")
@push.setter
def push(self, value: Optional[pulumi.Input[_builtins.bool]]):
def push(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "push", value)
@_builtins.property
@pulumi.getter
def registry(self) -> Optional[pulumi.Input['RegistryArgs']]:
def registry(self) -> pulumi.Input[Optional['RegistryArgs']]:
"""
Authentication for the registry where the tagged index will be pushed.
@@ -94,7 +95,7 @@ class IndexArgs:
return pulumi.get(self, "registry")
@registry.setter
def registry(self, value: Optional[pulumi.Input['RegistryArgs']]):
def registry(self, value: pulumi.Input[Optional['RegistryArgs']]):
pulumi.set(self, "registry", value)
@@ -104,10 +105,10 @@ class Index(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
push: Optional[pulumi.Input[_builtins.bool]] = None,
registry: Optional[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
sources: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
tag: Optional[pulumi.Input[_builtins.str]] = None,
push: pulumi.Input[Optional[_builtins.bool]] = None,
registry: pulumi.Input[Optional[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
sources: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
tag: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A wrapper around `docker buildx imagetools create` to create an index
@@ -179,6 +180,7 @@ class Index(pulumi.CustomResource):
pulumi.export("ref", index.ref)
```
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.bool] push: If true, push the index to the target registry.
@@ -266,6 +268,7 @@ class Index(pulumi.CustomResource):
pulumi.export("ref", index.ref)
```
:param str resource_name: The name of the resource.
:param IndexArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -281,10 +284,10 @@ class Index(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
push: Optional[pulumi.Input[_builtins.bool]] = None,
registry: Optional[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
sources: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
tag: Optional[pulumi.Input[_builtins.str]] = None,
push: pulumi.Input[Optional[_builtins.bool]] = None,
registry: pulumi.Input[Optional[Union['RegistryArgs', 'RegistryArgsDict']]] = None,
sources: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
tag: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):

View File

@@ -306,6 +306,7 @@ class CacheFromGitHubActions(dict):
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
:param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`.
This should be set if building and caching multiple images in one
@@ -780,6 +781,7 @@ class CacheToGitHubActions(dict):
An action like `crazy-max/ghaction-github-runtime` is recommended to expose
appropriate credentials to your GitHub workflow.
:param _builtins.bool ignore_error: Ignore errors caused by failed cache exports.
:param 'CacheMode' mode: The cache mode to use. Defaults to `min`.
:param _builtins.str scope: The scope to use for cache keys. Defaults to `buildkit`.

View File

@@ -20,10 +20,11 @@ __all__ = ['ProviderArgs', 'Provider']
@pulumi.input_type
class ProviderArgs:
def __init__(__self__, *,
host: Optional[pulumi.Input[_builtins.str]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]] = None):
host: pulumi.Input[Optional[_builtins.str]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]] = None):
"""
The set of arguments for constructing a Provider resource.
:param pulumi.Input[_builtins.str] host: The build daemon's address.
"""
if host is None:
@@ -35,23 +36,23 @@ class ProviderArgs:
@_builtins.property
@pulumi.getter
def host(self) -> Optional[pulumi.Input[_builtins.str]]:
def host(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
The build daemon's address.
"""
return pulumi.get(self, "host")
@host.setter
def host(self, value: Optional[pulumi.Input[_builtins.str]]):
def host(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "host", value)
@_builtins.property
@pulumi.getter
def registries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]:
def registries(self) -> pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]]:
return pulumi.get(self, "registries")
@registries.setter
def registries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]):
def registries(self, value: pulumi.Input[Optional[Sequence[pulumi.Input['RegistryArgs']]]]):
pulumi.set(self, "registries", value)
@@ -61,11 +62,12 @@ class Provider(pulumi.ProviderResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
__props__=None):
"""
Create a Docker-build resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] host: The build daemon's address.
@@ -78,6 +80,7 @@ class Provider(pulumi.ProviderResource):
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Docker-build resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param ProviderArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -93,8 +96,8 @@ class Provider(pulumi.ProviderResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
registries: pulumi.Input[Optional[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):

View File

@@ -1,7 +1,7 @@
[project]
name = "pulumi_docker_build"
description = "A Pulumi provider for building modern Docker images with buildx and BuildKit."
dependencies = ["parver>=0.2.1", "pulumi>=3.165.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11,<5; python_version < \"3.11\""]
dependencies = ["parver>=0.2.1", "pulumi>=3.231.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11,<5; python_version < \"3.11\""]
keywords = ["docker", "buildkit", "buildx", "kind/native"]
readme = "README.md"
requires-python = ">=3.9"