Skip to content

Conversation

@asyncapi-bot
Copy link
Contributor

@asyncapi-bot asyncapi-bot commented Jan 5, 2026

Automated changes by create-pull-request GitHub action

Summary by CodeRabbit

  • Chores
    • Updated language and technology tag names in the tools catalog for consistency
    • Reorganized and repositioned development tools within the directory
    • Updated repository references and source links for code generators and templates
    • Refined tool metadata including descriptions and categorization

✏️ Tip: You can customize this high-level summary in your review settings.

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for asyncapi-website ready!

Name Link
🔨 Latest commit 1243947
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-website/deploys/695b09e7d3d1e20008ca99e0
😎 Deploy Preview https://deploy-preview-4879--asyncapi-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

📝 Walkthrough

Walkthrough

Configuration updates across three JSON files swap language and technology tag names, exchange tool entries and repository URLs, and refresh tool descriptions without functional code changes.

Changes

Cohort / File(s) Summary
Language and Technology Tags
config/all-tags.json
Swaps language tag names (TypeScript ↔ FastAPI) and technology tag names (AsyncAPI CLI ↔ AsyncAPI Generator) across two pairs of entries in the languages and technologies sections.
Automated Tool Entries
config/tools-automated.json
Rebrand and swap multiple tool entries (Zod Sockets, ChanX, AsyncAPI.NET, SIO-AsyncAPI); update descriptions, repository URLs, language filters, and technology stacks (Django/FastAPI, Node.js/TypeScript variants); adjust categories and keywords; add Specmatic and AsyncAPI CLI entries; reorder items across Code Generators, CLIs, Mocking/Testing, DSL, and Editors sections.
Manual Tool Configuration
config/tools.json
Update repository URLs for AsyncAPI Studio entries (Shurtu-gal/action-test-bed ↔ TahaShahid203/async-api-issue swap); refresh HTML Template entries with description and repository URL changes across three occurrences (dipaksodani/async-gen, asyncapi/html-template, WSOL12/html-template).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

autoapproved, autoupdate

Suggested reviewers

  • derberg
  • akshatnema
  • anshgoyalevil
  • sambhavgupta0705
  • Mayaleeeee
  • asyncapi-bot-eve

Poem

🐰 Tags dance a swap, tools shuffle round,
TypeScript meets FastAPI's ground,
CLI becomes Generator's name,
Yet URLs and repos stay the same!
A reorder, refresh, a config delight—
The constellation glows just right! ✨

Pre-merge checks

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: update tools.json' is vague and overly broad. While it mentions tools.json, it doesn't clarify what specific updates were made or their significance. Provide a more descriptive title that specifies the nature of the changes, such as 'chore: reorganize and update tool entries and metadata across configs' or similar, to better convey the scope of the modifications.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (18ec38f) to head (1243947).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #4879   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           22        22           
  Lines          798       798           
  Branches       146       146           
=========================================
  Hits           798       798           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@asyncapi-bot
Copy link
Contributor Author

⚡️ Lighthouse report for the changes in this PR:

Category Score
🔴 Performance 40
🟢 Accessibility 98
🟢 Best practices 92
🟢 SEO 100
🔴 PWA 33

Lighthouse ran on https://deploy-preview-4879--asyncapi-website.netlify.app/

@asyncapi-bot asyncapi-bot merged commit dea4705 into master Jan 5, 2026
38 checks passed
@asyncapi-bot asyncapi-bot deleted the update-tools/regenerateTools branch January 5, 2026 00:51
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 (5)
config/tools.json (2)

1375-1428: Remove test/personal repository entries from Editors section.

Lines 1380 and 1407 contain AsyncAPI Studio entries with personal/test repository URLs (TahaShahid203/async-api-issue and Shurtu-gal/action-test-bed). These entries appear in both tools.json and tools-automated.json, suggesting a systematic issue with the automated tool generation process.

The AI summary mentions repository URL swaps between these two entries, but this doesn't explain why personal repositories are present in the first place. The automated regeneration process should filter out non-official repositories.


2846-2925: Remove duplicate HTML Template entries and consolidate to official repository only.

The automated tool discovery process is indexing three HTML Template entries:

  • asyncapi/html-template (official, 86 stars, full description)
  • WSOL12/html-template (personal fork, 1 star, no description)
  • dipaksodani/async-gen (personal repo, 0 stars, no description)

This creates user confusion about which is the official tool. The community repositories were automatically discovered because they contain .asyncapi-tool files, but they should not appear alongside the official template without clear differentiation or removal. Consider either:

  1. Removing the .asyncapi-tool files from personal repositories to prevent auto-indexing
  2. Adding descriptions to personal repos and relocating them to a separate "community templates" category
  3. Filtering the build script to exclude low-engagement repositories (< 5 stars) from community tools
config/tools-automated.json (3)

980-1055: Remove duplicate HTML Template entries with personal repository URLs.

Three HTML Template entries exist in the configuration. While the official asyncapi/html-template is correct, entries at lines 983 and 1042 point to personal repositories (WSOL12/html-template and dipaksodani/async-gen) with null descriptions. These unofficial forks should be removed to prevent users from being directed away from the official template.


368-405: Remove test/personal and fork repository entries; deduplicate official tools.

The configuration contains multiple production data quality issues:

  1. AsyncAPI Studio (lines 373, 392): Two entries point to personal/test repositories (TahaShahid203/async-api-issue and Shurtu-gal/action-test-bed) instead of the official https://github.com/asyncapi/studio

  2. AsyncAPI CLI (lines 835, 1121): Duplicate entries both pointing to a personal fork (hkirat/asyncapi-fork) instead of the official repository. Both are marked isAsyncAPIOwner: false

  3. asyncapi-preview (line 920): VSCode extension entry points to a test repository (Savio629/testing2) instead of an official source

These entries should either be removed or corrected to reference official repositories to prevent users from being directed to unofficial/test codebases.


740-849: Remove duplicate AsyncAPI CLI entry with fork repository.

The CLIs section contains two AsyncAPI CLI entries: the official one (index 0, asyncapi/cli) with isAsyncAPIOwner=true, and a second entry (index 4, hkirat/asyncapi-fork) with isAsyncAPIOwner=false. The fork repository URL references a personal fork and is redundant; it also appears in the "Others" section. Remove both occurrences of the fork entry.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 90e4b00 and 1243947.

📒 Files selected for processing (3)
  • config/all-tags.json
  • config/tools-automated.json
  • config/tools.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-01-19T04:51:41.255Z
Learnt from: anshgoyalevil
Repo: asyncapi/website 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.

Applied to files:

  • config/tools.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: Automerge PR autoapproved by a bot
  • GitHub Check: Redirect rules - asyncapi-website
  • GitHub Check: Header rules - asyncapi-website
  • GitHub Check: Pages changed - asyncapi-website
  • GitHub Check: cypress-run
  • GitHub Check: Test NodeJS PR - windows-latest
  • GitHub Check: Lighthouse CI
🔇 Additional comments (2)
config/tools-automated.json (1)

33-51: LGTM! ChanX tool entry properly updated.

The metadata updates for ChanX including description, documentation URL, and filter properties are consistent and accurate.

config/all-tags.json (1)

216-223: No action required: No swap detected between FastAPI and TypeScript.

TypeScript legitimately appears in both the languages section (line 39) and technologies section (line 221) of config/all-tags.json with different color schemes — this is intentional, not a swap. FastAPI is correctly positioned in the technologies section. The shared color scheme (bg-[#61d0f2]) among FastAPI, TypeScript (in technologies), Django, Kotlin, Socket.IO, Liquid, Gradle, and amqp is a deliberate design choice for visual grouping, not a corruption issue. Additionally, no tools in the codebase currently reference FastAPI or TypeScript as technology tags, so no filtering issues exist.

Comment on lines +281 to 288
"name": "AsyncAPI Generator",
"color": "bg-[#61d0f2]",
"borderColor": "border-[#40ccf7]"
},
{
"name": "AsyncAPI Generator",
"name": "AsyncAPI CLI",
"color": "bg-[#61d0f2]",
"borderColor": "border-[#40ccf7]"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check which tools reference AsyncAPI Generator and AsyncAPI CLI
echo "=== Tools using 'AsyncAPI Generator' technology tag ==="
jq -r '.tools[] | select(.technology[]? | select(. == "AsyncAPI Generator")) | .title' config/tools.json config/tools-automated.json 2>/dev/null | sort -u

echo -e "\n=== Tools using 'AsyncAPI CLI' technology tag ==="
jq -r '.tools[] | select(.technology[]? | select(. == "AsyncAPI CLI")) | .title' config/tools.json config/tools-automated.json 2>/dev/null | sort -u

# Also check all-tags.json to see the tag definitions
echo -e "\n=== Tag definitions in all-tags.json ==="
jq '.[] | select(.name == "AsyncAPI Generator" or .name == "AsyncAPI CLI") | {name, color, borderColor}' config/all-tags.json

Repository: asyncapi/website

Length of output: 304


🏁 Script executed:

#!/bin/bash
# Check structure of all-tags.json
echo "=== First 30 lines of all-tags.json ==="
head -30 config/all-tags.json

echo -e "\n=== Check if it's an array or object ==="
jq 'type' config/all-tags.json

echo -e "\n=== First tool entry in tools.json ==="
jq '.tools[0]' config/tools.json 2>/dev/null | head -40

echo -e "\n=== Verify tools.json exists and is readable ==="
wc -l config/tools.json config/tools-automated.json 2>/dev/null

Repository: asyncapi/website

Length of output: 936


🏁 Script executed:

#!/bin/bash
# Check the structure and find AsyncAPI tags
echo "=== Technologies section of all-tags.json (showing AsyncAPI entries) ==="
jq '.technologies[] | select(.name | contains("AsyncAPI")) | {name, color, borderColor}' config/all-tags.json

echo -e "\n=== Root keys in tools.json ==="
jq 'keys' config/tools.json | head -50

echo -e "\n=== Check for AsyncAPI references in tools.json ==="
jq '.[] | select(.technologies[]? | select(. | contains("AsyncAPI"))) | .title' config/tools.json 2>/dev/null | head -20

echo -e "\n=== Root structure of tools-automated.json ==="
jq 'type' config/tools-automated.json
jq 'keys | length' config/tools-automated.json

Repository: asyncapi/website

Length of output: 816


🏁 Script executed:

#!/bin/bash
# Search through all categories in tools.json for AsyncAPI references
echo "=== Tools with AsyncAPI technologies in tools.json ==="
jq -r '
  to_entries[] |
  .value[] |
  select(.technologies[]? != null) |
  select(.technologies | map(select(. | contains("AsyncAPI"))) | length > 0) |
  "\(.title) - Technologies: \(.technologies | @json)"
' config/tools.json | head -50

echo -e "\n=== Tools with AsyncAPI technologies in tools-automated.json ==="
jq -r '
  .[] |
  select(.technologies[]? != null) |
  select(.technologies | map(select(. | contains("AsyncAPI"))) | length > 0) |
  "\(.title) - Technologies: \(.technologies | @json)"
' config/tools-automated.json | head -50

# Also look at the AsyncAPI Generator Templates category specifically
echo -e "\n=== AsyncAPI Generator Templates category ==="
jq '.["AsyncAPI Generator Templates"][] | .title' config/tools.json

Repository: asyncapi/website

Length of output: 409


🏁 Script executed:

#!/bin/bash
# Let's examine the actual structure more carefully
echo "=== Examining tools.json structure around CLIs section ==="
jq '.CLIs | type' config/tools.json
jq '.CLIs | length' config/tools.json

echo -e "\n=== First few CLI entries ==="
jq '.CLIs[0:2]' config/tools.json

echo -e "\n=== Search for AsyncAPI in tools.json using rg ==="
rg -A5 -B5 "AsyncAPI (CLI|Generator)" config/tools.json | head -100

echo -e "\n=== Check tools-automated.json keys ==="
jq 'keys' config/tools-automated.json

Repository: asyncapi/website

Length of output: 4255


🏁 Script executed:

#!/bin/bash
# Check lines 281-288 in all-tags.json
echo "=== Lines 280-295 of all-tags.json ==="
sed -n '280,295p' config/all-tags.json

echo -e "\n=== Find all AsyncAPI entries in all-tags.json ==="
rg -n "AsyncAPI" config/all-tags.json

echo -e "\n=== Check the unique colors used for AsyncAPI tags ==="
jq '.technologies[] | select(.name | contains("AsyncAPI")) | {name, color, borderColor}' config/all-tags.json | sort | uniq -c

Repository: asyncapi/website

Length of output: 805


Color styling conflict for distinct AsyncAPI tools.

Lines 281-283 (AsyncAPI Generator) and 286-288 (AsyncAPI CLI) both use identical color values (bg-[#61d0f2] and border-[#40ccf7]). These are distinct tools with different purposes and should have distinct visual styling to avoid UI confusion when filtering by technology.

🤖 Prompt for AI Agents
config/all-tags.json lines 281-288: both "AsyncAPI Generator" (281-283) and
"AsyncAPI CLI" (286-288) use identical color values causing visual confusion;
update the "AsyncAPI CLI" entry to use a distinct background and borderColor
(for example change bg-[#61d0f2] to a different hex like bg-[#9be3ff] and
border-[#40ccf7] to border-[#66dfff] or choose another accessible color pair),
ensure the new colors maintain sufficient contrast and fit the existing palette,
and run a quick UI check to confirm the two AsyncAPI items are visually
distinguishable.

Comment on lines +516 to 548
"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
}
},
{
"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
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix inconsistent category naming: github-actions vs github-action.

Line 526 uses "github-actions" (plural) while line 543 uses "github-action" (singular). This inconsistency may break filtering and categorization on the website.

🔎 Standardize to use the plural form
 {
   "title": "GitHub Action for CLI",
   "description": null,
   "links": {
     "repoUrl": "https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"
   },
   "filters": {
     "technology": [
       "AsyncAPI CLI"
     ],
     "categories": [
-      "github-action"
+      "github-actions"
     ],
     "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.

Suggested change
"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
}
},
{
"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 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/asyncapi/cli"
},
"filters": {
"technology": [
"AsyncAPI Generator"
],
"categories": [
"github-actions"
],
"hasCommercial": false,
"isAsyncAPIOwner": true
}
},
{
"title": "GitHub Action for CLI",
"description": null,
"links": {
"repoUrl": "https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"
},
"filters": {
"technology": [
"AsyncAPI CLI"
],
"categories": [
"github-actions"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
}
}
🤖 Prompt for AI Agents
In config/tools-automated.json around lines 516 to 548 there is an inconsistent
category name: one entry uses "github-actions" (plural) while another uses
"github-action" (singular); update the latter to "github-actions" so both
entries use the same plural category, and scan neighboring entries to ensure no
other occurrences of the singular form remain, keeping all category values
consistent for filtering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants