-
Notifications
You must be signed in to change notification settings - Fork 1
fix: fixed the wrong spelling issue and operationId missing issue. #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughThe pull request renames an OpenAPI endpoint path from Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Rationale: While the pull request spans 20+ files across multiple SDKs (Java, Python, TypeScript, Spring Boot), the changes follow a highly consistent pattern—renaming operations, updating paths, and regenerating client code. The scope is broad but the refactoring is homogeneous and repetitive, reducing the cognitive load per file. Some structural changes (method signature updates, path remapping) require focused review but are uniform across implementations. Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (22)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
python/docs/apis/tags/InstanceManagementApi.md (1)
156-156: Fix path in description to match renamed endpoint.Use /instances_not_in in the GET example.
-GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3 +GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3spring-boot2/src/main/resources/openapi.yaml (1)
2836-2920: Fix description to reflect new path and model excludeReleases as an array (CSV).
- Description still shows the old /instances?excludeReleases=... path. Update to /instances_not_in?excludeReleases=... to avoid confusion.
- excludeReleases should be an array of integers with style=form, explode=false to generate proper SDK types.
Suggested patch within this path item:
/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in: get: deprecated: false - description: "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3" + description: "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3" operationId: getByReleasesNotIn parameters: ... - - description: 排除的发布ID列表,用逗号分隔 - explode: true - in: query - name: excludeReleases - required: false - schema: - type: string - style: form + - description: 排除的发布ID列表(CSV: 1,2,3) + in: query + name: excludeReleases + required: false + style: form + explode: false + schema: + type: array + items: + type: integer + format: int64java-client/docs/InstanceManagementApi.md (1)
88-96: Update GET path text to match renamed endpoint.The section still shows
/.../namespaces/{namespaceName}/instances?excludeReleases=1,2,3. It should use/instances_not_in?excludeReleases=1,2,3.-GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3 +GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApiDelegate.java (1)
56-83: Description still references old path; update to /instances_not_in.Match the spec and docs to avoid confusion.
- * GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3 + * GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApi.java (1)
91-118: Update description string to match new not-in path.Keep the example description consistent with mapping.
- description = "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3", + description = "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3",
🧹 Nitpick comments (12)
java-client/api/openapi.yaml (1)
2683-2683: Add min constraints to page/size for consistency.Other paged endpoints use minimum: 0. Mirror that here.
- description: "" example: 0 explode: true in: query name: page required: true schema: - type: integer + minimum: 0 + type: integer style: form - description: "" example: 20 explode: true in: query name: size required: true schema: - type: integer + minimum: 0 + type: integer style: formjava-client/src/test/java/org/openapitools/client/api/InstanceManagementApiTest.java (2)
43-49: Provide non-null test params to avoid immediate ApiException.Set minimal values for required args so tests can be enabled later.
- public void getByReleaseTest() throws ApiException { - String env = null; - Integer releaseId = null; - Integer page = null; - Integer size = null; + public void getByReleaseTest() throws ApiException { + String env = "DEV"; + Integer releaseId = 1; + Integer page = 0; + Integer size = 20; OpenPageDTOOpenInstanceDTO response = api.getByRelease(env, releaseId, page, size);
60-67: Update endpoint path in Javadoc.The description should reference /instances_not_in.
- * GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3 + * GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3java-client/src/main/java/org/openapitools/client/api/InstanceManagementApi.java (1)
146-169: Consider making page/size optional with sane defaults.If the API supports defaults, allow nulls and default to page=0,size=20 to improve ergonomics. If not, ignore.
python/docs/apis/tags/InstanceManagementApi.md (1)
1-1: Addpython/docs/**to .markdownlintignore to exclude auto-generated documentation.The file
python/docs/apis/tags/InstanceManagementApi.mdis auto-generated and contains HTML anchor tags (e.g.,<a id="__pageTop"></a>) that may cause lint parsing issues with table and heading rules. Currently, no.markdownlintignorefile exists, so these generated docs are being linted. Creating.markdownlintignoreand addingpython/docs/**would reduce lint noise from auto-generated files without requiring template modifications.apollo-openapi.yaml (2)
2465-2473: Fix comment typo and align description with renamed path.
- “avoidng confliction” → “avoiding conflict”.
- Description still shows /instances?excludeReleases=…; update to /instances_not_in?excludeReleases=…
Apply:
- /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in: # avoidng confliction with other server endpoint + /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in: # avoiding conflict with other server endpoint @@ - description: >- - GET - /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3 + description: >- + GET + /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3Also applies to: 2501-2506
2499-2506: Model excludeReleases as CSV array for better clients.Declare it as an array with CSV serialization; generators will expose string[]/number[] instead of raw string.
- - name: excludeReleases - in: query - description: '排除的发布ID列表,用逗号分隔' - required: false - schema: - type: string + - name: excludeReleases + in: query + description: '排除的发布ID列表' + required: false + style: form + explode: false + schema: + type: array + items: + type: integer + format: int64spring-boot2/src/main/resources/openapi.yaml (1)
2759-2835: Add constraints and standard responses for getByRelease; align releaseId type.
- releaseId likely maps to OpenReleaseDTO.id (int64). Prefer format: int64 for consistency.
- page should be >= 0; size should be >= 1 (and ideally default + max).
- Include common responses (401 unauthorized, 404 release not found) to aid client generation.
Suggested patch within this path item:
/openapi/v1/envs/{env}/releases/{releaseId}/instances: get: deprecated: false description: "GET /openapi/v1/envs/{env}/releases/{releaseId}/instances" operationId: getByRelease parameters: - - description: "" + - description: 环境标识 explode: false in: path name: env required: true schema: type: string style: simple - - description: "" + - description: 发布ID explode: false in: path name: releaseId required: true schema: - type: integer + type: integer + format: int64 style: simple - - description: "" + - description: 页码,从0开始 example: 0 explode: true in: query name: page required: true schema: - type: integer + type: integer + minimum: 0 style: form - - description: "" + - description: 每页数量 example: 20 explode: true in: query name: size required: true schema: - type: integer + type: integer + minimum: 1 style: form responses: "200": content: application/json: example: page: 0 size: 0 total: 0 content: - id: 0 appId: "" clusterName: "" dataCenter: "" ip: "" configs: - release: ... schema: $ref: '#/components/schemas/OpenPageDTOOpenInstanceDTO' description: "" + "401": + description: 未授权访问 + content: + application/json: + schema: + $ref: '#/components/schemas/ExceptionResponse' + "404": + description: 发布不存在 + content: + application/json: + schema: + $ref: '#/components/schemas/ExceptionResponse'python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py (1)
171-249: Rename is consistent and implementation is correct; minor cleanup possible.Endpoint wiring, required param handling, and 200-deserialization look good. Optional cleanup: remove the duplicate import of typing_extensions at Lines 10 and 21 to appease linters.
-import typing_extensions +import typing_extensions ... -import typing_extensions # noqa: F401java-client/docs/InstanceManagementApi.md (1)
12-71: Consider using Long for releaseId and document page/size constraints.
- releaseId maps to an ID that’s often int64; consider Long for Java clients.
- Document page ≥ 0 and size ≥ 1 to match server validation once added.
No code change required here if you choose to keep Integer, but aligning types improves consistency.
spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApiDelegate.java (1)
28-51: Guard against missing Accept header to avoid NPE in example response logic.MediaType.parseMediaTypes(null) can NPE. Add a null-safe guard.
- getRequest().ifPresent(request -> { - for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + getRequest().ifPresent(request -> { + final String accept = request.getHeader("Accept"); + if (accept == null) { + return; + } + for (MediaType mediaType: MediaType.parseMediaTypes(accept)) { if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { String exampleString = "{ ... }"; ApiUtil.setExampleResponse(request, "application/json", exampleString); break; } } });spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApi.java (1)
51-77: Validate page/size and consider Long for releaseId.
- Add @min(0) for page and @min(1) for size to enforce constraints early.
- Consider Long for releaseId to align with int64 IDs elsewhere.
- default ResponseEntity<OpenPageDTOOpenInstanceDTO> getByRelease( - @Parameter(name = "env", description = "", required = true, in = ParameterIn.PATH) @PathVariable("env") String env, - @Parameter(name = "releaseId", description = "", required = true, in = ParameterIn.PATH) @PathVariable("releaseId") Integer releaseId, - @NotNull @Parameter(name = "page", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "page", required = true) Integer page, - @NotNull @Parameter(name = "size", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "size", required = true) Integer size + default ResponseEntity<OpenPageDTOOpenInstanceDTO> getByRelease( + @Parameter(name = "env", description = "", required = true, in = ParameterIn.PATH) @PathVariable("env") String env, + @Parameter(name = "releaseId", description = "", required = true, in = ParameterIn.PATH) @PathVariable("releaseId") Long releaseId, + @NotNull @Min(0) @Parameter(name = "page", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "page", required = true) Integer page, + @NotNull @Min(1) @Parameter(name = "size", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "size", required = true) Integer size ) { return getDelegate().getByRelease(env, releaseId, page, size); }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (23)
apollo-openapi.yaml(2 hunks)java-client/README.md(1 hunks)java-client/api/openapi.yaml(2 hunks)java-client/docs/InstanceManagementApi.md(9 hunks)java-client/src/main/java/org/openapitools/client/api/InstanceManagementApi.java(11 hunks)java-client/src/test/java/org/openapitools/client/api/InstanceManagementApiTest.java(2 hunks)python/README.md(1 hunks)python/apollo_openapi/apis/path_to_api.py(3 hunks)python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int.py(0 hunks)python/apollo_openapi/apis/tags/instance_management_api.py(1 hunks)python/apollo_openapi/paths/__init__.py(1 hunks)python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/__init__.py(0 hunks)python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/get.py(0 hunks)python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/get.pyi(0 hunks)python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py(10 hunks)python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.pyi(10 hunks)python/docs/apis/tags/InstanceManagementApi.md(7 hunks)python/test/test_paths/test_openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/__init__.py(0 hunks)python/test/test_paths/test_openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/test_get.py(0 hunks)spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApi.java(5 hunks)spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApiDelegate.java(3 hunks)spring-boot2/src/main/resources/openapi.yaml(2 hunks)typescript/src/apis/InstanceManagementApi.ts(4 hunks)
💤 Files with no reviewable changes (6)
- python/apollo_openapi/apis/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int.py
- python/test/test_paths/test_openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/init.py
- python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/get.pyi
- python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/get.py
- python/apollo_openapi/paths/openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/init.py
- python/test/test_paths/test_openapi_v1_envs_env_apps_app_id_clusters_cluster_name_namespaces_namespace_name_instances_not_int/test_get.py
🧰 Additional context used
🧬 Code graph analysis (8)
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.pyi (1)
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py (10)
_get_by_release_oapg(134-144)_get_by_release_oapg(147-155)_get_by_release_oapg(158-169)_get_by_release_oapg(171-249)GetByRelease(252-309)BaseApi(132-249)get_by_release(256-266)get_by_release(269-277)get_by_release(280-291)get_by_release(293-309)
python/apollo_openapi/apis/tags/instance_management_api.py (2)
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py (5)
get(316-326)get(329-337)get(340-351)get(353-369)GetByRelease(252-309)typescript/src/apis/InstanceManagementApi.ts (1)
InstanceManagementApi(53-215)
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py (1)
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.pyi (10)
_get_by_release_oapg(126-136)_get_by_release_oapg(139-147)_get_by_release_oapg(150-161)_get_by_release_oapg(163-241)GetByRelease(244-301)BaseApi(124-241)get_by_release(248-258)get_by_release(261-269)get_by_release(272-283)get_by_release(285-301)
java-client/src/test/java/org/openapitools/client/api/InstanceManagementApiTest.java (1)
typescript/src/apis/InstanceManagementApi.ts (3)
getByRelease(106-109)getByReleasesNotIn(158-161)getInstanceCountByNamespace(210-213)
spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApiDelegate.java (1)
typescript/src/apis/InstanceManagementApi.ts (3)
getByRelease(106-109)getByReleasesNotIn(158-161)getInstanceCountByNamespace(210-213)
java-client/src/main/java/org/openapitools/client/api/InstanceManagementApi.java (1)
typescript/src/apis/InstanceManagementApi.ts (3)
getByRelease(106-109)getByReleasesNotIn(158-161)getInstanceCountByNamespace(210-213)
spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApi.java (2)
spring-boot2/src/main/java/com/apollo/openapi/server/model/OpenPageDTOOpenInstanceDTO.java (1)
Schema(24-167)typescript/src/apis/InstanceManagementApi.ts (3)
getByRelease(106-109)getByReleasesNotIn(158-161)getInstanceCountByNamespace(210-213)
python/apollo_openapi/apis/path_to_api.py (1)
python/apollo_openapi/paths/__init__.py (1)
PathValues(8-54)
🪛 LanguageTool
python/docs/apis/tags/InstanceManagementApi.md
[grammar] ~75-~75: Use a hyphen to join words.
Context: ... will be streamed and loaded from a file like object. When downloading a file, se...
(QB_NEW_EN_HYPHEN)
[grammar] ~380-~380: Use a hyphen to join words.
Context: ... will be streamed and loaded from a file like object. When downloading a file, se...
(QB_NEW_EN_HYPHEN)
🪛 markdownlint-cli2 (0.18.1)
python/docs/apis/tags/InstanceManagementApi.md
20-20: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
72-72: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
72-72: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
73-73: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
73-73: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
84-84: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
84-84: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
85-85: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
85-85: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
91-91: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
93-93: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
93-93: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
98-98: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
100-100: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
100-100: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
107-107: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
107-107: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
108-108: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
108-108: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
113-113: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
115-115: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
115-115: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
120-120: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
122-122: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
122-122: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
129-129: Link fragments should be valid
(MD051, link-fragments)
129-129: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
129-129: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data
(MD056, table-column-count)
132-132: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
134-134: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
134-134: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
135-135: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
135-135: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
136-136: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
136-136: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
139-139: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
141-141: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
141-141: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data
(MD056, table-column-count)
144-144: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
295-295: Link fragments should be valid
(MD051, link-fragments)
295-295: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
295-295: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data
(MD056, table-column-count)
378-378: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
378-378: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
389-389: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
389-389: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
390-390: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
390-390: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
391-391: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
391-391: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
392-392: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
392-392: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
394-394: Multiple headings with the same content
(MD024, no-duplicate-heading)
397-397: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
399-399: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
399-399: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
401-401: Multiple headings with the same content
(MD024, no-duplicate-heading)
404-404: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
406-406: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
406-406: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
408-408: Multiple headings with the same content
(MD024, no-duplicate-heading)
411-411: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
413-413: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
413-413: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
415-415: Multiple headings with the same content
(MD024, no-duplicate-heading)
418-418: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
420-420: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
420-420: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
427-427: Link fragments should be valid
(MD051, link-fragments)
430-430: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
432-432: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
432-432: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
433-433: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
433-433: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
434-434: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
434-434: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
436-436: Multiple headings with the same content
(MD024, no-duplicate-heading)
439-439: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
441-441: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe
(MD055, table-pipe-style)
441-441: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data
(MD056, table-column-count)
java-client/docs/InstanceManagementApi.md
223-223: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🔇 Additional comments (21)
python/apollo_openapi/apis/tags/instance_management_api.py (2)
17-21: LGTM! Multiple inheritance structure is appropriate.The class correctly inherits from the three refactored mixins (GetByRelease, GetByReleasesNotIn, GetInstanceCountByNamespace) to compose the API surface. The mixin pattern is well-suited for this auto-generated code structure.
12-14: Spelling fix verified and properly scoped; all changes correct.The correction from
instances_not_inttoinstances_not_inis complete and correct. All three imported classes (GetByRelease, GetByReleasesNotIn, GetInstanceCountByNamespace) are used as base classes for InstanceManagementApi (lines 17-21), and no dangling references to the old class names exist in the codebase. The breaking change is properly isolated to this API class definition.python/README.md (1)
232-233: Docs entries for new endpoints look correct.Paths and anchors match the spec and Python docs. No action needed.
java-client/src/test/java/org/openapitools/client/api/InstanceManagementApiTest.java (1)
78-84: Count-by-namespace test alignment.Signature/return type match spec. LGTM.
python/docs/apis/tags/InstanceManagementApi.md (1)
8-10: Method list updated correctly.Entries match the spec and README.
java-client/src/main/java/org/openapitools/client/api/InstanceManagementApi.java (3)
92-112: Path and required params validation for getByRelease are correct.Escaping, auth, and query handling look good.
269-274: Renamed not-in path wired correctly.Good alignment with /instances_not_in.
412-458: Instance count endpoint unchanged and correct.Path/return type consistent with spec.
python/apollo_openapi/paths/__init__.py (1)
39-39: Renamed path enum verified—no lingering references to old name.Verification confirms the new enum member
OPENAPI_V1_ENVS_ENV_APPS_APP_ID_CLUSTERS_CLUSTER_NAME_NAMESPACES_NAMESPACE_NAME_INSTANCES_NOT_INis in place at line 39 with the correct endpoint path, and comprehensive searches across all file types found no remaining references to the old nameINSTANCES_NOT_INT.typescript/src/apis/InstanceManagementApi.ts (3)
28-33: getByRelease: request/response wiring is correct.Required param guards, query mapping, path, and JSON mapping match the OpenAPI. No issues.
Also applies to: 55-109
167-213: Namespace instance count endpoint unchanged — still OK.Integer payload handling covers JSON or text responses; fine to keep.
Also applies to: 192-204
35-41: Rename verification complete—no stale references detected.All searches confirm the endpoint rename from
/instances_not_intto/instances_not_inhas been applied correctly and consistently:
- Interface naming updated (
GetByReleasesNotInRequest)- Method naming updated (
getByReleasesNotInRaw,getByReleasesNotIn)- Path endpoint confirmed (
/instances_not_in)- Zero matches for old naming patterns (
not_int,NotInt)- No stale references in config or schema files
The changes are solid and ready.
java-client/README.md (1)
152-154: Docs table reflects new endpoints and renamed path.Entries for getByRelease and getByReleasesNotIn are correct.
apollo-openapi.yaml (1)
2396-2445: OperationId uniqueness verified across all OpenAPI specs — all checks pass.Verification complete:
getByReleaseandgetByReleasesNotInare unique within apollo-openapi.yaml- Both operationIds appear exactly once in each of the three spec files (apollo-openapi.yaml, java-client/api/openapi.yaml, spring-boot2/src/main/resources/openapi.yaml)
- No stale misspellings (instances_not_int) found
- No duplicate operationIds detected within any file
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.py (1)
252-309: Public wrapper get_by_release mirrors _get_by_release_oapg correctly.Signatures and return routing are consistent with the YAML (page/size required). No further action.
python/apollo_openapi/paths/openapi_v1_envs_env_releases_release_id_instances/get.pyi (2)
163-241: Type stubs align with implementation and new naming.Overloads and docstrings match get_by_release. Looks good.
244-301: Wrapper get_by_release() in stubs correctly delegates.No issues spotted.
java-client/docs/InstanceManagementApi.md (2)
7-9: Table entries for new endpoints look correct.Endpoints and descriptions match the spec.
164-223: Namespace instance count docs match the spec.All good.
spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApiDelegate.java (1)
86-100: LGTM for getInstanceCountByNamespace delegate stub.Interface and mapping align with the spec.
spring-boot2/src/main/java/com/apollo/openapi/server/api/InstanceManagementApi.java (1)
132-157: Instance count endpoint mapping and response typing look correct.No changes requested.
| /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in: | ||
| get: | ||
| deprecated: false | ||
| description: "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3" | ||
| operationId: getByReleasesNotIn | ||
| parameters: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix description path to match renamed endpoint.
Use /instances_not_in in the description.
- description: "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances?excludeReleases=1,2,3"
+ description: "GET /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3"🤖 Prompt for AI Agents
In java-client/api/openapi.yaml around lines 2758 to 2763 the operation
description references the old path query form and should match the renamed
endpoint; update the description string to use
"/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in"
(e.g. "GET
/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/instances_not_in?excludeReleases=1,2,3")
so the doc matches the actual endpoint name.
Summary by CodeRabbit
Release Notes
New Features
getByReleaseendpoint for querying instances by release ID with pagination support.getByReleasesNotInendpoint for querying instances while excluding specific releases.Documentation
Refactor
instances_not_inttoinstances_not_infor improved clarity.