-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
chore: update tools.json #4280
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 #4280
Conversation
WalkthroughThis change updates three JSON configuration files by swapping and correcting the "name" fields, repository URLs, descriptions, and other metadata for various tool and technology entries. The modifications focus on ensuring accurate labeling, removing duplicates, and maintaining consistency across tool listings and technology tags. Changes
Sequence Diagram(s)No sequence diagram is generated as the changes are limited to static configuration data updates without altering control flow or introducing new features. 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. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4280 +/- ##
=========================================
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:
|
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: 3
🔭 Outside diff range comments (6)
config/all-tags.json (1)
276-289: Duplicate “SmartPaste” tag introduced
SmartPastenow appears twice in the technologies array (lines 276-279 and 286-289). Most downstream code assumes tag names are unique; the duplicate will break lookup-based features (e.g. filtering, counts).
Drop one occurrence or merge the metadata to keep only a single, canonical entry.config/tools.json (2)
1716-1734: Entry metadata no longer matches the title and breaks categorisationThe record titled “GitHub Action for Generator” now:
- points to the CLI repository (
asyncapi/cli)- contains a CLI-oriented description
- uses category
"github-actions"(plural) – elsewhere the file uses"github-action"(singular).Result: the entry is misleading and the plural category will not be picked up by filters, so this action disappears from the web catalogue.
Action items:
- Re-verify the correct repo (
asyncapi/github-action-for-generator?) and description.- Revert
categoriesto"github-action"to stay consistent.
2624-2666: Official vs. fork: repository swap may mis-lead usersBoth
asyncapi-previewentries now reference forks (vs-asyncapi-preview,Savio629/testing2) instead of the canonicalasyncapi/vs-asyncapi-previewrepo. This dilutes download statistics and confuses users about which version is maintained.Please keep the primary repo on the first entry and move forks (if required at all) to an “Unofficial / community fork” note to avoid ambiguity.
config/tools-automated.json (3)
326-344: Duplicate “AsyncAPI Studio” entry in same category
AsyncAPI Studioalready exists earlier in the Editors list (lines 308-325).
Keeping two virtually identical entries (only the repo differs) will surface twice in the UI, diluting search relevance and potentially confusing users. Please remove or merge the duplicate.
896-914: Incorrect language array for Java templateThe Java generator template lists
"language": ["javascript"]but should obviously be"Java". Fixing this improves filter accuracy.
991-1010: Java Spring template — language still “javascript”Same as above; adjust to
"Java".
🧹 Nitpick comments (11)
config/all-tags.json (1)
181-189: Colour/style drift for “TypeScript” vs language paletteIn languages the official TypeScript colour is
bg-[#7DBCFE]/border-[#2C78C7](lines 39-42).
In technologies the newly-added “TypeScript” tag uses a different palette (#61d0f2/#40ccf7). The mismatch makes the UI look inconsistent and complicates theme-based styling.
Align the colours to the language palette for brand consistency.config/tools.json (1)
2360-2400: Four duplicated “AsyncAPI CLI” tools – same title, divergent reposThe tools list now contains four “AsyncAPI CLI” objects (two under CLIs, two under Others) differing only by
repoUrl. Duplicate titles hurt search, and the categorisation spread creates noise.Recommend:
- keep one canonical record under CLIs with
asyncapi/cli;- mark forks explicitly or drop them if they add no distinct value;
- remove copies from Others.
This keeps the catalogue concise and prevents confusing stats.
Also applies to: 3078-3120
config/tools-automated.json (9)
761-803: Mokapi & Specmatic listed under CLIs but still taggedmocking-and-testing/CLIsThe
categoriesarray mixes lower-casecliwith upper-caseCLIs, and keepsmocking-and-testingeven though the parent section is already CLIs. Harmonise casing (cli) and remove redundant tags to keep filtering consistent.
560-579: Specmatic categories use capital “CLIs”Everywhere else
cliis lowercase. This upper-case variant will not match existing filters.
119-135: Language casing inconsistency: “Typescript” vs “TypeScript”
nestjs-asyncapiuses"Typescript"whereas other tools use"TypeScript". Stick to one spelling to keep tag aggregation clean.
165-189: ZenWave SDK duplicated across multiple top-level categoriesWhile cross-listing is expected, ensure the same internal
categorieslist is not contradicting the parent category (e.g. includingcliinside Code Generators). Otherwise the tag cloud becomes noisy.
916-932: Node.js multiprotocol template—languageshould be capitalised “JavaScript”Minor but helps consistency across tooling pages.
1001-1004: Technology tag “Springboot” should be “Spring Boot”Maintain tag consistency to match existing tag set.
350-361: Technology tag “React js” case mismatchExisting entries use “React JS”. Align casing for proper grouping.
569-572: Technology tag “maven” lowercaseOther entries use “Maven”. Use consistent casing.
768-774: Language value “Go/Golang” may break matchingAll other Go tools use
golangorGo. Pick one canonical value across the file.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
config/all-tags.json(2 hunks)config/tools-automated.json(19 hunks)config/tools.json(9 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 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: bandantonio
PR: asyncapi/website#3393
File: markdown/blog/socketio-part2.md:506-506
Timestamp: 2024-11-13T20:40:29.580Z
Learning: When performing rebranding updates, there's no need to update the titles of bug reports in `dashboard.json`, even if they contain the old name.
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.
config/all-tags.json (4)
Learnt from: akshatnema
PR: #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.
Learnt from: akshatnema
PR: #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.
Learnt from: JeelRajodiya
PR: #3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-03T08:14:02.138Z
Learning: The user (JeelRajodiya) has stated a preference to keep the test files in CommonJS rather than migrating them to TypeScript.
Learnt from: akshatnema
PR: #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.
config/tools.json (2)
Learnt from: anshgoyalevil
PR: #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: akshatnema
PR: #3136
File: scripts/tools/combine-tools.js:122-125
Timestamp: 2024-11-01T12:49:32.805Z
Learning: In scripts/tools/combine-tools.js, the existing URL parsing logic for repoUrl without additional error handling is acceptable and does not require changes.
config/tools-automated.json (9)
Learnt from: anshgoyalevil
PR: #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: akshatnema
PR: #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.
Learnt from: anshgoyalevil
PR: #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: anshgoyalevil
PR: #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.
Learnt from: akshatnema
PR: #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.
Learnt from: bandantonio
PR: #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.
Learnt from: TRohit20
PR: #4107
File: markdown/docs/tools/studio/architecture.md:23-23
Timestamp: 2025-05-09T17:35:57.171Z
Learning: In the AsyncAPI Studio architecture documentation, "Layer Breakdown" is intentionally structured as an H3 heading (subsection) because it provides additional detail about the layered architecture pattern introduced earlier, rather than being a standalone main section.
Learnt from: akshatnema
PR: #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.
Learnt from: akshatnema
PR: #3101
File: tests/fixtures/rssData.js:1-57
Timestamp: 2024-11-01T13:32:15.472Z
Learning: In the tests/fixtures/rssData.js file of the @asyncapi/website project, tests for edge cases such as empty strings for title or excerpt, very long text content, international characters (UTF-8), or malformed URLs in slug or cover are not necessary because these cases will not occur.
⏰ 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/tools-automated.json (4)
835-888: Duplicate “asyncapi-preview” IDE extensionThere are two
asyncapi-previewitems (this one and lines 834-849). Unless the second entry is intentionally pointing at a fork with distinguishable functionality, consider dropping one or adding a differentiator (e.g. “asyncapi-preview (community fork)”).
742-758: Second “AsyncAPI CLI” entry looks like a fork but keeps the same titleTwo entries with identical title but different repo URLs appear back-to-back. Add a qualifier (e.g. “AsyncAPI CLI (community fork)”) or drop the fork to avoid ambiguity.
104-108: Language field value “C#” repeated with “ASP.NET” in technologyThis mirrors earlier entries and is fine; just ensure the tag list actually contains
C#(with #) inall-tags.json, otherwise the filter will silently break.
37-39: Socket.IO tag added—confirm tag swap inall-tags.json
Socket.IOwas recently renamed in tags file; ensure the tag exists after the swap to avoid broken filter links.
| "title": "GitHub Action for Generator", | ||
| "description": null, | ||
| "description": "CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!", | ||
| "links": { | ||
| "repoUrl": "https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator" | ||
| "repoUrl": "https://github.com/asyncapi/cli" | ||
| }, | ||
| "filters": { | ||
| "technology": [ | ||
| "AsyncAPI Generator" | ||
| ], | ||
| "categories": [ | ||
| "github-action" | ||
| "github-actions" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| "isAsyncAPIOwner": true | ||
| } | ||
| }, | ||
| { | ||
| "title": "GitHub Action for Generator", | ||
| "description": "CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!", | ||
| "description": null, | ||
| "links": { | ||
| "repoUrl": "https://github.com/asyncapi/cli" | ||
| "repoUrl": "https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator" | ||
| }, | ||
| "filters": { | ||
| "technology": [ | ||
| "AsyncAPI Generator" | ||
| ], | ||
| "categories": [ | ||
| "github-actions" | ||
| "github-action" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": 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.
Category key drift and description mismatch for GitHub Action
- First item uses
"github-actions"while the second uses"github-action".
The website filters rely on exact matches, so one of them will never appear. Pick a single canonical key (the project usesgithub-actionselsewhere). - The description mentions “CLI” instead of “Generator”. Verify it describes the Action correctly.
🤖 Prompt for AI Agents
In config/tools-automated.json between lines 472 and 503, the category key for
GitHub Action is inconsistent: one entry uses "github-actions" and the other
"github-action". Change the second entry's category key to "github-actions" to
match the canonical key used elsewhere. Also, update the first entry's
description to correctly describe the GitHub Action instead of mentioning "CLI"
to ensure it accurately reflects the tool's purpose.
| "title": "AsyncAPI CLI", | ||
| "description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n", | ||
| "links": { | ||
| "websiteUrl": "https://mokapi.io", | ||
| "docsUrl": "https://mokapi.io/docs/guides/welcome", | ||
| "repoUrl": "https://github.com/marle3003/mokapi" | ||
| "websiteUrl": "https://www.asyncapi.com/tools/cli", | ||
| "repoUrl": "https://github.com/asyncapi/cli" | ||
| }, | ||
| "filters": { | ||
| "language": "Go/Golang", | ||
| "technology": [ | ||
| "JavaScript", | ||
| "TypeScript", | ||
| "Docker" | ||
| "TypeScript" | ||
| ], | ||
| "categories": [ | ||
| "mocking-and-testing", | ||
| "others", | ||
| "cli" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| "isAsyncAPIOwner": true | ||
| } |
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 categories list for AsyncAPI CLI
"categories": ["others", "cli"] places the CLI under Others instead of CLIs. Given this block lives inside the CLIs section, including others is misleading and may double-count in another page.
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 723 to 739, the categories array for
AsyncAPI CLI incorrectly includes "others" along with "cli". Remove "others"
from the categories list so it only contains "cli" to correctly categorize the
tool under CLIs and avoid misleading or double-counting it in other sections.
| "title": "Java Spring Cloud Stream Template", | ||
| "description": "Java Spring Cloud Stream template for the AsyncAPI Generator", | ||
| "links": { | ||
| "repoUrl": "https://github.com/dipaksodani/async-gen" | ||
| "repoUrl": "https://github.com/asyncapi/java-spring-cloud-stream-template" | ||
| }, | ||
| "filters": { | ||
| "language": "javascript", | ||
| "language": [ | ||
| "javascript" | ||
| ], | ||
| "technology": [ | ||
| "HTML" | ||
| "Spring Cloud Streams", | ||
| "Maven" | ||
| ], | ||
| "categories": [ | ||
| "generator-template" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| "isAsyncAPIOwner": true | ||
| } |
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.
Java Spring Cloud Stream template — language array wrongly set to “javascript”
Replace with "Java", or drop array if single value.
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 970 to 988, the "language" filter
for the Java Spring Cloud Stream template is incorrectly set to "javascript".
Update the "language" array to contain "Java" instead, or remove the array and
set it to a single string "Java" if only one language is needed.
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4280--asyncapi-website.netlify.app/ |
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit