Skip to content

[Automated] Update gcloud CLI Options - #4876

Closed
thomhurst wants to merge 5 commits into
issue-4797-gcloud-list-valuesfrom
automated/update-cli-options-gcloud-issue-4797-gcloud-list-values
Closed

thomhurst wants to merge 5 commits into
issue-4797-gcloud-list-valuesfrom
automated/update-cli-options-gcloud-issue-4797-gcloud-list-values

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Summary

This PR contains automatically generated updates to gcloud 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

Assembly-wide public API impact

Affected API families: Assembly/common, Gcloud.

  • Added APIs: 544
  • Removed or changed APIs: 280
  • Members with matching names but changed signatures: 12

Breaking changes are present. Consumers may need to update method arguments, option property types or nullability, enum members, and references to removed APIs.

Representative removed or changed members:

  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaP100Vws = 7 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaP4Vws = 8 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaT4 = 5 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaT4Vws = 6 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaV100 = 3 -> ModularPipelines.Google.Enums.GcloudAcceleratorType

Representative added members:

  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaP100Vws = 3 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaP4Vws = 5 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaT4 = 6 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaT4Vws = 7 -> ModularPipelines.Google.Enums.GcloudAcceleratorType
  • ModularPipelines.Google.Enums.GcloudAcceleratorType.NvidiaTeslaV100 = 8 -> ModularPipelines.Google.Enums.GcloudAcceleratorType

Command coverage

Command coverage report:

  • gcloud (Google Cloud SDK 584.0.0 alpha 2026.09.04 beta 2026.09.04 bq 2.1.38 bundled-python3-unix 3.14.7 core 2026.09.04 gcloud-crc32c 1.0.0 gsutil 5.37 preview 2026.09.04): 7927 commands, tree 5fdad8cede50aabd57b55497e772c19fb37aedd8773cfc60a95c7e99d354d594
    • Baseline comparison: 7918 commands at Google Cloud SDK 583.0.0 alpha 2026.08.31 beta 2026.08.31 bq 2.1.38 bundled-python3-unix 3.14.7 core 2026.08.31 gcloud-crc32c 1.0.0 gsutil 5.37 preview 2026.08.31 -> 7927 commands at Google Cloud SDK 584.0.0 alpha 2026.09.04 beta 2026.09.04 bq 2.1.38 bundled-python3-unix 3.14.7 core 2026.09.04 gcloud-crc32c 1.0.0 gsutil 5.37 preview 2026.09.04
    • Added: gcloud artifacts files upload, gcloud compute project-views, gcloud compute project-views describe, gcloud kms keyrings delete, gcloud metastore services migrations, gcloud metastore services migrations delete, gcloud metastore services migrations describe, gcloud metastore services migrations list, gcloud metastore services migrations start

Verification

  • Solution builds successfully

🤖 Generated with ModularPipelines.OptionsGenerator

@thomhurst thomhurst added automated dependencies Pull requests that update a dependency file labels Sep 13, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 13, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-13T18:59:04.784790Z 154d68c PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f8e8ab2b-422e-4d38-aa5f-850077314e1d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

Too many files changed for review (2075 files, 100 file limit).

@github-actions

Copy link
Copy Markdown
Contributor

