Skip to content

[Automated] Update podman CLI Options - #3970

Open
thomhurst wants to merge 1 commit into
mainfrom
automated/update-cli-options-podman
Open

[Automated] Update podman CLI Options#3970
thomhurst wants to merge 1 commit into
mainfrom
automated/update-cli-options-podman

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Summary

This PR contains automatically generated updates to podman CLI options classes.

The generator scraped the latest CLI help output from the installed tool.

Changes

  • Updated options classes to reflect latest CLI documentation
  • Added new commands if any were detected
  • Updated option types and descriptions

Command coverage

Command coverage report:

  • podman (podman version 5.8.4): 238 commands, tree 9da9e7056096e91daa5877f559082f50231388743c878114978035370d2dfc3f
    • Added: podman artifact add, podman artifact extract, podman artifact inspect, podman artifact ls, podman artifact pull, podman artifact push, podman artifact rm, podman machine cp, podman machine reset, podman quadlet install, podman quadlet list, podman quadlet print, podman quadlet rm, podman system check

Verification

  • Solution builds successfully
  • API compatibility gate: failure

🤖 Generated with ModularPipelines.OptionsGenerator

@thomhurst thomhurst added automated dependencies Pull requests that update a dependency file labels Aug 16, 2026
@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thomhurst, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

Limit details: You’ve used all 3 included reviews currently available under your plan.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2cbc9d72-84b7-44f7-9425-7d805a47e9be

📥 Commits

Reviewing files that changed from the base of the PR and between 8a831c7 and 8ef7582.

⛔ Files ignored due to path filters (87)
  • src/ModularPipelines.Podman/Extensions/PodmanExtensions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Generated/Podman.CommandCoverage.json is excluded by !**/generated/**
  • src/ModularPipelines.Podman/Options/PodmanArtifactAddOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactExtractOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactInspectOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactLsOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactPullOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactPushOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanArtifactRmOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanBuildOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerExecOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerRestoreOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerRunOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerStartOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerUpdateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanContainerWaitOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanExecOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanFarmBuildOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanGenerateKubeOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImageBuildOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImageListOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImagePruneOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImagePullOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImagePushOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanImagesOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanInspectOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanKubeDownOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanKubeGenerateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanKubePlayOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanMachineCpOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanMachineInitOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanMachineListOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanMachineResetOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanMachineRmOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestAddOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestAnnotateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestPushOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestRemoveOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanManifestRmOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanPodCloneOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanPodCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanPullOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanPushOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanQuadletInstallOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanQuadletListOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanQuadletPrintOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanQuadletRmOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanRunOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSecretCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSecretLsOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanStartOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSystemCheckOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSystemConnectionAddOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSystemMigrateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSystemPruneOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanSystemServiceOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanUpdateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanVolumeCreateOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanVolumeExportOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Options/PodmanWaitOptions.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodman.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanArtifact.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanCompose.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanContainer.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanFarm.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanGenerate.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanHealthcheck.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanImage.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanKube.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanMachine.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanManifest.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanNetwork.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanPod.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanQuadlet.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanSecret.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanSystem.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/IPodmanVolume.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/Podman.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanArtifact.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanKube.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanMachine.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanManifest.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanQuadlet.Generated.cs is excluded by !**/*.generated.*
  • src/ModularPipelines.Podman/Services/PodmanSystem.Generated.cs is excluded by !**/*.generated.*
📒 Files selected for processing (1)
  • docs/docs/mp-packages/cli/podman.md

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8ef7582bcc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +30 to +33
/// The [KUBEFILE [KUBEFILE...]] operand.
/// </summary>
[CliArgument(0, Phase = CommandLinePhase.Passthrough)]
public string? KubefileKubefile { get; set; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Model all kube files as a collection

The scraped synopsis explicitly allows [KUBEFILE [KUBEFILE...]], but this property can render only one string argument, so callers cannot use the new multi-file form of podman kube down; putting multiple paths in the string renders them as one quoted operand. PodmanKubePlayOptions.KubefileKubefile has the same defect, so both operands should be generated as nullable collections. Update the generator and regenerate these files rather than editing them directly.

AGENTS.md reference: AGENTS.md:L164-L169

Useful? React with 👍 / 👎.

Comment on lines +21 to +23
public record PodmanArtifactRmOptions(
[property: CliArgument(0, Phase = CommandLinePhase.Passthrough, Required = true)] IEnumerable<string> Artifact
) : PodmanOptions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Allow all-removal without a required operand

When a caller wants All = true, this constructor still requires at least one artifact, and passing an empty collection does not work because CommandArgumentBuilder.AddArguments rejects empty values marked Required before Podman is invoked (src/ModularPipelines/Helpers/Internal/CommandArgumentBuilder.cs:159-163). Consequently the generated API cannot express the documented operand-free podman artifact rm --all command; PodmanQuadletRmOptions repeats the same conflict for quadlet rm --all. Correct the generator so these operands are optional and regenerate the files.

AGENTS.md reference: AGENTS.md:L164-L169

Useful? React with 👍 / 👎.

@claude

claude Bot commented Aug 16, 2026

Copy link
Copy Markdown

Review: [Automated] Update podman CLI Options (#3970)

This is an auto-generated PR from ModularPipelines.OptionsGenerator bumping the scraped podman CLI surface from 4.9.3 → 5.8.4 (224 → 238 commands). Per repo conventions, the touched files are all .Generated.cs/generated docs, so there's no hand-written logic to critique — I focused on whether the generator's output is internally consistent and whether anything here needs human judgment before merge.

⚠️ Worth flagging before merge: this PR failed the API compatibility gate

The PR description reports API compatibility gate: **failure**, and per .github/workflows/generate-cli-options.yml that means auto-merge was deliberately not enabled for this PR — it's waiting on a human. I traced the actual break:

  • PodmanGenerateKubeOptions and PodmanKubeGenerateOptions both drop the NoTrunc property (--no-trunc).
  • PodmanMachineRmOptions drops the SaveKeys property (--save-keys).

These are all real removals from upstream podman between 4.9.3 and 5.8.4 (not generator bugs — the flags are genuinely gone from --help in 5.8.4), so regenerating correctly produces a breaking change here. Since these are public record properties, any consumer code setting them (e.g. new PodmanMachineRmOptions { SaveKeys = true }) will fail to compile after this merges. Given this repo gates major-version bumps behind explicit approval (approve-api-breaking-changes), this PR should probably go through that path (or at minimum get a deliberate "yes, breaking, that's fine" sign-off) rather than being merged as routine automation — right now it's just sitting unmerged with no visible acknowledgment of the break.

Everything else checks out

  • New podman artifact, podman quadlet, podman machine cp/reset, and podman system check commands are wired consistently with the existing pattern: options record → interface method (with the now-standard => throw new NotSupportedException() default body) → concrete service implementation → DI registration in PodmanExtensions.Generated.cs → docs table entry.
  • Podman.CommandCoverage.json: the new command count (238) and the list of added commands match exactly what's listed in the PR description and the new option/service files — no silent drops.
  • Spot-checked several modified option classes (PodmanBuildOptions, PodmanContainerRunOptions, PodmanRunOptions, etc.) — additions look like straightforward new flags picked up from the newer CLI, nothing structurally odd.
  • Wasn't able to do a local build in this sandbox (SDK 10.0.400 pinned in global.json isn't installed here), but the PR checklist already reports a successful solution build, and CI's "Build solution to verify changes" step covers this independently of my review.

Recommendation: hold merge until someone explicitly confirms the NoTrunc/SaveKeys removal is an acceptable breaking change for a minor/patch release (or route it through the approve-api-breaking-changes workflow input so the gate reflects that decision). No other issues found — the generated output itself looks correct and consistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant