Conversation
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughThree configuration files are updated: language tags are swapped in Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4978 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 22 22
Lines 796 796
Branches 146 146
=========================================
Hits 796 796 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4978--asyncapi-website.netlify.app/ |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
config/all-tags.json (1)
306-319: Remove duplicate "SmartPaste" entry from technologies array."SmartPaste" appears twice (lines 306–309 and 316–319) in the
technologiesarray. The filtering code incomponents/tools/ToolsDashboard.tsxandcomponents/tools/Filters.tsxiterates through this array to populate filter dropdowns, so duplicate entries will cause the same technology to appear multiple times in the UI.Note: "VSCode" and "HTML" also have duplicate entries in this array—consider reviewing the entire array for other duplicates.
config/tools.json (2)
2726-2751: Remove test repository entry from production configuration.The
asyncapi-previewentry at lines 2726-2751 points toSavio629/testing2, a test repository. This entry duplicates the officialasyncapi-previewtool (withasyncapi/vs-asyncapi-preview) and appears incypress/fixtures/toolsData.json, confirming it is test data. Test entries should not exist in the main production configuration file (config/tools.json).
1348-1428: Remove test repositories from production tools catalog.The entries at lines 1377 and 1407 reference test/fork repositories (
TahaShahid203/async-api-issueandShurtu-gal/action-test-bed) withnulldescriptions. These appear alongside the official AsyncAPI Studio entry and will be visible to users browsing tools. Sincetools.jsonis generated by combining auto-discovered tools with manual entries, these test repositories should be explicitly excluded intools-manual.jsonor the auto-discovery mechanism should be updated to filter them out.config/tools-automated.json (1)
368-405: Remove duplicate AsyncAPI Studio entries with fork/test repositories.The Editors section contains two duplicate "AsyncAPI Studio" entries that immediately follow the official entry. These fraudulent entries:
- Share the official website URL (https://studio.asyncapi.com) but point to fork/test repositories
- Have
nulldescriptions andisAsyncAPIOwner: false, indicating they are incomplete or abandoned entries- Will confuse users browsing the tools catalog
Delete or correct these entries:
- Line 368-385: References
https://github.com/TahaShahid203/async-api-issue- Line 387-405: References
https://github.com/Shurtu-gal/action-test-bedThe official AsyncAPI Studio entry (lines 349-367 with repo
https://github.com/asyncapi/studio) should remain.
🤖 Fix all issues with AI agents
In `@config/tools-automated.json`:
- Around line 554-575: The "Specmatic" tool entries use an inconsistent category
value "CLIs" that should be normalized to lowercase "cli"; locate the JSON
objects with "title": "Specmatic" and update their "categories" arrays to
replace "CLIs" with "cli" so category filtering matches other tools; ensure all
occurrences of "CLIs" for Specmatic (and any duplicate Specmatic entries) are
changed to "cli".
- Around line 77-136: Update the inconsistent casing in the filters.language
values: change "Typescript" to "TypeScript" for the entry titled
"nestjs-asyncapi" (the filters.language field in that object) and change
"python" to "Python" for the entry titled "ChanX" (the filters.language field in
that object); also scan other tool entries for any additional language casing
mismatches and normalize them to the canonical casing used across the file.
- Around line 916-933: There is a duplicate "title":"asyncapi-preview" entry
whose "links.repoUrl" points to the test repo
"https://github.com/Savio629/testing2"; either remove this entire object or
replace its "links.repoUrl" value with the official URL
"https://github.com/asyncapi/vs-asyncapi-preview" and ensure the rest of the
fields (description, filters, hasCommercial/isAsyncAPIOwner) match the
authoritative entry to avoid inconsistent duplicates.
🧹 Nitpick comments (2)
config/tools-automated.json (1)
1001-1016: HTML Template entry with null description.This entry (lines 1001-1016) has a
nulldescription and points to a fork repository (dipaksodani/async-gen). While null descriptions are technically valid per the schema, they provide poor user experience in the tools catalog.config/tools.json (1)
2846-2924: Multiple HTML Template entries with mixed quality.The first entry (lines 2846-2870) correctly references the official
asyncapi/html-templatewith a proper description. The subsequent entries havenulldescriptions and point to fork repositories:
- Line 2876:
dipaksodani/async-gen- Line 2903:
WSOL12/html-templateConsider whether these fork entries should be included in the official tools catalog.
| "title": "nestjs-asyncapi", | ||
| "description": "Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.", | ||
| "links": { | ||
| "websiteUrl": "https://www.npmjs.com/package/zod-sockets", | ||
| "repoUrl": "https://github.com/RobinTail/zod-sockets" | ||
| "repoUrl": "https://github.com/flamewow/nestjs-asyncapi" | ||
| }, | ||
| "filters": { | ||
| "language": "TypeScript", | ||
| "language": "Typescript", | ||
| "technology": [ | ||
| "Node.js", | ||
| "TypeScript" | ||
| "NestJS" | ||
| ], | ||
| "categories": [ | ||
| "code-first", | ||
| "dsl", | ||
| "framework" | ||
| "code-first" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, | ||
| { | ||
| "title": "ChanX", | ||
| "description": "WebSocket framework for Django/FastAPI with AsyncAPI 3.0 spec generation and Python client generation from AsyncAPI schemas", | ||
| "title": "AsyncAPI.Net", | ||
| "description": "The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.", | ||
| "links": { | ||
| "docsUrl": "https://chanx.readthedocs.io/", | ||
| "repoUrl": "https://github.com/huynguyengl99/chanx" | ||
| "websiteUrl": "https://github.com/LEGO/AsyncAPI.NET/", | ||
| "repoUrl": "https://github.com/LEGO/AsyncAPI.NET" | ||
| }, | ||
| "filters": { | ||
| "language": "python", | ||
| "language": "C#", | ||
| "technology": [ | ||
| "Django", | ||
| "FastAPI" | ||
| ".NET", | ||
| "ASP.NET" | ||
| ], | ||
| "categories": [ | ||
| "converters", | ||
| "code-first", | ||
| "code-generator" | ||
| "validator" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, | ||
| { | ||
| "title": "nestjs-asyncapi", | ||
| "description": "Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.", | ||
| "title": "ChanX", | ||
| "description": "WebSocket framework for Django/FastAPI with AsyncAPI 3.0 spec generation and Python client generation from AsyncAPI schemas", | ||
| "links": { | ||
| "repoUrl": "https://github.com/flamewow/nestjs-asyncapi" | ||
| "docsUrl": "https://chanx.readthedocs.io/", | ||
| "repoUrl": "https://github.com/huynguyengl99/chanx" | ||
| }, | ||
| "filters": { | ||
| "language": "Typescript", | ||
| "language": "python", | ||
| "technology": [ | ||
| "Node.js", | ||
| "NestJS" | ||
| "Django", | ||
| "FastAPI" | ||
| ], | ||
| "categories": [ | ||
| "code-first" | ||
| "code-first", | ||
| "code-generator" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } |
There was a problem hiding this comment.
Inconsistent casing in language filter values.
The language values have inconsistent casing:
- Line 83:
"Typescript"should be"TypeScript"(capital S) - Line 125:
"python"should be"Python"(capital P)
This inconsistency may break filtering or tag matching logic that relies on exact string comparison.
🔧 Suggested fixes
"filters": {
- "language": "Typescript",
+ "language": "TypeScript", "filters": {
- "language": "python",
+ "language": "Python",🤖 Prompt for AI Agents
In `@config/tools-automated.json` around lines 77 - 136, Update the inconsistent
casing in the filters.language values: change "Typescript" to "TypeScript" for
the entry titled "nestjs-asyncapi" (the filters.language field in that object)
and change "python" to "Python" for the entry titled "ChanX" (the
filters.language field in that object); also scan other tool entries for any
additional language casing mismatches and normalize them to the canonical casing
used across the file.
| { | ||
| "title": "Specmatic", | ||
| "description": "Transform your API Specs into Executable Contracts with #NoCode in Seconds. Experience the power of Contract-Driven Development to confidently develop and independently deploy your Microservices and Microfrontends faster", | ||
| "links": { | ||
| "websiteUrl": "https://specmatic.io", | ||
| "docsUrl": "https://specmatic.io/documentation/", | ||
| "repoUrl": "https://github.com/specmatic/specmatic" | ||
| }, | ||
| "filters": { | ||
| "language": "kotlin", | ||
| "technology": [ | ||
| "Docker", | ||
| "maven" | ||
| ], | ||
| "categories": [ | ||
| "mocking-and-testing", | ||
| "CLIs" | ||
| ], | ||
| "hasCommercial": true, | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, |
There was a problem hiding this comment.
Inconsistent category naming: "CLIs" vs "cli".
The Specmatic entries use "CLIs" (uppercase) in the categories array (lines 570, 756), while other tools throughout the file use lowercase "cli". This inconsistency may affect category filtering and grouping.
🔧 Suggested fix
"categories": [
"mocking-and-testing",
- "CLIs"
+ "cli"
],Also applies to: 740-761
🤖 Prompt for AI Agents
In `@config/tools-automated.json` around lines 554 - 575, The "Specmatic" tool
entries use an inconsistent category value "CLIs" that should be normalized to
lowercase "cli"; locate the JSON objects with "title": "Specmatic" and update
their "categories" arrays to replace "CLIs" with "cli" so category filtering
matches other tools; ensure all occurrences of "CLIs" for Specmatic (and any
duplicate Specmatic entries) are changed to "cli".
| { | ||
| "title": "jAsyncAPI - IDEA plugin", | ||
| "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.", | ||
| "title": "asyncapi-preview", | ||
| "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n", | ||
| "links": { | ||
| "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi", | ||
| "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage", | ||
| "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin" | ||
| "repoUrl": "https://github.com/Savio629/testing2" | ||
| }, | ||
| "filters": { | ||
| "language": "Kotlin", | ||
| "technology": [ | ||
| "JetBrains", | ||
| "IntelliJ IDEA" | ||
| "VSCode", | ||
| "SmartPaste" | ||
| ], | ||
| "categories": [ | ||
| "ide-extension" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": true | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's find and examine the tools-automated.json file
fd tools-automated.jsonRepository: asyncapi/website
Length of output: 87
🏁 Script executed:
# Read the specific lines mentioned in the review (916-933)
sed -n '916,933p' config/tools-automated.jsonRepository: asyncapi/website
Length of output: 705
🏁 Script executed:
# Also check surrounding context to see other asyncapi-preview entries
sed -n '870,940p' config/tools-automated.jsonRepository: asyncapi/website
Length of output: 2582
🏁 Script executed:
# Count total asyncapi-preview entries in the file
rg -i "asyncapi-preview" config/tools-automated.json -cRepository: asyncapi/website
Length of output: 61
🌐 Web query:
Savio629/testing2 GitHub repository
💡 Result:
I couldn't find a public repository named "Savio629/testing2". I did find activity for the GitHub user savio629 (issues/PRs), so the account exists. [1]
Do you mean a different repo name, or could the repo be private? If you want, I can search again — please confirm the exact repo name or provide a link.
Sources:
- savio629 activity summary. [1]
Remove or replace test repository entry for asyncapi-preview.
This IDE Extensions section contains a duplicate asyncapi-preview entry (lines 916-933) that points to https://github.com/Savio629/testing2. This repository appears to be non-existent or private, unlike the official entry at lines 881-897 that references https://github.com/asyncapi/vs-asyncapi-preview. Remove this entry or replace it with the correct official repository URL.
🤖 Prompt for AI Agents
In `@config/tools-automated.json` around lines 916 - 933, There is a duplicate
"title":"asyncapi-preview" entry whose "links.repoUrl" points to the test repo
"https://github.com/Savio629/testing2"; either remove this entire object or
replace its "links.repoUrl" value with the official URL
"https://github.com/asyncapi/vs-asyncapi-preview" and ensure the rest of the
fields (description, filters, hasCommercial/isAsyncAPIOwner) match the
authoritative entry to avoid inconsistent duplicates.
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.