-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
chore: update tools.json #4354
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 #4354
Conversation
WalkthroughThe PR updates three config files. It swaps two language names in config/all-tags.json. It extensively renames, rebrands, and updates links, filters, and ownership across many entries in config/tools-automated.json. It clears repo URLs and removes language/technology filters for two catalog items in config/tools.json. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ 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. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, 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 #4354 +/- ##
=========================================
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:
|
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4354--asyncapi-website.netlify.app/ |
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
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (9)
config/tools-automated.json (9)
141-157: Normalize tag casing and names to match all-tags.json ("TypeScript", "Nest Js")Mismatched tag strings will break filter mapping.
- "filters": { - "language": "Typescript", + "filters": { + "language": "TypeScript", "technology": [ - "Node.js", - "NestJS" + "Node.js", + "Nest Js" ], "categories": [ "code-first" ], "hasCommercial": false, "isAsyncAPIOwner": false }
165-188: Remove “CLI” from technology — it’s a category, not a technology tag“CLI” is not listed under technologies in all-tags.json; keep it in categories only to avoid orphaned tags.
"filters": { "language": "Java", "technology": [ - "Maven", - "CLI", - "Spring Cloud Streams", - "JHipster JDL" + "Maven", + "Spring Cloud Streams", + "JHipster JDL" ], "categories": [ "code-generator", "dsl", "mocking-and-testing", "cli" ], "hasCommercial": false, "isAsyncAPIOwner": false }
231-243: Use canonical language tag “Go/Golang” to match all-tags.jsonLowercase “golang” won’t map.
- "filters": { - "language": "golang", + "filters": { + "language": "Go/Golang", "categories": [ "code-generator" ], "hasCommercial": false, "isAsyncAPIOwner": false }
536-559: ZenWave SDK: drop “CLI” from technology; keep it in categoriesSame rationale as earlier.
"filters": { "language": "Java", "technology": [ - "Maven", - "CLI", - "Spring Cloud Streams", - "JHipster JDL" + "Maven", + "Spring Cloud Streams", + "JHipster JDL" ], "categories": [ "code-generator", "dsl", "mocking-and-testing", "cli" ], "hasCommercial": false, "isAsyncAPIOwner": false }
899-914: Fix casing of language: “javascript” → “JavaScript”Aligns with all-tags.json and avoids filter misses.
"filters": { - "language": "javascript", + "language": "JavaScript", "technology": [ "HTML" ], "categories": [ "generator-template" ], "hasCommercial": false, "isAsyncAPIOwner": true }
917-935: Use consistent language type and correct casing: ["javascript"] → "JavaScript"Templates currently mix string and array for language; standardize on one. Applying string here for consistency with most entries.
"filters": { - "language": [ - "javascript" - ], + "language": "JavaScript", "technology": [ "Spring Cloud Streams", "Maven" ], "categories": [ "generator-template" ], "hasCommercial": false, "isAsyncAPIOwner": true }
938-955: “Java Template”: fix language casing and avoid undefined technology tag “Java”“Java” is a language tag, not a technology tag in all-tags.json. Either drop technology or swap to a valid technology tag if applicable.
"filters": { - "language": [ - "javascript" - ], - "technology": [ - "Java" - ], + "language": "JavaScript", + "technology": [], "categories": [ "generator-template" ], "hasCommercial": false, "isAsyncAPIOwner": true }
958-973: Fix language casing: “javascript” → “JavaScript”Keeps template tags discoverable.
"filters": { - "language": "javascript", + "language": "JavaScript", "technology": [ "Node.js" ], "categories": [ "generator-template" ], "hasCommercial": false, "isAsyncAPIOwner": true }
1-1078: Standardize language and technology tokens inconfig/tools-automated.jsonThe audit script you ran uncovered numerous mismatches between the values in
tools-automated.jsonand the canonical tags defined inconfig/all-tags.json. To ensure consistency and prevent downstream tooling errors, please address the following mandatory refactors:• Language field type
– Three entries use an array forfilters.language(lines 923, 944, 1018). Convert these to a single string matching the casing inall-tags.json.
Example fix:- "language": ["Python"] + "language": "Python"• Language casing mismatches (must match
.languages[].name)
– Change lowercase or misspelled languages to Title case as defined inall-tags.json.
• python → Python
• golang → Go/Golang or “Go” (per your chosen canonical form)
• javascript → JavaScript
• kotlin → Kotlin
• typescript/Typescript → TypeScript• Technology token casing/formatting (must match
.technologies[].name)
– Update the following to their canonical forms:
• React js → React JS
• NestJS → Nest Js
• CLI → cli (or “Command-line interface” per your tag)
• github-actions → GitHub Actions (or “github-action” as defined)
• WebComponents → WebComponents (ensure exact match)
• Socket.IO/Flask → verify that these map to “Socket.IO” and “Flask” in the tags file• Remove or merge duplicate tool definitions
– There are multiple “AsyncAPI.NET” and “AsyncAPI CLI” entries scattered across categories. Consolidate into a single canonical entry per tool, then reference it via categories/filters.• Add CI enforcement
– Integrate the audit script into your pre-commit or CI pipeline to automatically catch new mismatches.Locations to update:
- config/tools-automated.json (all
filters.languageandfilters.technologyvalues)- Optionally, sync config/all-tags.json if you intend to support new tokens (e.g., “amqp” vs “AMQP”)
Please apply these refactors to bring your tools registry into alignment with your tag definitions.
🧹 Nitpick comments (2)
config/tools.json (2)
1014-1019: Same concern for Directories entry — empty repoUrl and empty filter arraysMirror the decision taken for the APIs entry to stay consistent.
"links": { "websiteUrl": "https://apitracker.io/specifications/asyncapi", - "repoUrl": "" + "repoUrl": "" }, "filters": { - "language": [], - "technology": [], "categories": [ "api", "directory" ], "hasCommercial": false }
10-15: Omit optional empty keys to reduce noiseThe JSON Schema for
config/tools.jsonconfirms the following:
filters.languageandfilters.technologyare optional and permit empty arrays (nominItemsconstraint).links.repoUrlis optional but must be a valid URI when present; an empty string would violate theformat: "uri"rule under strict validation.Recommended cleanup (optional refactor) to simplify the data and avoid potential format errors:
"links": { "websiteUrl": "https://apitracker.io/specifications/asyncapi", - "repoUrl": "" }, "filters": { - "language": [], - "technology": [], "categories": [ "api", "directory" ], "hasCommercial": false }• Remove
repoUrlwhen you don’t have a repository link to prevent invalid-URI issues.
• Droplanguageandtechnologyinstead of using[]—missing keys are equivalent to empty and keep the JSON lean.
• No schema changes required; this is purely to tidy up the JSON and avoid edge-case handling in consumers.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
config/all-tags.json(1 hunks)config/tools-automated.json(20 hunks)config/tools.json(2 hunks)
⏰ 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 - windows-latest
- GitHub Check: Test NodeJS PR - macos-13
- GitHub Check: Lighthouse CI
🔇 Additional comments (13)
config/tools-automated.json (13)
28-45: LGTM — AsyncAPI Server API metadata and ownership look correctTech stack and ownership flags align with expectations.
53-72: LGTM — Zod Sockets reclassification reads wellLinks, categories, and TypeScript tech tag look correct.
75-80: LGTM — AsyncAPI.NET fork details correctedWebsite/repo moved to ByteBardOrg; description updated appropriately.
119-139: LGTM — Legacy LEGO entry preserved alongside the maintained forkNo issues spotted.
562-583: LGTM — Mokapi metadata updatedLanguage and technology lists look correct; ownership flag is appropriate.
590-609: LGTM — AsyncAPI.NET (validators) fork pointers updatedAll good.
612-631: LGTM — LEGO entry (validators) retainedNo issues spotted.
634-649: LGTM — AsyncAPI Validation entryCasing and tags match the catalog.
748-764: LGTM — AsyncAPI CLI (official) entryOwnership and categories look correct.
767-783: LGTM — AsyncAPI CLI (fork) entryNo concerns.
786-807: LGTM — Mokapi CLI entryConsistent with Mocking/Testing section.
6-25: No change needed for filters.language field type
Based on existing tests (e.g. tests/fixtures/tools/automated-tools.json), the codebase intentionally accepts both a string and an array forfilters.language. There is no inconsistency to address here—both formats are valid and supported.Likely an incorrect or invalid review comment.
97-116: Update SIO-AsyncAPI filters to reflect Node.js/Express stackThe repository is a Node.js project using Express and Socket.IO—not Python/Flask. Please update the filters block in config/tools-automated.json to accurately reflect this and normalize the language field to an array.
File: config/tools-automated.json
Lines: 97–116
- Change
languagefrom"Python"to["Node.js"]- Change
technologyfrom["Socket.IO", "Flask"]to["Socket.IO", "Express"]"filters": { - "language": "Python", - "technology": [ - "Socket.IO", - "Flask" - ], + "language": ["Node.js"], + "technology": [ + "Socket.IO", + "Express" + ], "categories": [ "code-first", "api" ], "hasCommercial": false, "isAsyncAPIOwner": false }⛔ Skipped due to learnings
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.
| "name": "Socket.IO", | ||
| "color": "bg-[#61d0f2]", | ||
| "borderColor": "border-[#40ccf7]" | ||
| }, | ||
| { | ||
| "name": "Socket.IO", | ||
| "name": "TypeScript", | ||
| "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.
💡 Verification agent
🧩 Analysis chain
Swapped "Socket.IO" and "TypeScript" technology tags — verify downstream exact-name matches
Tools rely on exact string matches. Please double-check that every reference in config/tools.json and config/tools-automated.json uses "Socket.IO" and "TypeScript" with this exact casing and punctuation. I see mixed casing elsewhere (e.g., "React js", "Typescript", "NestJS") that will break filtering.
Run this quick consistency check:
🏁 Script executed:
#!/bin/bash
# Known tags from all-tags.json
langs=$(jq -r '.languages[].name' config/all-tags.json | sort -u)
techs=$(jq -r '.technologies[].name' config/all-tags.json | sort -u)
echo "=== Potentially mismatched tokens in tools-automated.json ==="
# Find technology/language tokens not present in all-tags.json
jq -r '
.. | objects | select(has("filters")) |
. as $t |
([$t.filters.language] | flatten | map(tostring)) as $langs |
($t.filters.technology // [] | map(tostring)) as $techs |
([$t.title, ($langs[]? // empty), ($techs[]? // empty)] | @tsv)
' config/tools-automated.json |
awk -F'\t' '{print $2"\n"$3}' | sed '/^$/d' | sort -u > /tmp/seen.txt
echo "Unknown languages:"
comm -23 <(grep -Fxf /tmp/seen.txt <(echo "$langs") || true) <(echo "$langs") | sed 's/^/ - /' || true
echo "Unknown technologies:"
comm -23 <(grep -Fxf /tmp/seen.txt <(echo "$techs") || true) <(echo "$techs") | sed 's/^/ - /' || true
echo "Suspicious casing:"
rg -n 'React js|Typescript|NestJS|github-actions' config/tools-automated.json || trueLength of output: 2831
Ensure exact tag names for filters in config
I ran a consistency check between config/all-tags.json and the downstream config files and found several mismatches in config/tools-automated.json that will break filtering:
- config/tools-automated.json (line 147):
"language": "Typescript"→ should be"TypeScript" - config/tools-automated.json (line 150):
"NestJS"→ should be"Nest Js" - config/tools-automated.json (line 379):
"React js"→ should be"React JS" - config/tools-automated.json (line 502):
"github-actions"→ should match the canonical tag (e.g."GitHub Actions")
Please update these entries to exactly match the name values (including casing and punctuation) defined in config/all-tags.json. Also verify config/tools.json for any similar mismatches.
🤖 Prompt for AI Agents
In config/all-tags.json around lines 181-189 and config/tools-automated.json at
the referenced lines, several tag values must exactly match the canonical names:
update config/tools-automated.json line 147 from "Typescript" to "TypeScript",
line 150 from "NestJS" to "Nest Js", line 379 from "React js" to "React JS", and
line 502 from "github-actions" to "GitHub Actions" (match punctuation and casing
from all-tags.json); after making those exact replacements, scan
config/tools.json for any other tag mismatches and correct them to the canonical
names in config/all-tags.json.
| "title": "ZenWave SDK", | ||
| "description": "DDD and API-First for Event-Driven Microservices", | ||
| "links": { | ||
| "websiteUrl": "https://www.asyncapi.com/tools/cli", | ||
| "repoUrl": "https://github.com/asyncapi/cli" | ||
| "websiteUrl": "https://zenwave360.github.io/", | ||
| "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", | ||
| "repoUrl": "https://github.com/zenwave360/zenwave-sdk" | ||
| }, | ||
| "filters": { | ||
| "language": "Java", | ||
| "technology": [ | ||
| "TypeScript" | ||
| "Maven", | ||
| "CLI", | ||
| "Spring Cloud Streams", | ||
| "JHipster JDL" | ||
| ], | ||
| "categories": [ | ||
| "others", | ||
| "code-generator", | ||
| "dsl", | ||
| "mocking-and-testing", | ||
| "cli" | ||
| ], | ||
| "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.
🛠️ Refactor suggestion
ZenWave SDK (CLIs section): remove “CLI” from technology; keep as category
Consistency with tags list.
"filters": {
"language": "Java",
"technology": [
- "Maven",
- "CLI",
- "Spring Cloud Streams",
- "JHipster JDL"
+ "Maven",
+ "Spring Cloud Streams",
+ "JHipster JDL"
],
"categories": [
"code-generator",
"dsl",
"mocking-and-testing",
"cli"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
}📝 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.
| "title": "ZenWave SDK", | |
| "description": "DDD and API-First for Event-Driven Microservices", | |
| "links": { | |
| "websiteUrl": "https://www.asyncapi.com/tools/cli", | |
| "repoUrl": "https://github.com/asyncapi/cli" | |
| "websiteUrl": "https://zenwave360.github.io/", | |
| "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", | |
| "repoUrl": "https://github.com/zenwave360/zenwave-sdk" | |
| }, | |
| "filters": { | |
| "language": "Java", | |
| "technology": [ | |
| "TypeScript" | |
| "Maven", | |
| "CLI", | |
| "Spring Cloud Streams", | |
| "JHipster JDL" | |
| ], | |
| "categories": [ | |
| "others", | |
| "code-generator", | |
| "dsl", | |
| "mocking-and-testing", | |
| "cli" | |
| ], | |
| "hasCommercial": false, | |
| "isAsyncAPIOwner": true | |
| "isAsyncAPIOwner": false | |
| } | |
| "title": "ZenWave SDK", | |
| "description": "DDD and API-First for Event-Driven Microservices", | |
| "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" | |
| }, | |
| "filters": { | |
| "language": "Java", | |
| "technology": [ | |
| "Maven", | |
| "Spring Cloud Streams", | |
| "JHipster JDL" | |
| ], | |
| "categories": [ | |
| "code-generator", | |
| "dsl", | |
| "mocking-and-testing", | |
| "cli" | |
| ], | |
| "hasCommercial": false, | |
| "isAsyncAPIOwner": false | |
| } |
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 722 to 745, the "technology" array
incorrectly includes "CLI" while "cli" is already present under "categories";
remove the "CLI" entry from the "technology" list (ensuring JSON commas remain
correct) and leave the "categories" entry unchanged so the tag set remains
consistent.
| "title": "Java Spring Template", | ||
| "description": "Java Spring template for the AsyncAPI Generator", | ||
| "links": { | ||
| "repoUrl": "https://github.com/dipaksodani/async-gen" | ||
| "repoUrl": "https://github.com/asyncapi/java-spring-template" | ||
| }, | ||
| "filters": { | ||
| "language": "javascript", | ||
| "language": [ | ||
| "javascript" | ||
| ], | ||
| "technology": [ | ||
| "HTML" | ||
| "Springboot", | ||
| "Maven", | ||
| "Gradle" | ||
| ], | ||
| "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.
🛠️ Refactor suggestion
Java Spring Template: normalize language field to string with correct casing
Consistent with the rest of the catalog.
"filters": {
- "language": [
- "javascript"
- ],
+ "language": "JavaScript",
"technology": [
"Springboot",
"Maven",
"Gradle"
],
"categories": [
"generator-template"
],
"hasCommercial": false,
"isAsyncAPIOwner": true
}📝 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.
| "title": "Java Spring Template", | |
| "description": "Java Spring template for the AsyncAPI Generator", | |
| "links": { | |
| "repoUrl": "https://github.com/dipaksodani/async-gen" | |
| "repoUrl": "https://github.com/asyncapi/java-spring-template" | |
| }, | |
| "filters": { | |
| "language": "javascript", | |
| "language": [ | |
| "javascript" | |
| ], | |
| "technology": [ | |
| "HTML" | |
| "Springboot", | |
| "Maven", | |
| "Gradle" | |
| ], | |
| "categories": [ | |
| "generator-template" | |
| ], | |
| "hasCommercial": false, | |
| "isAsyncAPIOwner": false | |
| "isAsyncAPIOwner": true | |
| } | |
| "filters": { | |
| "language": "JavaScript", | |
| "technology": [ | |
| "Springboot", | |
| "Maven", | |
| "Gradle" | |
| ], | |
| "categories": [ | |
| "generator-template" | |
| ], | |
| "hasCommercial": false, | |
| "isAsyncAPIOwner": true | |
| } |
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 1012 to 1031, the "language" field
is currently an array containing "javascript" but should be a single string with
proper casing to match the catalog (this is a Java Spring template); change the
"language" entry from an array to a string and set its value to "Java" (capital
J, rest lowercase) so it reads "language": "Java".
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit