chore: update tools.json#5367
Conversation
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughReorganizes tool/tag JSON configs: reorders entries, swaps AsyncAPI .NET forks, moves/adds/removes tools (Zod Sockets, Mokapi, Repid, AsyncAPI Payload Validator, AsyncAPI React), updates generator templates, and fixes several repo URLs and technology labels. ChangesTools Catalog Reorganization
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 #5367 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 22 22
Lines 830 830
Branches 159 159
=========================================
Hits 830 830 ☔ 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-5367--asyncapi-website.netlify.app/ |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
config/tools-automated.json (1)
439-475:⚠️ Potential issue | 🟠 MajorRemove suspicious fork and test-repo entries before merging.
The file contains multiple entries with
isAsyncAPIOwner: falsethat appear to be forks, test repos, or personal projects:
Line(s) Title repoUrl 439–455 AsyncAPI Studio github.com/TahaShahid203/async-api-issue 457–475 AsyncAPI Studio github.com/Shurtu-gal/action-test-bed 992–1009 AsyncAPI CLI github.com/hkirat/asyncapi-fork 1110–1125 asyncapi-preview github.com/Savio629/testing2 1192–1207 HTML Template github.com/WSOL12/html-template 1249–1264 HTML Template github.com/dipaksodani/async-gen 1349–1365 AsyncAPI CLI github.com/hkirat/asyncapi-fork Note that lines 1349–1365 are an exact duplicate of lines 992–1009. The legitimate AsyncAPI Studio (lines 420–436) is properly marked with
isAsyncAPIOwner: trueand points togithub.com/asyncapi/studio. These spurious entries should either be verified individually or added to the discovery ignore list.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@config/tools-automated.json` around lines 439 - 475, Remove the suspicious fork/test entries by locating objects where "title" is "AsyncAPI Studio" or "AsyncAPI CLI" with "isAsyncAPIOwner": false and repoUrl pointing to personal/test forks (e.g., github.com/TahaShahid203/async-api-issue, github.com/Shurtu-gal/action-test-bed, github.com/hkirat/asyncapi-fork, github.com/Savio629/testing2, github.com/WSOL12/html-template, github.com/dipaksodani/async-gen) and either delete those objects or move them to the discovery ignore list; also remove the exact duplicate block (the second github.com/hkirat/asyncapi-fork entry) and ensure the legitimate AsyncAPI Studio entry (the one with isAsyncAPIOwner: true and repo github.com/asyncapi/studio) remains unchanged.
🧹 Nitpick comments (1)
config/tools-automated.json (1)
84-84: Inconsistent casing oflanguagevalues across entries.The same language is spelled differently across records (e.g.,
"python"at Lines 84, 218, 302 vs"Python"at Line 14/106;"Typescript"at Line 172 vs"TypeScript"elsewhere;"kotlin"at Lines 752, 1044;"golang"at Line 264;"php"/"laravel"/"symfony"at Lines 281–285). Same applies to thetechnologyarray (e.g.,"maven"at Line 755, 1047 vs"Maven"elsewhere;"React js"at Line 490 vs"React JS"inall-tags.jsonLine 111).This is the regenerated output, so the fix likely belongs in the upstream tool YAMLs / regeneration script (case-normalize before emit). Worth raising upstream so the rendered
tools.jsonconsistently picks up colors/borders fromall-tags.json.Also applies to: 172-172, 218-218, 264-264, 281-285, 752-752, 1044-1044
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@config/tools-automated.json` at line 84, Entries in config/tools-automated.json have inconsistent casing for the "language" and "technology" fields (e.g., "python" vs "Python", "Typescript" vs "TypeScript", "maven" vs "Maven"); update the regeneration logic (the upstream YAML -> JSON emitter) to normalize casing before emit: canonicalize "language" and each element of "technology" using a single strategy (e.g., TitleCase or match canonical names from all-tags.json) and apply that mapping in the generator so fields like "language" and "technology" are emitted consistently across records (use the existing all-tags.json canonical list as the source of truth).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@config/tools-automated.json`:
- Around line 173-176: The tag string "NestJS" in the technology array is
inconsistent with the canonical tag "Nest Js"; update the "technology" entry
that currently contains "NestJS" to exactly "Nest Js" so it matches the tag
defined in all-tags.json and enables correct mapping/styling.
- Around line 633-666: Update the two GitHub Action objects so their repoUrl and
metadata match their titles: for the object with "title": "GitHub Action for
CLI" replace its repoUrl (and any owner flags) to point to
https://github.com/asyncapi/cli and set isAsyncAPIOwner: true (this entry
represents the CLI's github-action folder), and for the object with "title":
"GitHub Action for Generator" set repoUrl to
https://github.com/asyncapi/github-action-for-generator and set isAsyncAPIOwner
appropriately; also remove the object whose repoUrl is
https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator
(the auto-generated marketplace validation copy) so only the correct
asyncapi-owned entries remain.
---
Outside diff comments:
In `@config/tools-automated.json`:
- Around line 439-475: Remove the suspicious fork/test entries by locating
objects where "title" is "AsyncAPI Studio" or "AsyncAPI CLI" with
"isAsyncAPIOwner": false and repoUrl pointing to personal/test forks (e.g.,
github.com/TahaShahid203/async-api-issue, github.com/Shurtu-gal/action-test-bed,
github.com/hkirat/asyncapi-fork, github.com/Savio629/testing2,
github.com/WSOL12/html-template, github.com/dipaksodani/async-gen) and either
delete those objects or move them to the discovery ignore list; also remove the
exact duplicate block (the second github.com/hkirat/asyncapi-fork entry) and
ensure the legitimate AsyncAPI Studio entry (the one with isAsyncAPIOwner: true
and repo github.com/asyncapi/studio) remains unchanged.
---
Nitpick comments:
In `@config/tools-automated.json`:
- Line 84: Entries in config/tools-automated.json have inconsistent casing for
the "language" and "technology" fields (e.g., "python" vs "Python", "Typescript"
vs "TypeScript", "maven" vs "Maven"); update the regeneration logic (the
upstream YAML -> JSON emitter) to normalize casing before emit: canonicalize
"language" and each element of "technology" using a single strategy (e.g.,
TitleCase or match canonical names from all-tags.json) and apply that mapping in
the generator so fields like "language" and "technology" are emitted
consistently across records (use the existing all-tags.json canonical list as
the source of truth).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4336f6aa-9d1a-463d-907c-a9f52a9448fd
📒 Files selected for processing (3)
config/all-tags.jsonconfig/tools-automated.jsonconfig/tools.json
| "technology": [ | ||
| "Socket.IO", | ||
| "Flask" | ||
| "Node.js", | ||
| "NestJS" | ||
| ], |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Check the specific lines in tools-automated.json
head -176 config/tools-automated.json | tail -10Repository: asyncapi/website
Length of output: 430
🏁 Script executed:
# Check the specific lines in all-tags.json
head -184 config/all-tags.json | tail -10Repository: asyncapi/website
Length of output: 276
🏁 Script executed:
# Search for all NestJS and Nest Js occurrences
rg -i "nestjs|nest\s+js" config/Repository: asyncapi/website
Length of output: 816
🏁 Script executed:
# Check line 453 in tools.json
sed -n '450,456p' config/tools.jsonRepository: asyncapi/website
Length of output: 271
Update NestJS to match the defined tag name Nest Js in all-tags.json.
config/all-tags.json defines this tag as "Nest Js" (with space), but config/tools-automated.json line 175 uses "NestJS" (no space). The mismatch will cause the tag to fail mapping if exact string matching is required, preventing the correct color and border styling from being applied. Update line 175 to "Nest Js" to align with the authoritative tag definition.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@config/tools-automated.json` around lines 173 - 176, The tag string "NestJS"
in the technology array is inconsistent with the canonical tag "Nest Js"; update
the "technology" entry that currently contains "NestJS" to exactly "Nest Js" so
it matches the tag defined in all-tags.json and enables correct mapping/styling.
| { | ||
| "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!", | ||
| "title": "GitHub Action for CLI", | ||
| "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" | ||
| "AsyncAPI CLI" | ||
| ], | ||
| "categories": [ | ||
| "github-actions" | ||
| "github-action" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": true | ||
| "isAsyncAPIOwner": false | ||
| } | ||
| }, | ||
| { | ||
| "title": "GitHub Action for CLI", | ||
| "description": null, | ||
| "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!", | ||
| "links": { | ||
| "repoUrl": "https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator" | ||
| "repoUrl": "https://github.com/asyncapi/cli" | ||
| }, | ||
| "filters": { | ||
| "technology": [ | ||
| "AsyncAPI CLI" | ||
| "AsyncAPI Generator" | ||
| ], | ||
| "categories": [ | ||
| "github-action" | ||
| "github-actions" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| "isAsyncAPIOwner": true | ||
| } | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's read the specific lines in question (633-666) from config/tools-automated.json
sed -n '633,666p' config/tools-automated.json | cat -nRepository: asyncapi/website
Length of output: 1327
🏁 Script executed:
# Also, let's get more context - read a bit before and after to ensure we have complete entries
sed -n '620,680p' config/tools-automated.json | cat -nRepository: asyncapi/website
Length of output: 2516
🏁 Script executed:
# Check if there are any other references to these GitHub Actions in the codebase
rg "github-action-for-generator|asyncapi/cli" --max-count=20 -A 2 -B 2Repository: asyncapi/website
Length of output: 50374
🏁 Script executed:
# Search for "GitHub Action" entries throughout the file to see the pattern
rg -A 5 '"GitHub Action' config/tools-automated.json | head -60Repository: asyncapi/website
Length of output: 777
GitHub Action entries have reversed identities and point to incorrect repositories.
The two entries under "GitHub Actions" are misaligned:
-
GitHub Action for CLI(line 634) points tohttps://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator— an automated marketplace validation mirror of the Generator action, not the CLI action. This is markedisAsyncAPIOwner: falseand should not be listed as a standalone tool. -
GitHub Action for Generator(line 651) points tohttps://github.com/asyncapi/cli(the AsyncAPI CLI tool itself) with description "CLI to work with your AsyncAPI files…" and is markedisAsyncAPIOwner: true.
The correct configuration should be:
- "GitHub Action for CLI" should point to
https://github.com/asyncapi/cli(which contains the GitHub Action in itsgithub-action/subdirectory). - "GitHub Action for Generator" should point to
https://github.com/asyncapi/github-action-for-generator.
Additionally, remove the actions-marketplace-validations entry as it is an auto-generated marketplace validation copy, not a user-facing tool.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@config/tools-automated.json` around lines 633 - 666, Update the two GitHub
Action objects so their repoUrl and metadata match their titles: for the object
with "title": "GitHub Action for CLI" replace its repoUrl (and any owner flags)
to point to https://github.com/asyncapi/cli and set isAsyncAPIOwner: true (this
entry represents the CLI's github-action folder), and for the object with
"title": "GitHub Action for Generator" set repoUrl to
https://github.com/asyncapi/github-action-for-generator and set isAsyncAPIOwner
appropriately; also remove the object whose repoUrl is
https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator
(the auto-generated marketplace validation copy) so only the correct
asyncapi-owned entries remain.
5f1967a to
6701b04
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
config/tools-automated.json (1)
453-489:⚠️ Potential issue | 🟠 Major | ⚡ Quick winExclude fork/test repos that inherit official AsyncAPI titles.
These entries reuse official titles/metadata (
AsyncAPI Studio,HTML Template) but pointrepoUrlat unrelated repos such asShurtu-gal/action-test-bed,TahaShahid203/async-api-issue, anddipaksodani/async-gen. Publishing them as-is will create misleading catalog cards. Please add these repos to the ignore list or give them their real project identity before merge.Also applies to: 1205-1219, 1279-1294
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@config/tools-automated.json` around lines 453 - 489, The JSON contains duplicate official titles like "AsyncAPI Studio" and "HTML Template" pointing at unrelated fork/test repos (see repoUrl values such as "https://github.com/Shurtu-gal/action-test-bed", "https://github.com/TahaShahid203/async-api-issue", "https://github.com/dipaksodani/async-gen"); either add those repo URLs to the project's ignore list or update the entries' metadata (title/description/filters) to reflect the actual project identity before merging—search for objects where "title": "AsyncAPI Studio" (and the other mentioned titles) and ensure those entries are filtered out or corrected across the file (also address the other occurrences noted around the indicated ranges).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@config/tools-automated.json`:
- Around line 77-95: Update the filter label values to use the canonical
spellings so tags are consistent: change the "language" value from "python" to
"Python", normalize any "Typescript" to "TypeScript", "React js" to "React JS",
"kotlin" to "Kotlin", and "maven" to "Maven"; apply these edits inside the
"filters" object (fields "language", "technology" array and any "categories"
entries) for this ChanX block and the other similar blocks referenced so all
occurrences use the canonical capitalization and spacing.
- Around line 211-240: Two identical entries share the title "Golang AsyncAPI
Code Generator" causing a duplicate; remove the redundant object and keep a
single canonical record. Specifically, delete the object whose links.repoUrl is
"https://github.com/dimonoff/asyncapi-codegen" (or alternatively keep only
"https://github.com/lerenn/asyncapi-codegen") so there is one unique "Golang
AsyncAPI Code Generator" entry with the correct repoUrl and the same
filters/description.
---
Outside diff comments:
In `@config/tools-automated.json`:
- Around line 453-489: The JSON contains duplicate official titles like
"AsyncAPI Studio" and "HTML Template" pointing at unrelated fork/test repos (see
repoUrl values such as "https://github.com/Shurtu-gal/action-test-bed",
"https://github.com/TahaShahid203/async-api-issue",
"https://github.com/dipaksodani/async-gen"); either add those repo URLs to the
project's ignore list or update the entries' metadata
(title/description/filters) to reflect the actual project identity before
merging—search for objects where "title": "AsyncAPI Studio" (and the other
mentioned titles) and ensure those entries are filtered out or corrected across
the file (also address the other occurrences noted around the indicated ranges).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ef09ecd0-77ca-4b31-8512-09a15fb29604
📒 Files selected for processing (3)
config/all-tags.jsonconfig/tools-automated.jsonconfig/tools.json
✅ Files skipped from review due to trivial changes (1)
- config/all-tags.json
🚧 Files skipped from review as they are similar to previous changes (1)
- config/tools.json
| "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/bielu/Bielu.AspNetCore.AsyncApi" | ||
| "docsUrl": "https://chanx.readthedocs.io/", | ||
| "repoUrl": "https://github.com/huynguyengl99/chanx" | ||
| }, | ||
| "filters": { | ||
| "language": "C#", | ||
| "language": "python", | ||
| "technology": [ | ||
| "ASP.NET", | ||
| ".NET" | ||
| "Django", | ||
| "FastAPI" | ||
| ], | ||
| "categories": [ | ||
| "code-first", | ||
| "documentation-generator", | ||
| "cli", | ||
| "framework", | ||
| "ui-component", | ||
| "bundler" | ||
| "code-generator" | ||
| ], | ||
| "hasCommercial": false, | ||
| "isAsyncAPIOwner": false | ||
| } |
There was a problem hiding this comment.
Normalize these filter labels to the canonical spellings.
Values like python, Typescript, React js, kotlin, and maven do not match the spellings already used elsewhere in this catalog (Python, TypeScript, React JS, Kotlin, Maven). That splits the same concept into different filter/tag values and can break consistent styling.
Also applies to: 144-160, 496-513, 688-706
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@config/tools-automated.json` around lines 77 - 95, Update the filter label
values to use the canonical spellings so tags are consistent: change the
"language" value from "python" to "Python", normalize any "Typescript" to
"TypeScript", "React js" to "React JS", "kotlin" to "Kotlin", and "maven" to
"Maven"; apply these edits inside the "filters" object (fields "language",
"technology" array and any "categories" entries) for this ChanX block and the
other similar blocks referenced so all occurrences use the canonical
capitalization and spacing.
1da202f to
c4454e3
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
config/tools-automated.json (2)
727-730:⚠️ Potential issue | 🟠 Major | ⚡ Quick winInconsistent category slug
"CLIs"(Specmatic).Everywhere else in this catalog the CLI category is the lowercase slug
"cli"(e.g., lines 752, 774, 845, 937, 978, 999, 1025, 1044, 1066, 1357, 1376). Specmatic uses"CLIs"at line 729 and again at line 959, which will likely fail exact-match filtering against the canonical category and miscount entries on the CLIs page. Normalize both occurrences to"cli".♻️ Proposed fix
"categories": [ "mocking-and-testing", - "CLIs" + "cli" ],Apply the same change at line 959.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 727 - 730, The categories array for the Specmatic entry uses the inconsistent slug "CLIs" which should be normalized to the canonical lowercase "cli"; locate the Specmatic record that contains the "categories" array with "CLIs" and replace both occurrences of "CLIs" with "cli" so exact-match filtering and counts work correctly (ensure you update every occurrence of the "CLIs" value for Specmatic in the file).
1183-1338:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftRemove fork/squatting entries from AsyncAPI Generator Templates and other tool categories.
The AsyncAPI Generator Templates section contains three
HTML Templateentries: the officialasyncapi/html-templateplus fork versions fromdipaksodani/async-genandWSOL12/html-template(both withisAsyncAPIOwner: falseand null descriptions). Similar patterns appear throughout the file:
- AsyncAPI Studio (Editors): Official
asyncapi/studioalongside forksTahaShahid203/async-api-issueandShurtu-gal/action-test-bed- AsyncAPI CLI (CLIs and Others): Official
asyncapi/clialongside forkhkirat/asyncapi-fork(appearing in both categories)- asyncapi-preview (IDE Extensions): Official
asyncapi/vs-asyncapi-previewalongside forkSavio629/testing2These fork/squatting entries have
isAsyncAPIOwner: false, null descriptions, and will be published as live cards with incomplete data. The fix belongs upstream in the tool-collection workflow's filter (e.g., excluding non-asyncapi-owned forks when a canonical version exists, or deduplicating by NWO when titles collide). Verify the workflow's ignored-tools summary before merging to prevent these entries from reaching publication.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 1183 - 1338, The file contains duplicate/forked tool entries (e.g., multiple "HTML Template" items with isAsyncAPIOwner: false and null descriptions such as links.repoUrl "https://github.com/dipaksodani/async-gen" and "https://github.com/WSOL12/html-template") and similar duplicates under "AsyncAPI Studio", "AsyncAPI CLI" and "asyncapi-preview"; update the tool-collection workflow/filter to deduplicate by canonical NWO (links.repoUrl) and drop non-owner forks when a canonical asyncapi-owned entry exists by checking the isAsyncAPIOwner flag and title collision, ensure the filter logic uses keys title, links.repoUrl and isAsyncAPIOwner and add a rule to populate ignored-tools summary for these removals so you can verify them before merging.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@config/tools-automated.json`:
- Line 744: Replace the non-canonical language value "Go/Golang" with the
canonical label "Go" where it appears in the JSON (the "language" field that
currently equals "Go/Golang" and the duplicate occurrence for CLIs) so that
filtering/mapping uses a single consistent language token; update both
occurrences to "Go" to normalize values.
- Around line 1228-1231: The templates "Java Spring Cloud Stream Template",
"Java Spring Template", and "Java Template" have filters.language set as a
single-element array and incorrectly use "javascript"; change filters.language
from ["javascript"] to the scalar string "java" (matching the shape and value
used by other templates) so consumers expecting a string receive a consistent
type; update the three occurrences of the filters.language key accordingly and
ensure the value is "java" (lowercase) to match other entries.
---
Outside diff comments:
In `@config/tools-automated.json`:
- Around line 727-730: The categories array for the Specmatic entry uses the
inconsistent slug "CLIs" which should be normalized to the canonical lowercase
"cli"; locate the Specmatic record that contains the "categories" array with
"CLIs" and replace both occurrences of "CLIs" with "cli" so exact-match
filtering and counts work correctly (ensure you update every occurrence of the
"CLIs" value for Specmatic in the file).
- Around line 1183-1338: The file contains duplicate/forked tool entries (e.g.,
multiple "HTML Template" items with isAsyncAPIOwner: false and null descriptions
such as links.repoUrl "https://github.com/dipaksodani/async-gen" and
"https://github.com/WSOL12/html-template") and similar duplicates under
"AsyncAPI Studio", "AsyncAPI CLI" and "asyncapi-preview"; update the
tool-collection workflow/filter to deduplicate by canonical NWO (links.repoUrl)
and drop non-owner forks when a canonical asyncapi-owned entry exists by
checking the isAsyncAPIOwner flag and title collision, ensure the filter logic
uses keys title, links.repoUrl and isAsyncAPIOwner and add a rule to populate
ignored-tools summary for these removals so you can verify them before merging.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 81de76eb-f45c-4378-b484-6a77b52b66b3
📒 Files selected for processing (2)
config/tools-automated.jsonconfig/tools.json
✅ Files skipped from review due to trivial changes (1)
- config/tools.json
| }, | ||
| "filters": { | ||
| "language": "Python", | ||
| "language": "Go/Golang", |
There was a problem hiding this comment.
Non-canonical language value "Go/Golang" (Mokapi).
"Go/Golang" does not match any canonical language label used elsewhere (e.g., "Go" or "golang") and will not map to a single filter chip. Same issue at line 1017 for the Mokapi duplicate in CLIs. Normalize to one canonical value ("Go").
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@config/tools-automated.json` at line 744, Replace the non-canonical language
value "Go/Golang" with the canonical label "Go" where it appears in the JSON
(the "language" field that currently equals "Go/Golang" and the duplicate
occurrence for CLIs) so that filtering/mapping uses a single consistent language
token; update both occurrences to "Go" to normalize values.
f68e72e to
adedf5f
Compare
|
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
config/tools.json (1)
802-843:⚠️ Potential issue | 🟠 Major | ⚡ Quick winDuplicate Golang generator entries create conflicting tool records.
This change adds a new
Golang AsyncAPI Code Generatorentry but leaves the previous identical entry in place with a differentrepoUrl. That will render duplicate cards for the same tool and split traffic between two repos.Suggested fix
- { - "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": { - "repoUrl": "https://github.com/lerenn/asyncapi-codegen" - }, - "filters": { - "language": [ - { - "name": "Go/Golang", - "color": "bg-[`#8ECFDF`]", - "borderColor": "border-[`#00AFD9`]" - } - ], - "technology": [], - "categories": [ - "code-generator" - ], - "hasCommercial": false - } - },🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools.json` around lines 802 - 843, There are two entries with the same "title": "Golang AsyncAPI Code Generator" causing duplicate tool records; fix by removing or merging the duplicate object so only a single tool entry remains—locate the objects with title "Golang AsyncAPI Code Generator" and consolidate their "links.repoUrl" (either keep the correct one and delete the other object, or combine repo URLs into a single canonical entry) and ensure the final object retains the same "filters" and "description" fields.config/tools-automated.json (2)
1349-1361:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove or clarify the purpose of the stale AsyncAPI CLI fork entry.
The file contains two identical "AsyncAPI CLI" entries (same title, description, and website URL):
https://github.com/hkirat/asyncapi-forkwithisAsyncAPIOwner: falsehttps://github.com/asyncapi/cliwithisAsyncAPIOwner: trueThe fork at
hkirat/asyncapi-forkis stale (last updated September 2024, 8+ months ago) and minimally used (3 stars, 0 forks), while the official repository is actively maintained (267 stars, 362 forks, updated within the last week). Listing both creates user confusion about which CLI to use. Remove the fork entry unless it serves a documented, specific purpose distinct from the official tool.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 1349 - 1361, The config contains a stale duplicate entry for the AsyncAPI CLI (repoUrl "https://github.com/hkirat/asyncapi-fork" with isAsyncAPIOwner: false) that conflicts with the official entry ("https://github.com/asyncapi/cli"); remove the fork entry from the tools-automated.json or replace it with a clear comment/metadata explaining a distinct purpose if it must remain (e.g., "stale fork for historical reference") and ensure the remaining entry clearly points to the actively maintained official repo and preserves filters and hasCommercial/isAsyncAPIOwner flags accordingly.
211-224:⚠️ Potential issue | 🟠 Major | ⚖️ Poor tradeoffDuplicate
Golang AsyncAPI Code Generatorentries require resolution.Lines 211-224 and 314-327 both list "Golang AsyncAPI Code Generator" with identical titles, descriptions, and filters but different repositories:
dimonoff/asyncapi-codegen(0 stars, recently updated May 2026, active commits)lerenn/asyncapi-codegen(157 stars, updated April 2026, last commits August 2025)Both entries create ambiguity in the catalog. If these are intentional (e.g., different implementations), they should have distinct titles/descriptions. Otherwise, one should be removed in favor of the more actively maintained or community-adopted version.
Additionally, both entries use
"language": "golang"(lowercase); this should be normalized to"Go"to align with canonical language naming conventions.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 211 - 224, There are duplicate tool entries with the title "Golang AsyncAPI Code Generator" causing ambiguity; remove or consolidate the duplicate by keeping the preferred repository (choose between "dimonoff/asyncapi-codegen" and "lerenn/asyncapi-codegen") and, if both must remain, give each a distinct title/description that clearly differentiates implementations (e.g., append the repo owner to the title and add a short differentiator in "description"); also normalize the "language" filter value from "golang" to the canonical "Go" in both entries (look for the title "Golang AsyncAPI Code Generator" and update its "links"->"repoUrl", "description", and "filters"->"language" accordingly).
♻️ Duplicate comments (4)
config/tools-automated.json (4)
744-744:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winNon-canonical language value
"Go/Golang".Line 744 uses
"Go/Golang", which doesn't match any canonical language label used elsewhere (the standard is"Go"). This will prevent proper filter/tag mapping.The same issue appears at line 1036 (Mokapi duplicate in CLIs). Normalize both occurrences to
"Go".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` at line 744, Replace the non-canonical language value "Go/Golang" with the standardized label "Go" in config/tools-automated.json; specifically update the "language" field entries that currently contain "Go/Golang" (including the duplicate in the Mokapi CLIs section) so they use "Go" to ensure proper filter/tag mapping.
1229-1231:⚠️ Potential issue | 🟠 Major | ⚡ Quick winSchema inconsistency:
filters.languageas array instead of string.Lines 1229-1231 (Java Spring Cloud Stream Template), 1268-1270 (Java Template), and 1287-1290 (Java Spring Template) define
"language"as a single-element array["javascript"], while all other template entries use a plain string"language": "javascript".This mixed scalar/array schema will break consumers that type this field as a string or rely on consistent shapes for filtering. Additionally, these are Java templates but incorrectly specify
"javascript"as the language value.Correct both issues by:
- Changing from array
["javascript"]to string scalar- Changing the value from
"javascript"to"java"(lowercase to match other template language values)♻️ Proposed fix
- "language": [ - "javascript" - ], + "language": "java",Also applies to: 1268-1270, 1287-1290
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 1229 - 1231, For the three Java template entries currently using "language": ["javascript"], replace the array with a scalar string and set the value to "java" (lowercase) so the field becomes "language": "java"; target the JSON objects for the Java Spring Cloud Stream Template, Java Template, and Java Spring Template where "language": ["javascript"] appears and update them to the scalar "language": "java" to restore consistent schema and correct language labeling.
649-680:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winGitHub Action entries have mismatched repos and titles.
The two GitHub Action entries have incorrect repository mappings:
Line 649-663: "GitHub Action for CLI" points to
actions-marketplace-validations/asyncapi_github-action-for-generator(an automated marketplace mirror of the Generator action, not the CLI action) withisAsyncAPIOwner: false.Line 666-680: "GitHub Action for Generator" points to
https://github.com/asyncapi/cli(the AsyncAPI CLI repo, not the Generator action repo) with a CLI description andisAsyncAPIOwner: true.Additionally, line 659 uses
"github-action"(singular) while line 676 uses"github-actions"(plural), creating inconsistent category values.Correct configuration should be:
- "GitHub Action for CLI" →
https://github.com/asyncapi/cliwithisAsyncAPIOwner: true- "GitHub Action for Generator" →
https://github.com/asyncapi/github-action-for-generatorwith appropriate ownership flag- Remove the
actions-marketplace-validationsentry (automated mirror, not a user-facing tool)- Normalize category to singular
"github-action"or plural"github-actions"consistently🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 649 - 680, Update the two GitHub Action objects so "GitHub Action for CLI" has links.repoUrl set to "https://github.com/asyncapi/cli" and filters.isAsyncAPIOwner true, and "GitHub Action for Generator" has links.repoUrl set to "https://github.com/asyncapi/github-action-for-generator" with the appropriate filters.isAsyncAPIOwner value; remove the automated mirror entry that points to "actions-marketplace-validations/asyncapi_github-action-for-generator"; and normalize the filters.categories value for both entries to the same token (choose either "github-action" or "github-actions" and apply it consistently) so the "title", "links.repoUrl", "description", "filters.isAsyncAPIOwner", and "filters.categories" fields for the objects named "GitHub Action for CLI" and "GitHub Action for Generator" are corrected.
172-175:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winNormalize
"Typescript"to"TypeScript"and verify"NestJS"tag.Line 172 uses
"Typescript"(incorrect capitalization), which won't match the canonical"TypeScript"tag used throughout the file. Update to"TypeScript".Additionally, a past review comment flagged that line 175 uses
"NestJS"butconfig/all-tags.jsondefines the tag as"Nest Js"(with space). Verify the canonical tag name and update if needed.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@config/tools-automated.json` around lines 172 - 175, Update the language tag value "Typescript" to the canonical "TypeScript" and ensure the technology tag for Nest is the canonical form used in config/all-tags.json: if that file defines "Nest Js" (with a space) replace "NestJS" with "Nest Js"; otherwise keep "NestJS"—modify the array entry in the JSON (the "language" and the "technology" array) accordingly so tags exactly match the canonical spellings.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@config/tools-automated.json`:
- Line 40: The JSON entries using lowercase language values should be normalized
to the canonical capitalized form: replace "python" with "Python" and "php" with
"PHP" where they appear (specifically the entries shown as `"language":
"python"` and the Code Generators items referenced: ChanX, asyncapi-python, and
PHP AsyncAPI Annotations) so that tag/filter mapping is consistent; locate and
update the "language" fields in those objects to use the exact casing used
elsewhere ("Python" or "PHP") and ensure no other duplicate lowercase variants
remain.
- Around line 767-774: Update the inconsistent capitalization and plurality in
the tool metadata: change the "language" value "kotlin" to the canonical
"Kotlin", change the "technology" entry "maven" to "Maven", and change the
"categories" entry "CLIs" to the canonical "cli" for the block containing the
entries "language": "kotlin", "technology": ["Docker","maven"], "categories":
["mocking-and-testing","CLIs"]; apply the same three fixes to the duplicate CLIs
block elsewhere in the file so tag mapping is consistent.
---
Outside diff comments:
In `@config/tools-automated.json`:
- Around line 1349-1361: The config contains a stale duplicate entry for the
AsyncAPI CLI (repoUrl "https://github.com/hkirat/asyncapi-fork" with
isAsyncAPIOwner: false) that conflicts with the official entry
("https://github.com/asyncapi/cli"); remove the fork entry from the
tools-automated.json or replace it with a clear comment/metadata explaining a
distinct purpose if it must remain (e.g., "stale fork for historical reference")
and ensure the remaining entry clearly points to the actively maintained
official repo and preserves filters and hasCommercial/isAsyncAPIOwner flags
accordingly.
- Around line 211-224: There are duplicate tool entries with the title "Golang
AsyncAPI Code Generator" causing ambiguity; remove or consolidate the duplicate
by keeping the preferred repository (choose between "dimonoff/asyncapi-codegen"
and "lerenn/asyncapi-codegen") and, if both must remain, give each a distinct
title/description that clearly differentiates implementations (e.g., append the
repo owner to the title and add a short differentiator in "description"); also
normalize the "language" filter value from "golang" to the canonical "Go" in
both entries (look for the title "Golang AsyncAPI Code Generator" and update its
"links"->"repoUrl", "description", and "filters"->"language" accordingly).
In `@config/tools.json`:
- Around line 802-843: There are two entries with the same "title": "Golang
AsyncAPI Code Generator" causing duplicate tool records; fix by removing or
merging the duplicate object so only a single tool entry remains—locate the
objects with title "Golang AsyncAPI Code Generator" and consolidate their
"links.repoUrl" (either keep the correct one and delete the other object, or
combine repo URLs into a single canonical entry) and ensure the final object
retains the same "filters" and "description" fields.
---
Duplicate comments:
In `@config/tools-automated.json`:
- Line 744: Replace the non-canonical language value "Go/Golang" with the
standardized label "Go" in config/tools-automated.json; specifically update the
"language" field entries that currently contain "Go/Golang" (including the
duplicate in the Mokapi CLIs section) so they use "Go" to ensure proper
filter/tag mapping.
- Around line 1229-1231: For the three Java template entries currently using
"language": ["javascript"], replace the array with a scalar string and set the
value to "java" (lowercase) so the field becomes "language": "java"; target the
JSON objects for the Java Spring Cloud Stream Template, Java Template, and Java
Spring Template where "language": ["javascript"] appears and update them to the
scalar "language": "java" to restore consistent schema and correct language
labeling.
- Around line 649-680: Update the two GitHub Action objects so "GitHub Action
for CLI" has links.repoUrl set to "https://github.com/asyncapi/cli" and
filters.isAsyncAPIOwner true, and "GitHub Action for Generator" has
links.repoUrl set to "https://github.com/asyncapi/github-action-for-generator"
with the appropriate filters.isAsyncAPIOwner value; remove the automated mirror
entry that points to
"actions-marketplace-validations/asyncapi_github-action-for-generator"; and
normalize the filters.categories value for both entries to the same token
(choose either "github-action" or "github-actions" and apply it consistently) so
the "title", "links.repoUrl", "description", "filters.isAsyncAPIOwner", and
"filters.categories" fields for the objects named "GitHub Action for CLI" and
"GitHub Action for Generator" are corrected.
- Around line 172-175: Update the language tag value "Typescript" to the
canonical "TypeScript" and ensure the technology tag for Nest is the canonical
form used in config/all-tags.json: if that file defines "Nest Js" (with a space)
replace "NestJS" with "Nest Js"; otherwise keep "NestJS"—modify the array entry
in the JSON (the "language" and the "technology" array) accordingly so tags
exactly match the canonical spellings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5f40e631-f520-4183-b416-e12a76e8e835
📒 Files selected for processing (3)
config/all-tags.jsonconfig/tools-automated.jsonconfig/tools.json
| "repoUrl": "https://github.com/huynguyengl99/chanx" | ||
| }, | ||
| "filters": { | ||
| "language": "python", |
There was a problem hiding this comment.
Normalize "python" to "Python" for filter consistency.
Line 40 uses lowercase "python", but line 86 (same file) and the majority of language filters use "Python" (capitalized). This splits the same language into separate filter values and breaks tag mapping. Update to "Python" to match the canonical spelling used elsewhere.
This also applies to:
- Line 197 (Code Generators > ChanX)
- Line 254 (Code Generators > asyncapi-python)
- Line 300 (Code Generators > PHP AsyncAPI Annotations, uses lowercase
"php")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@config/tools-automated.json` at line 40, The JSON entries using lowercase
language values should be normalized to the canonical capitalized form: replace
"python" with "Python" and "php" with "PHP" where they appear (specifically the
entries shown as `"language": "python"` and the Code Generators items
referenced: ChanX, asyncapi-python, and PHP AsyncAPI Annotations) so that
tag/filter mapping is consistent; locate and update the "language" fields in
those objects to use the exact casing used elsewhere ("Python" or "PHP") and
ensure no other duplicate lowercase variants remain.
| "language": "kotlin", | ||
| "technology": [ | ||
| "JavaScript", | ||
| "TypeScript", | ||
| "Docker" | ||
| "Docker", | ||
| "maven" | ||
| ], | ||
| "categories": [ | ||
| "mocking-and-testing", | ||
| "cli" | ||
| "CLIs" |
There was a problem hiding this comment.
Normalize filter capitalization for Specmatic.
Line 767 uses "kotlin" (lowercase) when the canonical form is "Kotlin". Line 770 uses "maven" (lowercase) when the canonical form is "Maven". These inconsistencies split filter values and break tag mapping.
Additionally, line 774 uses "CLIs" (uppercase, plural) in the categories array, while other entries use "cli" (lowercase, singular). Normalize to the canonical "cli".
The same issues appear in the CLIs section duplicate at lines 1059-1066.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@config/tools-automated.json` around lines 767 - 774, Update the inconsistent
capitalization and plurality in the tool metadata: change the "language" value
"kotlin" to the canonical "Kotlin", change the "technology" entry "maven" to
"Maven", and change the "categories" entry "CLIs" to the canonical "cli" for the
block containing the entries "language": "kotlin", "technology":
["Docker","maven"], "categories": ["mocking-and-testing","CLIs"]; apply the same
three fixes to the duplicate CLIs block elsewhere in the file so tag mapping is
consistent.



Hey, @asyncapi/website-maintainers, please review this updated tools list.
Check the workflow run logs for any ignored tools summary and verify new entries before merging.
Summary by CodeRabbit
New Features
Updates
Removals