fix(api-catalog): resync spec drift and test the whole workspace in CI - #241
Merged
Conversation
Domains v3 gained a getRegistrationSchema endpoint (and RegistrationSchema type), and the hosting-nodejs v1 spec added deprecation notices on rollbackApp and updateAppSecrets. Regenerated via `cargo run -p generate-api-catalog`. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`cargo test`/`check`/`clippy` with no flags only cover the root package in a workspace that also declares one (this one does: godaddy-cli plus domains-client and generate-api-catalog as members, no default-members override). CICD and the main-alpha workflow both ran plain `cargo test`, so domains-client's test module has been silently skipped since the workspace was split into multiple crates — its tests never compiled, on PRs or otherwise. That hid five compile errors and one runtime bug in domains-client's own tests, all pre-existing and unrelated to this branch's spec resync (confirmed against unmodified main): `optimize_for` became optional, `ConsentActorType`/`AgreementType` moved from generated enums to open string newtypes, `DnsRecord` gained a required `parameters` field, `Agreements`'s `privacy` setter was renamed to `v1_privacy`, and the `v1-agreements` mock asserted the wrong wire query-parameter name (`privacy` instead of the API's actual `v1-privacy`) once the compile errors above stopped masking it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Resynchronizes the embedded API catalog and domains-client OpenAPI inputs with upstream spec drift, and updates CI/agent guidance to run Rust checks across the entire workspace (so domains-client and generate-api-catalog are covered in PR CI).
Changes:
- Regenerated API catalog artifacts to reflect new/updated endpoints and descriptions (domains v3
getRegistrationSchema; hosting-nodejs v1 deprecation/supersession notes). - Fixed CI workflows to run
cargo check/clippy/testwith--workspaceunderrust/. - Updated
domains-clienttests to match regenerated types/params (Option-wrapped fields, open-string newtypes, required fields, and correctedv1-privacyquery param + setter rename).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
rust/schemas/openapi/hosting-nodejs-public-v1.yaml |
Adds v1 operation descriptions (and deprecation marker) aligned with upstream hosting-nodejs spec. |
rust/schemas/api/manifest.json |
Updates generation timestamp and increments domains endpoint count to reflect the new endpoint. |
rust/schemas/api/hosting-nodejs.json |
Regenerated catalog entry text for rollbackApp and updateAppSecrets descriptions. |
rust/schemas/api/domains.json |
Adds RegistrationSchema schema and the getRegistrationSchema endpoint entry. |
rust/domains-client/src/lib.rs |
Fixes/updates the crate’s test module to compile/run under the regenerated types and correct query param naming. |
rust/domains-client/openapi/domains.oas3.json |
Updates the domains-client OpenAPI input with the new registration schema endpoint and component schema. |
AGENTS.md |
Updates documented Rust commands/checklist to consistently use --workspace. |
.github/workflows/rust-port-alpha.yaml |
Runs clippy/tests against the entire Rust workspace. |
.github/workflows/cicd.yml |
Runs check/clippy/tests against the entire Rust workspace to ensure all member crates are covered. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
runruh-godaddy
approved these changes
Sep 1, 2026
axburgess-godaddy
approved these changes
Sep 1, 2026
rts1-godaddy
approved these changes
Sep 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cargo run -p generate-api-catalog, resolving the drift flagged by API catalog drift #33455833918: domains v3 gained agetRegistrationSchemaendpoint, and hosting-nodejs v1 added deprecation notices onrollbackAppandupdateAppSecrets.cicd.ymlandrust-port-alpha.yamlto runcargo check/clippy/testwith--workspace. This workspace has a root package (godaddy-cli) plusdomains-clientandgenerate-api-catalogas members with nodefault-membersoverride, so plaincargo testhas only ever covered the root package —domains-client's own test module has never actually compiled or run in CI, on PRs or otherwise.domains-client/src/lib.rs's tests (all pre-existing onmain, unrelated to the spec resync above — verified against unmodifiedmainbefore touching anything):optimize_forbecameOption-wrapped,ConsentActorType/AgreementTypemoved from generated enums to open string newtypes,DnsRecordgained a requiredparametersfield,Agreements'sprivacysetter was renamed tov1_privacy, and a mock asserted the wrong wire query-param name (privacyinstead of the API's actualv1-privacy, confirmed directly against the live upstream spec).AGENTS.md's documented commands/checklist to match (--workspaceeverywhere).Test plan
cargo check --workspacecargo clippy --workspace --all-targets -- -D warningscargo fmt --checkcargo test --workspace(752 + 15 + 15 passed across all three crates)./rust/scripts/check-module-size.sh$refs in the regenerated catalog (CICD's own check)domains-clientto confirm progenitor codegen compiles against the newgetRegistrationSchemaoperation🤖 Generated with Claude Code