Skip to content

Conversation

@tacklequestions
Copy link
Member

@tacklequestions tacklequestions commented Dec 9, 2025

Summary by CodeRabbit

Release Notes

  • New Features

    • Added AppNamespace Management API for creating, deleting, and managing app namespaces with usage queries
    • Added Namespace Lock Management API to check namespace lock status
    • Expanded Namespace Management API with new endpoints for missing namespaces, namespace usage, and public namespace associations
    • Item operations reorganized under standardized paths (diff, revocation, synchronize, validation)
  • Data Models

    • Extended configuration item and namespace DTOs with additional metadata fields
    • Updated release and gray release rule models with enhanced field support
  • Bug Fixes

    • Corrected endpoint path formatting for environment cluster retrieval

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 9, 2025

Warning

Rate limit exceeded

@tacklequestions has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 6 minutes and 22 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 83acc78 and 86fd9d8.

📒 Files selected for processing (107)
  • apollo-openapi.yaml (46 hunks)
  • java-client/.openapi-generator/FILES (6 hunks)
  • java-client/README.md (4 hunks)
  • java-client/api/openapi.yaml (49 hunks)
  • java-client/docs/AppManagementApi.md (1 hunks)
  • java-client/docs/AppNamespaceManagementApi.md (1 hunks)
  • java-client/docs/ItemManagementApi.md (39 hunks)
  • java-client/docs/MultiResponseEntity.md (0 hunks)
  • java-client/docs/NamespaceBranchManagementApi.md (16 hunks)
  • java-client/docs/NamespaceLockManagementApi.md (1 hunks)
  • java-client/docs/NamespaceManagementApi.md (25 hunks)
  • java-client/docs/OpenCreateItemDTO.md (1 hunks)
  • java-client/docs/OpenCreateNamespaceDTO.md (1 hunks)
  • java-client/docs/OpenGrayReleaseRuleDTO.md (1 hunks)
  • java-client/docs/OpenGrayReleaseRuleItemDTO.md (1 hunks)
  • java-client/docs/OpenItemDTO.md (1 hunks)
  • java-client/docs/OpenItemDiffDTO.md (1 hunks)
  • java-client/docs/OpenItemDiffs.md (0 hunks)
  • java-client/docs/OpenItemExtendDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceExtendDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceLockDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceSyncDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceUsageDTO.md (1 hunks)
  • java-client/docs/ReleaseManagementApi.md (1 hunks)
  • java-client/docs/RichResponseEntity.md (0 hunks)
  • java-client/src/main/java/org/openapitools/client/JSON.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/api/AppManagementApi.java (3 hunks)
  • java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/api/NamespaceBranchManagementApi.java (29 hunks)
  • java-client/src/main/java/org/openapitools/client/api/NamespaceLockManagementApi.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/api/ReleaseManagementApi.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenCreateItemDTO.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenCreateNamespaceDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleDTO.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDTO.java (6 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDiffDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemExtendDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceDTO.java (7 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceExtendDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceLockDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceSyncDTO.java (9 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceUsageDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/RichResponseEntity.java (0 hunks)
  • java-client/src/test/java/org/openapitools/client/api/AppManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/AppNamespaceManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/ItemManagementApiTest.java (10 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceBranchManagementApiTest.java (5 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceLockManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceManagementApiTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/api/ReleaseManagementApiTest.java (0 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenCreateItemDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenCreateNamespaceDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemDTOTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemDiffDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemExtendDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceDTOTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceExtendDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceLockDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceSyncDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceUsageDTOTest.java (1 hunks)
  • python/.openapi-generator/FILES (6 hunks)
  • python/README.md (5 hunks)
  • python/apollo_openapi/apis/path_to_api.py (6 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name_usage.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_integrity_check.py (0 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name_usage.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_associated_public_namespace.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_branches_branch_name.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_diff.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_revocation.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_synchronize.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_validation.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_namespaces.py (1 hunks)
  • python/apollo_openapi/apis/tag_to_api.py (3 hunks)
  • python/apollo_openapi/apis/tags/__init__.py (1 hunks)
  • python/apollo_openapi/apis/tags/app_namespace_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/item_management_api.py (2 hunks)
  • python/apollo_openapi/apis/tags/namespace_branch_management_api.py (2 hunks)
  • python/apollo_openapi/apis/tags/namespace_lock_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/namespace_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/release_management_api.py (0 hunks)
  • python/apollo_openapi/model/multi_response_entity.py (0 hunks)
  • python/apollo_openapi/model/multi_response_entity.pyi (0 hunks)
  • python/apollo_openapi/model/open_create_item_dto.py (2 hunks)
  • python/apollo_openapi/model/open_create_item_dto.pyi (2 hunks)
  • python/apollo_openapi/model/open_create_namespace_dto.py (1 hunks)
  • python/apollo_openapi/model/open_create_namespace_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_gray_release_rule_dto.py (1 hunks)
  • python/apollo_openapi/model/open_gray_release_rule_item_dto.py (2 hunks)
  • python/apollo_openapi/model/open_item_diff_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_diff_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_item_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_item_extend_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_extend_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_namespace_dto.py (6 hunks)
  • python/apollo_openapi/model/open_namespace_dto.pyi (6 hunks)
  • python/apollo_openapi/model/open_namespace_extend_dto.py (1 hunks)
  • python/apollo_openapi/model/open_namespace_extend_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_namespace_lock_dto.py (5 hunks)

Walkthrough

This PR reorganizes the Apollo OpenAPI specification, introducing new endpoint groupings (AppNamespace Management, Namespace Lock Management), restructuring existing ones, renaming endpoints, making the operator parameter optional across many endpoints, and introducing new data transfer objects. Corresponding Java and Python OpenAPI clients are regenerated to reflect these changes.

Changes

Cohort / File(s) Change Summary
OpenAPI Specification
apollo-openapi.yaml
Reorganized API endpoints into new tags/groupings; renamed multiple endpoints (getBranchItems→findBranchItems, loadNamespace→findNamespace); made operator parameter non-required on many endpoints; introduced new DTOs (OpenCreateItemDTO, OpenCreateNamespaceDTO, OpenItemExtendDTO, OpenNamespaceExtendDTO, OpenNamespaceSyncDTO, OpenNamespaceUsageDTO, OpenItemDiffDTO); renamed existing DTOs (OpenItemDiffs→OpenItemDiffDTO, OpenNamespaceSyncModel→OpenNamespaceSyncDTO); removed MultiResponseEntity and RichResponseEntity; added extendInfo fields to OpenItemDTO and OpenNamespaceDTO.
Build & Utilities
generate.sh
Fixed typo: filesystme→filesystem in Perl regex pattern.
Java Client: Generated API Classes
java-client/src/main/java/org/openapitools/client/api/(AppNamespaceManagementApi|NamespaceLockManagementApi|AppManagementApi).java
java-client/.openapi-generator/FILES
Added new API classes AppNamespaceManagementApi and NamespaceLockManagementApi; updated AppManagementApi to reflect path changes (envClusters→envclusters); updated ItemManagementApi, NamespaceBranchManagementApi, NamespaceManagementApi, ReleaseManagementApi to align with specification reorganization.
Java Client: Generated Model Classes
java-client/src/main/java/org/openapitools/client/model/(OpenCreate\*DTO|OpenItem(Diff|Extend)DTO|OpenNamespace(Extend|Sync|Usage)DTO).java
Added new model classes for new DTOs; renamed OpenItemDiffs→OpenItemDiffDTO and OpenNamespaceSyncModel→OpenNamespaceSyncDTO; removed MultiResponseEntity and RichResponseEntity; updated OpenItemDTO and OpenNamespaceDTO to include extendInfo fields.
Java Client: Collection Type Changes
java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRule(DTO|ItemDTO).java
Changed ruleItems from List to Set in OpenGrayReleaseRuleDTO; changed clientIpList and clientLabelList from List to Set in OpenGrayReleaseRuleItemDTO.
Java Client: Test & Documentation
java-client/src/test/java/org/openapitools/client/api/(\*ApiTest\.java)
java-client/docs/(AppNamespaceManagementApi|NamespaceLockManagementApi|ItemManagementApi|NamespaceManagementApi).md
Updated and added test classes to match new API signatures; regenerated API documentation reflecting endpoint reorganization and parameter changes.
Java Client: Removed Documentation
java-client/docs/(MultiResponseEntity|RichResponseEntity).md
Deleted documentation for removed model classes.
Java Client: JSON Adapter Registry
java-client/src/main/java/org/openapitools/client/JSON.java
Updated Gson type adapter factory registrations: removed MultiResponseEntity and RichResponseEntity; added new DTO adapters; replaced OpenItemDiffs and OpenNamespaceSyncModel adapters.
Python Client: Generated Modules
python/.openapi-generator/FILES, python/apollo_openapi/apis/(path_to_api|tag_to_api|tags/).py
Added new API modules (AppNamespaceManagementApi, NamespaceLockManagementApi); updated path routing; reorganized tag definitions; removed legacy path entries; added usage, missing-namespaces endpoints.
Python Client: Generated Model Classes
python/apollo_openapi/model/(open_create_\*_dto|open_item_diff_dto|open_item_extend_dto|open_namespace_extend_dto|open_namespace_sync_dto|open_namespace_usage_dto).py
Added new model classes (.py and .pyi files) for all new DTOs; renamed OpenNamespaceSyncModel→OpenNamespaceSyncDTO and OpenItemDiffs→OpenItemDiffDTO; removed MultiResponseEntity and RichResponseEntity models.
Python Client: Documentation & README
python/README.md
Updated API class listings and endpoint documentation to reflect new AppNamespaceManagementApi, NamespaceLockManagementApi, and reorganized existing API classes.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

  • Key areas requiring extra attention:
    • Operator parameter optionality changes across multiple endpoints—verify backward compatibility and correct propagation through all generated clients
    • Endpoint path and operationId changes (findBranchItems, findNamespace, etc.)—confirm consistency between OpenAPI spec and all generated client implementations
    • Model renames and removals (OpenItemDiffs→OpenItemDiffDTO, OpenNamespaceSyncModel→OpenNamespaceSyncDTO)—ensure no orphaned references remain in any generated code or documentation
    • New extendInfo fields added to OpenItemDTO and OpenNamespaceDTO—verify correct nesting and serialization in all language bindings
    • Collection type changes (List→Set) for clientIpList, clientLabelList, ruleItems—confirm impact on existing code using these fields

Possibly related PRs

Suggested reviewers

  • arrow1991
  • hezhangjian

Poem

🐰 Twitches whiskers with delight
New paths and DTOs, organized just right!
Operators dance with optional grace,
Sets replace lists in their proper place.
ExtendInfo brings depth where there was none—
The refactored APIs sparkle and run! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 51.73% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title describes multiple large-scope changes (namespace, branch, lock, appnamespace, item) but lacks specificity about the primary intent and uses vague phrasing ('fixed some problems'). Clarify the main objective of the changeset. Consider a title like 'refactor: restructure namespace management APIs with new DTOs and endpoints' or specify which category (namespace/branch/item/lock) represents the core change.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
java-client/src/main/java/org/openapitools/client/api/ReleaseManagementApi.java (1)

1245-1321: Operator parameter validation still exists despite Javadoc marking it as optional.

Lines 1515-1518 still validate that operator != null and throw ApiException if it's missing. This contradicts the Javadoc at line 1249 which marks @param operator ... (optional). Additionally, the server-side API (spring-boot2/src/main/java/com/apollo/openapi/server/api/ReleaseManagementApi.java:431) still requires operator with @NotNull and required=true.

Either remove the null-check validation at lines 1515-1518 to match the optional semantics, or update Javadoc to reflect that operator is required. The test passing null for operator (ReleaseManagementApiTest.java:196) will currently fail at runtime due to the validation exception.

apollo-openapi.yaml (2)

2911-2918: Description doesn't match actual path.

The description says GET /openapi/v1/appnamespaces/public but the actual path is /openapi/v1/appnamespaces. This could cause confusion in generated documentation.

       operationId: getAppNamespaces
       deprecated: false
-      description: GET /openapi/v1/appnamespaces/public
+      description: GET /openapi/v1/appnamespaces
       tags:
         - AppNamespace Management

3376-3381: Remove commented-out schema properties.

The operation field is commented out in OpenNamespaceSyncDTO. Either implement it properly or remove the commented code to keep the spec clean.

         syncItems:
           type: array
           items:
             $ref: '#/components/schemas/OpenItemDTO'
           description: 需要修改的配置项列表
-        # operation:
-        #   type: string
-        #   enum: [update, delete, create]
🧹 Nitpick comments (37)
python/README.md (1)

298-319: Fix markdown list indentation in models documentation.

The newly added model entries (lines 298-299 and 309-319) have inconsistent indentation—each list item has an extra space at the start. Per markdown linting rules (MD007), list items should have 0 indentation to align with the rest of the bullet list above them.

Since this file is auto-generated, the root cause is likely in the OpenAPI Generator template. For now, these entries can be corrected manually by removing the leading space from each affected line.

Example:

- - [OpenCreateItemDTO](docs/models/OpenCreateItemDTO.md)
+ - [OpenCreateItemDTO](docs/models/OpenCreateItemDTO.md)

Alternatively, if possible, update the OpenAPI Generator template to ensure consistent indentation in the generated markdown.

java-client/src/test/java/org/openapitools/client/model/OpenNamespaceDTOTest.java (1)

132-138: Test scaffolding is consistent, but consider implementing actual tests.

The new extendInfoTest() method follows the existing pattern in this auto-generated file. However, like all other test methods in this file, it contains only a placeholder TODO comment with no actual assertions.

While this is expected for auto-generated code, consider implementing actual test logic to validate the extendInfo property behavior (e.g., setter/getter functionality, null handling, serialization).

java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTOTest.java (1)

22-23: Set imports align with model change; consider adding minimal Set-based tests

The new LinkedHashSet/Set imports are consistent with the DTO’s Set fields, but the test methods are still TODOs. Not blocking, but adding at least a simple round‑trip (construct → toJsonfromJson) covering non‑empty clientIpList/clientLabelList would help catch regressions in the new Set behavior.

java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleDTOTest.java (1)

22-23: Test imports updated for Set-based ruleItems; optional: add a Set-focused test

The imports for LinkedHashSet/Set are consistent with OpenGrayReleaseRuleDTO.ruleItems now being a Set<OpenGrayReleaseRuleItemDTO>. As with the item test, you may want a small test that:

  • Builds a DTO with multiple ruleItems (including a duplicate),
  • Serializes/deserializes it,
  • Asserts the resulting Set contains unique items.

Not required for this PR, but it would validate the new collection semantics.

java-client/README.md (1)

216-237: Markdown list indentation inconsistency (auto-generated).

Static analysis flagged that list items have 1-space indentation instead of 0. Since this is auto-generated documentation, this is likely a generator artifact.

If consistent formatting is desired, you could configure the OpenAPI generator's markdown template or post-process the output. However, this is a cosmetic issue and doesn't affect functionality.

python/apollo_openapi/model/open_create_item_dto.pyi (1)

39-48: Minor: type shadows Python built-in.

The field name type shadows Python's built-in type() function. While this won't cause issues in the generated code itself (since it's scoped to the class), it could be confusing during debugging or if custom methods are added.

Since this is auto-generated from the OpenAPI spec and the API contract likely defines this field name, this is acceptable. Just be aware if extending this class manually.

java-client/src/main/java/org/openapitools/client/model/OpenCreateNamespaceDTO.java (1)

16-48: Duplicate imports (auto-generated artifact).

Lines 18, 21-23, and 35-38 contain duplicate imports (TypeAdapter, JsonReader, JsonWriter). This is harmless but indicates a minor generator template issue.

// Duplicated:
import com.google.gson.TypeAdapter;  // line 18
import com.google.gson.stream.JsonReader;  // line 21
import com.google.gson.stream.JsonWriter;  // line 22
// ...
import com.google.gson.TypeAdapter;  // line 35
import com.google.gson.stream.JsonReader;  // line 36
import com.google.gson.stream.JsonWriter;  // line 37

This is a cosmetic issue in auto-generated code and doesn't affect functionality.

python/apollo_openapi/model/open_create_item_dto.py (1)

39-47: Property name type shadows Python builtin.

The property type shadows Python's builtin type() function within the class scope. While this is unavoidable for auto-generated code matching the API schema, be aware that using type() inside this class will reference the property schema instead of the builtin.

java-client/src/main/java/org/openapitools/client/model/OpenItemExtendDTO.java (2)

35-38: Duplicate imports (generator artifact).

Lines 35-38 duplicate imports already present at lines 21-23 (JsonReader, JsonWriter, IOException). This is harmless but indicates a generator artifact.


286-293: JSON validation strictness is configurable via OpenAPI Generator options.

The validateJsonObject method throws IllegalArgumentException for unknown JSON fields. This is OpenAPI Generator's default behavior, but it's intentional and configurable. If you need lenient parsing for forward compatibility with future server versions, use one of these approaches:

  • Set failOnUnknownProperties=false when generating the client to disable strict validation in the ObjectMapper
  • Set disallowAdditionalPropertiesIfNotPresent=false to follow the OpenAPI spec's additionalProperties behavior
  • Annotate the model with @JsonIgnoreProperties(ignoreUnknown = true) or configure the ObjectMapper at runtime
java-client/src/test/java/org/openapitools/client/api/NamespaceManagementApiTest.java (2)

31-34: Tests are disabled scaffolds requiring implementation.

The entire test class is @Disabled with placeholder // TODO: test validations comments. While this is typical for auto-generated test scaffolds, ensure these tests are implemented before release to validate the API client behavior.

Would you like me to help generate meaningful test implementations for these API methods?


61-65: Minor naming inconsistency: singular name for List type.

The variable openCreateNamespaceDTO uses singular naming but is declared as List<OpenCreateNamespaceDTO>. Consider renaming to openCreateNamespaceDTOs or openCreateNamespaceDTOList for clarity.

-        List<OpenCreateNamespaceDTO> openCreateNamespaceDTO = null;
+        List<OpenCreateNamespaceDTO> openCreateNamespaceDTOs = null;
         String operator = null;
-        api.createNamespaces(openCreateNamespaceDTO, operator);
+        api.createNamespaces(openCreateNamespaceDTOs, operator);
apollo-openapi.yaml (2)

3273-3276: Missing response content for successful deletion.

The deleteNamespace endpoint returns 200 with description "解除关联成功" but has no response content schema. While empty responses are valid, consider adding a SuccessEmptyResponse schema for consistency with other delete endpoints like deleteCluster (line 1566-1569).

       responses:
         '200':
           description: '解除关联成功'
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/SuccessEmptyResponse'

4110-4115: Consider adding uniqueItems: true to ruleItems for consistency.

Since clientIpList and clientLabelList now use uniqueItems: true, consider whether ruleItems in OpenGrayReleaseRuleDTO should also have this constraint to prevent duplicate rule entries.

         ruleItems:
           type: array
+          uniqueItems: true
           items:
             $ref: '#/components/schemas/OpenGrayReleaseRuleItemDTO'
           description: 灰度发布规则项列表,包含具体的灰度规则条件
java-client/docs/AppManagementApi.md (1)

588-663: Align getEnvClusters path and fix missing HTTP verb for getEnvClusterInfo

The getEnvClusters section now correctly documents the path as:

GET /openapi/v1/apps/{appId}/envclusters

which matches the method table and naming; this looks good.

For consistency with other endpoints, consider adding the HTTP verb to getEnvClusterInfo’s path line:

-/openapi/v1/apps/{appId}/env-cluster-info
+GET /openapi/v1/apps/{appId}/env-cluster-info

to match the rest of the file’s style.

java-client/src/test/java/org/openapitools/client/model/OpenItemDiffDTOTest.java (1)

34-90: Test methods are pure stubs and provide no real coverage

All the @Test methods only contain // TODO comments and no assertions or interactions with model, so they will always pass without actually validating OpenItemDiffDTO. Consider either:

  • Adding minimal assertions for each property, or
  • Annotating the class or methods with @Disabled, or
  • Removing these stubs if you rely on other forms of testing.

This keeps the test suite signal‑to‑noise ratio higher and avoids a false sense of coverage.

java-client/docs/OpenNamespaceDTO.md (1)

21-22: Document the semantics of extendInfo for consistency

The new extendInfo row has no description, while all other fields are documented. To keep the DTO docs self‑explanatory, consider adding a short description, e.g.:

-|**extendInfo** | [**OpenNamespaceExtendDTO**](OpenNamespaceExtendDTO.md) |  |  [optional] |
+|**extendInfo** | [**OpenNamespaceExtendDTO**](OpenNamespaceExtendDTO.md) | 命名空间扩展信息(如是否隐藏配置、公共 namespace 归属应用、未发布变更数等) |  [optional] |
java-client/docs/OpenItemDTO.md (1)

5-15: Update OpenItemDTO description to reflect extendInfo and add field docs

The DTO now exposes extendInfo, but:

  • The intro line still says it “仅包含键值及基础审计信息”.
  • The extendInfo row has no description.

To keep the docs accurate and helpful, consider something like:

-Apollo配置项核心数据对象,仅包含键值及基础审计信息
+Apollo配置项核心数据对象,包含键值、基础审计信息以及可选的扩展信息(extendInfo)
@@
-|**extendInfo** | [**OpenItemExtendDTO**](OpenItemExtendDTO.md) |  |  [optional] |
+|**extendInfo** | [**OpenItemExtendDTO**](OpenItemExtendDTO.md) | 配置项的扩展信息,例如变更状态、新旧值等 |  [optional] |

This keeps the model docs aligned with the new schema.

java-client/docs/OpenItemDiffDTO.md (1)

8-15: Clarify the roles of createItems / deleteItems / updateItems

The three list fields are currently undocumented, which makes it harder for consumers to understand how to apply diffs. Consider adding short descriptions, for example:

-|**createItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) |  |  [optional] |
-|**deleteItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) |  |  [optional] |
-|**updateItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) |  |  [optional] |
+|**createItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) | 需要在目标命名空间新增的配置项列表 |  [optional] |
+|**deleteItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) | 需要在目标命名空间删除的配置项列表 |  [optional] |
+|**updateItems** | [**List<OpenItemDTO>**](OpenItemDTO.md) | 需要在目标命名空间更新的配置项列表 |  [optional] |

That makes the DTO’s intent much clearer.

java-client/src/test/java/org/openapitools/client/model/OpenItemExtendDTOTest.java (1)

29-87: Stub tests don’t validate OpenItemExtendDTO behavior

All test methods are empty apart from // TODO comments, so they will pass without checking any of the OpenItemExtendDTO properties.

To make these tests meaningful, consider:

  • Setting each property on model and asserting getters/serialization, or
  • Marking the class @Disabled until real tests are added, or
  • Removing the file if you don’t intend to maintain model tests.

This avoids carrying around tests that add no real value.

java-client/docs/AppNamespaceManagementApi.md (1)

1-90: Markdownlint warnings are valid but low priority; consider fixing or adjusting the generator.

markdownlint reports a set of stylistic issues (bare URLs, heading-level jumps, list indentation, and missing blank lines around tables). These aren’t functional problems, but if you run markdownlint in CI they’ll cause noise or failures. You can either:

  • Tweak the generator templates to:
    • Use ##/### in a strictly incrementing hierarchy,
    • Remove the leading space before bullet list items,
    • Ensure a blank line before and after tables, and
    • Wrap bare URLs as <http://localhost> or inside code spans; or
  • Relax/override the corresponding rules (MD001, MD007, MD034, MD058) for generated docs.

Given this is generated content, I’d treat it as optional cleanup unless markdownlint is blocking CI.

Also applies to: 281-371

python/apollo_openapi/model/open_item_extend_dto.py (1)

26-130: Schema wiring for OpenItemExtendDTO looks correct; only lint-related nits to consider.

  • The MetaOapg.properties definitions and the __new__ signature are consistent and correctly propagate namespaceId, isModified, isDeleted, isNewlyAdded, newValue, and oldValue into the underlying DictSchema. I don’t see functional issues here.
  • Ruff is flagging:
    • RUF002 for fullwidth punctuation in the (Chinese) docstrings. That’s normal for Chinese text; these warnings are essentially false positives and can be ignored or suppressed for generated modules.
    • RUF100 for # noqa: F401 on imports where rule F401 isn’t enabled. To quiet this, either enable F401 in Ruff or drop the # noqa: F401 comments in the generator for these imports.

None of this affects behavior; it’s purely about keeping the linter output clean for generated code.

java-client/src/test/java/org/openapitools/client/api/NamespaceLockManagementApiTest.java (1)

26-49: Test is a disabled stub; consider adding real coverage or documenting it as generated-only.

NamespaceLockManagementApiTest is currently:

  • Annotated with @Disabled, so it never runs.
  • Calling api.getNamespaceLock with all parameters null and no assertions.

That’s fine as a generated placeholder, but it doesn’t add value. Either:

  • Flesh it out with realistic parameter values and assertions on OpenNamespaceLockDTO, then remove @Disabled; or
  • Clearly treat it as generated boilerplate and be comfortable ignoring it in coverage expectations (possibly removing unused imports to keep things tidy).
java-client/src/test/java/org/openapitools/client/model/OpenNamespaceSyncDTOTest.java (1)

30-42: DTO test now targets OpenNamespaceSyncDTO but remains a no-op.

The test class and method names have been updated to OpenNamespaceSyncDTOTest / testOpenNamespaceSyncDTO, and the fixture uses new OpenNamespaceSyncDTO(), which is consistent with the renamed DTO.

However, all tests still contain only TODO comments, so they don’t validate anything. When you get past the API surface work, it’d be good to at least:

  • Construct an instance with non-default syncToNamespaces and syncItems, and
  • Assert basic getters/JSON round-tripping behave as expected.

For now this is acceptable as generated scaffolding, but it doesn’t contribute real coverage.

java-client/src/test/java/org/openapitools/client/model/OpenCreateNamespaceDTOTest.java (1)

26-70: OpenCreateNamespaceDTO test scaffolding matches the DTO but lacks assertions.

The test class has been correctly updated to OpenCreateNamespaceDTOTest and uses OpenCreateNamespaceDTO with dedicated test methods for appId, env, clusterName, and appNamespaceName. That matches the new DTO surface.

Right now all methods are TODO-only, so they don’t verify behavior. When convenient, consider:

  • Initializing OpenCreateNamespaceDTO with sample values, and
  • Adding assertions per property (and possibly a JSON serialization/deserialization round-trip).

Until then, this is fine as generated scaffolding but doesn’t add real coverage.

python/apollo_openapi/apis/tags/app_namespace_management_api.py (1)

3-35: AppNamespaceManagementApi composition matches the new AppNamespace surface; only docstring lint is noisy.

  • The API class correctly aggregates:

    • CreateAppNamespace
    • DeleteAppNamespace
    • FindAppNamespace
    • FindAppNamespaceUsage
    • GetAppNamespaces
    • GetAppNamespacesByAppId
    • GetPublicAppNamespaceInstances

    which lines up with the documented endpoints in the Java client/docs.

  • Ruff’s RUF002 warnings here stem from fullwidth punctuation in the (Chinese) HTML docstring. That’s expected for localized docs and not a functional problem. If the noise is bothersome, you can:

    • Disable RUF002 for generated modules (e.g., via per-file # ruff: noqa: RUF002), or
    • Exclude the apis/tags generated directory from that rule.

Functionally this file looks good as-is.

java-client/src/test/java/org/openapitools/client/model/OpenCreateItemDTOTest.java (1)

36-70: Auto-generated test stubs need implementation.

All test methods contain only TODO comments with no actual assertions. While this is standard OpenAPI Generator output, consider implementing these tests to validate the DTO's serialization/deserialization behavior, especially for the type field (Integer) and null handling.

java-client/src/test/java/org/openapitools/client/api/AppNamespaceManagementApiTest.java (1)

24-27: Unused imports in auto-generated test class.

The imports ArrayList, HashMap, List, and Map are declared but not used in this test class. While this is common in auto-generated code, if you regenerate or customize this file, consider removing unused imports.

java-client/docs/NamespaceBranchManagementApi.md (2)

11-12: Two similar merge endpoints may cause API confusion.

The documentation shows two endpoints with similar purposes:

  • merge (Line 11): POST .../branches/{branchName}/merge - "合并分支 (original openapi)"
  • mergeBranch (Line 12): POST .../branches/{branchName} - "合并分支到主分支 (new added)"

Both merge branches but have different URLs and slightly different parameters (merge has no operator, while mergeBranch has optional operator). Consider clarifying in the documentation when to use each endpoint, or consolidating them if they serve the same purpose.


411-472: Parameter ordering differs between merge and mergeBranch.

Note the different parameter ordering between similar endpoints:

  • merge (Line 328): appId, env, clusterName, ...
  • mergeBranch (Line 411): env, appId, clusterName, ...

While this may be intentional based on the OpenAPI spec, inconsistent parameter ordering between similar methods can lead to developer confusion and bugs. Consider aligning the parameter order if possible at the spec level.

java-client/src/main/java/org/openapitools/client/model/OpenCreateItemDTO.java (1)

203-247: Optional: add validation for numeric type in validateJsonObject

You currently validate that key, value, and comment are primitives but do not validate type. For stricter diagnostics, you could add a primitive check for type (and optionally ensure it’s an integer) similar to other fields, so malformed JSON fails fast with a clear message rather than at deserialization time.

java-client/api/openapi.yaml (5)

895-977: createItem now documents operator as optional

The operator parameter for POST .../items is now explicitly marked optional, which is consistent with the rest of the API. Given that OpenItemDTO is still used as the request body (not the new OpenCreateItemDTO), verify that the server ignores or safely handles any audit fields clients might send.


978-1042: New batch text update endpoint is well‑structured but description/path text is slightly inconsistent

PUT .../items with body OpenNamespaceTextModel for “通过文本批量修改配置项” looks consistent with the new Python and Java client wiring. The description string includes a trailing colon (.../items:) whereas the actual path does not; consider normalizing this to avoid confusion in rendered docs.


1596-1660: Revocation endpoint reuses existing context and operator semantics

POST .../items/revocation adds a centralized way to revert configuration changes, with an optional operator consistent with other write paths. Since there is no request body here, verify that the backend has enough context (e.g., last release) to interpret a revocation without additional parameters.


4382-4396: OpenCreateItemDTO schema matches the Java model but is not yet used by paths

The OpenCreateItemDTO properties mirror the Java DTO (key/type/value/comment). Consider wiring this into create/update item endpoints if you want a strict separation between creation payloads and full item representations; otherwise it remains a useful but unused schema.


4700-4711: Enforcing uniqueness on IP/label lists in gray rules is a good safety check

Adding uniqueItems: true to clientIpList and clientLabelList in OpenGrayReleaseRuleItemDTO, and to ruleItems in OpenGrayReleaseRuleDTO, prevents duplicates at the schema level and improves data hygiene for gray‑release configurations.

java-client/src/main/java/org/openapitools/client/api/NamespaceBranchManagementApi.java (1)

41-41: Unused import: javax.ws.rs.core.GenericType.

This import appears unused in this file. However, since this is auto-generated code, this is likely a template artifact that may be used by other generated API classes.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f41ca64 and 83acc78.

📒 Files selected for processing (107)
  • apollo-openapi.yaml (46 hunks)
  • generate.sh (1 hunks)
  • java-client/.openapi-generator/FILES (6 hunks)
  • java-client/README.md (4 hunks)
  • java-client/api/openapi.yaml (49 hunks)
  • java-client/docs/AppManagementApi.md (1 hunks)
  • java-client/docs/AppNamespaceManagementApi.md (1 hunks)
  • java-client/docs/ItemManagementApi.md (39 hunks)
  • java-client/docs/MultiResponseEntity.md (0 hunks)
  • java-client/docs/NamespaceBranchManagementApi.md (16 hunks)
  • java-client/docs/NamespaceLockManagementApi.md (1 hunks)
  • java-client/docs/NamespaceManagementApi.md (25 hunks)
  • java-client/docs/OpenCreateItemDTO.md (1 hunks)
  • java-client/docs/OpenCreateNamespaceDTO.md (1 hunks)
  • java-client/docs/OpenGrayReleaseRuleDTO.md (1 hunks)
  • java-client/docs/OpenGrayReleaseRuleItemDTO.md (1 hunks)
  • java-client/docs/OpenItemDTO.md (1 hunks)
  • java-client/docs/OpenItemDiffDTO.md (1 hunks)
  • java-client/docs/OpenItemDiffs.md (0 hunks)
  • java-client/docs/OpenItemExtendDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceExtendDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceLockDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceSyncDTO.md (1 hunks)
  • java-client/docs/OpenNamespaceUsageDTO.md (1 hunks)
  • java-client/docs/ReleaseManagementApi.md (1 hunks)
  • java-client/docs/RichResponseEntity.md (0 hunks)
  • java-client/src/main/java/org/openapitools/client/JSON.java (2 hunks)
  • java-client/src/main/java/org/openapitools/client/api/AppManagementApi.java (3 hunks)
  • java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/api/NamespaceBranchManagementApi.java (29 hunks)
  • java-client/src/main/java/org/openapitools/client/api/NamespaceLockManagementApi.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/api/ReleaseManagementApi.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenCreateItemDTO.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenCreateNamespaceDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleDTO.java (4 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDTO.java (6 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemDiffDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenItemExtendDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceDTO.java (7 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceExtendDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceLockDTO.java (5 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceSyncDTO.java (9 hunks)
  • java-client/src/main/java/org/openapitools/client/model/OpenNamespaceUsageDTO.java (1 hunks)
  • java-client/src/main/java/org/openapitools/client/model/RichResponseEntity.java (0 hunks)
  • java-client/src/test/java/org/openapitools/client/api/AppManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/AppNamespaceManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/ItemManagementApiTest.java (10 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceBranchManagementApiTest.java (5 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceLockManagementApiTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/api/NamespaceManagementApiTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/api/ReleaseManagementApiTest.java (0 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenCreateItemDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenCreateNamespaceDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenGrayReleaseRuleItemDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemDTOTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemDiffDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenItemExtendDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceDTOTest.java (2 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceExtendDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceLockDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceSyncDTOTest.java (1 hunks)
  • java-client/src/test/java/org/openapitools/client/model/OpenNamespaceUsageDTOTest.java (1 hunks)
  • python/.openapi-generator/FILES (6 hunks)
  • python/README.md (5 hunks)
  • python/apollo_openapi/apis/path_to_api.py (6 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name_usage.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_integrity_check.py (0 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name_usage.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_associated_public_namespace.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_branches_branch_name.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_diff.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_revocation.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_synchronize.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_items_validation.py (1 hunks)
  • python/apollo_openapi/apis/paths/openapi_v1_namespaces.py (1 hunks)
  • python/apollo_openapi/apis/tag_to_api.py (3 hunks)
  • python/apollo_openapi/apis/tags/__init__.py (1 hunks)
  • python/apollo_openapi/apis/tags/app_namespace_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/item_management_api.py (2 hunks)
  • python/apollo_openapi/apis/tags/namespace_branch_management_api.py (2 hunks)
  • python/apollo_openapi/apis/tags/namespace_lock_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/namespace_management_api.py (1 hunks)
  • python/apollo_openapi/apis/tags/release_management_api.py (0 hunks)
  • python/apollo_openapi/model/multi_response_entity.py (0 hunks)
  • python/apollo_openapi/model/multi_response_entity.pyi (0 hunks)
  • python/apollo_openapi/model/open_create_item_dto.py (2 hunks)
  • python/apollo_openapi/model/open_create_item_dto.pyi (2 hunks)
  • python/apollo_openapi/model/open_create_namespace_dto.py (1 hunks)
  • python/apollo_openapi/model/open_create_namespace_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_gray_release_rule_dto.py (1 hunks)
  • python/apollo_openapi/model/open_gray_release_rule_item_dto.py (2 hunks)
  • python/apollo_openapi/model/open_item_diff_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_diff_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_item_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_item_extend_dto.py (1 hunks)
  • python/apollo_openapi/model/open_item_extend_dto.pyi (1 hunks)
  • python/apollo_openapi/model/open_namespace_dto.py (6 hunks)
  • python/apollo_openapi/model/open_namespace_dto.pyi (6 hunks)
  • python/apollo_openapi/model/open_namespace_extend_dto.py (1 hunks)
  • python/apollo_openapi/model/open_namespace_extend_dto.pyi (1 hunks)
⛔ Files not processed due to max files limit (30)
  • python/apollo_openapi/model/open_namespace_lock_dto.py
  • python/apollo_openapi/model/open_namespace_lock_dto.pyi
  • python/apollo_openapi/model/open_namespace_sync_dto.py
  • python/apollo_openapi/model/open_namespace_sync_dto.pyi
  • python/apollo_openapi/model/open_namespace_usage_dto.py
  • python/apollo_openapi/model/open_namespace_usage_dto.pyi
  • python/apollo_openapi/models/init.py
  • python/apollo_openapi/paths/init.py
  • python/apollo_openapi/paths/openapi_v1_appnamespaces/get.py
  • python/apollo_openapi/paths/openapi_v1_appnamespaces/get.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces/get.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces/get.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces/post.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces/post.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name/delete.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name/delete.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name/get.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name/get.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name_usage/init.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name_usage/get.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_appnamespaces_namespace_name_usage/get.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces/init.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces/get.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces/get.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces/post.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_missing_namespaces/post.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name/init.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name/delete.py
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name/delete.pyi
  • python/apollo_openapi/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_namespace_name_usage/init.py
💤 Files with no reviewable changes (9)
  • java-client/docs/RichResponseEntity.md
  • python/apollo_openapi/model/multi_response_entity.pyi
  • java-client/docs/MultiResponseEntity.md
  • java-client/src/main/java/org/openapitools/client/model/RichResponseEntity.java
  • java-client/src/test/java/org/openapitools/client/api/ReleaseManagementApiTest.java
  • python/apollo_openapi/model/multi_response_entity.py
  • java-client/docs/OpenItemDiffs.md
  • python/apollo_openapi/apis/tags/release_management_api.py
  • python/apollo_openapi/apis/paths/openapi_v1_apps_app_id_envs_env_clusters_cluster_name_namespaces_integrity_check.py
🧰 Additional context used
🧬 Code graph analysis (4)
python/apollo_openapi/apis/tag_to_api.py (1)
python/apollo_openapi/apis/tags/__init__.py (1)
  • TagValues (8-19)
java-client/src/main/java/org/openapitools/client/model/OpenNamespaceDTO.java (1)
java-client/src/main/java/org/openapitools/client/model/OpenItemDTO.java (1)
  • javax (54-454)
java-client/src/main/java/org/openapitools/client/model/OpenNamespaceLockDTO.java (2)
java-client/src/main/java/org/openapitools/client/model/OpenNamespaceDTO.java (1)
  • javax (57-569)
java-client/src/main/java/org/openapitools/client/model/NamespaceReleaseDTO.java (1)
  • javax (53-297)
python/apollo_openapi/apis/path_to_api.py (1)
python/apollo_openapi/paths/__init__.py (1)
  • PathValues (8-58)
🪛 markdownlint-cli2 (0.18.1)
java-client/docs/AppNamespaceManagementApi.md

3-3: Bare URL used

(MD034, no-bare-urls)


28-28: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


81-81: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


85-85: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


99-99: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


148-148: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


156-156: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


157-157: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


160-160: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


174-174: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


221-221: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


229-229: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


230-230: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


233-233: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


247-247: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


300-300: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


301-301: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


304-304: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


317-317: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


366-366: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


367-367: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


370-370: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


383-383: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


436-436: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


437-437: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


440-440: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


453-453: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


506-506: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


507-507: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


510-510: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

java-client/docs/ItemManagementApi.md

24-24: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


85-85: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


163-163: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


318-318: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


319-319: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


322-322: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


400-400: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


417-417: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


500-500: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

java-client/README.md

216-216: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


217-217: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


227-227: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


228-228: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


229-229: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


230-230: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


231-231: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


232-232: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


233-233: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


234-234: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


235-235: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


236-236: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


237-237: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

python/README.md

298-298: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


299-299: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


309-309: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


310-310: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


311-311: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


312-312: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


313-313: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


314-314: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


315-315: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


316-316: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


317-317: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


318-318: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


319-319: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

java-client/docs/NamespaceManagementApi.md

77-77: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


156-156: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


159-159: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


232-232: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


235-235: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🪛 Ruff (0.14.8)
python/apollo_openapi/apis/tags/app_namespace_management_api.py

6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)

python/apollo_openapi/apis/tags/namespace_lock_management_api.py

6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)

python/apollo_openapi/model/open_item_diff_dto.py

6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


12-12: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


13-13: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


14-14: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


15-15: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


16-16: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


17-17: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


18-18: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


19-19: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


21-21: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


23-23: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


62-62: Undefined name createItems

(F821)


88-88: Undefined name deleteItems

(F821)


114-114: Undefined name updateItems

(F821)

python/apollo_openapi/model/open_item_extend_dto.py

6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


12-12: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


13-13: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


14-14: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


15-15: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


16-16: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


17-17: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


18-18: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


19-19: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


21-21: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


23-23: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


34-34: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)

python/apollo_openapi/model/open_create_namespace_dto.py

6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COLON). Did you mean : (COLON)?

(RUF002)


6-6: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)


12-12: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


13-13: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


14-14: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


15-15: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


16-16: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


17-17: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


18-18: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


19-19: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


21-21: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


23-23: Unused noqa directive (non-enabled: F401)

Remove unused noqa directive

(RUF100)


34-34: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)

python/apollo_openapi/model/open_item_dto.py

34-34: Docstring contains ambiguous (FULLWIDTH COMMA). Did you mean , (COMMA)?

(RUF002)

generate.sh Outdated
find . -type d \( -name .git -o -name .idea -o -name .mvn -o -name target -o -name build -o -name node_modules \) -prune -o \
-type f \( -name "*.java" -o -name "*.xml" -o -name "*.properties" -o -name "*.md" -o -name "*.yml" -o -name "*.yaml" -o -name "*.gradle" -o -name "*.sh" -o -name "*.py" -o -name "*.pyi" -o -name "*.ts" -o -name "*.rs" -o -name ".editorconfig" -o -name ".gitignore" -o -name ".npmignore" -o -name "mvnw" -o -name "VERSION" \) -print0 \
| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystme/filesystem/g; s/\s*\z/\n/s'
| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystem/filesystem/g; s/\s*\z/\n/s'
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix the no-op regex pattern.

The Perl substitution s/filesystem/filesystem/g is a no-op that replaces "filesystem" with itself, doing nothing. Based on the commit intent to fix a typo, this should likely be s/filesystme/filesystem/g (correcting "filesystme" to "filesystem").

Apply this diff to fix the regex:

-| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystem/filesystem/g; s/\s*\z/\n/s'
+| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystme/filesystem/g; s/\s*\z/\n/s'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystem/filesystem/g; s/\s*\z/\n/s'
| xargs -0 perl -i -0777 -pe 's/[ \t]+(?=\r?$)//mg; s/\r//g; s/filesystme/filesystem/g; s/\s*\z/\n/s'
🤖 Prompt for AI Agents
In generate.sh around line 80, the Perl substitution contains a no-op pattern
`s/filesystem/filesystem/g` which does nothing; replace it with the intended
typo correction by changing the left-hand pattern to the misspelled token (e.g.,
`filesystme`) so it becomes `s/filesystme/filesystem/g`, leaving the other
substitutions intact and preserving flags and ordering.

Comment on lines +3 to +14
# OpenCreateNamespaceDTO

Apollo命名空间数据传输对象,表示一个完整的命名空间及其配置项

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**appId** | **String** | 所属应用的唯一标识符 | [optional] |
|**env** | **String** | 所在那个环境创建 | [optional] |
|**clusterName** | **String** | 所属集群的名称 | [optional] |
|**appNamespaceName** | **String** | 根据已创建的appnamespace来实例化namespace | [optional] |
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Clarify OpenCreateNamespaceDTO description to match its actual fields

The summary line:

Apollo命名空间数据传输对象,表示一个完整的命名空间及其配置项

implies this DTO includes both the namespace and its configuration items, but the properties list only namespace identifiers/metadata (appId, env, clusterName, appNamespaceName) and no items payload. This can confuse client users about what they can send.

Consider tightening the description to reflect that this DTO only carries the basic information needed to create a namespace, for example:

-Apollo命名空间数据传输对象,表示一个完整的命名空间及其配置项
+Apollo命名空间创建请求数据传输对象,包含创建命名空间所需的基础信息

If the intent really is to include configuration items here, then corresponding fields should be added and documented.

🤖 Prompt for AI Agents
In java-client/docs/OpenCreateNamespaceDTO.md around lines 3 to 14, the DTO
summary claims it represents a full namespace and its configuration items but
the properties only list namespace identifiers (appId, env, clusterName,
appNamespaceName); update the documentation to accurately reflect the DTO’s
actual purpose: either (A) change the summary to state this DTO only carries
basic namespace creation metadata (appId, env, clusterName, appNamespaceName)
and remove any implication of config items, or (B) if the DTO should include
configuration items, add the corresponding fields to the Properties table (e.g.,
items: Array<ItemDTO> with a brief item schema) and document them. Ensure the
chosen fix keeps the description and Properties table consistent.

Comment on lines +639 to +750
* Build call for getAppNamespaces
* @param _callback Callback for upload/download progress
* @return Call to execute
* @throws ApiException If fail to serialize the request body object
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> </td><td> - </td></tr>
</table>
*/
public okhttp3.Call getAppNamespacesCall(final ApiCallback _callback) throws ApiException {
String basePath = null;
// Operation Servers
String[] localBasePaths = new String[] { };

// Determine Base Path to Use
if (localCustomBaseUrl != null){
basePath = localCustomBaseUrl;
} else if ( localBasePaths.length > 0 ) {
basePath = localBasePaths[localHostIndex];
} else {
basePath = null;
}

Object localVarPostBody = null;

// create path and map variables
String localVarPath = "/openapi/v1/appnamespaces";

List<Pair> localVarQueryParams = new ArrayList<Pair>();
List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
Map<String, String> localVarHeaderParams = new HashMap<String, String>();
Map<String, String> localVarCookieParams = new HashMap<String, String>();
Map<String, Object> localVarFormParams = new HashMap<String, Object>();

final String[] localVarAccepts = {
"application/json"
};
final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
if (localVarAccept != null) {
localVarHeaderParams.put("Accept", localVarAccept);
}

final String[] localVarContentTypes = {
};
final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
if (localVarContentType != null) {
localVarHeaderParams.put("Content-Type", localVarContentType);
}

String[] localVarAuthNames = new String[] { "ApiKeyAuth" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}

@SuppressWarnings("rawtypes")
private okhttp3.Call getAppNamespacesValidateBeforeCall(final ApiCallback _callback) throws ApiException {
return getAppNamespacesCall(_callback);

}

/**
* 获取所有公共AppNamespace (new added)
* GET /openapi/v1/appnamespaces/public
* @return List&lt;OpenAppNamespaceDTO&gt;
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> </td><td> - </td></tr>
</table>
*/
public List<OpenAppNamespaceDTO> getAppNamespaces() throws ApiException {
ApiResponse<List<OpenAppNamespaceDTO>> localVarResp = getAppNamespacesWithHttpInfo();
return localVarResp.getData();
}

/**
* 获取所有公共AppNamespace (new added)
* GET /openapi/v1/appnamespaces/public
* @return ApiResponse&lt;List&lt;OpenAppNamespaceDTO&gt;&gt;
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> </td><td> - </td></tr>
</table>
*/
public ApiResponse<List<OpenAppNamespaceDTO>> getAppNamespacesWithHttpInfo() throws ApiException {
okhttp3.Call localVarCall = getAppNamespacesValidateBeforeCall(null);
Type localVarReturnType = new TypeToken<List<OpenAppNamespaceDTO>>(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}

/**
* 获取所有公共AppNamespace (new added) (asynchronously)
* GET /openapi/v1/appnamespaces/public
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> </td><td> - </td></tr>
</table>
*/
public okhttp3.Call getAppNamespacesAsync(final ApiCallback<List<OpenAppNamespaceDTO>> _callback) throws ApiException {

okhttp3.Call localVarCall = getAppNamespacesValidateBeforeCall(_callback);
Type localVarReturnType = new TypeToken<List<OpenAppNamespaceDTO>>(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's find the OpenAPI spec file(s) in the repository
find . -type f \( -name "*.yaml" -o -name "*.yml" -o -name "*.json" \) | grep -iE "(openapi|swagger)" | head -20

Repository: apolloconfig/apollo-openapi

Length of output: 170


🏁 Script executed:

# Search the OpenAPI spec for getAppNamespaces and related paths
grep -n "appnamespaces" ./apollo-openapi.yaml | head -30

Repository: apolloconfig/apollo-openapi

Length of output: 758


🏁 Script executed:

# Get the full context of the /openapi/v1/appnamespaces endpoint definition
sed -n '2783,2820p' ./apollo-openapi.yaml

Repository: apolloconfig/apollo-openapi

Length of output: 1232


🏁 Script executed:

# Let's check the exact method signatures in AppNamespaceManagementApi.java around the getAppNamespaces methods
sed -n '639,750p' java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java

Repository: apolloconfig/apollo-openapi

Length of output: 198


🏁 Script executed:

# Find the correct path to AppNamespaceManagementApi.java
find . -name "AppNamespaceManagementApi.java" -type f

Repository: apolloconfig/apollo-openapi

Length of output: 53


🏁 Script executed:

# Check the java-client directory structure
ls -la java-client/ 2>/dev/null | head -20
# Also check if there's any api directory
find java-client -type d -name "api" 2>/dev/null

Repository: apolloconfig/apollo-openapi

Length of output: 1357


🏁 Script executed:

# List files in the api directory
ls -la java-client/src/main/java/org/openapitools/client/api/ | grep -i appnamespace

Repository: apolloconfig/apollo-openapi

Length of output: 53


🏁 Script executed:

# List all files in the api directory
ls -la java-client/src/main/java/org/openapitools/client/api/ | head -50

Repository: apolloconfig/apollo-openapi

Length of output: 893


🏁 Script executed:

# Check git log to see if AppNamespaceManagementApi.java was recently added/removed
git log --oneline --all -- "*AppNamespaceManagementApi*" 2>/dev/null | head -10
# Also check git status
git status 2>/dev/null | head -20

Repository: apolloconfig/apollo-openapi

Length of output: 390


🏁 Script executed:

# Check if AppNamespaceManagementApi.java exists in the recent commit
git show 83acc78:java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java 2>/dev/null | head -50

Repository: apolloconfig/apollo-openapi

Length of output: 1945


🏁 Script executed:

# Get lines 639-750 from AppNamespaceManagementApi.java in the commit
git show 83acc78:java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java 2>/dev/null | sed -n '639,750p'

Repository: apolloconfig/apollo-openapi

Length of output: 5218


🏁 Script executed:

# Let's verify if publicOnly parameter is being added anywhere in the method
git show 83acc78:java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java | grep -n "publicOnly" | head -20

Repository: apolloconfig/apollo-openapi

Length of output: 53


Fix documentation and implement missing publicOnly query parameter

The Javadoc incorrectly shows GET /openapi/v1/appnamespaces/public, but the API spec defines the endpoint at /openapi/v1/appnamespaces with a required publicOnly query parameter. The code path is correct, but the methods are missing the publicOnly parameter in their signatures and implementation. Update the Javadoc to reflect the actual query parameter approach and add the missing publicOnly parameter to getAppNamespacesCall() and related method signatures.

🤖 Prompt for AI Agents
java-client/src/main/java/org/openapitools/client/api/AppNamespaceManagementApi.java
lines 639-750: the Javadoc and method signatures incorrectly describe the
endpoint as "/openapi/v1/appnamespaces/public" and omit the required publicOnly
query parameter; update the Javadoc to show GET /openapi/v1/appnamespaces with a
publicOnly query param, add a boolean (or Boolean) publicOnly parameter to
getAppNamespacesCall, getAppNamespacesValidateBeforeCall, getAppNamespaces,
getAppNamespacesWithHttpInfo, and getAppNamespacesAsync signatures, and wire it
into the request by adding a new Pair to localVarQueryParams (e.g.,
localVarQueryParams.addAll(localVarApiClient.parameterToPair("publicOnly",
publicOnly))); ensure null/checks as appropriate in validateBeforeCall, adjust
Type/return handling unchanged, and update method Javadoc descriptions to
document the publicOnly parameter.

@hezhangjian hezhangjian merged commit 99704e1 into apolloconfig:main Dec 13, 2025
4 checks passed
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.

2 participants