diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index 665a150b..00000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Bug report -about: Report a bug so we can fix and improve -labels: bug ---- - -#### Describe the bug -A clear and concise description of what the bug is. - -#### How to Reproduce -Steps to reproduce the issue. Attach all resources that can help us understand the issue: - -- Screenshots -- Link to GitHub repository with project that has issues -- Files that can help reproduce the issue, like your AsyncAPI file, either paste inside the issue in a code block or in a sharable [gist](https://gist.github.com/) - -#### Expected behavior -A clear and concise description of what you expected to happen. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..76528d5d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,83 @@ +name: 🐛 Bug Report +description: Report bugs to fix and improve. +title: "[BUG] " +labels: ["bug"] + + +body: + - type: textarea + id: description + attributes: + label: Describe the bug. + description: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: A clear and concise description of what you expected to happen. + validations: + required: true + + + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: Please add screenshots/video of the bug you faced. + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: How to Reproduce + description: Attach all steps/share a github gist that can help anyone reproduce the bug. + value: | + 1. I first did this + 2. I then did this + 3. And so on . . . + validations: + required: true + + - type: dropdown + id: browser + attributes: + label: "🥦 Browser" + description: "What browser are you using?" + options: + - Google Chrome + - Brave + - Microsoft Edge + - Mozilla Firefox + - Safari + - Opera + - Other + validations: + required: false + + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "👀 Have you checked for similar open issues?" + options: + - label: "I checked and didn't find similar issue" + required: true + + - type: checkboxes + id: read-code-of-conduct + attributes: + label: "🏢 Have you read the Contributing Guidelines?" + options: + - label: "I have read the [Contributing Guidelines](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md)" + required: true + + - type: dropdown + attributes: + label: Are you willing to work on this issue ? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - "Yes I am willing to submit a PR!" + - "No, someone else can work on it" \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md deleted file mode 100644 index 92cbf241..00000000 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Feature request -about: Suggest how we can improve -labels: enhancement ---- - -#### Reason/Context -Please try answering few of those questions -- Why we need this improvement? -- How will this change help? -- What is the motivation? - - -#### Description -Please try answering few of those questions -- What changes have to be introduced? -- Will this be a breaking change? -- How could it be implemented/designed? diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml new file mode 100644 index 00000000..255b6d92 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -0,0 +1,70 @@ +name: 💡 Feature Request +description: Suggest a new idea/feature +title: "[FEATURE] " +labels: ["enhancement"] + +body: + - type: textarea + id: need_improvement + attributes: + label: Why do we need this improvement? + validations: + required: true + + - type: textarea + id: change + attributes: + label: How will this change help? + validations: + required: true + + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: Please add screenshots if applicable + validations: + required: false + + + - type: textarea + id: implemented + attributes: + label: How could it be implemented/designed? + validations: + required: true + + - type: dropdown + id: breakingchange + attributes: + label: "🚧 Breaking changes" + description: "Will this be a breaking change?" + options: + - "Yes" + - "No" + validations: + required: true + + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "👀 Have you checked for similar open issues?" + options: + - label: "I checked and didn't find a similar issue" + required: true + + - type: checkboxes + id: read-code-of-conduct + attributes: + label: "🏢 Have you read the Contributing Guidelines?" + options: + - label: "I have read the [Contributing Guidelines](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md)" + required: true + + - type: dropdown + attributes: + label: Are you willing to work on this issue? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - "Yes I am willing to submit a PR!" + - "No, someone else can work on it." \ No newline at end of file diff --git a/.github/workflows/.prettierignore b/.github/workflows/.prettierignore new file mode 100644 index 00000000..fa29cdff --- /dev/null +++ b/.github/workflows/.prettierignore @@ -0,0 +1 @@ +** \ No newline at end of file diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 9253675c..116b8065 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -45,7 +45,7 @@ jobs: env: GITHUB_TOKEN: "${{ secrets.GH_TOKEN }}" GITHUB_LOGIN: asyncapi-bot - MERGE_LABELS: "" + MERGE_LABELS: "!do-not-merge" MERGE_METHOD: "squash" MERGE_COMMIT_MESSAGE: "{pullRequest.title} (#{pullRequest.number})" MERGE_RETRIES: "20" diff --git a/.github/workflows/bump.yml b/.github/workflows/bump.yml index 92fa275e..dff50cfa 100644 --- a/.github/workflows/bump.yml +++ b/.github/workflows/bump.yml @@ -26,9 +26,9 @@ jobs: run: test -e ./package.json && echo "exists=true" >> $GITHUB_OUTPUT || echo "exists=false" >> $GITHUB_OUTPUT - if: steps.packagejson.outputs.exists == 'true' name: Bumping latest version of this package in other repositories - uses: derberg/npm-dependency-manager-for-your-github-org@26a4f13d740254719971325046822a169aaa7441 # using v5.-.- https://github.com/derberg/npm-dependency-manager-for-your-github-org/releases/tag/v5.0.0 + uses: derberg/npm-dependency-manager-for-your-github-org@3df56be95bcaa5c76a9c9a4af863ab151545b649 # using v6.-.- https://github.com/derberg/npm-dependency-manager-for-your-github-org/releases/tag/v6 with: github_token: ${{ secrets.GH_TOKEN }} committer_username: asyncapi-bot committer_email: info@asyncapi.io - repos_to_ignore: html-template # this is temporary until react component releases 1.0, then it can be removed \ No newline at end of file + repos_to_ignore: spec,bindings,saunter diff --git a/.github/workflows/global-remover.yml b/.github/workflows/global-remover.yml index b48707d0..d1347fe4 100644 --- a/.github/workflows/global-remover.yml +++ b/.github/workflows/global-remover.yml @@ -49,5 +49,5 @@ jobs: committer_username: asyncapi-bot committer_email: info@asyncapi.io commit_message: "ci: update of files from global .github repo" - repos_to_ignore: shape-up-process,glee-hello-world + repos_to_ignore: shape-up-process,glee-hello-world,saunter bot_branch_name: bot/update-files-from-global-repo \ No newline at end of file diff --git a/.github/workflows/global-replicator.yml b/.github/workflows/global-replicator.yml index 2cd366c2..980ccaa7 100644 --- a/.github/workflows/global-replicator.yml +++ b/.github/workflows/global-replicator.yml @@ -22,13 +22,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: github_token: ${{ secrets.GH_TOKEN }} patterns_to_include: CODE_OF_CONDUCT.md - repos_to_ignore: shape-up-process,glee-hello-world + repos_to_ignore: shape-up-process,glee-hello-world,saunter committer_username: asyncapi-bot committer_email: info@asyncapi.io commit_message: "ci: update of files from global .github repo" @@ -40,13 +40,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: github_token: ${{ secrets.GH_TOKEN }} patterns_to_include: CONTRIBUTING.md - repos_to_ignore: shape-up-process,glee-hello-world,spec,community,php-template,tck,modelina,dotnet-nats-template,ts-nats-template + repos_to_ignore: shape-up-process,glee-hello-world,spec,community,php-template,tck,modelina,dotnet-nats-template,ts-nats-template,extensions-catalog,saunter committer_username: asyncapi-bot committer_email: info@asyncapi.io commit_message: "ci: update of files from global .github repo" @@ -58,7 +58,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -76,7 +76,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -94,7 +94,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -114,7 +114,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -133,7 +133,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -142,7 +142,7 @@ jobs: committer_username: asyncapi-bot committer_email: info@asyncapi.io commit_message: "ci: update of files from global .github repo" - repos_to_ignore: shape-up-process,glee-hello-world + repos_to_ignore: shape-up-process,glee-hello-world,saunter bot_branch_name: bot/update-files-from-global-repo replicate_docker_workflows: @@ -151,7 +151,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -169,7 +169,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Replicating file uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 with: @@ -179,4 +179,40 @@ jobs: committer_username: asyncapi-bot committer_email: info@asyncapi.io commit_message: "ci: update of files from global .github repo" - bot_branch_name: bot/update-files-from-global-repo \ No newline at end of file + bot_branch_name: bot/update-files-from-global-repo + + replicate_docs_workflow: + if: startsWith(github.repository, 'asyncapi/') + name: Replicate update-docs workflow to repositories + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Replicating file + uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 + with: + github_token: ${{ secrets.GH_TOKEN }} + patterns_to_include: .github/workflows/update-docs-on-docs-commits.yml + topics_to_include: get-global-docs-autoupdate + committer_username: asyncapi-bot + committer_email: info@asyncapi.io + commit_message: "ci: update of files from global .github repo" + bot_branch_name: bot/update-files-from-global-repo/${{ github.job }} + + replicate_prettierignore_file: + if: startsWith(github.repository, 'asyncapi/') + name: Replicate .prettierignore file in the required repositories + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Replicating file + uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 + with: + github_token: ${{ secrets.GH_TOKEN }} + patterns_to_include: .prettierignore + topics_to_include: get-global-prettierignore + committer_username: asyncapi-bot + committer_email: info@asyncapi.io + commit_message: "ci: update .prettierignore from global .github repo" + bot_branch_name: bot/update-files-from-global-repo \ No newline at end of file diff --git a/.github/workflows/help-command.yml b/.github/workflows/help-command.yml index bdacd25b..ada81682 100644 --- a/.github/workflows/help-command.yml +++ b/.github/workflows/help-command.yml @@ -27,14 +27,14 @@ jobs: repo: context.repo.repo, body: `Hello, @${{ github.actor }}! 👋🏼 - I'm Genie from the magic lamp. Looks like somebody needs a hand! 🆘 + I'm 🧞🧞🧞 Genie 🧞🧞🧞 from the magic lamp. Looks like somebody needs a hand! At the moment the following comments are supported in pull requests: - - `/ready-to-merge` or `/rtm` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added - - `/do-not-merge` or `/dnm` - This comment will block automerging even if all conditions are met and ready-to-merge label is added - - `/autoupdate` or `/au` - This comment will add `autoupdate` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR. - - `/please-take-a-look` or `/ptal` - This comment will add a comment to the PR asking for attention from the reviewrs who have not reviewed the PR yet. + - \`/please-take-a-look` or \`/ptal\` - This comment will add a comment to the PR asking for attention from the reviewrs who have not reviewed the PR yet. + - \`/ready-to-merge\` or \`/rtm\` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added + - \`/do-not-merge\` or \`/dnm\` - This comment will block automerging even if all conditions are met and ready-to-merge label is added + - \`/autoupdate\` or \`/au\` - This comment will add \`autoupdate\` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR.` }) create_help_comment_issue: @@ -52,10 +52,10 @@ jobs: repo: context.repo.repo, body: `Hello, @${{ github.actor }}! 👋🏼 - I'm Genie from the magic lamp. Looks like somebody needs a hand! 🆘 + I'm 🧞🧞🧞 Genie 🧞🧞🧞 from the magic lamp. Looks like somebody needs a hand! At the moment the following comments are supported in issues: - - `/good-first-issue {js | ts | java | go | docs | design | ci-cd} ` or `/gfi {js | ts | java | go | docs | design | ci-cd} ` - label an issue as a `good first issue`. - example: `/gfi js` or `/good-first-issue ci-cd` - }) + - \`/good-first-issue {js | ts | java | go | docs | design | ci-cd}\` or \`/gfi {js | ts | java | go | docs | design | ci-cd}\` - label an issue as a \`good first issue\`. + example: \`/gfi js\` or \`/good-first-issue ci-cd\`` + }) \ No newline at end of file diff --git a/.github/workflows/update-docs-on-docs-commits.yml b/.github/workflows/update-docs-on-docs-commits.yml new file mode 100644 index 00000000..b511e284 --- /dev/null +++ b/.github/workflows/update-docs-on-docs-commits.yml @@ -0,0 +1,57 @@ +# This workflow is centrally managed in https://github.com/asyncapi/.github/ +# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo + +# The given workflow is responsible for generating docs and creating PR with them when there is a commit with docs: prefix + +# This workflow will be updated in all repos with the topic get-global-docs-autoupdate + +name: 'Update generated parts of documentation on docs: commits' + +on: + push: + branches: + - master + +jobs: + docs-gen: + name: 'Generate docs and create PR' + runs-on: ubuntu-latest + # PR should be created within this GH action only if it is a docs: commit + # Otherwise it will conflict with release workflow + if: startsWith(github.event.commits[0].message, 'docs:') + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Check package-lock version + uses: asyncapi/.github/.github/actions/get-node-version-from-package-lock@master + id: lockversion + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: "${{ steps.lockversion.outputs.version }}" + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + - name: Install dependencies + run: npm ci + - name: Regenerate docs + run: npm run generate:assets --if-present + - name: Create Pull Request with updated docs + uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # uses 5.0.2 https://github.com/peter-evans/create-pull-request/releases/tag/v5.0.2 + with: + token: ${{ secrets.GH_TOKEN }} + commit-message: 'chore: update generated docs' + committer: asyncapi-bot + author: asyncapi-bot + title: 'chore: update generated docs' + body: 'Update of docs that are generated and were forgotten on PR level.' + branch: gen-docs-update/${{ github.job }} + - name: Report workflow status to Slack + if: failure() # Only, on failure, send a message on the 94_bot-failing-ci slack channel + uses: 8398a7/action-slack@fbd6aa58ba854a740e11a35d0df80cb5d12101d8 #using https://github.com/8398a7/action-slack/releases/tag/v3.15.1 + with: + status: ${{ job.status }} + fields: repo,action,workflow + text: 'AsyncAPI docs generation workflow failed' + author_name: asyncapi-bot + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }} \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS index c057e9e0..86c9a183 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,4 +6,4 @@ # The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file. -* @derberg @alequetzalli @fmvilas @KhudaDad414 @asyncapi-bot-eve \ No newline at end of file +* @derberg @alequetzalli @KhudaDad414 @asyncapi-bot-eve diff --git a/README.md b/README.md index a6b56c8b..31c926db 100644 --- a/README.md +++ b/README.md @@ -13,4 +13,6 @@ Below is a list of workflows with their corresponding topics and descriptions. B | `golang` | [if-go-pr-testing](.github/workflows/if-go-pr-testing.yml) | Compiles and tests Go code using multiple versions of Go | `nodejs` | [if-nodejs-pr-testing](.github/workflows/if-nodejs-pr-testing.yml) | Builds and tests Node.js projects using multiple Node.js versions | `get-global-node-release-workflows` | [if-nodejs-release](.github/workflows/if-nodejs-release.yml), [if-nodejs-version-bump.yml](.github/workflows/if-nodejs-version-bump.yml) , [bump.yml](.github/workflows/bump.yml) | Fetches and publishes Node.js release information to the project's website -| `get-global-releaserc` | [.releaserc](.github/workflows/.releaserc) | Fetches release configuration files from a remote repository and makes them available to other workflows \ No newline at end of file +| `get-global-releaserc` | [.releaserc](.github/workflows/.releaserc) | Fetches release configuration files from a remote repository andUpdates the documentation of a project using `generate:assets` command (if it exists) when the commit starts with `docs makes them available to other workflows +| `get-global-docs-autoupdate` | [update-docs-on-docs-commits](.github/workflows/update-docs-on-docs-commits.yml) | Updates the documentation of a project using `generate:assets` command (if it exists) when the commit starts with `docs:` +| `get-global-prettierignore` | [replicate-prettierignore-file](./.github/workflows/global-replicator.yml#L202C3-L218C61) | Replicates `.prettierignore` file in the repository which has this topic. \ No newline at end of file diff --git a/profile/README.md b/profile/README.md index 58e9f241..56a91d39 100644 --- a/profile/README.md +++ b/profile/README.md @@ -7,45 +7,49 @@ [![Twitch](https://img.shields.io/badge/Twitch-@asyncAPI-blueviolet.svg)](https://www.twitch.tv/asyncapi) ## ✨ Welcome + Welcome to the Open-Source (OSS) [AsyncAPI Initiative](https://www.asyncapi.com/), part of [the Linux Foundation](https://www.linuxfoundation.org/press/press-release/linux-foundation-will-host-asyncapi-to-support-growth-and-collaboration-for-industrys-fastest-growing-api-spec). -AsyncAPI seeks to improve the current state of Event-Driven Architectures (EDAs) and the tooling system around them. ❤️ +AsyncAPI seeks to improve the current state of Event-Driven Architectures (EDAs) and the tooling system around them. ❤️ We are a caring community 👐🏿, shaping the future of how you work with `#EventDrivenArchitecture`; no matter if it is Kafka or WebSocket. Follow our [public roadmap](https://www.asyncapi.com/roadmap) ✨ and feel free to share your suggestions 🙇🏿‍♀️🙇🏿. Or better yet, join our community 👇🏽! ## 🌎 Join AsyncAPI community + To get involved with our community, please make sure you are familiar with the project's [Code of Conduct](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md). We're a community of great people who are passionate about AsyncAPI and Event-Driven Architectures. There are several ways to communicate with other people working on the AsyncAPI project: -- **Join our Slack workspace**: [Join our Slack workspace](https://www.asyncapi.com/slack-invite) ☎️ and please respect [our slack etiquette](https://github.com/asyncapi/community/blob/master/slack-etiquette.md). If you have a question on how to use AsyncAPI, want to contribute, or simply want to say hello 👋🏾, feel free to chat with us in Slack. We're nice people. 🙂 -- **Join our public meetings**: AsyncAPI hosts different meetings every week. They are focused on different topic, sometimes purely technical and sometimes about community building. Pick one and join us! [Learn more about our meetings](https://www.asyncapi.com/community/meetings). +- **Join our Slack workspace**: [Join our Slack workspace](https://www.asyncapi.com/slack-invite) ☎️ and please respect [our slack etiquette](https://github.com/asyncapi/community/blob/master/slack-etiquette.md). If you have a question on how to use AsyncAPI, want to contribute, or simply want to say hello 👋🏾, feel free to chat with us in Slack. We're nice people. 🙂 +- **Join our public meetings**: AsyncAPI hosts different meetings every week. They are focused on different topic, sometimes purely technical and sometimes about community building. Pick one and join us! [Learn more about our meetings](https://www.asyncapi.com/community/events). - **Subscribe to our [Newsletter](https://www.asyncapi.com/newsletter)**: keep up to date on the project's status. - **GitHub issues**: for bugs and feature requests. - **GitHub Pull Requests (PRs)**: for fixes or new features already discussed, as per the [contributing guidelines](https://github.com/asyncapi/asyncapi/blob/master/CONTRIBUTING.md#contributing-to-asyncapi). - **The AsyncAPI [YouTube Channel](https://www.youtube.com/playlist?list=PLbi1gRlP7pijUwZJErzyYf_Rc-PWu4lXS)**: it's where we record and upload our public community meetings. ## 📑 Getting started + Are you wondering where to look first? Then search no more! Here are some great first [AsyncAPI Documentation](https://www.asyncapi.com/docs/) spots to visit, so as to get acquainted with the project and tools: + - [Intro to AsyncAPI](https://www.asyncapi.com/docs/getting-started) 🔮 - [Tutorials](https://www.asyncapi.com/docs/tutorials) 📚 - [Spec Details](https://www.asyncapi.com/docs/specifications/latest) 🔍 - [Tools](https://www.asyncapi.com/docs/community/tooling) 🛠️ ## 👩🏽‍💻 Contribute to AsyncAPI + First of all, thanks for getting involved! ✨ There are many awesome ways to contribute to the AsyncAPI Initiative. (Code isn't the only way to help out! ❤️) The below table gives you an idea of how contributions are recognized in the project. - -Emoji/Type | Represents | Emoji/Type | Represents | Emoji/Type | Represents | -:---: | :---: | :---: | :---: | :---: | :---: -🐛
`bug` | Bug reports | 📝
`blog` | Blogposts | 💻
`code` | Code | -📖
`doc` | Documentation | 🎨
`design` | Design | 💡
`example` | Examples | -🤔
`ideas` | Ideas & Planning | 🚧
`maintenance` | Maintenance | 💬
`question` | Answering Questions | -👀
`review` | Reviewed Pull Requests | 📢
`talk` | Talks | 📹
`video` | Videos | +| Emoji/Type | Represents | Emoji/Type | Represents | Emoji/Type | Represents | +| :----------------: | :--------------------: | :---------------------: | :---------: | :------------------: | :-----------------: | +| 🐛
`bug` | Bug reports | 📝
`blog` | Blogposts | 💻
`code` | Code | +| 📖
`doc` | Documentation | 🎨
`design` | Design | 💡
`example` | Examples | +| 🤔
`ideas` | Ideas & Planning | 🚧
`maintenance` | Maintenance | 💬
`question` | Answering Questions | +| 👀
`review` | Reviewed Pull Requests | 📢
`talk` | Talks | 📹
`video` | Videos | To figure out a great `first GitHub issue` to work on, [join our Slack workspace](https://www.asyncapi.com/slack-invite) and visit the `11_contributing` 🙂 channel. This channel is specifically designed for supporting all community questions on getting started as a contributor. We also host a live stream dedicated to contributors called `Contributor-first`. Feel invited to join one of them and for details check [the list of future events](https://github.com/asyncapi/community/issues?q=is%3Aissue+is%3Aopen+label%3Ameeting).