-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
chore: update tools.json #4306
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
chore: update tools.json #4306
Conversation
WalkthroughThis change updates three configuration JSON files. It swaps the names of several technology tags, adds a new "Go" technology tag, and reorganizes tool entries by updating, swapping, and adding metadata for various AsyncAPI-related tools. Duplicate entries are removed, and new tools such as "MessageFlow" are introduced. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Config
participant ToolsList
User->>Config: View technology tags
Config-->>User: Show updated tags (swapped names, new "Go" tag)
User->>ToolsList: View AsyncAPI tools
ToolsList-->>User: Show reorganized, updated, and new tool entries
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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: 7
🔭 Outside diff range comments (6)
config/tools.json (1)
2800-2831: HTML Template listed twice with diverging metadata.There are now two “HTML Template” records:
• Lines 2800-2824 – no description, third-party repo.
• Lines 2827-2852 – detailed description, official repo.Displaying both will confuse users and weaken SEO. Keep only one canonical entry or rename the forked variant to clearly indicate it is an alternative.
config/tools-automated.json (5)
221-244: Category value driftZenWave uses mixed-case category values (
"mocking-and-testing","cli") elsewhere but here adds capitalized"CLIs"(Line 239). Normalise to the single lower-caseclito keep the taxonomy flat.
328-364: Duplicate “AsyncAPI Studio” entries in same categoryTwo tools with identical title but different repos (Lines 328-364). Pick one canonical record or differentiate them with distinct titles; duplicates hamper search UX.
492-523: Category key mismatchThe second “GitHub Action for Generator” (Line 519) uses
"github-action"(singular) whereas the first uses"github-actions". Standardise to a single category key.
647-667: Yet another duplicate of AsyncAPI.NetThis is the third occurrence of the same SDK (different capitalisation). Consolidate to a single canonical entry to avoid maintenance overhead.
952-972: Wrong language declared for Java Spring templateThe
languagearray lists"javascript"instead of"Java"(Lines 958-960). This hides the template from Java users and should be corrected. Same issue appears for thejava-templateblock below.
🧹 Nitpick comments (2)
config/tools-automated.json (2)
187-196: Lower-case language tag
"python"(Line 187) should be"Python"to align with existing tags and avoid false negatives in filters.
855-890: IDE extension tags – minor inconsistencies
technologylists"IntelliJ IDEA"but omits"IntelliJ"elsewhere; likewise"SmartPaste"appears only here. Double-check that these tags exist inall-tags.json, otherwise they will not render.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
config/all-tags.json(3 hunks)config/tools-automated.json(20 hunks)config/tools.json(3 hunks)
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: asyncapi-bot
PR: asyncapi/website#0
File: :0-0
Timestamp: 2025-02-18T12:07:42.211Z
Learning: The following PR commands are supported in the asyncapi/website repository:
- `/please-take-a-look` or `/ptal`: Requests attention from reviewers who haven't reviewed the PR
- `/ready-to-merge` or `/rtm`: Triggers automerge when all conditions are met
- `/do-not-merge` or `/dnm`: Blocks automerge even if all conditions are met
- `/autoupdate` or `/au`: Adds autoupdate label to keep PR in sync with target branch
- `/update` or `/u`: One-time update of PR with latest changes from target branch
Learnt from: akshatnema
PR: asyncapi/website#3378
File: scripts/markdown/check-markdown.js:1-1
Timestamp: 2024-11-25T18:41:29.632Z
Learning: When updating workflows for the AsyncAPI website repository, use `.github/workflows/if-nodejs-pr-testing.yml` to include environment variables and secrets for Node.js PR testing.
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: tests/fixtures/markdown/check-edit-links-data.js:3-11
Timestamp: 2025-01-19T04:51:41.255Z
Learning: In the AsyncAPI website repository, the test data in `tests/fixtures/markdown/check-edit-links-data.js` intentionally includes inconsistent paths (with and without 'docs' prefix) to verify the script's ability to normalize and handle ambiguous path structures.
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: tests/markdown/check-edit-links.test.js:20-46
Timestamp: 2025-01-14T14:58:38.076Z
Learning: In the AsyncAPI website codebase, the edit-page-config.json contains a fallback match entry that ensures determineEditLink function always has a valid target.value, making null checks unnecessary.
Learnt from: akshatnema
PR: asyncapi/website#3265
File: tests/fixtures/toolsObjectData.js:51-52
Timestamp: 2024-10-09T17:35:36.557Z
Learning: When reviewing code in the 'asyncapi/website' repository, akshatnema prefers that I do not provide committable code suggestions.
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: scripts/markdown/check-editlinks.js:58-59
Timestamp: 2025-01-08T15:15:00.759Z
Learning: In the AsyncAPI codebase, batch processing operations (like in the Dashboard script and check-editlinks.js) follow a sequential pattern using await in loops, which is the preferred approach for maintaining consistency across the codebase.
📚 Learning: in the asyncapi website repository, the test data in `tests/fixtures/markdown/check-edit-links-data....
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: tests/fixtures/markdown/check-edit-links-data.js:3-11
Timestamp: 2025-01-19T04:51:41.255Z
Learning: In the AsyncAPI website repository, the test data in `tests/fixtures/markdown/check-edit-links-data.js` intentionally includes inconsistent paths (with and without 'docs' prefix) to verify the script's ability to normalize and handle ambiguous path structures.
Applied to files:
config/tools.jsonconfig/tools-automated.json
📚 Learning: in the asyncapi website codebase, the edit-page-config.json contains a fallback match entry that ens...
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: tests/markdown/check-edit-links.test.js:20-46
Timestamp: 2025-01-14T14:58:38.076Z
Learning: In the AsyncAPI website codebase, the edit-page-config.json contains a fallback match entry that ensures determineEditLink function always has a valid target.value, making null checks unnecessary.
Applied to files:
config/tools.jsonconfig/tools-automated.json
📚 Learning: in the asyncapi website's edit link generation system, the `editoptions` array in `edit-page-config....
Learnt from: anshgoyalevil
PR: asyncapi/website#3557
File: scripts/markdown/check-editlinks.js:80-93
Timestamp: 2025-01-14T09:23:32.728Z
Learning: In the AsyncAPI website's edit link generation system, the `editOptions` array in `edit-page-config.json` includes a fallback entry with an empty string value (`''`) that matches any URL path, ensuring that `determineEditLink()` function always finds a target and never returns null.
Applied to files:
config/tools.json
📚 Learning: in the `tests/fixtures/tools/automated-tools.json` file, the `language` field within the `filters` o...
Learnt from: akshatnema
PR: asyncapi/website#3136
File: tests/fixtures/tools/automated-tools.json:8-9
Timestamp: 2024-11-01T12:48:22.034Z
Learning: In the `tests/fixtures/tools/automated-tools.json` file, the `language` field within the `filters` object can be either a string or an array. Both formats are acceptable and supported in the codebase.
Applied to files:
config/tools-automated.json
📚 Learning: in the asyncapi website project, next.js throws errors at runtime when locale files are missing, mak...
Learnt from: anshgoyalevil
PR: asyncapi/website#3950
File: scripts/utils/check-locales.ts:122-129
Timestamp: 2025-04-20T16:05:16.482Z
Learning: In the AsyncAPI website project, Next.js throws errors at runtime when locale files are missing, making additional validation for missing files unnecessary in the check-locales script.
Applied to files:
config/tools-automated.json
📚 Learning: in the asyncapi website documentation, anchor references to specification sections can use camelcase...
Learnt from: bandantonio
PR: asyncapi/website#4264
File: markdown/docs/tutorials/getting-started/coming-from-openapi.md:24-25
Timestamp: 2025-07-19T20:58:34.040Z
Learning: In the AsyncAPI website documentation, anchor references to specification sections can use camelCase format (e.g., #serverObject, #parameterObject, #messageObject) even if the actual HTML IDs on the spec page use hyphenated lowercase format. This is acceptable and should not be changed.
Applied to files:
config/tools-automated.json
📚 Learning: in the asyncapi website project, javascript test files must include the .ts extension when importing...
Learnt from: akshatnema
PR: asyncapi/website#3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In the AsyncAPI website project, JavaScript test files must include the .ts extension when importing TypeScript files (e.g., `require('../scripts/build-rss.ts')`). This is a project-specific requirement enforced by the linting rules and build setup, even though it differs from typical Node.js behavior.
Applied to files:
config/tools-automated.json
📚 Learning: in javascript test files within the asyncapi website project, typescript file imports must include t...
Learnt from: akshatnema
PR: asyncapi/website#3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In JavaScript test files within the AsyncAPI website project, TypeScript file imports must include the .ts extension to avoid lint errors, even though the files being imported are JavaScript files.
Applied to files:
config/tools-automated.json
📚 Learning: in the asyncapi website project, javascript test files must include the .ts extension when importing...
Learnt from: akshatnema
PR: asyncapi/website#3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In the AsyncAPI website project, JavaScript test files must include the .ts extension when importing TypeScript files (e.g., `require('../scripts/build-rss.ts')`). This is enforced by the project's configuration which uses `moduleResolution: "bundler"` in tsconfig.json and TypeScript-aware ESLint plugins. The .ts extensions are required even though the files are imported using CommonJS require statements.
Applied to files:
config/tools-automated.json
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: Redirect rules - asyncapi-website
- GitHub Check: Header rules - asyncapi-website
- GitHub Check: Pages changed - asyncapi-website
- GitHub Check: Automerge PR autoapproved by a bot
- GitHub Check: Test NodeJS PR - macos-13
- GitHub Check: Test NodeJS PR - windows-latest
- GitHub Check: Lighthouse CI
🔇 Additional comments (4)
config/all-tags.json (1)
181-189: Potential duplicate entries after swap.Swapping the names of
"TypeScript"and"Socket.IO"here leaves both entries unchanged elsewhere. Make sure there isn’t now more than one"TypeScript"/"Socket.IO"technology tag in the final JSON, otherwise the website will render duplicates.config/tools.json (1)
1204-1235: Verify tooling/tag coherence for “MessageFlow”.Good addition 👍. Two small checks:
- Technology tag uses
"Go"but the global tag list still mixes"Go/Golang"and"Go"(see previous comment).- Ensure the repo URL (
holydocs/messageflow) is correct and reachable; broken links surface as 404s in the rendered tools page.config/tools-automated.json (2)
301-321: Good addition, but confirm technology tagMessageFlow lists
"Go"both aslanguageand insidetechnology. Usually the language itself is not repeated intechnology; verify whether this duplication is intended.
995-1010: Unclear purpose of second “HTML Template”Two HTML Template entries now exist with different repos (Lines 995-1010 and 1013-1028). Confirm that both are intentionally distinct; if not, remove or merge.
| { | ||
| "name": "Go", | ||
| "color": "bg-[#61d0f2]", | ||
| "borderColor": "border-[#40ccf7]" | ||
| }, |
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.
🛠️ Refactor suggestion
Inconsistent naming: “Go” vs “Go/Golang”.
Languages array already contains "Go/Golang" (Line 4). Introducing "Go" as a technology tag will break any consumer code that relies on strict-equality matching of tag names between languages and technologies. Align the name (and optionally unify the colours) to avoid hard-to-track filter mismatches.
🤖 Prompt for AI Agents
In config/all-tags.json around lines 225 to 229, the tag name "Go" is
inconsistent with the existing "Go/Golang" in the languages array at line 4,
which can cause mismatches in filtering logic. Rename the "Go" tag to
"Go/Golang" to match the existing language tag exactly, and optionally unify the
color and borderColor values to maintain visual consistency.
| "name": "JetBrains", | ||
| "color": "bg-[#61d0f2]", | ||
| "borderColor": "border-[#40ccf7]" | ||
| }, | ||
| { | ||
| "name": "JetBrains", | ||
| "name": "SmartPaste", | ||
| "color": "bg-[#61d0f2]", | ||
| "borderColor": "border-[#40ccf7]" | ||
| }, |
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.
Duplicate “SmartPaste” and “JetBrains” tags still present.
Even after the rename, another "SmartPaste" entry exists at Lines 291-294 and another "JetBrains" entry is unchanged earlier in the file. Duplicate tags confuse the filter UI and break CSS classes that depend on deterministic IDs. Please deduplicate.
🤖 Prompt for AI Agents
In config/all-tags.json around lines 281 to 294, there are duplicate entries for
"SmartPaste" and "JetBrains" tags. To fix this, remove the duplicate tag objects
so each tag name appears only once in the file. Ensure the remaining entries
have consistent color and borderColor values to avoid conflicts in the filter UI
and CSS class generation.
| { | ||
| "title": "nestjs-asyncapi", | ||
| "description": "Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.", | ||
| "links": { | ||
| "repoUrl": "https://github.com/flamewow/nestjs-asyncapi" | ||
| }, | ||
| "filters": { | ||
| "language": "Typescript", | ||
| "technology": [ | ||
| "Node.js", | ||
| "NestJS" | ||
| ], | ||
| "categories": [ | ||
| "code-first" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, |
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.
🛠️ Refactor suggestion
Inconsistent language casing breaks tag matching
"language": "Typescript" (Line 59) should use the canonical "TypeScript" used elsewhere. The filtering UI relies on exact-case matches; leaving this as-is will make the NestJS tool invisible to “TypeScript” queries.
🤖 Prompt for AI Agents
In config/tools-automated.json between lines 52 and 70, the "language" field is
set to "Typescript" which is inconsistent with the canonical "TypeScript" used
elsewhere. Change the value of "language" from "Typescript" to "TypeScript" to
ensure consistent casing and proper tag matching in the filtering UI.
| "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": { | ||
| "repoUrl": "https://github.com/flamewow/nestjs-asyncapi" | ||
| "websiteUrl": "https://github.com/LEGO/AsyncAPI.NET/", | ||
| "repoUrl": "https://github.com/LEGO/AsyncAPI.NET" | ||
| }, | ||
| "filters": { | ||
| "language": "Typescript", | ||
| "language": "C#", | ||
| "technology": [ | ||
| "Node.js", | ||
| "NestJS" | ||
| ".NET", | ||
| "ASP.NET" | ||
| ], | ||
| "categories": [ | ||
| "code-first" | ||
| "converters", | ||
| "code-first", | ||
| "validator" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } |
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.
Duplicate .NET SDK entry and misleading description
AsyncAPI.Netalready exists in the Converters section. Keeping a second copy here causes duplication noise.- The description still mentions “OpenAPI” instead of “AsyncAPI”, which is confusing for end-users.
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 116 to 135, remove this duplicate
AsyncAPI.Net SDK entry to avoid redundancy since it already exists in the
Converters section. Also, update the description to correctly reference AsyncAPI
instead of OpenAPI to prevent confusion for users.
| "title": "Golang AsyncAPI Code Generator", | ||
| "description": "Generate Go user and application boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n", | ||
| "links": { | ||
| "websiteUrl": "https://zenwave360.github.io/", | ||
| "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", | ||
| "repoUrl": "https://github.com/zenwave360/zenwave-sdk" | ||
| "repoUrl": "https://github.com/lerenn/asyncapi-codegen" | ||
| }, | ||
| "filters": { | ||
| "language": "Java", | ||
| "technology": [ | ||
| "Maven", | ||
| "CLI", | ||
| "Spring Cloud Streams", | ||
| "JHipster JDL" | ||
| ], | ||
| "language": "golang", | ||
| "categories": [ | ||
| "code-generator", | ||
| "dsl", | ||
| "mocking-and-testing", | ||
| "cli" | ||
| "code-generator" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, |
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.
🛠️ Refactor suggestion
Non-standard language tag
"language": "golang" (Line 171) deviates from the newly introduced "Go" tag (see all-tags.json). This prevents the generator from appearing when filtering by “Go”.
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 165 to 178, the language tag
"golang" should be changed to the standard "Go" to align with the tags defined
in all-tags.json. Update the "language" field value from "golang" to "Go" to
ensure the generator appears correctly when filtering by the Go language.
| { | ||
| "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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Specmatic – category & casing issues
• Duplicate listing appears again under CLIs later.
• "language": "kotlin" should be "Kotlin".
• "maven" tag in technology should be "Maven" for consistency.
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 530 to 551, fix the casing of the
"language" value from "kotlin" to "Kotlin" and update the "maven" entry in the
"technology" array to "Maven" for consistency. Also, remove the duplicate
Specmatic entry found later under the "CLIs" category to avoid redundancy.
| "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://zenwave360.github.io/", | ||
| "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", | ||
| "repoUrl": "https://github.com/zenwave360/zenwave-sdk" | ||
| "websiteUrl": "https://specmatic.io", | ||
| "docsUrl": "https://specmatic.io/documentation/", | ||
| "repoUrl": "https://github.com/specmatic/specmatic" | ||
| }, | ||
| "filters": { | ||
| "language": "Java", | ||
| "language": "kotlin", | ||
| "technology": [ | ||
| "Maven", | ||
| "CLI", | ||
| "Spring Cloud Streams", | ||
| "JHipster JDL" | ||
| "Docker", | ||
| "maven" | ||
| ], | ||
| "categories": [ | ||
| "code-generator", | ||
| "dsl", | ||
| "mocking-and-testing", | ||
| "cli" | ||
| "CLIs" | ||
| ], | ||
| "hasCommercial": false, | ||
| "hasCommercial": true, | ||
| "isAsyncAPIOwner": false | ||
| } |
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.
🛠️ Refactor suggestion
Capitalised “CLIs” category breaks filter
Specmatic again uses "CLIs" here (Line 731). All other CLI tools use "cli". Case and plural inconsistency will fragment results.
🤖 Prompt for AI Agents
In config/tools-automated.json between lines 717 and 736, the category "CLIs" is
capitalized and pluralized, which is inconsistent with the rest of the file
where the category is "cli" in lowercase and singular form. Change the category
value from "CLIs" to "cli" to maintain consistency and ensure proper filtering.
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4306--asyncapi-website.netlify.app/ |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4306 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 22 22
Lines 778 778
Branches 144 144
=========================================
Hits 778 778 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
/rtm |
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit
New Features
Improvements
Bug Fixes