Skip to content

fix(google): regenerate SDK 585 options with corrected argument groups - #5333

Closed
thomhurst wants to merge 1 commit into
mainfrom
maintenance/gcloud-options-20260921
Closed

thomhurst wants to merge 1 commit into
mainfrom
maintenance/gcloud-options-20260921

Conversation

@thomhurst

@thomhurst thomhurst commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Google Cloud SDK 585.0.0 adds 24 commands and exposes parser defects in nested resource groups, conditional requirements, list values, enum collisions, and secret classification. This refresh applies the unmodified artifact from generation run 35626984458, produced after the generator fixes in #5328, #5331, and #5332 merged to main.

The handwritten integration tests adapt to required resource constructors and exercise upload alternatives, resource arguments and service contracts, comma-delimited versus repeated options, command-specific enum values, provider requirements, resource-value flags, secret metadata, SQL group independence, Iceberg requirements, and optional Pub/Sub schema settings. Current CLI output remains authoritative; no compatibility shims or generated API baselines are added.

Replacement for closed #5315 and #5179; completes the runtime coverage from closed #4863, #4869, and #4956. Related acceptance issues: #5180, #5178, #5166, #5146, #4850, #4849, #4799, #4797, #4474, and #4331.

Validation: exact workflow patch verified unchanged; provenance matches main 1efed21; 7,951 commands (+24, no removals); command-tree SHA256 07958cfa2fad3f97aa3e098bfb3216ec2277041b474634f70e73a6f6efa21c11; handwritten tests formatted and git diff --check passed. Documentation build passed (331 documents). Explicit full integration CI: https://github.com/thomhurst/ModularPipelines/actions/runs/35631746332 (pending). The generation workflow compiled the generated library, then failed on the four known handwritten constructor calls tracked by #5178; this PR adapts those calls and validates the resulting integration. Local full Google compilation previously reached the mandated 2 GB guard; the expensive build and runtime tests run in CI.

Summary by CodeRabbit

  • Documentation
    • Expanded the gcloud CLI reference with command and option mappings for:
      • App topology domains, locations, and resource graphs
      • Compute image views
      • Memorystore token-authentication users and auth tokens

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 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-21T17:32:06.077579Z ee60d8b 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 21, 2026

Copy link
Copy Markdown

Caution

CodeRabbit couldn't post its review summary.

Error details
Validation Failed: {"resource":"IssueComment","code":"unprocessable","field":"data","message":"Body is too long (maximum is 65536 characters)"} - https://docs.github.com/rest/issues/comments#create-an-issue-comment

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Claude Review

This PR regenerates the ModularPipelines.Google (gcloud) options library against gcloud SDK 585.0.0, adding 24 new commands and applying fixes (from prior PRs #5328/#5331/#5332) for nested resource-group constructors, conditional/mutually-exclusive requirement groups, comma-delimited vs. repeated list rendering, per-command enum collisions, and secret-value classification. The bulk of the ~7,700-file diff is unmodified generated output (Enums/Options/Commands/Settings under src/ModularPipelines.Google) plus a generated docs table update; the only handwritten changes are 6 test files under test/ModularPipelines.Google.UnitTests adapting to now-required resource constructor parameters and adding coverage for the fixed behaviors.

Review evidence

test/ModularPipelines.Google.UnitTests/GcloudRegenerationTests.cs: New test file covering the specific defect classes described in the PR (conditional schema/encoding validation, iceberg catalog+storage bundle requirement, sql config group independence, secret vs. non-secret property classification, provider-specific requirement branches, resource-value rendering); each assertion was cross-checked against the corresponding regenerated Options class and matched.

test/ModularPipelines.Google.UnitTests/GcloudResourceArgumentTests.cs: New reflection-based test verifying resource-group constructors (e.g. GcloudKmsKeyringsDeleteOptions, GcloudMetastoreServicesMigrationsDescribeOptions/DeleteOptions) now require their positional resource string and throw ArgumentNullException when null; confirmed against generated constructors.

test/ModularPipelines.Google.UnitTests/GcloudDelimitedListTests.cs: New test distinguishing comma-joined list options (CollectionSeparator set) from repeated-flag list options (no CollectionSeparator); verified against GcloudMetastoreServicesMigrationsStartOptions and GcloudDnsResponsePoliciesRulesUpdateOptions generated attributes, which matched exactly.

test/ModularPipelines.Google.UnitTests/GcloudCompositeValueTests.cs: Updated existing tests to pass the now-required positional resource argument (e.g. GcloudBmsNfsSharesUpdateOptions("nfs-share")) and include it in expected argument lists; confirmed the generated constructors require these parameters and the composite-value flag rendering is unchanged.

docs/docs/mp-packages/cli/gcloud.md: Mechanically regenerated command reference table adding entries for the 24 new gcloud commands (e.g. app-topology, compute image-views, memorystore token-auth-users); additions are consistent with the corresponding new generated Options classes present in the diff.

No actionable findings.

Optional follow-up notes

No OptionsGenerator source files are touched in this diff, matching the PR description's claim that this is an unmodified generated artifact plus handwritten test adaptation — consistent with the AGENTS.md rule against hand-editing generated options.

Verified several handwritten test assertions directly against their corresponding regenerated *.Generated.cs option classes (GcloudArtifactsFilesUploadOptions exactly-one-of Source/SourceDirectory validation, GcloudBmsNfsSharesUpdateOptions required NfsShare constructor + at-most-one-of groups, GcloudDnsResponsePoliciesRulesUpdateOptions LocalData rendering as repeated --local-data= options vs. GcloudMetastoreServicesMigrationsStartOptions HiveDatabases/IcebergNamespaces rendering as comma-joined single options, GcloudMemorystoreInstancesCreateTokenAuthUserOptions/TokenAuthUsersAuthTokensDescribeOptions TokenAuthUser correctly lacking [SecretValue] while GcloudDatabaseMigrationConnectionProfilesCreateMysqlOptions.PrivateKey/Password correctly carry it) — all matched, no discrepancies found.

This is a large, mechanically-generated PR; given the AGENTS.md guidance to treat current generator output as authoritative and not hand-review generated content line-by-line, review focused on the handwritten test surface and cross-checked it against the generated code it exercises rather than auditing all ~7,700 changed generated files individually.

No prior review comments or requested changes exist on this PR to reconcile against (only an in-progress automated Codex review with no findings yet posted).

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Understand this PR’s impact

Explore downstream dependencies and potential security impact with Blast Radius.

View blast radius →

No actionable comments were generated in the recent review. 🎉


📝 Walkthrough

Walkthrough

The gcloud CLI reference table adds command-to-options mappings for app-topology, compute image-views, and Memorystore token authentication commands.

Changes

Gcloud CLI reference

Layer / File(s) Summary
App topology mappings
docs/docs/mp-packages/cli/gcloud.md
Adds mappings for the app-topology command group and its domains, locations, and resources-graph subcommands.
Compute image views mappings
docs/docs/mp-packages/cli/gcloud.md
Adds mappings for compute image-views, describe, and list.
Memorystore token authentication mappings
docs/docs/mp-packages/cli/gcloud.md
Adds mappings for create-token-auth-user and the token-auth-users command group, including auth-tokens subcommands.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR satisfies the coding objectives in [#5315] and [#4863]. It refreshes SDK 585.0.0 from the generated artifact, adds 24 commands, retains 7,951 commands with no removals, and preserves the record…
Out of Scope Changes check ✅ Passed The documented changes remain within the linked issue scope. The 24 added documentation rows correspond to generated command coverage for app-topology, Compute image views, and Memorystore token-aut…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: regenerating Google SDK 585 options with corrected argument groups. It is concise and directly related to the pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

A rabbit maps commands in rows
New cloud paths now clearly show
Topology, images, tokens too
Each option has its matching cue
The reference table grows anew

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

@thomhurst

Copy link
Copy Markdown
Owner Author

Fresh Google SDK 585 output in #5333 (ee60d8b; generation run 35626984458) still exposes shared argument-group scope defects:

  • gcloud apihub plugins instances create: the help has three mutually exclusive authentication branches. The generated validator merges OAuth and username/password into one branch, requires Oauth2ClientCredentialsConfigId for username/password authentication, and allows the two branches together. Username/password descriptions also inherit unrelated OAuth prose.
  • gcloud oracle-database db-systems create: the documented required Database bundle contains a SecretVersion resource among its members. The generated group is truncated to DatabaseAdminPassword, so selecting the secret-version path requires inline password material instead. The group must retain all documented members and nested resource boundaries.

The exact SDK 585 help is captured locally for regression fixtures. I am closing the defective snapshot, cancelling its CI, and fixing CliArgumentGroupParser separately before another latest-main generation. No generated output will be patched in place. Existing coverage remains 7,951 commands with no removals.

@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: ee60d8b1d4

ℹ️ 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".

/// <summary>
/// AuthConfig represents the authentication information. Arguments for the config. At most one of these can be specified: Config for authentication with API key. The location of the API key. The default value is QUERY. API_KEY_CONFIG_HTTP_ELEMENT_LOCATION must be one of: body Element is in the HTTP request body. cookie Element is in the HTTP request cookie. header Element is in the HTTP request header. path Element is in the HTTP request path. query Element is in the HTTP request query. This flag argument must be specified if any of the other arguments in this group are specified.
/// </summary>
[SecretValue]

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 Do not register the API-key location as a secret

When this option is set to a normal value such as query, header, or body, Command.RegisterSecrets treats that common word as a secret and globally masks its occurrences in command output and subsequent logs. This property is explicitly an enum-like HTTP location rather than credential material, so the generator's secret classification corrupts diagnostics; correct the classifier and regenerate the options.

AGENTS.md reference: AGENTS.md:L33-L33

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

The shared classifier is corrected in 425362e, confirmed in the remote head of source prerequisite #5334. Captured SDK 585 help reproduces the original failure; 249 focused classifier/enhancer/scraper tests now pass, including preservation of explicit secret overrides and documented credential content. Google create/update runtime metadata regressions are prepared for the next authoritative snapshot. This generated-output finding remains open until that fresh replacement is validated.

@thomhurst

Copy link
Copy Markdown
Owner Author

Fresh replacement: #5338, confirmed remote head 34bc46d. It applies the unmodified Google SDK 585 artifact from latest-main run 35666140726 after source fixes through #5337, with the handwritten Google regression tests. Coverage includes 7,951 commands and 1,455 groups with no removals or exclusions; docs and freshness checks pass. Explicit Google integration validation is running at https://github.com/thomhurst/ModularPipelines/actions/runs/35669471943. Acceptance findings remain open until runtime CI and review complete.

@thomhurst

Copy link
Copy Markdown
Owner Author

Fresh replacement: #5341, generated unchanged from main 1be7211 by https://github.com/thomhurst/ModularPipelines/actions/runs/35676360503 after source fix #5340. Provenance and coverage pass: 7,951 commands, 1,455 groups, 24 additions, no removals/exclusions, all 54 reported omissions present. The Google library and documentation build; dedicated integration CI and reviews are pending in https://github.com/thomhurst/ModularPipelines/actions/runs/35678558349. This closed PR remains superseded.

@thomhurst

Copy link
Copy Markdown
Owner Author

Fresh latest-main replacement: #5344, generated by run 35684123650 after source fixes through #5343. Artifact 10676728248 is unchanged and passes provenance, coverage, and documentation checks. The replacement contains 76 nested-choice runtime cases plus the earlier regression suites. Actual Google integration CI and reviews are pending; acceptance issues remain open until those pass.

@thomhurst

Copy link
Copy Markdown
Owner Author

Fresh latest-main replacement: #5347, generated by run 35690354313 after source fixes through #5346. Artifact 10678711892 is unchanged and passes provenance, coverage, and documentation checks. Compared with rejected #5344, only eight embedded-credential SecretValue annotations and the fingerprint change; no masking annotation is removed.

The replacement retains 76 nested-choice cases and adds runtime attribute checks for all eight credential fields. Explicit integration CI: https://github.com/thomhurst/ModularPipelines/actions/runs/35692851347. Acceptance remains pending actual Google test execution and reviews.

This branch had an error being deployed

1 failed deployment
Pull Requests ee60d8b1 Deployed Sep 21, 2026 by thomhurst via full pipeline (ubuntu-latest) #16990
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant