-
-
Notifications
You must be signed in to change notification settings - Fork 641
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 #3274
chore: update tools.json #3274
Conversation
WalkthroughThe changes involve updates to two configuration files: Changes
Suggested labels
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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
CodeRabbit Configuration File (
|
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-3274--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: 2
🧹 Outside diff range and nitpick comments (4)
config/tools-automated.json (4)
389-405
: LGTM: New GitHub Action for Generator added with minor suggestionThe addition of the GitHub Action for Generator is appropriate and provides useful information about its functionality. However, there's a minor inconsistency in the categories filter.
Consider updating the categories filter for consistency:
"categories": [ - "github-actions" + "github-action" ],
Line range hint
660-712
: Fix required: Inconsistencies in IDE Extensions categoryThere are several issues in the IDE Extensions category that need to be addressed:
- The entries for "asyncapi-preview" and "jAsyncAPI - IDEA plugin" have been swapped, which seems unintentional.
- There's a duplicate entry for "asyncapi-preview" with a different repository URL.
Please correct these issues by:
- Swapping back the entries for "asyncapi-preview" and "jAsyncAPI - IDEA plugin".
- Removing the duplicate "asyncapi-preview" entry or clarifying why there are two entries with different repository URLs.
Here's a suggested fix for the first issue:
{ - "title": "asyncapi-preview", - "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n", + "title": "jAsyncAPI - IDEA plugin", + "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.", "links": { - "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview" + "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi", + "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage", + "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin" }, "filters": { + "language": "Kotlin", "technology": [ - "VSCode", - "SmartPaste" + "JetBrains", + "IntelliJ IDEA" ], "categories": [ "ide-extension" ], "hasCommercial": false, "isAsyncAPIOwner": true } }, { - "title": "jAsyncAPI - IDEA plugin", - "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.", + "title": "asyncapi-preview", + "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n", "links": { - "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi", - "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage", - "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin" + "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview" }, "filters": { - "language": "Kotlin", "technology": [ - "JetBrains", - "IntelliJ IDEA" + "VSCode", + "SmartPaste" ], "categories": [ "ide-extension" ], "hasCommercial": false, "isAsyncAPIOwner": true } },After making these changes, please review the need for the additional "asyncapi-preview" entry and remove it if it's not necessary.
Line range hint
844-880
: Fix required: Duplicate entries in Others categoryThere are two identical entries for "AsyncAPI CLI" in the Others category. This duplication is unnecessary and may cause confusion for users.
Please address this issue by:
- Keeping only the original AsyncAPI CLI entry (with the repository URL "https://github.com/asyncapi/cli").
- Removing the duplicate entry or clarifying why there are two entries with different repository URLs if both are necessary.
If the second entry is intended to represent a fork of the original CLI, consider adding a note in the description to clarify this relationship.
Here's a suggested fix:
{ "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://www.asyncapi.com/tools/cli", "repoUrl": "https://github.com/asyncapi/cli" }, "filters": { "technology": [ "TypeScript" ], "categories": [ "others", "cli" ], "hasCommercial": false, "isAsyncAPIOwner": true } }, - { - "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://www.asyncapi.com/tools/cli", - "repoUrl": "https://github.com/hkirat/asyncapi-fork" - }, - "filters": { - "technology": [ - "TypeScript" - ], - "categories": [ - "others", - "cli" - ], - "hasCommercial": false, - "isAsyncAPIOwner": false - } - }If you decide to keep both entries, please add a note to the second entry's description to clarify its relationship to the original CLI.
Duplicate Entries and Inconsistencies Identified in
config/tools-automated.json
The verification process confirms the following issues:
- AsyncAPI CLI is duplicated in both the CLIs and Others categories.
- asyncapi-preview appears twice within the IDE Extensions category.
- GitHub Action for Generator is inconsistently categorized under both github-action and github-actions.
Additionally, other duplicate tool entries were found, which may require further review to ensure the integrity of the
tools-automated.json
file.Recommendations:
- Remove the duplicate AsyncAPI CLI entry to maintain a single source of truth.
- Consolidate the asyncapi-preview entries within the IDE Extensions category to eliminate redundancy.
- Standardize the category name for GitHub Action for Generator to either github-action or github-actions for consistency.
- Review and address other duplicate tool entries identified to enhance clarity and organization.
🔗 Analysis chain
Line range hint
1-883
: Summary of changes and recommendationsOverall, the updates to
config/tools-automated.json
provide valuable additions to the AsyncAPI tools ecosystem. However, there are a few issues that need to be addressed:
- Duplicate entries for AsyncAPI CLI in both the CLIs and Others categories.
- Swapped and duplicate entries in the IDE Extensions category.
- Minor inconsistency in the GitHub Actions category filter.
Please review and address the issues mentioned in the previous comments. After making the necessary changes, run the following command to ensure the JSON structure remains valid:
Once these issues are resolved, the updated
tools-automated.json
file will provide a comprehensive and accurate list of AsyncAPI tools for users.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify JSON structure jq . config/tools-automated.json > /dev/null && echo "JSON is valid" || echo "JSON is invalid"Length of output: 71
Script:
#!/bin/bash # Extract all tool titles and find duplicates jq -r '.[] .toolsList[].title' config/tools-automated.json | sort | uniq -dLength of output: 185
Script:
#!/bin/bash # List categories for each duplicate tool title duplicate_titles=("AsyncAPI CLI" "AsyncAPI.Net" "GitHub Action for Generator" "SIO-AsyncAPI" "ZenWave SDK" "Zod Sockets" "asyncapi-preview") for title in "${duplicate_titles[@]}"; do echo "Title: \"$title\"" jq -r --arg title "$title" ' .[] .toolsList[] | select(.title == $title) | .filters.categories[] | " - " + . ' config/tools-automated.json echo "" doneLength of output: 2715
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
- config/all-tags.json (1 hunks)
- config/tools-automated.json (12 hunks)
🧰 Additional context used
🔇 Additional comments (2)
config/tools-automated.json (2)
168-182
: LGTM: New Golang AsyncAPI Code Generator addedThe addition of the Golang AsyncAPI Code Generator is appropriate and well-structured. It provides relevant information about the tool and fits well within the "Code Generators" category.
Line range hint
722-837
: LGTM: New AsyncAPI Generator Templates addedThe additions to the AsyncAPI Generator Templates category are well-structured and provide a good range of templates for different languages and technologies. Each entry contains consistent and relevant information about the template's purpose and capabilities.
These new templates will be valuable for users working with various technologies such as HTML, Java, Spring, Node.js, and WebSockets.
{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","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.
💡 Codebase verification
🛠️ Refactor suggestion
Inconsistencies Found in Technology Tags
We've identified that the following technologies appear in both the "languages" and "technologies" arrays with different color schemes:
- Groovy
- HTML
- Java
- Kotlin
- Markdown
- Scala
- Shell
- TypeScript
This duplication can lead to confusion and inconsistent UI representation. Additionally, the JSON file remains unformatted, which may hinder future maintenance.
Recommendations:
-
Unify Entries: Consolidate the duplicated technologies into a single entry to maintain consistency.
-
Standardize Colors: Ensure that each technology has a consistent color scheme across all references.
-
Format JSON: Properly format the
config/all-tags.json
file for improved readability and maintainability. Consider using the following command:jq '.' config/all-tags.json > config/all-tags_formatted.json && mv config/all-tags_formatted.json config/all-tags.json
🔗 Analysis chain
Consider addressing inconsistencies and improving readability
While the changes consistently apply a new color scheme to several technologies, there are a few points to consider:
-
Consistency: Some technologies (e.g., TypeScript, Kotlin) appear in both the "languages" and "technologies" arrays with different color schemes. Consider unifying these to avoid confusion.
-
Readability: The single-line JSON format may be difficult to maintain. Consider formatting the JSON with proper indentation for better readability and easier future modifications.
-
Color scheme: The new color scheme (#61d0f2 / #40ccf7) is applied to a diverse set of technologies. While this creates a uniform look, it may reduce visual distinction between different technologies. Consider using a wider range of colors or adding additional visual cues to help users distinguish between different technologies more easily.
To improve readability, consider using a tool like jq
to format the JSON. You can run:
This will format the JSON with proper indentation, making it easier to read and maintain.
To check for inconsistencies between the "languages" and "technologies" arrays, we can run the following script:
This script will list any technologies that appear in both arrays, helping us identify potential inconsistencies.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
jq '.' config/all-tags.json > config/all-tags_formatted.json && mv config/all-tags_formatted.json config/all-tags.json
Length of output: 84
Script:
#!/bin/bash
# Description: Check for technologies that appear in both arrays with different colors
jq -r '
.languages as $langs |
.technologies as $techs |
($langs + $techs) |
group_by(.name) |
map(select(length > 1)) |
map(.[0].name) |
join("\n")
' config/all-tags.json
Length of output: 247
{ | ||
"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://www.asyncapi.com/tools/cli", | ||
"repoUrl": "https://github.com/asyncapi/cli" | ||
}, | ||
"filters": { | ||
"technology": [ | ||
"TypeScript" | ||
], | ||
"categories": [ | ||
"others", | ||
"cli" | ||
], | ||
"hasCommercial": 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.
💡 Codebase verification
Duplicate AsyncAPI CLI entries found
There are two entries for the AsyncAPI CLI:
- Original repository: https://github.com/asyncapi/cli
- Duplicate forked repository: https://github.com/hkirat/asyncapi-fork
Please remove the duplicate forked entry to maintain consistency and avoid confusion.
🔗 Analysis chain
LGTM: AsyncAPI CLI added, but duplicate entry detected
The addition of the AsyncAPI CLI is appropriate and well-described. It provides clear information about the tool's comprehensive functionality for AsyncAPI document development and maintenance.
However, there's a duplicate entry for AsyncAPI CLI (lines 612-630) that appears to be a fork of the original. Please verify if both entries are necessary or if one should be removed.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Verify the duplicate AsyncAPI CLI entries
echo "Original AsyncAPI CLI entry:"
sed -n '593,611p' config/tools-automated.json
echo "\nDuplicate AsyncAPI CLI entry:"
sed -n '612,630p' config/tools-automated.json
Length of output: 1681
Script:
#!/bin/bash
# Check for references to the forked AsyncAPI CLI repository
rg "hkirat/asyncapi-fork" config/tools-automated.json
# Count the number of AsyncAPI CLI entries in the configuration
fd "AsyncAPI CLI" config/tools-automated.json | wc -l
Length of output: 352
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit
New Features
Bug Fixes