-
Notifications
You must be signed in to change notification settings - Fork 1
feat: migration of namespace and namespace branch, namespace lock, appnamespace lock, item, fixed some problems #19
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
|
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 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. 📒 Files selected for processing (107)
WalkthroughThis 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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
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: 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 != nulland throwApiExceptionif 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 requiresoperatorwith@NotNullandrequired=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
nullfor 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/publicbut 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
operationfield is commented out inOpenNamespaceSyncDTO. 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
extendInfoproperty 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 testsThe new
LinkedHashSet/Setimports 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 →toJson→fromJson) covering non‑emptyclientIpList/clientLabelListwould 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-basedruleItems; optional: add a Set-focused testThe imports for
LinkedHashSet/Setare consistent withOpenGrayReleaseRuleDTO.ruleItemsnow being aSet<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
Setcontains 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:typeshadows Python built-in.The field name
typeshadows Python's built-intype()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 37This 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 nametypeshadows Python builtin.The property
typeshadows Python's builtintype()function within the class scope. While this is unavoidable for auto-generated code matching the API schema, be aware that usingtype()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
validateJsonObjectmethod throwsIllegalArgumentExceptionfor 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=falsewhen generating the client to disable strict validation in the ObjectMapper- Set
disallowAdditionalPropertiesIfNotPresent=falseto follow the OpenAPI spec'sadditionalPropertiesbehavior- Annotate the model with
@JsonIgnoreProperties(ignoreUnknown = true)or configure the ObjectMapper at runtimejava-client/src/test/java/org/openapitools/client/api/NamespaceManagementApiTest.java (2)
31-34: Tests are disabled scaffolds requiring implementation.The entire test class is
@Disabledwith placeholder// TODO: test validationscomments. 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 forListtype.The variable
openCreateNamespaceDTOuses singular naming but is declared asList<OpenCreateNamespaceDTO>. Consider renaming toopenCreateNamespaceDTOsoropenCreateNamespaceDTOListfor 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
deleteNamespaceendpoint returns200with description "解除关联成功" but has no response content schema. While empty responses are valid, consider adding aSuccessEmptyResponseschema for consistency with other delete endpoints likedeleteCluster(line 1566-1569).responses: '200': description: '解除关联成功' + content: + application/json: + schema: + $ref: '#/components/schemas/SuccessEmptyResponse'
4110-4115: Consider addinguniqueItems: truetoruleItemsfor consistency.Since
clientIpListandclientLabelListnow useuniqueItems: true, consider whetherruleItemsinOpenGrayReleaseRuleDTOshould 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 getEnvClusterInfoThe
getEnvClusterssection now correctly documents the path as:GET /openapi/v1/apps/{appId}/envclusterswhich 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-infoto 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 coverageAll the
@Testmethods only contain// TODOcomments and no assertions or interactions withmodel, so they will always pass without actually validatingOpenItemDiffDTO. 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 ofextendInfofor consistencyThe new
extendInforow 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 reflectextendInfoand add field docsThe DTO now exposes
extendInfo, but:
- The intro line still says it “仅包含键值及基础审计信息”.
- The
extendInforow 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 ofcreateItems/deleteItems/updateItemsThe 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 behaviorAll test methods are empty apart from
// TODOcomments, so they will pass without checking any of theOpenItemExtendDTOproperties.To make these tests meaningful, consider:
- Setting each property on
modeland asserting getters/serialization, or- Marking the class
@Disableduntil 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 forOpenItemExtendDTOlooks correct; only lint-related nits to consider.
- The
MetaOapg.propertiesdefinitions and the__new__signature are consistent and correctly propagatenamespaceId,isModified,isDeleted,isNewlyAdded,newValue, andoldValueinto the underlyingDictSchema. 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: F401on imports where rule F401 isn’t enabled. To quiet this, either enable F401 in Ruff or drop the# noqa: F401comments 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.
NamespaceLockManagementApiTestis currently:
- Annotated with
@Disabled, so it never runs.- Calling
api.getNamespaceLockwith all parametersnulland 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 targetsOpenNamespaceSyncDTObut remains a no-op.The test class and method names have been updated to
OpenNamespaceSyncDTOTest/testOpenNamespaceSyncDTO, and the fixture usesnew 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
syncToNamespacesandsyncItems, 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
OpenCreateNamespaceDTOTestand usesOpenCreateNamespaceDTOwith dedicated test methods forappId,env,clusterName, andappNamespaceName. That matches the new DTO surface.Right now all methods are TODO-only, so they don’t verify behavior. When convenient, consider:
- Initializing
OpenCreateNamespaceDTOwith 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:AppNamespaceManagementApicomposition matches the new AppNamespace surface; only docstring lint is noisy.
The API class correctly aggregates:
CreateAppNamespaceDeleteAppNamespaceFindAppNamespaceFindAppNamespaceUsageGetAppNamespacesGetAppNamespacesByAppIdGetPublicAppNamespaceInstanceswhich 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/tagsgenerated 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
typefield (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, andMapare 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 (
mergehas nooperator, whilemergeBranchhas optionaloperator). Consider clarifying in the documentation when to use each endpoint, or consolidating them if they serve the same purpose.
411-472: Parameter ordering differs betweenmergeandmergeBranch.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 numerictypeinvalidateJsonObjectYou currently validate that
key,value, andcommentare primitives but do not validatetype. For stricter diagnostics, you could add a primitive check fortype(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:createItemnow documentsoperatoras optionalThe
operatorparameter forPOST .../itemsis now explicitly marked optional, which is consistent with the rest of the API. Given thatOpenItemDTOis still used as the request body (not the newOpenCreateItemDTO), 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 .../itemswith bodyOpenNamespaceTextModelfor “通过文本批量修改配置项” 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 andoperatorsemantics
POST .../items/revocationadds a centralized way to revert configuration changes, with an optionaloperatorconsistent 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 pathsThe
OpenCreateItemDTOproperties 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 checkAdding
uniqueItems: truetoclientIpListandclientLabelListinOpenGrayReleaseRuleItemDTO, and toruleItemsinOpenGrayReleaseRuleDTO, 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
📒 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' |
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 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.
| | 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.
| # OpenCreateNamespaceDTO | ||
|
|
||
| Apollo命名空间数据传输对象,表示一个完整的命名空间及其配置项 | ||
|
|
||
| ## Properties | ||
|
|
||
| | Name | Type | Description | Notes | | ||
| |------------ | ------------- | ------------- | -------------| | ||
| |**appId** | **String** | 所属应用的唯一标识符 | [optional] | | ||
| |**env** | **String** | 所在那个环境创建 | [optional] | | ||
| |**clusterName** | **String** | 所属集群的名称 | [optional] | | ||
| |**appNamespaceName** | **String** | 根据已创建的appnamespace来实例化namespace | [optional] | |
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.
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.
| * 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<OpenAppNamespaceDTO> | ||
| * @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<List<OpenAppNamespaceDTO>> | ||
| * @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; | ||
| } |
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.
🧩 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 -20Repository: 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 -30Repository: 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.yamlRepository: 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.javaRepository: apolloconfig/apollo-openapi
Length of output: 198
🏁 Script executed:
# Find the correct path to AppNamespaceManagementApi.java
find . -name "AppNamespaceManagementApi.java" -type fRepository: 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/nullRepository: 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 appnamespaceRepository: 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 -50Repository: 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 -20Repository: 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 -50Repository: 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 -20Repository: 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.
Summary by CodeRabbit
Release Notes
New Features
Data Models
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.