Review: [Automated] Update gcloud CLI Options (#4876)

This is an automated regeneration of the gcloud options classes (2075 files) triggered by scraper/generator changes on this branch. Per repo policy, the generated output itself is authoritative and not something to hand-edit, so I focused the review on the hand-written generator/scraper changes in tools/ModularPipelines.OptionsGenerator/, and spot-checked their output.

The hand-written changes look solid

  • GcloudCliScraper.cs: new comma-separated-list detection (UsesCommaSeparatedList/AddDelimitedListGuidance) reuses the existing CollectionSeparator model field (already used by the AWS/Kustomize scrapers) instead of inventing a new concept, and is backed by good table-driven unit tests (GcloudDelimitedListTests.cs) covering the tricky discrimination cases (a group description mentioning "comma-separated" shouldn't leak onto an unrelated repeated flag, batch-size flags that merely reference another flag's list shouldn't be misclassified, negated flags shouldn't inherit list semantics, etc.).
  • GeneratorUtils.cs: adding .ConfigureAwait(false) to generated service methods matches the src/ library convention, and is verified by ServiceAwaitGenerationTests.cs.
  • Converting hand-rolled Regex.Match/Regex.Matches calls to [GeneratedRegex] partial methods is a reasonable, low-risk cleanup.

Bug: sibling argument groups collapse into one, corrupting generated XML docs (BLOCKING)

CliArgumentGroupParser.AddArgument (tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Cli/CliArgumentGroupParser.cs:132-162) only starts a new sibling group when preludeStartsGroup is true, which in turn requires Classify() to match one of a fixed set of English phrases (at most one, at least one, a leading "or", resource/arguments? for) or a line ending in Flags: (CliArgumentGroupParser.cs:208-245). Real gcloud "resource group" headers like "Configuration for migrating Hive tables to a BigLake Hive catalog." don't match any of these, so preludeStartsGroup is false, and the header text is instead merged into the current group's description via current.AppendDescription(prelude) (line 158) — it never creates a separate sibling group for the second block.

Since CliArgumentGroup.FlattenArguments() (Models/CliArgumentGroup.cs:31-56) applies each group's final Description uniformly to every argument the group ever collected, every option ends up carrying the concatenation of all group headers encountered anywhere in the FLAGS section — including options that belong to neither group and even options declared before either header.

This is directly visible in a file shipped by this PR, src/ModularPipelines.Google/Options/GcloudMetastoreServicesMigrationsStartOptions.Generated.cs: every single property's XML doc — including Async, ConflictPolicy, DryRun, MigrationExecutionId, Mode, ReportPath, none of which belong to either resource group — is prefixed with both "Configuration for migrating Hive tables to a BigLake Hive catalog." and "Configuration for migrating Iceberg tables to a BigLake Iceberg REST catalog." For comparison, existing generated files with a single, correctly-classified group (e.g. GcloudApiGatewayGatewaysUpdateOptions.Generated.cs) show the expected, properly-scoped behavior — flags outside a group get no group prefix at all. So this isn't intended behavior; it's that Classify/StartsArgumentGroup's hardcoded phrase list doesn't cover this (apparently common) gcloud phrasing, and this is likely the first regenerated command with two such sibling groups.

Suggested direction: don't rely solely on keyword matching to decide whether a prelude starts a new group. The indentation-based branch (argument.Indentation > current.Indentation) already proves the parser can detect nesting structurally — the same kind of structural signal (a non-blank prelude appearing between two arguments at the same indentation, where the current group already has arguments) is a more generic way to detect a new sibling block than a fixed English phrase list, which is a losing game against gcloud's ever-growing vocabulary of resource-group descriptions. Since this lives in the shared CliArgumentGroupParser (not per-tool scraper code), fixing it here will also correct any other tool whose help output uses non-matching group prose, in line with the "fix generic logic" guidance in CLAUDE.md.

Minor

  • GcloudCliScraper.cs: the new generated-regex partial method is left with the IDE's default placeholder name MyRegex(), next to its sibling SectionHeaderPattern(). Worth renaming to something intent-revealing (e.g. CommandNamePattern) since it ships as reviewable, hand-written source.

Not flagging

  • The enum member/API "breaking changes" called out in the PR description (e.g. GcloudAcceleratorType renumbering) are expected regeneration churn per CLAUDE.md ("current tool output is authoritative, even when regeneration breaks an earlier API").

@thomhurst
thomhurst deployed to Pull Requests September 13, 2026 22:41 — with GitHub Actions Active
@thomhurst

Copy link
Copy Markdown
Owner Author

The dispatched .NET validation completed successfully at https://github.com/thomhurst/ModularPipelines/actions/runs/34787391211, but this PR is not mergeable yet. The current-head Claude review found sibling-group documentation leaking across options; that concern remains applicable to this generator/output. The shared parser correction is tracked by #4870 (issue #4799), with authoritative output in #4877. This gcloud list-output PR must incorporate that correction and regenerate before the blocking review can be resolved. No generated documentation will be hand-patched, and green CI does not dispose of the review finding.

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