Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pulumi avatar

Pulumi Upgrade Provider

  • 520 installs
  • 63 repo stars
  • Updated August 3, 2026
  • pulumi/agent-skills

Automate Pulumi provider repo upgrades with the `upgrade-provider` tool.

About

Automate Pulumi provider repo upgrades with the `upgrade-provider` tool. Use when upgrading a pulumi provider repository to a new upstream version, running `upgrade-provider`, and addressing its common failure modes like patch conflicts or missing module mappings. Run `upgrade-provider`, fix known failures, and rerun until success. Keep git operations read-only in the repo; the tool owns branch/commit/PR state.

  • Run `upgrade-provider`, fix known failures, and rerun until success. Keep git operations read-only in the repo; the tool
  • upgrade-provider $ORG/$REPO --repo-path . > .pulumi/upgrade-provider-stdout.txt 2> /dev/null
  • Wait for completion (can take up to 10 minutes).
  • 4. Check for errors by scanning `.pulumi/upgrade-provider-stdout.txt` lines starting with `error: `.
  • 6. If a fix requires creating/amending/removing/rebasing patches, use the `upstream-patches` skill for the patch workflo

Pulumi Upgrade Provider by the numbers

  • 520 all-time installs (skills.sh)
  • +42 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #261 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
At a glance

pulumi-upgrade-provider capabilities & compatibility

Capabilities
run `upgrade provider`, fix known failures, and · upgrade provider $org/$repo repo path . > .pul · wait for completion (can take up to 10 minutes). · 4. check for errors by scanning `.pulumi/upgrade
Use cases
documentation
From the docs

What pulumi-upgrade-provider says it does

Automate Pulumi provider repo upgrades with the `upgrade-provider` tool. Use when upgrading a pulumi provider repository to a new upstream version, running `upgrade-provider`, and addressing its commo
SKILL.md
npx skills add https://github.com/pulumi/agent-skills --skill pulumi-upgrade-provider

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs520
repo stars63
Last updatedAugust 3, 2026
Repositorypulumi/agent-skills

How do I apply pulumi-upgrade-provider using the workflow in its SKILL.md?

Automate Pulumi provider repo upgrades with the `upgrade-provider` tool. Use when upgrading a pulumi provider repository to a new upstream version, running `upgrade-provider`, and address...

Who is it for?

Developers following the pulumi-upgrade-provider skill for the tasks it documents.

Skip if: Tasks outside the pulumi-upgrade-provider scope described in SKILL.md.

When should I use this skill?

User mentions pulumi-upgrade-provider or related triggers from the skill description.

What you get

Working pulumi-upgrade-provider setup aligned with the documented patterns and constraints.

  • Upstream version bump pull request
  • Audited provider/replacements.json

By the numbers

  • Upgrade-provider runs can take up to 10 minutes per attempt
  • Stops retrying after the same error occurs 3 times
  • Bundles references/upgrade-provider-errors.md for known failure patterns

Files

SKILL.mdMarkdownGitHub ↗

Pulumi Upgrade Provider

Overview

Run upgrade-provider, fix known failures, and rerun until success. Keep git operations read-only in the repo; the tool owns branch/commit/PR state.

Run Loop

1. Create output directory:

mkdir -p .pulumi

2. Run from repo root:

upgrade-provider $ORG/$REPO --repo-path . > .pulumi/upgrade-provider-stdout.txt 2> /dev/null

3. Wait for completion (can take up to 10 minutes). 4. Check for errors by scanning .pulumi/upgrade-provider-stdout.txt lines starting with error: . 5. If failed, fix using this skill's references/upgrade-provider-errors.md (from the skill folder, not the repo), then rerun. For upstream go get failures involving ignored replace directives or unknown revision v0.0.0, rerun with --target-version after applying the documented provider/go.mod replacements; preserve the original major/non-major intent and add --major only for actual major version upgrades. 6. If a fix requires creating/amending/removing/rebasing patches, use the upstream-patches skill for the patch workflow. 7. If you fixed a conflict, report exact edits (file paths + concrete changes or preserved intent). 8. If the upgrade changed patches, run ./scripts/upstream.sh checkout and review applied upstream commits:

  • List commit SHAs/titles from upstream.
  • Summarize the intent of each commit in plain language.
  • Call out any behavioral changes or risks.

9. On success, proceed to Post-run Tasks.

When to Stop and Report Failure

Stop iterating and report failure if any of these conditions are met:

1. Command not found (exit code 127): The upgrade-provider tool is not in PATH. 2. Same error 3 times: You've attempted to fix the same error 3 times without success. 3. Unknown error pattern: The error is not covered in references/upgrade-provider-errors.md and you cannot determine a safe fix. 4. Requires human judgment: The fix needs user input, such as:

  • Choosing between multiple valid approaches
  • Breaking changes that affect public API
  • Deprecation strategies
  • Architectural decisions about module organization

When stopping, report: 1. The error(s) encountered. 2. What fixes were attempted (with file paths and changes). 3. Why human intervention is needed. 4. Any partial progress.

Post-run Tasks

The tool creates a PR on successful upgrade.

1. MUST fetch the PR URL for the current branch using read-only commands:

gh pr view --json url --jq .url || gh pr list --head "$(git branch --show-current)" --json url --jq '.[0].url'

2. MUST audit generated doc replacements for unresolved placeholders:

if [ -f provider/replacements.json ]; then
  rg -n '"new":.*TODO|TODO' provider/replacements.json || true
fi

If any TODO is found in provider/replacements.json:

  • Treat it as a post-upgrade blocker; replacement values render into generated docs.
  • Inspect each old/new pair and replace TODO with concrete Pulumi-facing wording, usually Pulumi, this provider, or the provider.
  • Run focused validation if the repo has the test:
cd provider && go test -v -run TestReplacementDoesNotIncludeTodos .

After the upgrade-provider tool has created the PR, fix these placeholders as normal follow-up work.

3. MUST append a "Fixes applied to unblock upgrade" section to the existing PR body if any fixes were applied (do not overwrite):

repo=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
pr_number=$(gh pr view --json number --jq .number)
gh pr view --json body --jq .body > /tmp/pr_body.txt

cat <<'EOF' >> /tmp/pr_body.txt

---

### Fixes applied to unblock upgrade

- <list concrete unblocker edits here, with file paths and intent>
EOF

gh api -X PATCH "repos/$repo/pulls/$pr_number" --raw-field body="$(cat /tmp/pr_body.txt)"

Use REST (gh api) instead of gh pr edit to avoid GraphQL project-card errors. Keep existing body content; only append.

Notes

  • git rebase --continue --no-edit is not supported in older git versions. Use git rebase --continue and accept the existing commit message.
  • To avoid the editor prompt during git rebase --continue, run it with GIT_EDITOR=true (or GIT_EDITOR=:).

Guardrails

  • Never commit, push, or create branches manually during the upgrade-provider run loop; only run read-only git commands.
  • After the tool creates a PR, follow-up commits are permitted for post-run fixes.
  • ./scripts/upstream.sh checkout|rebase|check_in are allowed because the tool manages git state.
  • Do not stash changes; the tool manages git state.

References

  • Use this skill's references/upgrade-provider-errors.md (from the skill folder, not the repo) for patch conflict, ignored upstream replacement, vendored upstream dependency, .NET duplicate file, and new module mapping fixes.

Related skills

How it compares

Pick this over generic IaC skills when the task is specifically bumping a Pulumi bridge provider repo with upgrade-provider—not writing consumer Pulumi programs.

FAQ

What does pulumi-upgrade-provider do?

Automate Pulumi provider repo upgrades with the `upgrade-provider` tool. Use when upgrading a pulumi provider repository to a new upstream version, running `upgrade-provider`, and address...

When should I use pulumi-upgrade-provider?

Invoke when Automate Pulumi provider repo upgrades with the `upgrade-provider` tool. Use when upgrading a pulumi provider repository to a new upstream v.

Is pulumi-upgrade-provider safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.