Skip to content

Conversation

@tacklequestions
Copy link
Contributor

@tacklequestions tacklequestions commented Oct 19, 2025

fix: fixed unintuitive function naming and wrong spelling of URI path

Summary by CodeRabbit

  • New Features

    • Added response wrapper structures for multi-entity and rich response handling.
    • Expanded management API surface with new endpoints for app, cluster, namespace, release, and item operations.
    • Introduced simplified, semantic method naming for API operations.
  • Chores

    • Updated Java compatibility to version 8.
    • Updated dependencies (OkHttp, Gson, JUnit versions).
    • Migrated from Jakarta to javax.ws.rs API.
    • Removed legacy model classes and documentation.

@coderabbitai
Copy link

coderabbitai bot commented Oct 19, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This is a comprehensive OpenAPI specification and Java client SDK regeneration. The changes introduce new response wrapper models (MultiResponseEntity, RichResponseEntity), add a required operator parameter across numerous endpoints, refactor API method names for better semantics, update build configurations to use older dependency versions and Java 8, and extensively refactor generated model classes to enforce non-null contracts and use JsonObject-based validation.

Changes

Cohort / File(s) Summary
OpenAPI Specification
apollo-openapi.yaml
Added new public response schemas MultiResponseEntity and RichResponseEntity; replaced response references in app nav tree and related endpoints; introduced required operator query parameter across create, update, delete, sync, merge, branch operations; renamed/introduced endpoints with new operationIds; altered response shapes from specific DTOs to generic wrappers.
Build Script & Workflow
generate.sh, java-client/.github/workflows/maven.yml
Updated SDK generation cleanup to include additional file types (Gradle, Python, TypeScript, Rust) and fix typo (filesystme → filesystem); narrowed CI matrix to Java 8 only and downgraded GitHub Actions checkout/setup-java from v4 to v2.
Build Configuration
java-client/build.gradle, java-client/build.sbt, java-client/pom.xml, java-client/gradle/wrapper/gradle-wrapper.properties, java-client/gradlew*
Downgraded okhttp (4.12.0 → 4.10.0), gson-fire (1.9.0 → 1.8.5), commons-lang3 (3.18.0 → 3.12.0), junit versions; replaced Jakarta JAX-RS with javax.ws.rs dependencies; updated Gradle wrapper from 8.7 to 7.2; added mockito-core test dependency; adjusted build task properties and script formatting.
Public API Classes
java-client/src/main/java/org/openapitools/client/api/*.java
Renamed and restructured API endpoints: AppManagementApi (createApp, deleteApp, findApps, getApp, getAppNavTree, etc.); ClusterManagementApi (createCluster, deleteCluster, getCluster with env parameter); InstanceManagementApi (getByRelease, getByReleasesNotIn, getInstanceCountByNamespace); ItemManagementApi (14 new item management methods); NamespaceManagementApi (11 new namespace operations); NamespaceBranchManagementApi (branch operations); ReleaseManagementApi (8 new release operations); OrganizationManagementApi (openapiV1OrganizationsGet → getOrganization).
Core Client Infrastructure
java-client/src/main/java/org/openapitools/client/(ApiClient.java, ApiCallback.java, ApiException.java, Configuration.java, JSON.java, Pair.java, etc.)
Reduced visibility of core fields (basePath protected → private); replaced lazy-initialized AtomicReference with simple static ApiClient in Configuration; removed deserialize(InputStream) method; updated TypeAdapterFactory registrations from old models (Change, ClusterDTO, ItemDTO, etc.) to new models (MultiResponseEntity, OpenItemDiffs, OpenNamespaceSyncModel, etc.); refactored Pair to use mutable fields with setters; simplified HTTP bearer token handling from Supplier-based to direct String field.
Model Classes (New/Enhanced)
java-client/src/main/java/org/openapitools/client/model/(MultiResponseEntity.java, RichResponseEntity.java, OpenEnvClusterInfo.java, OpenItemChangeSets.java, OpenItemDiffs.java, OpenNamespaceIdentifier.java, OpenNamespaceSyncModel.java, OpenNamespaceTextModel.java, OpenReleaseBO.java)
Added 9 new public model classes with Gson serialization, JSON validation (validateJsonObject), and fluent builder patterns.
Model Classes (Refactored)
java-client/src/main/java/org/openapitools/client/model/Open*.java
Removed @nullable annotations from multiple fields across 15+ model classes (OpenAppDTO, OpenAppNamespaceDTO, OpenClusterDTO, OpenCreateAppDTO, OpenEnvClusterDTO, OpenGrayReleaseRuleDTO, OpenGrayReleaseRuleItemDTO, OpenInstanceConfigDTO, OpenInstanceDTO, NamespaceGrayDelReleaseDTO, NamespaceReleaseDTO, KVEntity); migrated JSON validation from validateJsonElement(JsonElement) to validateJsonObject(JsonObject); refactored openapiFields initialization from Arrays.asList to explicit add calls; updated fluent setters to accept non-nullable parameters.
Model Classes (Deleted)
java-client/src/main/java/org/openapitools/client/model/(Change.java, ClusterDTO.java, EntityPairKVEntity.java, ItemDTO.java, MapString.java)
Removed 5 legacy model classes no longer needed in public API.
Documentation Files
java-client/docs/(AppManagementApi.md, ClusterManagementApi.md, InstanceManagementApi.md, ItemManagementApi.md, NamespaceBranchManagementApi.md, NamespaceManagementApi.md, ReleaseManagementApi.md, OrganizationManagementApi.md)
Major API surface overhaul: renamed old openapiV1...Get/Post/Put/Delete methods to semantic names (createApp, deleteApp, getByRelease, mergeBranch, etc.); updated parameter sets and return types; documented new endpoints with Chinese descriptions.
Documentation Files (Models)
java-client/docs/(MultiResponseEntity.md, RichResponseEntity.md, OpenEnvClusterInfo.md, OpenItemChangeSets.md, OpenItemDiffs.md, OpenNamespaceIdentifier.md, OpenNamespaceSyncModel.md, OpenNamespaceTextModel.md, OpenReleaseBO.md)
Added documentation for 9 new public model classes with properties and descriptions.
Documentation Files (Legacy Deletions)
java-client/docs/(Change.md, ClusterDTO.md, EntityPairKVEntity.java, EnvClusterInfo.md, ItemChangeSets.md, ItemDTO.md, ListItemDiffs.md, MapString.md, NamespaceIdentifier.md, NamespaceSyncModel.md, NamespaceTextModel.md, OpenapiV1*.md, ReleaseDTO.md)
Removed documentation for 13 legacy model classes and old API response schemas.
Documentation Files (Updates)
java-client/docs/(KVEntity.md, OpenAppDTO.md, OpenAppNamespaceDTO.md, OpenClusterDTO.md, OpenCreateAppDTO.md, OpenEnvClusterDTO.md, OpenInstanceConfigDTO.md, OpenInstanceDTO.md, OpenReleaseDTO.md, OpenOrganizationDto.md)
Updated property descriptions with Chinese translations and minor formatting adjustments (removed trailing whitespace, updated type references).
Configuration Files
java-client/settings.gradle, .openapi-generator/(VERSION, FILES)
Updated OpenAPI generator version from 7.15.0 to 6.6.0; regenerated FILES manifest with new/updated model classes; added trailing newline to settings.gradle.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

This is a comprehensive SDK regeneration with heterogeneous changes across multiple dimensions: OpenAPI specification updates (new response schemas, new endpoints, operator parameter additions), significant Java client refactoring (API method renames, model class refactoring with nullability changes, validation logic migration), build configuration downgrades across multiple tools and frameworks, and removal/addition of numerous generated files. The scope spans API contracts, build infrastructure, and internal implementation patterns. Careful verification is needed to ensure backward compatibility, proper validation semantics, and correct API surface mapping.

Possibly related PRs

  • fix: fixed operator issue #11: Both PRs modify the OpenAPI specification to add MultiResponseEntity and RichResponseEntity response wrapper models, introduce a required operator parameter across numerous endpoints, and update endpoint response shapes—representing parallel or incremental changes to the same API surface.
  • feat(sdk,server): add Java SDK and Spring Boot server implementation #7: Both PRs regenerate the Java client SDK at a code level, adding and refactoring the same API classes and model types (ApiClient, Configuration, generated api/* and model/* classes), indicating related SDK generation work.

Suggested reviewers

  • hezhangjian
  • arrow1991

Poem

🐰 A rabbit's ode to the grand regeneration:

From spec to code, the builders did dance,
New wrappers emerge with operator's glance—
Old nullable ghosts bid their farewell,
JsonObject validators ring clear like a bell! 🔔
Java Eight breathes, the client renewed,
Apollo's API canvas: beautifully hued! 🎨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cacd4fb and 51c2911.

⛔ Files ignored due to path filters (1)
  • java-client/gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
📒 Files selected for processing (107)
  • apollo-openapi.yaml (23 hunks)
  • generate.sh (1 hunks)
  • java-client/.github/workflows/maven.yml (1 hunks)
  • java-client/.openapi-generator/FILES (3 hunks)
  • java-client/.openapi-generator/VERSION (1 hunks)
  • java-client/README.md (3 hunks)
  • java-client/build.gradle (2 hunks)
  • java-client/build.sbt (1 hunks)
  • java-client/docs/AppManagementApi.md (33 hunks)
  • java-client/docs/Change.md (0 hunks)
  • java-client/docs/ClusterDTO.md (0 hunks)
  • java-client/docs/ClusterManagementApi.md (10 hunks)
  • java-client/docs/EntityPairKVEntity.md (0 hunks)
  • java-client/docs/EnvClusterInfo.md (0 hunks)
  • java-client/docs/InstanceManagementApi.md (10 hunks)
  • java-client/docs/ItemChangeSets.md (0 hunks)
  • java-client/docs/ItemDTO.md (0 hunks)
  • java-client/docs/ItemManagementApi.md (34 hunks)
  • java-client/docs/KVEntity.md (1 hunks)
  • java-client/docs/ListItemDiffs.md (0 hunks)
  • java-client/docs/MapString.md (0 hunks)
  • java-client/docs/MultiResponseEntity.md (1 hunks)
  • java-client/docs/NamespaceBranchManagementApi.md (19 hunks)
  • java-client/docs/NamespaceGrayDelReleaseDTO.md (0 hunks)
  • java-client/docs/NamespaceIdentifier.md (0 hunks)
  • java-client/docs/NamespaceManagementApi.md (26 hunks)
  • java-client/docs/NamespaceReleaseDTO.md (0 hunks)
  • java-client/docs/NamespaceSyncModel.md (0 hunks)
  • java-client/docs/NamespaceTextModel.md (0 hunks)
  • java-client/docs/OpenAppDTO.md (0 hunks)
  • java-client/docs/OpenAppNamespaceDTO.md (0 hunks)
  • java-client/docs/OpenClusterDTO.md (0 hunks)
  • java-client/docs/OpenCreateAppDTO.md (1 hunks)
  • java-client/docs/OpenEnvClusterDTO.md (1 hunks)
  • java-client/docs/OpenEnvClusterInfo.md (1 hunks)
  • java-client/docs/OpenGrayReleaseRuleDTO.md (0 hunks)
  • java-client/docs/OpenGrayReleaseRuleItemDTO.md (0 hunks)
  • java-client/docs/OpenInstanceConfigDTO.md (1 hunks)
  • java-client/docs/OpenInstanceDTO.md (1 hunks)
  • java-client/docs/OpenItemChangeSets.md (1 hunks)
  • java-client/docs/OpenItemDTO.md (0 hunks)
  • java-client/docs/OpenItemDiffs.md (1 hunks)
  • java-client/docs/OpenNamespaceDTO.md (0 hunks)
  • java-client/docs/OpenNamespaceIdentifier.md (1 hunks)
  • java-client/docs/OpenNamespaceLockDTO.md (0 hunks)
  • java-client/docs/OpenNamespaceSyncModel.md (1 hunks)
  • java-client/docs/OpenNamespaceTextModel.md (1 hunks)
  • java-client/docs/OpenOrganizationDto.md (1 hunks)
  • java-client/docs/OpenPageDTOOpenInstanceDTO.md (0 hunks)
  • java-client/docs/OpenPageDTOOpenItemDTO.md (0 hunks)
  • java-client/docs/OpenReleaseBO.md (1 hunks)
  • java-client/docs/OpenReleaseDTO.md (1 hunks)
  • java-client/docs/OpenapiV1AppsGet401Response.md (0 hunks)
  • java-client/docs/OpenapiV1AppsPost400Response.md (0 hunks)
  • java-client/docs/OpenapiV1AppsPostRequest.md (0 hunks)
  • java-client/docs/OpenapiV1EnvsEnvAppsAppIdClustersClusterNameNamespacesNamespaceNameItemsValidatePost200Response.md (0 hunks)
  • java-client/docs/OpenapiV1EnvsEnvAppsAppIdClustersClusterNameNamespacesNamespaceNameItemsValidatePost400Response.md (0 hunks)
  • java-client/docs/OpenapiV1EnvsEnvReleasesCompareGet200Response.md (0 hunks)
  • java-client/docs/OrganizationManagementApi.md (3 hunks)
  • java-client/docs/ReleaseDTO.md (0 hunks)
  • java-client/docs/ReleaseManagementApi.md (19 hunks)
  • java-client/docs/RichResponseEntity.md (1 hunks)
  • java-client/gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • java-client/gradlew (5 hunks)
  • java-client/gradlew.bat (4 hunks)
  • java-client/pom.xml (9 hunks)
  • java-client/settings.gradle (1 hunks)
  • java-client/src/main/java/org/openapitools/client/ApiCallback.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/ApiClient.java (17 hunks)
  • java-client/src/main/java/org/openapitools/client/ApiException.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/ApiResponse.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/Configuration.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/GzipRequestInterceptor.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/JSON.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/Pair.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/ProgressRequestBody.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/ProgressResponseBody.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/ServerConfiguration.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/ServerVariable.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/StringUtil.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/api/ClusterManagementApi.java (9 hunks)
  • java-client/src/main/java/org/openapitools/client/api/InstanceManagementApi.java (9 hunks)
  • java-client/src/main/java/org/openapitools/client/api/OrganizationManagementApi.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/auth/Authentication.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java (3 hunks)
  • java-client/src/main/java/org/openapitools/client/model/Change.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/model/ClusterDTO.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/model/EntityPairKVEntity.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/model/ItemDTO.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/model/KVEntity.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/MapString.java (0 hunks)
  • java-client/src/main/java/org/openapitools/client/model/MultiResponseEntity.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/NamespaceGrayDelReleaseDTO.java (7 hunks)
  • java-client/src/main/java/org/openapitools/client/model/NamespaceReleaseDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenAppDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenAppNamespaceDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenClusterDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenCreateAppDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenEnvClusterDTO.java (6 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenEnvClusterInfo.java (8 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleDTO.java (7 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTO.java (7 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenInstanceConfigDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenInstanceDTO.java (7 hunks)
⛔ Files not processed due to max files limit (12)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemChangeSets.java
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDTO.java
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDiffs.java
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceDTO.java
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceIdentifier.java
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceLockDTO.java
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceSyncModel.java
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceTextModel.java
  • java-client/src/main/java/org/openapitools/client/model/OpenOrganizationDto.java
  • java-client/src/main/java/org/openapitools/client/model/OpenPageDTOOpenInstanceDTO.java
  • java-client/src/main/java/org/openapitools/client/model/OpenPageDTOOpenItemDTO.java
  • java-client/src/main/java/org/openapitools/client/model/OpenReleaseBO.java

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 and usage tips.

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