From 7b7086192a857f0de9527a2301f47385b30baf6a Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Tue, 22 Oct 2024 11:06:36 +0200 Subject: [PATCH 01/16] docs(cli): update latest cli documentation (#3314) --- markdown/docs/tools/cli/usage.md | 121 +++++++++++++++---------------- 1 file changed, 58 insertions(+), 63 deletions(-) diff --git a/markdown/docs/tools/cli/usage.md b/markdown/docs/tools/cli/usage.md index 269d438fa4d0..d4cae23662b4 100644 --- a/markdown/docs/tools/cli/usage.md +++ b/markdown/docs/tools/cli/usage.md @@ -1,11 +1,11 @@ --- -title: "Usage" +title: 'Usage' weight: 40 --- - The AsyncAPI CLI makes it easier to work with AsyncAPI documents. - # Usage - ```sh-session $ npm install -g @asyncapi/cli $ asyncapi COMMAND running command... $ asyncapi (--version) -@asyncapi/cli/2.5.0 linux-x64 node-v18.20.4 +@asyncapi/cli/2.7.1 linux-x64 node-v18.20.4 $ asyncapi --help [COMMAND] USAGE $ asyncapi COMMAND ... ``` - # Commands - -- [`asyncapi bundle`](#asyncapi-bundle) -- [`asyncapi config`](#asyncapi-config) -- [`asyncapi config analytics`](#asyncapi-config-analytics) -- [`asyncapi config context`](#asyncapi-config-context) -- [`asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`](#asyncapi-config-context-add-context-name-spec-file-path) -- [`asyncapi config context current`](#asyncapi-config-context-current) -- [`asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`](#asyncapi-config-context-edit-context-name-new-spec-file-path) -- [`asyncapi config context init [CONTEXT-FILE-PATH]`](#asyncapi-config-context-init-context-file-path) -- [`asyncapi config context list`](#asyncapi-config-context-list) -- [`asyncapi config context remove CONTEXT-NAME`](#asyncapi-config-context-remove-context-name) -- [`asyncapi config context use CONTEXT-NAME`](#asyncapi-config-context-use-context-name) -- [`asyncapi config versions`](#asyncapi-config-versions) -- [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file) -- [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new) -- [`asyncapi generate`](#asyncapi-generate) -- [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template) -- [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file) -- [`asyncapi new`](#asyncapi-new) -- [`asyncapi new file`](#asyncapi-new-file) -- [`asyncapi new glee`](#asyncapi-new-glee) -- [`asyncapi new template`](#asyncapi-new-template) -- [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file) -- [`asyncapi start`](#asyncapi-start) -- [`asyncapi start studio`](#asyncapi-start-studio) -- [`asyncapi validate [SPEC-FILE]`](#asyncapi-validate-spec-file) +* [`asyncapi bundle`](#asyncapi-bundle) +* [`asyncapi config`](#asyncapi-config) +* [`asyncapi config analytics`](#asyncapi-config-analytics) +* [`asyncapi config context`](#asyncapi-config-context) +* [`asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`](#asyncapi-config-context-add-context-name-spec-file-path) +* [`asyncapi config context current`](#asyncapi-config-context-current) +* [`asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`](#asyncapi-config-context-edit-context-name-new-spec-file-path) +* [`asyncapi config context init [CONTEXT-FILE-PATH]`](#asyncapi-config-context-init-context-file-path) +* [`asyncapi config context list`](#asyncapi-config-context-list) +* [`asyncapi config context remove CONTEXT-NAME`](#asyncapi-config-context-remove-context-name) +* [`asyncapi config context use CONTEXT-NAME`](#asyncapi-config-context-use-context-name) +* [`asyncapi config versions`](#asyncapi-config-versions) +* [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file) +* [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new) +* [`asyncapi generate`](#asyncapi-generate) +* [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template) +* [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file) +* [`asyncapi new`](#asyncapi-new) +* [`asyncapi new file`](#asyncapi-new-file) +* [`asyncapi new glee`](#asyncapi-new-glee) +* [`asyncapi new template`](#asyncapi-new-template) +* [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file) +* [`asyncapi start`](#asyncapi-start) +* [`asyncapi start studio`](#asyncapi-start-studio) +* [`asyncapi validate [SPEC-FILE]`](#asyncapi-validate-spec-file) ## `asyncapi bundle` @@ -103,7 +99,7 @@ EXAMPLES $ asyncapi bundle ./asyncapi.yaml -o final-asyncapi.yaml --base ../public-api/main.yaml --baseDir ./social-media/comments-service ``` -_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/bundle.ts)_ +_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/bundle.ts)_ ## `asyncapi config` @@ -117,7 +113,7 @@ DESCRIPTION CLI config settings ``` -_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/index.ts)_ +_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/index.ts)_ ## `asyncapi config analytics` @@ -137,7 +133,7 @@ DESCRIPTION Enable or disable analytics for metrics collection ``` -_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/analytics.ts)_ +_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/analytics.ts)_ ## `asyncapi config context` @@ -151,7 +147,7 @@ DESCRIPTION Manage short aliases for full paths to AsyncAPI documents ``` -_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/index.ts)_ +_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/index.ts)_ ## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH` @@ -173,7 +169,7 @@ DESCRIPTION Add a context to the store ``` -_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/add.ts)_ +_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/add.ts)_ ## `asyncapi config context current` @@ -190,7 +186,7 @@ DESCRIPTION Shows the current context that is being used ``` -_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/current.ts)_ +_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/current.ts)_ ## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH` @@ -211,7 +207,7 @@ DESCRIPTION Edit a context in the store ``` -_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/edit.ts)_ +_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/edit.ts)_ ## `asyncapi config context init [CONTEXT-FILE-PATH]` @@ -234,7 +230,7 @@ DESCRIPTION Initialize context ``` -_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/init.ts)_ +_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/init.ts)_ ## `asyncapi config context list` @@ -251,7 +247,7 @@ DESCRIPTION List all the stored contexts in the store ``` -_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/list.ts)_ +_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/list.ts)_ ## `asyncapi config context remove CONTEXT-NAME` @@ -271,7 +267,7 @@ DESCRIPTION Delete a context from the store ``` -_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/remove.ts)_ +_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/remove.ts)_ ## `asyncapi config context use CONTEXT-NAME` @@ -291,7 +287,7 @@ DESCRIPTION Set a context as current ``` -_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/context/use.ts)_ +_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/use.ts)_ ## `asyncapi config versions` @@ -308,7 +304,7 @@ DESCRIPTION Show versions of AsyncAPI tools used ``` -_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/config/versions.ts)_ +_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/versions.ts)_ ## `asyncapi convert [SPEC-FILE]` @@ -336,7 +332,7 @@ DESCRIPTION Convert asyncapi documents older to newer versions or OpenAPI/postman-collection documents to AsyncAPI ``` -_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/convert.ts)_ +_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/convert.ts)_ ## `asyncapi diff OLD NEW` @@ -376,7 +372,7 @@ DESCRIPTION Find diff between two asyncapi files ``` -_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/diff.ts)_ +_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/diff.ts)_ ## `asyncapi generate` @@ -390,7 +386,7 @@ DESCRIPTION Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates. ``` -_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/generate/index.ts)_ +_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/index.ts)_ ## `asyncapi generate fromTemplate ASYNCAPI TEMPLATE` @@ -435,7 +431,7 @@ EXAMPLES $ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write ``` -_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/generate/fromTemplate.ts)_ +_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/fromTemplate.ts)_ ## `asyncapi generate models LANGUAGE FILE` @@ -506,7 +502,7 @@ DESCRIPTION Generates typed models ``` -_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/generate/models.ts)_ +_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/models.ts)_ ## `asyncapi new` @@ -564,7 +560,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/new/index.ts)_ +_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/index.ts)_ ## `asyncapi new file` @@ -622,7 +618,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/new/file.ts)_ +_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/file.ts)_ ## `asyncapi new glee` @@ -644,7 +640,7 @@ DESCRIPTION Creates a new Glee project ``` -_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/new/glee.ts)_ +_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/glee.ts)_ ## `asyncapi new template` @@ -668,7 +664,7 @@ DESCRIPTION Creates a new template ``` -_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/new/template.ts)_ +_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/template.ts)_ ## `asyncapi optimize [SPEC-FILE]` @@ -710,21 +706,21 @@ EXAMPLES $ asyncapi optimize ./asyncapi.yaml --ignore=schema ``` -_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/optimize.ts)_ +_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/optimize.ts)_ ## `asyncapi start` +Starts AsyncAPI-related services. Currently, it supports launching the AsyncAPI Studio + ``` USAGE $ asyncapi start -``` - DESCRIPTION -main command for starting asyncapi services, currently studio only. - -_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/start/index.ts)_ + Starts AsyncAPI-related services. Currently, it supports launching the AsyncAPI Studio +``` +_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/start/index.ts)_ ## `asyncapi start studio` @@ -743,7 +739,7 @@ DESCRIPTION starts a new local instance of Studio ``` -_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/start/studio.ts)_ +_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/start/studio.ts)_ ## `asyncapi validate [SPEC-FILE]` @@ -773,6 +769,5 @@ DESCRIPTION validate asyncapi file ``` -_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.5.0/src/commands/validate.ts)_ - +_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/validate.ts)_ From 2be7824492b6228f376ba853bf62d6d0bb715aca Mon Sep 17 00:00:00 2001 From: Akshat Nema <76521428+akshatnema@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:06:24 +0530 Subject: [PATCH 02/16] fix: fixed dashboard scripts (#3304) Co-authored-by: Ansh Goyal %0ACo-authored-by: asyncapi-bot --- .../regenerate-meetings-and-videos.yml | 8 +- components/newsroom/Newsroom.tsx | 10 +- scripts/dashboard/build-dashboard.js | 190 +++++++++--------- 3 files changed, 106 insertions(+), 102 deletions(-) diff --git a/.github/workflows/regenerate-meetings-and-videos.yml b/.github/workflows/regenerate-meetings-and-videos.yml index 72aeda4e9e69..34509995d063 100644 --- a/.github/workflows/regenerate-meetings-and-videos.yml +++ b/.github/workflows/regenerate-meetings-and-videos.yml @@ -1,6 +1,6 @@ name: List everyday latest list of AsyncAPI Meetings, Newsroom Videos and Dashboard data. -on: +on: workflow_dispatch: schedule: #every day at midnight @@ -23,7 +23,7 @@ jobs: - 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: @@ -45,7 +45,7 @@ jobs: committer: asyncapi-bot author: asyncapi-bot title: 'chore: update meetings.json and newsrooom_videos.json' - branch: update-meetings/${{ github.job }} + branch: update-meetings/${{ github.sha }} - if: failure() # Only, on failure, send a message on the 94_bot-failing-ci slack channel name: Report workflow run status to Slack uses: 8398a7/action-slack@fbd6aa58ba854a740e11a35d0df80cb5d12101d8 #using https://github.com/8398a7/action-slack/releases/tag/v3.15.1 @@ -54,4 +54,4 @@ jobs: fields: repo,action,workflow text: 'AsyncAPI Meetings and Videos workflow failed' env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }} \ No newline at end of file + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }} diff --git a/components/newsroom/Newsroom.tsx b/components/newsroom/Newsroom.tsx index 87b8bdff1809..a88c4e2f14cf 100644 --- a/components/newsroom/Newsroom.tsx +++ b/components/newsroom/Newsroom.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { TwitterTimelineEmbed } from 'react-twitter-embed'; import { HeadingLevel, HeadingTypeStyle } from '@/types/typography/Heading'; import { ParagraphTypeStyle } from '@/types/typography/Paragraph'; @@ -69,19 +68,14 @@ export default function Newsroom() { -
+
-
+
-
-
- -
-
diff --git a/scripts/dashboard/build-dashboard.js b/scripts/dashboard/build-dashboard.js index 49fbf8b5d4f8..120109a05c23 100644 --- a/scripts/dashboard/build-dashboard.js +++ b/scripts/dashboard/build-dashboard.js @@ -1,34 +1,90 @@ const { writeFileSync } = require('fs'); const { resolve } = require('path'); const { graphql } = require('@octokit/graphql'); -const { Promise } = require('node-fetch'); const { Queries } = require('./issue-queries'); -async function getHotDiscussions(discussions) { - const result = await Promise.all( - discussions.map(async (discussion) => { +/** + * Introduces a delay in the execution flow. + * @param {number} ms - The number of milliseconds to pause. + * @returns {Promise} A promise that resolves after the specified delay. + */ +async function pause(ms) { + return new Promise((res) => { + setTimeout(res, ms); + }); +} + +async function getDiscussions(query, pageSize, endCursor = null) { + try { + const result = await graphql(query, { + first: pageSize, + after: endCursor, + headers: { + authorization: `token ${process.env.GITHUB_TOKEN}` + } + }); + + if (result.rateLimit.remaining <= 100) { + console.log( + `[WARNING] GitHub GraphQL rateLimit`, + `cost = ${result.rateLimit.cost}`, + `limit = ${result.rateLimit.limit}`, + `remaining = ${result.rateLimit.remaining}`, + `resetAt = ${result.rateLimit.resetAt}` + ); + } + + await pause(500); + + const { hasNextPage } = result.search.pageInfo; + + if (!hasNextPage) { + return result.search.nodes; + } + return result.search.nodes.concat(await getDiscussions(query, pageSize, result.search.pageInfo.endCursor)); + } catch (e) { + console.error(e); + + return Promise.reject(e); + } +} +async function getDiscussionByID(isPR, id) { + try { + const result = await graphql(isPR ? Queries.pullRequestById : Queries.issueById, { + id, + headers: { + authorization: `token ${process.env.GITHUB_TOKEN}` + } + }); + + return result; + } catch (e) { + console.error(e); + + return Promise.reject(e); + } +} + +async function processHotDiscussions(batch) { + return Promise.all( + batch.map(async (discussion) => { try { + // eslint-disable-next-line no-underscore-dangle const isPR = discussion.__typename === 'PullRequest'; if (discussion.comments.pageInfo.hasNextPage) { - let fetchedDiscussion = await getDiscussionByID(isPR, discussion.id); + const fetchedDiscussion = await getDiscussionByID(isPR, discussion.id); discussion = fetchedDiscussion.node; } const interactionsCount = discussion.reactions.totalCount + discussion.comments.totalCount + - discussion.comments.nodes.reduce( - (acc, curr) => acc + curr.reactions.totalCount, - 0 - ); + discussion.comments.nodes.reduce((acc, curr) => acc + curr.reactions.totalCount, 0); const finalInteractionsCount = isPR ? interactionsCount + - discussion.reviews.totalCount + - discussion.reviews.nodes.reduce( - (acc, curr) => acc + curr.comments.totalCount, - 0 - ) + discussion.reviews.totalCount + + discussion.reviews.nodes.reduce((acc, curr) => acc + curr.comments.totalCount, 0) : interactionsCount; return { id: discussion.id, @@ -37,31 +93,38 @@ async function getHotDiscussions(discussions) { title: discussion.title, author: discussion.author ? discussion.author.login : '', resourcePath: discussion.resourcePath, - repo: 'asyncapi/' + discussion.repository.name, + repo: `asyncapi/${discussion.repository.name}`, labels: discussion.labels ? discussion.labels.nodes : [], - score: - finalInteractionsCount / - Math.pow(monthsSince(discussion.timelineItems.updatedAt) + 2, 1.8), + score: finalInteractionsCount / (monthsSince(discussion.timelineItems.updatedAt) + 2) ** 1.8 }; } catch (e) { - console.error( - `there was some issues while parsing this item: ${JSON.stringify( - discussion - )}` - ); + console.error(`there was some issues while parsing this item: ${JSON.stringify(discussion)}`); throw e; } }) ); +} + +async function getHotDiscussions(discussions) { + const result = []; + const batchSize = 5; + + for (let i = 0; i < discussions.length; i += batchSize) { + const batch = discussions.slice(i, i + batchSize); + // eslint-disable-next-line no-await-in-loop + const batchResults = await processHotDiscussions(batch); + + // eslint-disable-next-line no-await-in-loop + await pause(1000); + + result.push(...batchResults); + } result.sort((ElemA, ElemB) => ElemB.score - ElemA.score); - const filteredResult = result.filter(issue => issue.author !== 'asyncapi-bot'); + const filteredResult = result.filter((issue) => issue.author !== 'asyncapi-bot'); return filteredResult.slice(0, 12); } async function writeToFile(content) { - writeFileSync( - resolve(__dirname, '..', '..', 'dashboard.json'), - JSON.stringify(content, null, ' ') - ); + writeFileSync(resolve(__dirname, '..', '..', 'dashboard.json'), JSON.stringify(content, null, ' ')); } async function mapGoodFirstIssues(issues) { return issues.map((issue) => ({ @@ -69,25 +132,20 @@ async function mapGoodFirstIssues(issues) { title: issue.title, isAssigned: !!issue.assignees.totalCount, resourcePath: issue.resourcePath, - repo: 'asyncapi/' + issue.repository.name, + repo: `asyncapi/${issue.repository.name}`, author: issue.author.login, area: getLabel(issue, 'area/') || 'Unknown', labels: issue.labels.nodes.filter( - (label) => - !label.name.startsWith('area/') && - !label.name.startsWith('good first issue') - ), + (label) => !label.name.startsWith('area/') && !label.name.startsWith('good first issue') + ) })); } function getLabel(issue, filter) { - const result = issue.labels.nodes.find((label) => - label.name.startsWith(filter) - ); - return result && result.name.split('/')[1]; + const result = issue.labels.nodes.find((label) => label.name.startsWith(filter)); + return result?.name.split('/')[1]; } - function monthsSince(date) { const seconds = Math.floor((new Date() - new Date(date)) / 1000); // 2592000 = number of seconds in a month = 30 * 24 * 60 * 60 @@ -95,72 +153,24 @@ function monthsSince(date) { return Math.floor(months); } -async function getDiscussions(query, pageSize, endCursor = null) { - try { - let result = await graphql(query, { - first: pageSize, - after: endCursor, - headers: { - authorization: `token ${process.env.GITHUB_TOKEN}`, - }, - }); - - if (result.rateLimit.remaining <= 100) { - console.log( - `[WARNING] GitHub GraphQL rateLimit`, - `cost = ${result.rateLimit.cost}`, - `limit = ${result.rateLimit.limit}`, - `remaining = ${result.rateLimit.remaining}`, - `resetAt = ${result.rateLimit.resetAt}` - ) - } - - const hasNextPage = result.search.pageInfo.hasNextPage; - - if (!hasNextPage) { - return result.search.nodes; - } else { - return result.search.nodes.concat( - await getDiscussions(query, pageSize, result.search.pageInfo.endCursor) - ); - } - } catch (e) { - console.error(e); - } -} -async function getDiscussionByID(isPR, id) { - try { - let result = await graphql(isPR ? Queries.pullRequestById : Queries.issueById, { - id, - headers: { - authorization: `token ${process.env.GITHUB_TOKEN}`, - }, - - } - ); - return result; - } catch (e) { - console.error(e); - } -} async function start() { try { const [issues, PRs, rawGoodFirstIssues] = await Promise.all([ getDiscussions(Queries.hotDiscussionsIssues, 20), getDiscussions(Queries.hotDiscussionsPullRequests, 20), - getDiscussions(Queries.goodFirstIssues, 20), + getDiscussions(Queries.goodFirstIssues, 20) ]); const discussions = issues.concat(PRs); const [hotDiscussions, goodFirstIssues] = await Promise.all([ getHotDiscussions(discussions), - mapGoodFirstIssues(rawGoodFirstIssues), + mapGoodFirstIssues(rawGoodFirstIssues) ]); writeToFile({ hotDiscussions, goodFirstIssues }); } catch (e) { - console.log('There were some issues parsing data from github.') + console.log('There were some issues parsing data from github.'); console.log(e); } } start(); -module.exports = { getLabel, monthsSince, mapGoodFirstIssues, getHotDiscussions, getDiscussionByID } \ No newline at end of file +module.exports = { getLabel, monthsSince, mapGoodFirstIssues, getHotDiscussions, getDiscussionByID }; From 6387b719d63f6893d6731e50fb70403a5f1d8667 Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Wed, 23 Oct 2024 06:49:26 +0200 Subject: [PATCH 03/16] chore: update meetings.json and newsrooom_videos.json (#3316) --- config/meetings.json | 255 ++++++++++++++---------------------- config/newsroom_videos.json | 40 +++--- 2 files changed, 117 insertions(+), 178 deletions(-) diff --git a/config/meetings.json b/config/meetings.json index d17a57704fd9..4fbe2b0b8e2b 100644 --- a/config/meetings.json +++ b/config/meetings.json @@ -1,224 +1,163 @@ [ { - "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=ZzZ0OG1iNmkyZW5lbnF2bnE5ZnY5ZW9ua28gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1067", - "banner": "https://github.com/asyncapi/community/assets/40604284/897e0278-8da4-41dc-b2b2-b5add9370d6f", - "date": "2024-02-20T16:00:00.000Z" - }, - { - "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=dHJ1dGxncm81b3VvZjI0ZjE1MDkxY25lcjggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1068", - "banner": "https://github.com/asyncapi/community/assets/40604284/70eff71e-5de5-4c99-bc89-86a1b9b81e81", - "date": "2024-03-05T08:00:00.000Z" - }, - { - "title": "Essential building blocks for AsyncAPI", - "calLink": "https://www.google.com/calendar/event?eid=dmoyY2ZjNXZ1cDh2cGRiZzFnNG92YzQzZHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1084", + "title": "Essential Building Blocks Working Group", + "calLink": "https://www.google.com/calendar/event?eid=M2pxNGNwZnRqNGpjcDg2cXVnc3VqZ2wwMHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1294", "banner": "", - "date": "2024-03-12T20:00:00.000Z" - }, - { - "title": "AACoT'24 Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=aG9xMzUyam82cDluaDNpY2c2aDBlb25pdDggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1087", - "banner": "https://github.com/asyncapi/community/assets/66913810/43114d9e-ee7f-4479-8714-475d67a374aa", - "date": "2024-03-13T14:00:00.000Z" + "date": "2024-07-16T18:00:00.000Z" }, { "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=OTE2Y3YxdGVzNzhqNXJrZThqYml0M2Uwa2MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1103", - "banner": "https://github-production-user-asset-6210df.s3.amazonaws.com/40604284/313431824-6d286502-6a69-4584-9c01-a2f6984d8320.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240316%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240316T213213Z&X-Amz-Expires=300&X-Amz-Signature=558069f389931870f0ec70cc3f7f4e3bf0e1c4f669a2bd74763f6ed5ae4b2206&X-Amz-SignedHeaders=host&actor_id=40604284&key_id=0&repo_id=347621559", - "date": "2024-03-19T08:00:00.000Z" + "calLink": "https://www.google.com/calendar/event?eid=am5kcG50YW9obGUzcmVucWZqMTQ4NDlsbjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1305", + "banner": "https://github.com/asyncapi/community/assets/40604284/65376079-c5e8-467d-b513-21dfaba4570f", + "date": "2024-07-23T16:00:00.000Z" }, { - "title": "Let's talk about contributing GSoC FAQ", - "calLink": "https://www.google.com/calendar/event?eid=ZmVkcTI2aTNsZjhwcHZuNWZhb2UwNHE1a2MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1104", - "banner": "https://github-production-user-asset-6210df.s3.amazonaws.com/40604284/313431821-e905e25c-87b1-466a-adc5-e8551556d7ba.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240316%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240316T213412Z&X-Amz-Expires=300&X-Amz-Signature=4bbf99e0b0da3bfd2b5c3a42394f49314acf5cec64be0394487a5809dc489d71&X-Amz-SignedHeaders=host&actor_id=40604284&key_id=0&repo_id=347621559", - "date": "2024-03-21T14:00:00.000Z" - }, - { - "title": "Essential building blocks", - "calLink": "https://www.google.com/calendar/event?eid=cjFnc2VrNjIzMGZmOXE2Y2FqazF1aHJobWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1107", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=Z3NzN2JvcjdnY2diMnJpczA4dWMxMGh2ZGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1309", "banner": "", - "date": "2024-03-26T18:00:00.000Z" + "date": "2024-07-16T14:00:00.000Z" }, { - "title": "Essential building blocks", - "calLink": "https://www.google.com/calendar/event?eid=NW42YmtrcTl1ajRscThmMm9qMzhqMG05dHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1108", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=b2twOWkyZ3ExcGxnYnAxbzBobzA1MWxvcW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1321", "banner": "", - "date": "2024-04-02T18:00:00.000Z" + "date": "2024-07-30T14:00:00.000Z" }, { - "title": "AsyncAPI Marketing in 2024 - kick off", - "calLink": "https://www.google.com/calendar/event?eid=bmkyZm9pMzZhNjNjM2RwMjllOHB1YnEwczggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1109", - "banner": "", - "date": "2024-03-26T14:00:00.000Z" - }, - { - "title": "AACoT'24 Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=c24wbzZkM2VqMTh1MjUzNGoxOGszZXBxOGMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1110", - "banner": "https://github.com/asyncapi/community/assets/66913810/8769dbe0-baef-42f7-b55e-74f5a288da55", - "date": "2024-03-27T14:00:00.000Z" - }, - { - "title": "Community Growth Working Group", - "calLink": "https://www.google.com/calendar/event?eid=MXU4ZXJnOW5sbWZuOW5ndmE3MGwyYzRvdjggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1118", + "title": "Essential Building Blocks Working Group", + "calLink": "https://www.google.com/calendar/event?eid=YzYyaHNiNTdqbGQ1OTNybjE1NDZlb2ppODAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1331", "banner": "", - "date": "2024-03-27T16:00:00.000Z" + "date": "2024-08-13T18:00:00.000Z" }, { "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=bWdldGthMGpycXBtaHZ2MXA0dmJlOGpvOXMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1123", - "banner": "https://github.com/asyncapi/community/assets/40604284/10c8e2ef-8c1b-4758-9751-d37a7e123864", - "date": "2024-04-02T16:00:00.000Z" + "calLink": "https://www.google.com/calendar/event?eid=aG45bXYwN2I4NWthanBpZ290bzRnbjE1cWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1335", + "banner": "https://github.com/user-attachments/assets/9d68eacc-c5b3-4f49-a7a2-4120ead380b0", + "date": "2024-08-06T08:00:00.000Z" }, { "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=ZGRuZ290dGk0aGQ3cmtoMXFhc205NHVsYW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1124", - "banner": "https://github.com/asyncapi/community/assets/40604284/e4085ee6-6e1a-45d7-8bbe-11b44432f8ef", - "date": "2024-04-16T08:00:00.000Z" + "calLink": "https://www.google.com/calendar/event?eid=cnIwc3U0c2o1a3FoaWM0M2VvZXFjNzJvZzQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1336", + "banner": "https://github.com/user-attachments/assets/7756ebe2-f8c7-4bda-91e3-6a678c1fad99", + "date": "2024-08-20T16:00:00.000Z" }, { - "title": "Cheat Sheet Poster - Content discussion", - "calLink": "https://www.google.com/calendar/event?eid=dHA1MWNlZTl2c3RkOWxwdTk4YzBkZWtxcGMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1126", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=dDNtNmxyODRkNzdvOTdvaWV0NjhtZnYyMGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1338", "banner": "", - "date": "2024-04-03T10:00:00.000Z" + "date": "2024-08-13T14:00:00.000Z" }, { - "title": "Essential building blocks", - "calLink": "https://www.google.com/calendar/event?eid=c2pqamo4YXUwMWg1YmdqbDE3bXZncWpzb2cgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1144", + "title": "Essential Building Blocks Working Group", + "calLink": "https://www.google.com/calendar/event?eid=c28zazMxcDk3MThpMWFpNG9lYzRrbmIzNW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1342", "banner": "", - "date": "2024-04-09T18:00:00.000Z" - }, - { - "title": "AACoT'24 Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=NmJlNWE0dmlhZnZvNmwzNnRmNGp1OW1sNzQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1147", - "banner": "https://github.com/asyncapi/community/assets/66913810/8769dbe0-baef-42f7-b55e-74f5a288da55", - "date": "2024-04-10T14:00:00.000Z" + "date": "2024-08-27T18:00:00.000Z" }, { - "title": "Community Growth Working Group", - "calLink": "https://www.google.com/calendar/event?eid=NWluOTRmcG9vYjVjcWoydjVocDAzbjJtb2sgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1154", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=MmpwdGxqb29wcHQyaGk3dXU1cTJ0M3E2aGMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1354", "banner": "", - "date": "2024-04-09T14:00:00.000Z" + "date": "2024-09-10T14:00:00.000Z" }, { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=M2JoNHViMGE4MXQwZjdlM2RmMWRqczJpZXMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1159", - "banner": "", - "date": "2024-04-16T18:00:00.000Z" + "title": "Community Meeting", + "calLink": "https://www.google.com/calendar/event?eid=b2lsN3YwcGNmdWZiNTltNm1lM25wYXYwc3MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1355", + "banner": "https://github.com/user-attachments/assets/399c2eec-5123-47e9-ad41-024cd478a667", + "date": "2024-09-03T08:00:00.000Z" }, { - "title": "Community Growth Working Group", - "calLink": "https://www.google.com/calendar/event?eid=a25zaTduazV2ZTI1NGcxYzJ2N2h2NXJ0MnMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1169", - "banner": "", - "date": "2024-04-15T14:00:00.000Z" + "title": "Community Meeting", + "calLink": "https://www.google.com/calendar/event?eid=dG1nMGxqMWg4ajVqZ3Z2NHRpYW42bmUyNWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1356", + "banner": "https://github.com/user-attachments/assets/bfcd9509-ba05-4e23-9fbd-65fcaed1bccc", + "date": "2024-09-17T16:00:00.000Z" }, { - "title": "Marketing - Next steps", - "calLink": "https://www.google.com/calendar/event?eid=bG5rcGc3bWZuODhrajU2aGtxamtvajI4c28gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1175", + "title": "Design Onboarding Call", + "calLink": "https://www.google.com/calendar/event?eid=dTU0c212bjVpcTFtYmp0aXVqMGFidG1paDAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1372", "banner": "", - "date": "2024-04-25T14:00:00.000Z" + "date": "2024-09-12T10:00:00.000Z" }, { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=M2RqZ3FmODRyZzRxM3RwOW9uMHEyNzVudjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1177", + "title": "Marketing WG Meeting,", + "calLink": "https://www.google.com/calendar/event?eid=NDVmcGpjM3Y2aGFxMDhhMjMxZGgyNzlkNGsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1534", "banner": "", - "date": "2024-04-23T18:00:00.000Z" + "date": "2024-10-08T14:00:00.000Z" }, { - "title": "Maintainers Growth Working Group Meeting", - "calLink": "https://www.google.com/calendar/event?eid=NGZ0NWZiNWw0MzJsbGR0M2Ewdm5kcGNkYzEgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "date": "2024-04-22T14:00:00.000Z" + "title": "Community Meeting", + "calLink": "https://www.google.com/calendar/event?eid=MHRvMzJtb2pxZWs5bDM4a3Jxb2RhYmVhMmMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1545", + "banner": "https://github.com/user-attachments/assets/91fca5af-ae9a-46be-aa44-0f2ef20ce34e", + "date": "2024-10-15T08:00:00.000Z" }, { "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=cmk4OTNzZGxvZDd2NHZxb243cG44NzlibWsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1184", - "banner": "https://github.com/asyncapi/community/assets/40604284/d5358c67-20c3-48a9-b61c-cbea54bbf95c", - "date": "2024-04-30T16:00:00.000Z" + "calLink": "https://www.google.com/calendar/event?eid=amw3ZTBwZWllOTViYmMzMGFpNDhtdW9pZDggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1546", + "banner": "https://github.com/user-attachments/assets/123ebfbe-6662-47ae-b36c-c2ba2e5d40f9", + "date": "2024-10-29T16:00:00.000Z" }, { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=cjNxYm9sOXIwNDlpazY5MmoyNHE3NGxoZHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1186", - "banner": "", - "date": "2024-04-30T18:00:00.000Z" + "title": "Let's talk about contributing Hacktoberfest Edition", + "calLink": "https://www.google.com/calendar/event?eid=Zm9lMzRvM2F2MGljbWplZDJnNWYwczIwMzQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1549", + "banner": "https://github.com/user-attachments/assets/0cd48545-5e26-4240-aa8f-f39306617e94", + "date": "2024-10-08T12:00:00.000Z" }, { - "title": "Marketing - WG setup and hiring", - "calLink": "https://www.google.com/calendar/event?eid=cjdhZTcxM25zNG1pMzloc2g5b2I3aTMyaG8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1192", - "banner": "", - "date": "2024-05-09T14:00:00.000Z" + "title": "AsyncAPI Mentorship Program FAQ", + "calLink": "https://www.google.com/calendar/event?eid=NGlzdDFubzY1YWlwNjhpbm8ycTJzNGU1ZjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1550", + "banner": "https://github.com/user-attachments/assets/d9e9e2cd-714b-48a8-a40d-03c7683a973c", + "date": "2024-10-10T11:00:00.000Z" }, { - "title": "Maintainers Growth Working Group", - "calLink": "https://www.google.com/calendar/event?eid=ZG9tMTVxazhybm5vMnE2cHIxbG4wOHQ3djAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1197", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=NDd1NzNqdWprNWdqc3U3aGsyZnBhOWpobXMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1553", "banner": "", - "date": "2024-05-08T14:00:00.000Z" + "date": "2024-10-22T14:00:00.000Z" }, { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=ZzQ4aDFsbnZpaXBmZ2h2amdrdWpxZXZrYmcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1200", + "title": "Marketing WG Meeting", + "calLink": "https://www.google.com/calendar/event?eid=MG9qY2RycjY2cm0xMW1ibTVpZGh2MXZuNjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1554", "banner": "", - "date": "2024-05-14T18:00:00.000Z" - }, - { - "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=bG5pdGoxcWZjc3VxMnJib2p2ZXZpYW8xM3MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1201", - "banner": "https://github.com/asyncapi/community/assets/40604284/0b128389-fad9-4342-bbc6-4e5624327374", - "date": "2024-05-14T08:00:00.000Z" + "date": "2024-11-05T14:00:00.000Z" }, { - "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=OWZwaWlyOWJ0dmExcDJ0c2llaXZiMXA3M3MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1202", - "banner": "https://github.com/asyncapi/community/assets/40604284/be6af5ec-9697-4ba4-a70b-4b9dd2c54c78", - "date": "2024-05-28T16:00:00.000Z" - }, - { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=Z2M2dWxkZWI1YzY1amJydTQzcTlrYW1uZzggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1210", + "title": "Design Meeting", + "calLink": "https://www.google.com/calendar/event?eid=ZWptamE1cWRzdGE5Mjlybm9vcGlqYTJkOXMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1558", "banner": "", - "date": "2024-05-28T18:00:00.000Z" + "date": "2024-10-17T12:00:00.000Z" }, { - "title": "Maintainers Growth Working Group", - "calLink": "https://www.google.com/calendar/event?eid=ZG45NjF1dXIyc2ZuajkwMTQwMWtxNGhma28gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1212", + "title": "AsyncAPI Online Conference 2024 Dry-Run", + "calLink": "https://www.google.com/calendar/event?eid=cnY0NDB2Y2dvcm1uZ2V0MmlrdDdyc3ByNTAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1559", "banner": "", - "date": "2024-05-22T14:00:00.000Z" + "date": "2024-10-18T16:00:00.000Z" }, { - "title": "Developer Experience Working Group", - "calLink": "https://www.google.com/calendar/event?eid=ZWd1bWVrMjNrN3JoM3A3cXJndmZvNGFsdmsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1220", + "title": "AsyncAPI Online Conference 2024", + "calLink": "https://www.google.com/calendar/event?eid=cjZwdnVldDd2Z29zb3Jlcm9pdTBvYzJmMnMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1562", "banner": "", - "date": "2024-05-23T14:00:00.000Z" + "date": "2024-10-30T10:00:00.000Z" } ] \ No newline at end of file diff --git a/config/newsroom_videos.json b/config/newsroom_videos.json index 52eefddc49ba..6a3893e2316a 100644 --- a/config/newsroom_videos.json +++ b/config/newsroom_videos.json @@ -1,32 +1,32 @@ [ { - "image_url": "https://i.ytimg.com/vi/K7fvKbOfqOg/hqdefault.jpg", - "title": "Developer Experience Working Group, 14:00 UTC Thursday May 23rd 2024", - "description": "Define our vision and plans https://github.com/asyncapi/community/issues/1220.", - "videoId": "K7fvKbOfqOg" + "image_url": "https://i.ytimg.com/vi/2WUchTKDPfs/hqdefault.jpg", + "title": "Marketing WG Meeting, 14:00 UTC Tuesday October 22nd 2024", + "description": "https://github.com/asyncapi/community/issues/1553.", + "videoId": "2WUchTKDPfs" }, { - "image_url": "https://i.ytimg.com/vi/94SSXX78VCU/hqdefault.jpg", - "title": "Essential Building Blocks Working Group, 18:00 UTC Tuesday May 14th 2024", - "description": "https://github.com/asyncapi/community/issues/1200.", - "videoId": "94SSXX78VCU" + "image_url": "https://i.ytimg.com/vi/FzRxTpOeIDA/hqdefault.jpg", + "title": "Design Meeting, 12:00 UTC Thursday October 17th 2024", + "description": "https://github.com/asyncapi/community/issues/1558.", + "videoId": "FzRxTpOeIDA" }, { - "image_url": "https://i.ytimg.com/vi/RijgS6y_JAo/hqdefault.jpg", - "title": "Maintainers Growth Working Group, 14:00 UTC Wednesday May 8th 2024", - "description": "https://github.com/asyncapi/community/issues/1197.", - "videoId": "RijgS6y_JAo" + "image_url": "https://i.ytimg.com/vi/maMQC97q_6E/hqdefault.jpg", + "title": "Community Meeting, 8:00 UTC Tuesday October 15th 2024", + "description": "https://github.com/asyncapi/community/issues/1545.", + "videoId": "maMQC97q_6E" }, { - "image_url": "https://i.ytimg.com/vi/8F3mTwf7JEs/hqdefault.jpg", - "title": "Essential Building Blocks Working Group, 18:00 UTC Tuesday May 14th 2024", - "description": "https://github.com/asyncapi/community/issues/1200.", - "videoId": "8F3mTwf7JEs" + "image_url": "https://i.ytimg.com/vi/P1ZqaVBb6XM/hqdefault.jpg", + "title": "AsyncAPI Mentorship Program FAQ, 11:00 UTC Thursday October 10th 2024", + "description": "https://github.com/asyncapi/community/issues/1550.", + "videoId": "P1ZqaVBb6XM" }, { - "image_url": "https://i.ytimg.com/vi/eQed8AKDlsM/hqdefault.jpg", - "title": "Marketing - WG setup and hiring, 14:00 UTC Wednesday May 9th 2024", - "description": "https://github.com/asyncapi/community/issues/1192.", - "videoId": "eQed8AKDlsM" + "image_url": "https://i.ytimg.com/vi/4jaACa7geT0/hqdefault.jpg", + "title": "Design Onboarding Call, 10:00 UTC Thursday September 12th 2024", + "description": "https://github.com/asyncapi/community/issues/1372.", + "videoId": "4jaACa7geT0" } ] \ No newline at end of file From 0b09994e899077c86643bc5fe535b2ca020ed393 Mon Sep 17 00:00:00 2001 From: Ansh Goyal Date: Wed, 23 Oct 2024 12:46:21 +0530 Subject: [PATCH 04/16] test: add markdown tests (#3301) Co-authored-by: Akshat Nema <76521428+akshatnema@users.noreply.github.com> --- .github/workflows/if-nodejs-pr-testing.yml | 38 +++++- markdown/docs/migration/index.md | 1 + markdown/docs/migration/migrating-to-v3.md | 1 + package.json | 1 + scripts/markdown/check-markdown.js | 146 +++++++++++++++++++++ 5 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 scripts/markdown/check-markdown.js diff --git a/.github/workflows/if-nodejs-pr-testing.yml b/.github/workflows/if-nodejs-pr-testing.yml index 769039d1a0aa..c8c3bec4d3c7 100644 --- a/.github/workflows/if-nodejs-pr-testing.yml +++ b/.github/workflows/if-nodejs-pr-testing.yml @@ -61,8 +61,7 @@ jobs: name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "${{ steps.nodeversion.outputs.version }}" - + node-version: '${{ steps.nodeversion.outputs.version }}' - name: Install dependencies run: npm ci - if: steps.packagejson.outputs.exists == 'true' @@ -76,6 +75,41 @@ jobs: shell: bash run: npm run generate:assets --if-present + # Run the test:md script and capture output + - if: steps.packagejson.outputs.exists == 'true' + name: Run markdown checks + id: markdown_check + run: | + ERRORS=$(npm run test:md | sed -n '/Errors in file/,$p') + echo "markdown_output<> $GITHUB_OUTPUT + echo "$ERRORS" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + # Post a comment using sticky-pull-request-comment + - name: Comment on PR with markdown issues + if: ${{ steps.markdown_check.outputs.markdown_output != '' }} + uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd + with: + header: markdown-check-error + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + message: | + ### Markdown Check Results + + We found issues in the following markdown files: + + ``` + ${{ steps.markdown_check.outputs.markdown_output }} + ``` + + # Delete the comment if there are no issues + - if: ${{ steps.markdown_check.outputs.markdown_output == '' }} + name: Delete markdown check comment + uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd + with: + header: markdown-check-error + delete: true + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + - if: steps.packagejson.outputs.exists == 'true' name: Upload Coverage to Codecov uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 diff --git a/markdown/docs/migration/index.md b/markdown/docs/migration/index.md index 195bcc35cf54..a8a57359ae21 100644 --- a/markdown/docs/migration/index.md +++ b/markdown/docs/migration/index.md @@ -1,5 +1,6 @@ --- title: "Overview" +weight: 1 --- Migration to a new major version is always difficult, and AsyncAPI is no exception, but we want to provide as smooth a transition as possible. diff --git a/markdown/docs/migration/migrating-to-v3.md b/markdown/docs/migration/migrating-to-v3.md index 85fa6bb47a76..00587645fee6 100644 --- a/markdown/docs/migration/migrating-to-v3.md +++ b/markdown/docs/migration/migrating-to-v3.md @@ -1,5 +1,6 @@ --- title: "Migrating to v3" +weight: 2 --- diff --git a/package.json b/package.json index 04ba37b586eb..29269ed3e1d6 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "generate:videos": "node scripts/build-newsroom-videos.js", "generate:tools": "node scripts/build-tools.js", "test:netlify": "deno test --allow-env --trace-ops netlify/**/*.test.ts", + "test:md": "node scripts/markdown/check-markdown.js", "dev:storybook": "storybook dev -p 6006", "build:storybook": "storybook build" }, diff --git a/scripts/markdown/check-markdown.js b/scripts/markdown/check-markdown.js new file mode 100644 index 000000000000..8979f7e0b4ab --- /dev/null +++ b/scripts/markdown/check-markdown.js @@ -0,0 +1,146 @@ +const fs = require('fs'); +const matter = require('gray-matter'); +const path = require('path'); + +/** + * Checks if a given string is a valid URL. + * @param {string} str - The string to validate as a URL. + * @returns {boolean} True if the string is a valid URL, false otherwise. + */ +function isValidURL(str) { + try { + new URL(str); + return true; + } catch (err) { + return false; + } +} + +/** + * Validates the frontmatter of a blog post. + * @param {object} frontmatter - The frontmatter object to validate. + * @param {string} filePath - The path to the file being validated. + * @returns {string[]|null} An array of validation error messages, or null if no errors. + */ +function validateBlogs(frontmatter) { + const requiredAttributes = ['title', 'date', 'type', 'tags', 'cover', 'authors']; + const errors = []; + + // Check for required attributes + requiredAttributes.forEach(attr => { + if (!frontmatter.hasOwnProperty(attr)) { + errors.push(`${attr} is missing`); + } + }); + + // Validate date format + if (frontmatter.date && Number.isNaN(Date.parse(frontmatter.date))) { + errors.push(`Invalid date format: ${frontmatter.date}`); + } + + // Validate tags format (must be an array) + if (frontmatter.tags && !Array.isArray(frontmatter.tags)) { + errors.push(`Tags should be an array`); + } + + // Validate cover is a string + if (frontmatter.cover && typeof frontmatter.cover !== 'string') { + errors.push(`Cover must be a string`); + } + + // Validate authors (must be an array with valid attributes) + if (frontmatter.authors) { + if (!Array.isArray(frontmatter.authors)) { + errors.push('Authors should be an array'); + } else { + frontmatter.authors.forEach((author, index) => { + if (!author.name) { + errors.push(`Author at index ${index} is missing a name`); + } + if (author.link && !isValidURL(author.link)) { + errors.push(`Invalid URL for author at index ${index}: ${author.link}`); + } + if (!author.photo) { + errors.push(`Author at index ${index} is missing a photo`); + } + }); + } + } + + return errors.length ? errors : null; +} + +/** + * Validates the frontmatter of a documentation file. + * @param {object} frontmatter - The frontmatter object to validate. + * @param {string} filePath - The path to the file being validated. + * @returns {string[]|null} An array of validation error messages, or null if no errors. + */ +function validateDocs(frontmatter) { + const errors = []; + + // Check if title exists and is a string + if (!frontmatter.title || typeof frontmatter.title !== 'string') { + errors.push('Title is missing or not a string'); + } + + // Check if weight exists and is a number + if (frontmatter.weight === undefined || typeof frontmatter.weight !== 'number') { + errors.push('Weight is missing or not a number'); + } + + return errors.length ? errors : null; +} + +/** + * Recursively checks markdown files in a folder and validates their frontmatter. + * @param {string} folderPath - The path to the folder to check. + * @param {Function} validateFunction - The function used to validate the frontmatter. + * @param {string} [relativePath=''] - The relative path of the folder for logging purposes. + */ +function checkMarkdownFiles(folderPath, validateFunction, relativePath = '') { + fs.readdir(folderPath, (err, files) => { + if (err) { + console.error('Error reading directory:', err); + return; + } + + files.forEach(file => { + const filePath = path.join(folderPath, file); + const relativeFilePath = path.join(relativePath, file); + + // Skip the folder 'docs/reference/specification' + if (relativeFilePath.includes('reference/specification')) { + return; + } + + fs.stat(filePath, (err, stats) => { + if (err) { + console.error('Error reading file stats:', err); + return; + } + + // Recurse if directory, otherwise validate markdown file + if (stats.isDirectory()) { + checkMarkdownFiles(filePath, validateFunction, relativeFilePath); + } else if (path.extname(file) === '.md') { + const fileContent = fs.readFileSync(filePath, 'utf-8'); + const { data: frontmatter } = matter(fileContent); + + const errors = validateFunction(frontmatter); + if (errors) { + console.log(`Errors in file ${relativeFilePath}:`); + errors.forEach(error => console.log(` - ${error}`)); + process.exitCode = 1; + } + } + }); + }); + }); +} + +const docsFolderPath = path.resolve(__dirname, '../../markdown/docs'); +const blogsFolderPath = path.resolve(__dirname, '../../markdown/blog'); + +checkMarkdownFiles(docsFolderPath, validateDocs); +checkMarkdownFiles(blogsFolderPath, validateBlogs); From 62d6e9a415d7e1ad20da7e854b173d78308a304d Mon Sep 17 00:00:00 2001 From: Ansh Goyal Date: Wed, 23 Oct 2024 17:36:23 +0530 Subject: [PATCH 05/16] fix: restrict markdown tests to ubuntu runner (#3318) --- .github/workflows/if-nodejs-pr-testing.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/if-nodejs-pr-testing.yml b/.github/workflows/if-nodejs-pr-testing.yml index c8c3bec4d3c7..a0fb664221c5 100644 --- a/.github/workflows/if-nodejs-pr-testing.yml +++ b/.github/workflows/if-nodejs-pr-testing.yml @@ -2,7 +2,7 @@ name: PR testing - if Node project on: - pull_request: + pull_request_target: types: [opened, reopened, synchronize, ready_for_review] push: branches: [master] @@ -42,6 +42,9 @@ jobs: - if: steps.should_run.outputs.shouldrun == 'true' name: Checkout repository uses: actions/checkout@v4 + with: + ref: refs/pull/${{ github.event.pull_request.number }}/merge + - if: steps.should_run.outputs.shouldrun == 'true' name: Check if Node.js project and has package.json id: packagejson @@ -76,7 +79,7 @@ jobs: run: npm run generate:assets --if-present # Run the test:md script and capture output - - if: steps.packagejson.outputs.exists == 'true' + - if: ${{ steps.packagejson.outputs.exists == 'true' && matrix.os == 'ubuntu-latest' }} name: Run markdown checks id: markdown_check run: | @@ -87,7 +90,7 @@ jobs: # Post a comment using sticky-pull-request-comment - name: Comment on PR with markdown issues - if: ${{ steps.markdown_check.outputs.markdown_output != '' }} + if: ${{ steps.markdown_check.outputs.markdown_output != '' && matrix.os == 'ubuntu-latest' }} uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd with: header: markdown-check-error @@ -102,7 +105,7 @@ jobs: ``` # Delete the comment if there are no issues - - if: ${{ steps.markdown_check.outputs.markdown_output == '' }} + - if: ${{ steps.markdown_check.outputs.markdown_output == '' && matrix.os == 'ubuntu-latest' }} name: Delete markdown check comment uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd with: From adb4832c3c4734f87a44cf51e01a2233bdb79475 Mon Sep 17 00:00:00 2001 From: Akshat Nema <76521428+akshatnema@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:44:13 +0530 Subject: [PATCH 06/16] fix: fixed rate limiting (#3319) Co-authored-by: asyncapi-bot --- scripts/dashboard/build-dashboard.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scripts/dashboard/build-dashboard.js b/scripts/dashboard/build-dashboard.js index 120109a05c23..5b0a34bee17b 100644 --- a/scripts/dashboard/build-dashboard.js +++ b/scripts/dashboard/build-dashboard.js @@ -155,11 +155,9 @@ function monthsSince(date) { async function start() { try { - const [issues, PRs, rawGoodFirstIssues] = await Promise.all([ - getDiscussions(Queries.hotDiscussionsIssues, 20), - getDiscussions(Queries.hotDiscussionsPullRequests, 20), - getDiscussions(Queries.goodFirstIssues, 20) - ]); + const issues = await getDiscussions(Queries.hotDiscussionsIssues, 20); + const PRs = await getDiscussions(Queries.hotDiscussionsPullRequests, 20); + const rawGoodFirstIssues = await getDiscussions(Queries.goodFirstIssues, 20); const discussions = issues.concat(PRs); const [hotDiscussions, goodFirstIssues] = await Promise.all([ getHotDiscussions(discussions), From b3eeb0115135b64a4dc77f0fa75eb62f8072b852 Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Wed, 23 Oct 2024 14:24:37 +0200 Subject: [PATCH 07/16] chore: update meetings.json and newsrooom_videos.json (#3321) --- dashboard.json | 675 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 439 insertions(+), 236 deletions(-) diff --git a/dashboard.json b/dashboard.json index 53053b94e94c..1b19808d2551 100644 --- a/dashboard.json +++ b/dashboard.json @@ -1,366 +1,518 @@ { "hotDiscussions": [ { - "id": "I_kwDOFLhIt85_y16Y", + "id": "I_kwDOFLhIt84-OUI3", "isPR": false, - "isAssigned": true, - "title": "Automate Slack user groups + channels creation and management", - "author": "smoya", - "resourcePath": "/asyncapi/community/issues/1072", + "isAssigned": false, + "title": "Create educational & technical video explaining AsyncAPI's main features", + "author": "quetzalliwrites", + "resourcePath": "/asyncapi/community/issues/155", "repo": "asyncapi/community", "labels": [ { "name": "enhancement", "color": "a2eeef" - }, - { - "name": "bounty", - "color": "0E8A16" } ], - "score": 104.24437571598092 + "score": 34.46095064991105 }, { - "id": "PR_kwDOFLhIt85js7KX", + "id": "PR_kwDOFLhIt855u7Eb", "isPR": true, "isAssigned": false, - "title": "chore: add documents CoC Committee and Incident Resolution Procedures", - "author": "Barbanio", - "resourcePath": "/asyncapi/community/pull/1013", + "title": "docs: added community marketing strategy doc", + "author": "iambami", + "resourcePath": "/asyncapi/community/pull/1358", "repo": "asyncapi/community", "labels": [], - "score": 22.9739670999407 + "score": 19.527872034949596 }, { - "id": "PR_kwDOFLhIt85bqKL8", + "id": "PR_kwDOFLhIt85oVQqh", "isPR": true, "isAssigned": false, - "title": "docs: add Bounty Program Rules", - "author": "aeworxet", - "resourcePath": "/asyncapi/community/pull/897", + "title": "feat: docs automation for website", + "author": "AnimeshKumar923", + "resourcePath": "/asyncapi/community/pull/1082", "repo": "asyncapi/community", "labels": [], - "score": 22.112443333692923 + "score": 18.37917367995256 }, { - "id": "I_kwDOBW5R_c580Z0o", - "isPR": false, + "id": "PR_kwDOBW5R_c52BRgf", + "isPR": true, "isAssigned": false, - "title": "New Contributor Guide and Maintenance Setup", - "author": "derberg", - "resourcePath": "/asyncapi/website/issues/2586", + "title": "feat: added test for build-rss.js", + "author": "vishvamsinh28", + "resourcePath": "/asyncapi/website/pull/3101", "repo": "asyncapi/website", + "labels": [], + "score": 17.517649913704783 + }, + { + "id": "I_kwDOGQYLdM5AX1lK", + "isPR": false, + "isAssigned": true, + "title": "Brand Refresh: Mascot", + "author": "mcturco", + "resourcePath": "/asyncapi/brand/issues/12", + "repo": "asyncapi/brand", "labels": [ { - "name": "enhancement", - "color": "84b6eb" + "name": ":art: design", + "color": "0D67D3" + }, + { + "name": "bounty", + "color": "0E8A16" } ], - "score": 18.091999091203302 + "score": 15.794602381209232 }, { - "id": "I_kwDOCVQpZM5M_dcV", - "isPR": false, - "isAssigned": true, - "title": "DocsUI: Messages Object output", - "author": "mcturco", - "resourcePath": "/asyncapi/asyncapi-react/issues/618", - "repo": "asyncapi/asyncapi-react", + "id": "PR_kwDOFLhIt853IEwA", + "isPR": true, + "isAssigned": false, + "title": "docs: added asyncapi student ambassador md file", + "author": "iambami", + "resourcePath": "/asyncapi/community/pull/1333", + "repo": "asyncapi/community", "labels": [], - "score": 17.230475324955524 + "score": 15.220253203710714 }, { - "id": "PR_kwDOBW5R_c5p28Vu", - "isPR": true, + "id": "I_kwDOFLhIt85bebeO", + "isPR": false, "isAssigned": false, - "title": "fix: navigation to correct heading in tools section", - "author": "Vishal2002", - "resourcePath": "/asyncapi/website/pull/2790", - "repo": "asyncapi/website", + "title": "Meeting Banners Storage", + "author": "AceTheCreator", + "resourcePath": "/asyncapi/community/issues/568", + "repo": "asyncapi/community", "labels": [], "score": 14.933078614961456 }, { - "id": "PR_kwDOCoBobc5tRBZn", + "id": "PR_kwDOCHlHJM54CmhW", "isPR": true, "isAssigned": false, - "title": "chore: introduce the turborepo to the parser.js", - "author": "ayushnau", - "resourcePath": "/asyncapi/parser-js/pull/992", - "repo": "asyncapi/parser-js", + "title": "fix: add the migration guide and nunjucks depreciation notes", + "author": "Gmin2", + "resourcePath": "/asyncapi/generator/pull/1253", + "repo": "asyncapi/generator", "labels": [], - "score": 14.358729437462937 + "score": 13.78438025996442 }, { - "id": "I_kwDOFi_gUM5hpuWl", + "id": "I_kwDODou01c5o2x-Z", "isPR": false, - "isAssigned": true, - "title": "Improve kafka adapter", - "author": "KhudaDad414", - "resourcePath": "/asyncapi/glee/issues/411", - "repo": "asyncapi/glee", + "isAssigned": false, + "title": "Start using a React framework", + "author": "fmvilas", + "resourcePath": "/asyncapi/studio/issues/661", + "repo": "asyncapi/studio", + "labels": [], + "score": 13.210031082465903 + }, + { + "id": "I_kwDOFLhIt85xI2wH", + "isPR": false, + "isAssigned": false, + "title": "Measure AsyncAPI Adoption", + "author": "fmvilas", + "resourcePath": "/asyncapi/community/issues/879", + "repo": "asyncapi/community", "labels": [ { - "name": "enhancement", - "color": "a2eeef" - }, - { - "name": "good first issue", - "color": "7057ff" - }, - { - "name": "area/typescript", - "color": "007acc" + "name": "stale", + "color": "ededed" } ], - "score": 13.78438025996442 + "score": 12.922856493716644 }, { - "id": "I_kwDODou01c5BZZv-", + "id": "I_kwDOBW5R_c5Pi3rO", "isPR": false, "isAssigned": false, - "title": "Open Graph link preview image according to the document to open", - "author": "smoya", - "resourcePath": "/asyncapi/studio/issues/224", - "repo": "asyncapi/studio", + "title": "Epic roadmap to the new AsyncAPI community section", + "author": "AceTheCreator", + "resourcePath": "/asyncapi/website/issues/903", + "repo": "asyncapi/website", "labels": [ { - "name": "enhancement", - "color": "a2eeef" + "name": "keep-open", + "color": "ffee84" }, { - "name": "keep-open", - "color": "f9dd4b" + "name": "🎨 design", + "color": "0D67D3" } ], - "score": 13.703040335770691 + "score": 11.073163907693488 }, { - "id": "I_kwDOFLhIt85bebeO", + "id": "I_kwDODwv8N86BkfYV", "isPR": false, "isAssigned": false, - "title": "Meeting Banners Storage", + "title": "Add Gallery Section to AACoT'24 Conference Website", + "author": "Mayaleeeee", + "resourcePath": "/asyncapi/conference-website/issues/264", + "repo": "asyncapi/conference-website", + "labels": [ + { + "name": "Hacktoberfest", + "color": "FF8AE2" + } + ], + "score": 10.912634372471834 + } + ], + "goodFirstIssues": [ + { + "id": "I_kwDODwv8N86bdV6Z", + "title": "Links in the Resources Hub Should Open in a New Window", + "isAssigned": false, + "resourcePath": "/asyncapi/conference-website/issues/434", + "repo": "asyncapi/conference-website", "author": "AceTheCreator", - "resourcePath": "/asyncapi/community/issues/568", + "area": "Unknown", + "labels": [ + { + "name": "Hacktoberfest", + "color": "FF8AE2" + } + ] + }, + { + "id": "I_kwDOFLhIt86bdQd-", + "title": "Add Proposed Project Ideas to Mentorship Directory", + "isAssigned": false, + "resourcePath": "/asyncapi/community/issues/1564", "repo": "asyncapi/community", - "labels": [], - "score": 13.497205671215161 + "author": "AceTheCreator", + "area": "Unknown", + "labels": [ + { + "name": "Hacktoberfest", + "color": "FF8AE2" + } + ] }, { - "id": "PR_kwDODou01c5r4UjU", - "isPR": true, + "id": "I_kwDOBW5R_c6aKzLD", + "title": "[FEATURE] Add coderabbit configuration to the repo", + "isAssigned": true, + "resourcePath": "/asyncapi/website/issues/3293", + "repo": "asyncapi/website", + "author": "akshatnema", + "area": "Unknown", + "labels": [ + { + "name": "enhancement", + "color": "84b6eb" + }, + { + "name": "Hacktoberfest", + "color": "FF8AE2" + } + ] + }, + { + "id": "I_kwDOCHlHJM6ZrKEr", + "title": "[📑 Docs]: Fix the relative paths of `index.md` & `migration.md` files.", "isAssigned": false, - "title": "fix: Enhancement of Visual Json Schema Editor", + "resourcePath": "/asyncapi/generator/issues/1294", + "repo": "asyncapi/generator", "author": "Gmin2", - "resourcePath": "/asyncapi/studio/pull/1065", - "repo": "asyncapi/studio", - "labels": [], - "score": 13.497205671215161 + "area": "Unknown", + "labels": [ + { + "name": "Hacktoberfest", + "color": "FF8AE2" + }, + { + "name": "📑 docs", + "color": "E50E99" + } + ] }, { - "id": "PR_kwDOFDnrNc5tl-_j", - "isPR": true, + "id": "I_kwDOCVQpZM6YZd4E", + "title": "A fragment with only one child is redundant.", "isAssigned": false, - "title": "test: replicate incorrect bundling and missing assertions part of #1323", - "author": "francocm", - "resourcePath": "/asyncapi/cli/pull/1389", - "repo": "asyncapi/cli", - "labels": [], - "score": 12.061332727468868 - } - ], - "goodFirstIssues": [ + "resourcePath": "/asyncapi/asyncapi-react/issues/1054", + "repo": "asyncapi/asyncapi-react", + "author": "AceTheCreator", + "area": "Unknown", + "labels": [ + { + "name": "Hacktoberfest", + "color": "FF8AE2" + } + ] + }, { - "id": "I_kwDOE8Qh386HJeIz", - "title": "[BUG] Implement avro schema data type ", + "id": "I_kwDOCVQpZM6YZc4E", + "title": "Remove this redundant \"undefined\"", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1974", - "repo": "asyncapi/modelina", - "author": "akkshitgupta", - "area": "typescript", + "resourcePath": "/asyncapi/asyncapi-react/issues/1053", + "repo": "asyncapi/asyncapi-react", + "author": "AceTheCreator", + "area": "Unknown", "labels": [ { - "name": "avro", - "color": "EC3D91" + "name": "Hacktoberfest", + "color": "FF8AE2" } ] }, { - "id": "I_kwDODwv8N86CASyz", - "title": "Card text is unreadable ", + "id": "I_kwDOCVQpZM6YZbiE", + "title": "Remove this redundant \"undefined\"", "isAssigned": false, - "resourcePath": "/asyncapi/conference-website/issues/266", - "repo": "asyncapi/conference-website", + "resourcePath": "/asyncapi/asyncapi-react/issues/1052", + "repo": "asyncapi/asyncapi-react", "author": "AceTheCreator", "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" + "name": "Hacktoberfest", + "color": "FF8AE2" } ] }, { - "id": "I_kwDOCxglSM6Bxg4I", - "title": "Convert OpenAPI 3.0 to AsyncAPI 3.0", - "isAssigned": true, - "resourcePath": "/asyncapi/converter-js/issues/233", - "repo": "asyncapi/converter-js", - "author": "jonaslagoni", - "area": "typescript", + "id": "I_kwDODwv8N86YYYFf", + "title": "Fix the way the ticket section is being rendered", + "isAssigned": false, + "resourcePath": "/asyncapi/conference-website/issues/395", + "repo": "asyncapi/conference-website", + "author": "AceTheCreator", + "area": "Unknown", "labels": [ { "name": "enhancement", "color": "a2eeef" }, { - "name": "keep-open", - "color": "f4d473" - }, - { - "name": "bounty", - "color": "0E8A16" + "name": "Hacktoberfest", + "color": "FF8AE2" } ] }, { - "id": "I_kwDOE8Qh385-gvCP", - "title": "Add \"generated-code\" XmlDoc and `[GeneratedCode]` attribute to C# models.", + "id": "I_kwDODwv8N86Vde8t", + "title": "Sponsor announcement design for social media", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1784", - "repo": "asyncapi/modelina", - "author": "RowlandBanks", - "area": "typescript", + "resourcePath": "/asyncapi/conference-website/issues/380", + "repo": "asyncapi/conference-website", + "author": "thulieblack", + "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" - }, + "name": "design", + "color": "5D0F46" + } + ] + }, + { + "id": "I_kwDODwv8N86VdePb", + "title": "The conference countdown banner", + "isAssigned": false, + "resourcePath": "/asyncapi/conference-website/issues/378", + "repo": "asyncapi/conference-website", + "author": "thulieblack", + "area": "Unknown", + "labels": [ { - "name": "C# generator", - "color": "c5def5" + "name": "design", + "color": "5D0F46" } ] }, { - "id": "I_kwDOCHlHJM58YMi8", - "title": "Improve arborist (npm installation) to have no hacks", + "id": "I_kwDOBW5R_c6VIyCf", + "title": "[Docs Bug 🐞 report]: Broken link to Generator Github Actions", "isAssigned": false, - "resourcePath": "/asyncapi/generator/issues/1102", - "repo": "asyncapi/generator", - "author": "derberg", - "area": "javascript", + "resourcePath": "/asyncapi/website/issues/3190", + "repo": "asyncapi/website", + "author": "chinma-yyy", + "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" - }, + "name": "🐞 docs bug", + "color": "FFD23F" + } + ] + }, + { + "id": "I_kwDOGQYLdM6VGsJA", + "title": "Design a Graphic for the Member Spotlight Post", + "isAssigned": false, + "resourcePath": "/asyncapi/brand/issues/108", + "repo": "asyncapi/brand", + "author": "Mayaleeeee", + "area": "Unknown", + "labels": [ { - "name": "stale", - "color": "ededed" + "name": ":art: design", + "color": "0D67D3" } ] }, { - "id": "I_kwDOE8Qh38572pxu", - "title": "Add runtime tests for Dart", + "id": "I_kwDOGQYLdM6VAt9d", + "title": "Create \"Did You Know?\" Social Media Posts (3-4 Graphics)", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1744", - "repo": "asyncapi/modelina", - "author": "jonaslagoni", + "resourcePath": "/asyncapi/brand/issues/107", + "repo": "asyncapi/brand", + "author": "Mayaleeeee", "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" - }, + "name": "🎨 design", + "color": "0D67D3" + } + ] + }, + { + "id": "I_kwDOGQYLdM6VAsmz", + "title": "Create a Graphic for \"Ask Me Anything\" (AMA) Session Announcement", + "isAssigned": false, + "resourcePath": "/asyncapi/brand/issues/106", + "repo": "asyncapi/brand", + "author": "Mayaleeeee", + "area": "Unknown", + "labels": [ { - "name": "Dart generator", - "color": "296FBA" + "name": "🎨 design", + "color": "0D67D3" } ] }, { - "id": "I_kwDOE8Qh38572gDd", - "title": "Add XSD support ", + "id": "I_kwDOGQYLdM6VArWv", + "title": "Design a Graphic for Mentorship Program Announcement", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1742", - "repo": "asyncapi/modelina", - "author": "jonaslagoni", - "area": "typescript", + "resourcePath": "/asyncapi/brand/issues/105", + "repo": "asyncapi/brand", + "author": "Mayaleeeee", + "area": "design", + "labels": [] + }, + { + "id": "I_kwDOGQYLdM6VApSN", + "title": "Design a Graphic for Newsletter Promo", + "isAssigned": false, + "resourcePath": "/asyncapi/brand/issues/104", + "repo": "asyncapi/brand", + "author": "Mayaleeeee", + "area": "design", + "labels": [] + }, + { + "id": "I_kwDOBW5R_c6U79Xr", + "title": "[Docs Bug 🐞 report]: Github handle link of alequetzalli is not working ", + "isAssigned": false, + "resourcePath": "/asyncapi/website/issues/3176", + "repo": "asyncapi/website", + "author": "NoIdea2001", + "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" - }, + "name": "🐞 docs bug", + "color": "FFD23F" + } + ] + }, + { + "id": "I_kwDOFLhIt86O7jFN", + "title": "[DESIGN] Holopin Design Tracking", + "isAssigned": true, + "resourcePath": "/asyncapi/community/issues/1306", + "repo": "asyncapi/community", + "author": "Mayaleeeee", + "area": "design", + "labels": [ { - "name": "stale", - "color": "ededed" + "name": "🎨 design", + "color": "0D67D3" } ] }, { - "id": "I_kwDOE8Qh38572bME", - "title": "Add JSON Type definition support ", + "id": "I_kwDOE8Qh386HJeIz", + "title": "[BUG] Implement avro schema data type ", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1740", + "resourcePath": "/asyncapi/modelina/issues/1974", "repo": "asyncapi/modelina", - "author": "jonaslagoni", + "author": "akkshitgupta", "area": "typescript", "labels": [ { - "name": "enhancement", - "color": "a2eeef" + "name": "avro", + "color": "EC3D91" } ] }, { - "id": "I_kwDOE8Qh3857Kllp", - "title": "Add loading animation for when playground generate models ", + "id": "I_kwDOFDnrNc6Gp88n", + "title": " Implement new UI/UX improvements in start command", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1725", - "repo": "asyncapi/modelina", - "author": "jonaslagoni", + "resourcePath": "/asyncapi/cli/issues/1384", + "repo": "asyncapi/cli", + "author": "Amzani", + "area": "typescript", + "labels": [] + }, + { + "id": "I_kwDOFDnrNc6Gp8Qd", + "title": " Implement new UI/UX improvements in config command", + "isAssigned": false, + "resourcePath": "/asyncapi/cli/issues/1380", + "repo": "asyncapi/cli", + "author": "Amzani", + "area": "typescript", + "labels": [] + }, + { + "id": "I_kwDOFDnrNc59gY4V", + "title": "Validate command output is polluted by noisy messages", + "isAssigned": false, + "resourcePath": "/asyncapi/cli/issues/1095", + "repo": "asyncapi/cli", + "author": "cykl", "area": "Unknown", "labels": [ { - "name": "enhancement", - "color": "a2eeef" + "name": "Hacktoberfest", + "color": "FF8AE2" }, { - "name": "website", - "color": "57A793" + "name": "bug", + "color": "d73a4a" } ] }, { - "id": "I_kwDOE8Qh3857KYj1", - "title": "Add input document for OpenAPI", + "id": "I_kwDOCHlHJM58YMi8", + "title": "Improve arborist (npm installation) to have no hacks", "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1723", - "repo": "asyncapi/modelina", - "author": "jonaslagoni", - "area": "Unknown", + "resourcePath": "/asyncapi/generator/issues/1102", + "repo": "asyncapi/generator", + "author": "derberg", + "area": "javascript", "labels": [ { "name": "enhancement", "color": "a2eeef" - }, - { - "name": "stale", - "color": "ededed" - }, - { - "name": "📑 docs", - "color": "E50E99" } ] }, { - "id": "I_kwDOE8Qh3857KYQc", - "title": "Add input document for AsyncAPI", - "isAssigned": false, - "resourcePath": "/asyncapi/modelina/issues/1722", + "id": "I_kwDOE8Qh3857Kllp", + "title": "Add loading animation for when playground generate models ", + "isAssigned": true, + "resourcePath": "/asyncapi/modelina/issues/1725", "repo": "asyncapi/modelina", "author": "jonaslagoni", "area": "Unknown", @@ -370,12 +522,8 @@ "color": "a2eeef" }, { - "name": "stale", - "color": "ededed" - }, - { - "name": "📑 docs", - "color": "E50E99" + "name": "website", + "color": "57A793" } ] }, @@ -406,6 +554,10 @@ { "name": "enhancement", "color": "a2eeef" + }, + { + "name": "stale", + "color": "ededed" } ] }, @@ -417,7 +569,27 @@ "repo": "asyncapi/studio", "author": "princerajpoot20", "area": "typescript", - "labels": [] + "labels": [ + { + "name": "stale", + "color": "ededed" + } + ] + }, + { + "id": "I_kwDOFDnrNc50wZMh", + "title": "Add support for proxy", + "isAssigned": false, + "resourcePath": "/asyncapi/cli/issues/862", + "repo": "asyncapi/cli", + "author": "mamyn0va", + "area": "typescript", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + } + ] }, { "id": "I_kwDOCoBobc5zovn3", @@ -431,6 +603,10 @@ { "name": "bug", "color": "d73a4a" + }, + { + "name": "stale", + "color": "ededed" } ] }, @@ -454,21 +630,32 @@ ] }, { - "id": "I_kwDODwv8N85yh95N", - "title": "would be nice if venue from past events is grayed out", + "id": "I_kwDOFDnrNc5xaTa3", + "title": "Parallel execution command asyncapi generate got error", "isAssigned": false, - "resourcePath": "/asyncapi/conference-website/issues/208", - "repo": "asyncapi/conference-website", - "author": "derberg", - "area": "javascript", + "resourcePath": "/asyncapi/cli/issues/814", + "repo": "asyncapi/cli", + "author": "Zacama", + "area": "Unknown", + "labels": [ + { + "name": "bug", + "color": "d73a4a" + } + ] + }, + { + "id": "I_kwDOFDnrNc5wmQBl", + "title": "Need to Consider the Case Senstive feature in CLI while creating new file.", + "isAssigned": false, + "resourcePath": "/asyncapi/cli/issues/790", + "repo": "asyncapi/cli", + "author": "AayushSaini101", + "area": "typescript", "labels": [ { "name": "enhancement", "color": "a2eeef" - }, - { - "name": "Hacktoberfest", - "color": "FF8AE2" } ] }, @@ -484,6 +671,10 @@ { "name": "bug", "color": "d73a4a" + }, + { + "name": "stale", + "color": "ededed" } ] }, @@ -518,6 +709,10 @@ { "name": "bug", "color": "d73a4a" + }, + { + "name": "stale", + "color": "ededed" } ] }, @@ -586,13 +781,17 @@ { "name": "enhancement", "color": "a2eeef" + }, + { + "name": "stale", + "color": "ededed" } ] }, { "id": "I_kwDOBW5R_c5eFaBF", "title": "Add proper dropdowns to the Filters Select Menu", - "isAssigned": false, + "isAssigned": true, "resourcePath": "/asyncapi/website/issues/1318", "repo": "asyncapi/website", "author": "akshatnema", @@ -662,25 +861,10 @@ { "name": "enhancement", "color": "a2eeef" - } - ] - }, - { - "id": "I_kwDOBW5R_c5dfidP", - "title": "docs: new style guide - Glossary", - "isAssigned": true, - "resourcePath": "/asyncapi/website/issues/1294", - "repo": "asyncapi/website", - "author": "alequetzalli", - "area": "docs", - "labels": [ + }, { "name": "stale", "color": "ededed" - }, - { - "name": "📑 docs", - "color": "E50E99" } ] }, @@ -764,6 +948,25 @@ } ] }, + { + "id": "I_kwDOFiHaLM5DeQ4y", + "title": "Add support for HTML output", + "isAssigned": false, + "resourcePath": "/asyncapi/diff/issues/85", + "repo": "asyncapi/diff", + "author": "aayushmau5", + "area": "Unknown", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + }, + { + "name": "stale", + "color": "ededed" + } + ] + }, { "id": "I_kwDOBW5R_c48lGJg", "title": "Add visual on the \"generator\" and maybe others....", @@ -771,7 +974,7 @@ "resourcePath": "/asyncapi/website/issues/403", "repo": "asyncapi/website", "author": "boyney123", - "area": "typescript", + "area": "design", "labels": [ { "name": "enhancement", From 10fab1c72b68e3a96ce6452e03323bfbbaa74ae1 Mon Sep 17 00:00:00 2001 From: Ansh Goyal Date: Wed, 23 Oct 2024 17:59:08 +0530 Subject: [PATCH 08/16] fix: fix testing workflow ref for branch pushes (#3320) --- .github/workflows/if-nodejs-pr-testing.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/if-nodejs-pr-testing.yml b/.github/workflows/if-nodejs-pr-testing.yml index a0fb664221c5..d5489e7ab8f2 100644 --- a/.github/workflows/if-nodejs-pr-testing.yml +++ b/.github/workflows/if-nodejs-pr-testing.yml @@ -43,7 +43,9 @@ jobs: name: Checkout repository uses: actions/checkout@v4 with: - ref: refs/pull/${{ github.event.pull_request.number }}/merge + # Checkout the merge commit instead of the pull request head commit for a pull request + # Fallback to the head commit if its not a pull request + ref: ${{ github.event.pull_request.number != '' && format('refs/pull/{0}/merge', github.event.pull_request.number) || github.ref }} - if: steps.should_run.outputs.shouldrun == 'true' name: Check if Node.js project and has package.json From 4f813d04eb7847eb06142b9bf1a049a270e51934 Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Thu, 24 Oct 2024 08:03:26 +0200 Subject: [PATCH 09/16] docs(cli): update latest cli documentation (#3322) --- markdown/docs/tools/cli/usage.md | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/markdown/docs/tools/cli/usage.md b/markdown/docs/tools/cli/usage.md index d4cae23662b4..8b0f46697058 100644 --- a/markdown/docs/tools/cli/usage.md +++ b/markdown/docs/tools/cli/usage.md @@ -27,7 +27,7 @@ $ npm install -g @asyncapi/cli $ asyncapi COMMAND running command... $ asyncapi (--version) -@asyncapi/cli/2.7.1 linux-x64 node-v18.20.4 +@asyncapi/cli/2.7.2 linux-x64 node-v18.20.4 $ asyncapi --help [COMMAND] USAGE $ asyncapi COMMAND @@ -99,7 +99,7 @@ EXAMPLES $ asyncapi bundle ./asyncapi.yaml -o final-asyncapi.yaml --base ../public-api/main.yaml --baseDir ./social-media/comments-service ``` -_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/bundle.ts)_ +_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/bundle.ts)_ ## `asyncapi config` @@ -113,7 +113,7 @@ DESCRIPTION CLI config settings ``` -_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/index.ts)_ +_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/index.ts)_ ## `asyncapi config analytics` @@ -133,7 +133,7 @@ DESCRIPTION Enable or disable analytics for metrics collection ``` -_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/analytics.ts)_ +_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/analytics.ts)_ ## `asyncapi config context` @@ -147,7 +147,7 @@ DESCRIPTION Manage short aliases for full paths to AsyncAPI documents ``` -_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/index.ts)_ +_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/index.ts)_ ## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH` @@ -169,7 +169,7 @@ DESCRIPTION Add a context to the store ``` -_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/add.ts)_ +_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/add.ts)_ ## `asyncapi config context current` @@ -186,7 +186,7 @@ DESCRIPTION Shows the current context that is being used ``` -_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/current.ts)_ +_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/current.ts)_ ## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH` @@ -207,7 +207,7 @@ DESCRIPTION Edit a context in the store ``` -_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/edit.ts)_ +_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/edit.ts)_ ## `asyncapi config context init [CONTEXT-FILE-PATH]` @@ -230,7 +230,7 @@ DESCRIPTION Initialize context ``` -_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/init.ts)_ +_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/init.ts)_ ## `asyncapi config context list` @@ -247,7 +247,7 @@ DESCRIPTION List all the stored contexts in the store ``` -_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/list.ts)_ +_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/list.ts)_ ## `asyncapi config context remove CONTEXT-NAME` @@ -267,7 +267,7 @@ DESCRIPTION Delete a context from the store ``` -_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/remove.ts)_ +_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/remove.ts)_ ## `asyncapi config context use CONTEXT-NAME` @@ -287,7 +287,7 @@ DESCRIPTION Set a context as current ``` -_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/context/use.ts)_ +_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/use.ts)_ ## `asyncapi config versions` @@ -304,7 +304,7 @@ DESCRIPTION Show versions of AsyncAPI tools used ``` -_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/config/versions.ts)_ +_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/versions.ts)_ ## `asyncapi convert [SPEC-FILE]` @@ -332,7 +332,7 @@ DESCRIPTION Convert asyncapi documents older to newer versions or OpenAPI/postman-collection documents to AsyncAPI ``` -_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/convert.ts)_ +_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/convert.ts)_ ## `asyncapi diff OLD NEW` @@ -372,7 +372,7 @@ DESCRIPTION Find diff between two asyncapi files ``` -_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/diff.ts)_ +_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/diff.ts)_ ## `asyncapi generate` @@ -386,7 +386,7 @@ DESCRIPTION Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates. ``` -_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/index.ts)_ +_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/index.ts)_ ## `asyncapi generate fromTemplate ASYNCAPI TEMPLATE` @@ -431,7 +431,7 @@ EXAMPLES $ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write ``` -_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/fromTemplate.ts)_ +_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/fromTemplate.ts)_ ## `asyncapi generate models LANGUAGE FILE` @@ -502,7 +502,7 @@ DESCRIPTION Generates typed models ``` -_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/generate/models.ts)_ +_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/models.ts)_ ## `asyncapi new` @@ -560,7 +560,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/index.ts)_ +_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/index.ts)_ ## `asyncapi new file` @@ -618,7 +618,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/file.ts)_ +_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/file.ts)_ ## `asyncapi new glee` @@ -640,7 +640,7 @@ DESCRIPTION Creates a new Glee project ``` -_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/glee.ts)_ +_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/glee.ts)_ ## `asyncapi new template` @@ -664,7 +664,7 @@ DESCRIPTION Creates a new template ``` -_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/new/template.ts)_ +_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/template.ts)_ ## `asyncapi optimize [SPEC-FILE]` @@ -706,7 +706,7 @@ EXAMPLES $ asyncapi optimize ./asyncapi.yaml --ignore=schema ``` -_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/optimize.ts)_ +_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/optimize.ts)_ ## `asyncapi start` @@ -720,7 +720,7 @@ DESCRIPTION Starts AsyncAPI-related services. Currently, it supports launching the AsyncAPI Studio ``` -_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/start/index.ts)_ +_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/start/index.ts)_ ## `asyncapi start studio` @@ -739,7 +739,7 @@ DESCRIPTION starts a new local instance of Studio ``` -_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/start/studio.ts)_ +_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/start/studio.ts)_ ## `asyncapi validate [SPEC-FILE]` @@ -769,5 +769,5 @@ DESCRIPTION validate asyncapi file ``` -_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.7.1/src/commands/validate.ts)_ +_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/validate.ts)_ From 1a1d9402a546c75a74080c21b077126fd0d01ede Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Thu, 24 Oct 2024 15:11:39 +0200 Subject: [PATCH 10/16] docs(cli): update latest cli documentation (#3324) --- markdown/docs/tools/cli/usage.md | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/markdown/docs/tools/cli/usage.md b/markdown/docs/tools/cli/usage.md index 8b0f46697058..a8d86b446bcb 100644 --- a/markdown/docs/tools/cli/usage.md +++ b/markdown/docs/tools/cli/usage.md @@ -27,7 +27,7 @@ $ npm install -g @asyncapi/cli $ asyncapi COMMAND running command... $ asyncapi (--version) -@asyncapi/cli/2.7.2 linux-x64 node-v18.20.4 +@asyncapi/cli/2.7.3 linux-x64 node-v18.20.4 $ asyncapi --help [COMMAND] USAGE $ asyncapi COMMAND @@ -99,7 +99,7 @@ EXAMPLES $ asyncapi bundle ./asyncapi.yaml -o final-asyncapi.yaml --base ../public-api/main.yaml --baseDir ./social-media/comments-service ``` -_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/bundle.ts)_ +_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/bundle.ts)_ ## `asyncapi config` @@ -113,7 +113,7 @@ DESCRIPTION CLI config settings ``` -_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/index.ts)_ +_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/index.ts)_ ## `asyncapi config analytics` @@ -133,7 +133,7 @@ DESCRIPTION Enable or disable analytics for metrics collection ``` -_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/analytics.ts)_ +_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/analytics.ts)_ ## `asyncapi config context` @@ -147,7 +147,7 @@ DESCRIPTION Manage short aliases for full paths to AsyncAPI documents ``` -_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/index.ts)_ +_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/index.ts)_ ## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH` @@ -169,7 +169,7 @@ DESCRIPTION Add a context to the store ``` -_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/add.ts)_ +_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/add.ts)_ ## `asyncapi config context current` @@ -186,7 +186,7 @@ DESCRIPTION Shows the current context that is being used ``` -_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/current.ts)_ +_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/current.ts)_ ## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH` @@ -207,7 +207,7 @@ DESCRIPTION Edit a context in the store ``` -_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/edit.ts)_ +_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/edit.ts)_ ## `asyncapi config context init [CONTEXT-FILE-PATH]` @@ -230,7 +230,7 @@ DESCRIPTION Initialize context ``` -_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/init.ts)_ +_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/init.ts)_ ## `asyncapi config context list` @@ -247,7 +247,7 @@ DESCRIPTION List all the stored contexts in the store ``` -_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/list.ts)_ +_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/list.ts)_ ## `asyncapi config context remove CONTEXT-NAME` @@ -267,7 +267,7 @@ DESCRIPTION Delete a context from the store ``` -_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/remove.ts)_ +_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/remove.ts)_ ## `asyncapi config context use CONTEXT-NAME` @@ -287,7 +287,7 @@ DESCRIPTION Set a context as current ``` -_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/use.ts)_ +_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/context/use.ts)_ ## `asyncapi config versions` @@ -304,7 +304,7 @@ DESCRIPTION Show versions of AsyncAPI tools used ``` -_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/versions.ts)_ +_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/config/versions.ts)_ ## `asyncapi convert [SPEC-FILE]` @@ -332,7 +332,7 @@ DESCRIPTION Convert asyncapi documents older to newer versions or OpenAPI/postman-collection documents to AsyncAPI ``` -_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/convert.ts)_ +_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/convert.ts)_ ## `asyncapi diff OLD NEW` @@ -372,7 +372,7 @@ DESCRIPTION Find diff between two asyncapi files ``` -_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/diff.ts)_ +_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/diff.ts)_ ## `asyncapi generate` @@ -386,7 +386,7 @@ DESCRIPTION Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates. ``` -_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/index.ts)_ +_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/generate/index.ts)_ ## `asyncapi generate fromTemplate ASYNCAPI TEMPLATE` @@ -431,7 +431,7 @@ EXAMPLES $ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write ``` -_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/fromTemplate.ts)_ +_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/generate/fromTemplate.ts)_ ## `asyncapi generate models LANGUAGE FILE` @@ -502,7 +502,7 @@ DESCRIPTION Generates typed models ``` -_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/generate/models.ts)_ +_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/generate/models.ts)_ ## `asyncapi new` @@ -560,7 +560,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/index.ts)_ +_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/new/index.ts)_ ## `asyncapi new file` @@ -618,7 +618,7 @@ EXAMPLES $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` -_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/file.ts)_ +_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/new/file.ts)_ ## `asyncapi new glee` @@ -640,7 +640,7 @@ DESCRIPTION Creates a new Glee project ``` -_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/glee.ts)_ +_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/new/glee.ts)_ ## `asyncapi new template` @@ -664,7 +664,7 @@ DESCRIPTION Creates a new template ``` -_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/new/template.ts)_ +_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/new/template.ts)_ ## `asyncapi optimize [SPEC-FILE]` @@ -706,7 +706,7 @@ EXAMPLES $ asyncapi optimize ./asyncapi.yaml --ignore=schema ``` -_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/optimize.ts)_ +_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/optimize.ts)_ ## `asyncapi start` @@ -720,7 +720,7 @@ DESCRIPTION Starts AsyncAPI-related services. Currently, it supports launching the AsyncAPI Studio ``` -_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/start/index.ts)_ +_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/start/index.ts)_ ## `asyncapi start studio` @@ -739,7 +739,7 @@ DESCRIPTION starts a new local instance of Studio ``` -_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/start/studio.ts)_ +_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/start/studio.ts)_ ## `asyncapi validate [SPEC-FILE]` @@ -769,5 +769,5 @@ DESCRIPTION validate asyncapi file ``` -_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/validate.ts)_ +_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.7.3/src/commands/validate.ts)_ From bb69a47b082597f06180f7714c315c52dcdbdae9 Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Fri, 25 Oct 2024 02:36:55 +0200 Subject: [PATCH 11/16] chore: update meetings.json and newsrooom_videos.json (#3326) --- config/meetings.json | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/config/meetings.json b/config/meetings.json index 4fbe2b0b8e2b..850bac956a6c 100644 --- a/config/meetings.json +++ b/config/meetings.json @@ -1,11 +1,4 @@ [ - { - "title": "Essential Building Blocks Working Group", - "calLink": "https://www.google.com/calendar/event?eid=M2pxNGNwZnRqNGpjcDg2cXVnc3VqZ2wwMHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1294", - "banner": "", - "date": "2024-07-16T18:00:00.000Z" - }, { "title": "Community Meeting", "calLink": "https://www.google.com/calendar/event?eid=am5kcG50YW9obGUzcmVucWZqMTQ4NDlsbjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", @@ -13,13 +6,6 @@ "banner": "https://github.com/asyncapi/community/assets/40604284/65376079-c5e8-467d-b513-21dfaba4570f", "date": "2024-07-23T16:00:00.000Z" }, - { - "title": "Marketing WG Meeting", - "calLink": "https://www.google.com/calendar/event?eid=Z3NzN2JvcjdnY2diMnJpczA4dWMxMGh2ZGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/1309", - "banner": "", - "date": "2024-07-16T14:00:00.000Z" - }, { "title": "Marketing WG Meeting", "calLink": "https://www.google.com/calendar/event?eid=b2twOWkyZ3ExcGxnYnAxbzBobzA1MWxvcW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", @@ -159,5 +145,12 @@ "url": "https://github.com/asyncapi/community/issues/1562", "banner": "", "date": "2024-10-30T10:00:00.000Z" + }, + { + "title": "Conference Dry Run", + "calLink": "https://www.google.com/calendar/event?eid=ZmR1c25lZG1wc2swOWloNDd2c2VudWc5OTggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1566", + "banner": "", + "date": "2024-10-28T16:00:00.000Z" } ] \ No newline at end of file From 67aafb6fd59030cf57e3b43da4d047c1ff3323ea Mon Sep 17 00:00:00 2001 From: Varun Kolanu Date: Fri, 25 Oct 2024 22:31:59 +0530 Subject: [PATCH 12/16] fix: make the edit page on github point to correct resource (#3327) --- config/edit-page-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/edit-page-config.json b/config/edit-page-config.json index dbd5fa50b9eb..32921f145d4e 100644 --- a/config/edit-page-config.json +++ b/config/edit-page-config.json @@ -13,7 +13,7 @@ }, { "value": "", - "href": "https://github.com/asyncapi/website/blob/master/pages" + "href": "https://github.com/asyncapi/website/blob/master/markdown" }, { "value": "reference/extensions/", From 6ae313db852ec1aaf4c5a42810d904f9a4438534 Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Sat, 26 Oct 2024 02:39:51 +0200 Subject: [PATCH 13/16] chore: update meetings.json and newsrooom_videos.json (#3329) --- dashboard.json | 55 +++++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/dashboard.json b/dashboard.json index 1b19808d2551..2c675544b9a6 100644 --- a/dashboard.json +++ b/dashboard.json @@ -27,6 +27,17 @@ "labels": [], "score": 19.527872034949596 }, + { + "id": "PR_kwDOBW5R_c52BRgf", + "isPR": true, + "isAssigned": false, + "title": "feat: added test for build-rss.js", + "author": "vishvamsinh28", + "resourcePath": "/asyncapi/website/pull/3101", + "repo": "asyncapi/website", + "labels": [], + "score": 19.240697446200336 + }, { "id": "PR_kwDOFLhIt85oVQqh", "isPR": true, @@ -38,17 +49,6 @@ "labels": [], "score": 18.37917367995256 }, - { - "id": "PR_kwDOBW5R_c52BRgf", - "isPR": true, - "isAssigned": false, - "title": "feat: added test for build-rss.js", - "author": "vishvamsinh28", - "resourcePath": "/asyncapi/website/pull/3101", - "repo": "asyncapi/website", - "labels": [], - "score": 17.517649913704783 - }, { "id": "I_kwDOGQYLdM5AX1lK", "isPR": false, @@ -67,7 +67,7 @@ "color": "0E8A16" } ], - "score": 15.794602381209232 + "score": 16.08177696995849 }, { "id": "PR_kwDOFLhIt853IEwA", @@ -129,26 +129,6 @@ ], "score": 12.922856493716644 }, - { - "id": "I_kwDOBW5R_c5Pi3rO", - "isPR": false, - "isAssigned": false, - "title": "Epic roadmap to the new AsyncAPI community section", - "author": "AceTheCreator", - "resourcePath": "/asyncapi/website/issues/903", - "repo": "asyncapi/website", - "labels": [ - { - "name": "keep-open", - "color": "ffee84" - }, - { - "name": "🎨 design", - "color": "0D67D3" - } - ], - "score": 11.073163907693488 - }, { "id": "I_kwDODwv8N86BkfYV", "isPR": false, @@ -164,6 +144,17 @@ } ], "score": 10.912634372471834 + }, + { + "id": "PR_kwDOFLhIt85bqKL8", + "isPR": true, + "isAssigned": false, + "title": "docs: add Bounty Program Rules", + "author": "aeworxet", + "resourcePath": "/asyncapi/community/pull/897", + "repo": "asyncapi/community", + "labels": [], + "score": 10.657920261154981 } ], "goodFirstIssues": [ From 0cc300d86580643bc4c4087cc4fa543898b2d2cb Mon Sep 17 00:00:00 2001 From: Vishvamsinh Vaghela <90895835+vishvamsinh28@users.noreply.github.com> Date: Sat, 26 Oct 2024 23:57:16 +0530 Subject: [PATCH 14/16] fix: file write errors for tools and newsroom video (#3297) Co-authored-by: Ansh Goyal --- package-lock.json | 124 ++++++++-------------------- package.json | 1 + scripts/build-newsroom-videos.js | 4 +- scripts/build-tools.js | 7 +- tests/build-newsroom-videos.test.js | 14 ++-- tests/build-tools.test.js | 18 ++-- 6 files changed, 59 insertions(+), 109 deletions(-) diff --git a/package-lock.json b/package-lock.json index bea2b1cc43e4..3e06c5cffdb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "clsx": "^2.1.0", "cssnano": "^6.0.3", "dotenv": "^16.4.4", + "fs-extra": "^11.2.0", "fuse.js": "^7.0.0", "googleapis": "^133.0.0", "gray-matter": "^4.0.3", @@ -4697,20 +4698,6 @@ "unstorage": "1.9.0" } }, - "node_modules/@netlify/ipx/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@netlify/ipx/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -4787,6 +4774,21 @@ "node": ">=14.0.0" } }, + "node_modules/@netlify/plugin-nextjs/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@netlify/plugin-nextjs/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -6253,20 +6255,6 @@ "storybook": "^8.2.9" } }, - "node_modules/@storybook/addon-docs/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@storybook/addon-essentials": { "version": "8.2.9", "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.2.9.tgz", @@ -6526,20 +6514,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@storybook/codemod": { "version": "8.2.9", "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.2.9.tgz", @@ -6829,20 +6803,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@storybook/nextjs/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@storybook/preset-react-webpack": { "version": "8.2.9", "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-8.2.9.tgz", @@ -6890,20 +6850,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@storybook/preset-react-webpack/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@storybook/preview-api": { "version": "8.2.9", "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.2.9.tgz", @@ -14227,6 +14173,21 @@ "concat-map": "0.0.1" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -14339,17 +14300,17 @@ "dev": true }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs-minipass": { @@ -27097,19 +27058,6 @@ "node": ">= 6" } }, - "node_modules/storybook/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/storybook/node_modules/globby": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", diff --git a/package.json b/package.json index 29269ed3e1d6..3885874ae365 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,7 @@ "clsx": "^2.1.0", "cssnano": "^6.0.3", "dotenv": "^16.4.4", + "fs-extra": "^11.2.0", "fuse.js": "^7.0.0", "googleapis": "^133.0.0", "gray-matter": "^4.0.3", diff --git a/scripts/build-newsroom-videos.js b/scripts/build-newsroom-videos.js index b67ee0378cf2..383927765d36 100644 --- a/scripts/build-newsroom-videos.js +++ b/scripts/build-newsroom-videos.js @@ -1,4 +1,4 @@ -const { writeFileSync } = require('fs'); +const { writeFileSync } = require('fs-extra'); const { resolve } = require('path'); const fetch = require('node-fetch-2'); @@ -19,7 +19,7 @@ async function buildNewsroomVideos(writePath) { } const data = await response.json(); - console.log(data) + console.log(data); if (!data.items || !Array.isArray(data.items)) { throw new Error('Invalid data structure received from YouTube API'); diff --git a/scripts/build-tools.js b/scripts/build-tools.js index 84965815dcc4..c5cce74a7cb1 100644 --- a/scripts/build-tools.js +++ b/scripts/build-tools.js @@ -1,7 +1,7 @@ const { getData } = require('./tools/extract-tools-github'); const { convertTools } = require('./tools/tools-object'); const { combineTools } = require('./tools/combine-tools'); -const fs = require('fs'); +const fs = require('fs-extra'); const { resolve } = require('path'); const buildTools = async (automatedToolsPath, manualToolsPath, toolsPath, tagsPath) => { @@ -9,10 +9,7 @@ const buildTools = async (automatedToolsPath, manualToolsPath, toolsPath, tagsPa let githubExtractData = await getData(); let automatedTools = await convertTools(githubExtractData); - fs.writeFileSync( - automatedToolsPath, - JSON.stringify(automatedTools, null, ' ') - ); + await fs.writeFile(automatedToolsPath, JSON.stringify(automatedTools, null, ' ')); await combineTools(automatedTools, require(manualToolsPath), toolsPath, tagsPath); } catch (err) { diff --git a/tests/build-newsroom-videos.test.js b/tests/build-newsroom-videos.test.js index 63f571466944..494f91f27341 100644 --- a/tests/build-newsroom-videos.test.js +++ b/tests/build-newsroom-videos.test.js @@ -1,22 +1,23 @@ -const { readFileSync, rmSync, mkdirSync } = require('fs'); -const { resolve } = require('path'); +const { readFileSync, removeSync, mkdirpSync } = require('fs-extra'); +const { resolve, join } = require('path'); const { buildNewsroomVideos } = require('../scripts/build-newsroom-videos'); const { mockApiResponse, expectedResult } = require('./fixtures/newsroomData'); const fetch = require('node-fetch-2'); +const os = require('os'); jest.mock('node-fetch-2', () => jest.fn()); describe('buildNewsroomVideos', () => { - const testDir = resolve(__dirname, 'test_config'); + const testDir = join(os.tmpdir(), 'test_config'); const testFilePath = resolve(testDir, 'newsroom_videos.json'); beforeAll(() => { - mkdirSync(testDir, { recursive: true }); + mkdirpSync(testDir); process.env.YOUTUBE_TOKEN = 'testkey'; }); afterAll(() => { - rmSync(testDir, { recursive: true, force: true }); + removeSync(testDir); }); beforeEach(() => { @@ -89,7 +90,7 @@ describe('buildNewsroomVideos', () => { json: jest.fn().mockResolvedValue(mockApiResponse), }); - const invalidPath = '/invalid_dir/newsroom_videos.json'; + const invalidPath = resolve(os.tmpdir(), 'invalid_dir', 'newsroom_videos.json'); try { await buildNewsroomVideos(invalidPath); @@ -97,5 +98,4 @@ describe('buildNewsroomVideos', () => { expect(err.message).toMatch(/ENOENT|EACCES/); } }); - }); diff --git a/tests/build-tools.test.js b/tests/build-tools.test.js index 2bc4592e8e11..74524ddb9775 100644 --- a/tests/build-tools.test.js +++ b/tests/build-tools.test.js @@ -2,7 +2,9 @@ const axios = require('axios'); const { resolve } = require('path'); const { buildTools } = require('../scripts/build-tools'); const { tagsData, manualTools, mockConvertedData, mockExtractData } = require('../tests/fixtures/buildToolsData'); -const fs = require('fs'); +const fs = require('fs-extra'); +const os = require('os'); +const path = require('path'); jest.mock('axios'); jest.mock('../scripts/tools/categorylist', () => ({ @@ -24,19 +26,22 @@ jest.mock('../scripts/tools/tags-color', () => ({ })); describe('buildTools', () => { - const testDir = resolve(__dirname, 'test_config'); + const testDir = path.join(os.tmpdir(), 'test_config'); const toolsPath = resolve(testDir, 'tools.json'); const tagsPath = resolve(testDir, 'all-tags.json'); const automatedToolsPath = resolve(testDir, 'tools-automated.json'); const manualToolsPath = resolve(testDir, 'tools-manual.json'); + let consoleErrorMock; beforeAll(() => { - fs.mkdirSync(testDir, { recursive: true }); - fs.writeFileSync(manualToolsPath, JSON.stringify(manualTools)); + consoleErrorMock = jest.spyOn(console, 'error').mockImplementation(() => {}); + fs.ensureDirSync(testDir); + fs.outputFileSync(manualToolsPath, JSON.stringify(manualTools)); }); afterAll(() => { - fs.rmSync(testDir, { recursive: true, force: true }); + fs.removeSync(testDir); + consoleErrorMock.mockRestore(); }); beforeEach(() => { @@ -62,7 +67,6 @@ describe('buildTools', () => { expect(combinedToolsContent["Category2"].description).toEqual(mockConvertedData["Category2"].description); expect(tagsContent).toEqual(tagsData); - }); it('should handle getData error', async () => { @@ -78,7 +82,7 @@ describe('buildTools', () => { it('should handle file write errors', async () => { axios.get.mockResolvedValue({ data: mockExtractData }); - const invalidPath = '/invalid_dir/tools.json'; + const invalidPath = path.resolve(os.tmpdir(), 'invalid_dir', 'tools.json'); try { await buildTools(invalidPath, manualToolsPath, toolsPath, tagsPath); From 90caba9e955b96cdd2f599a347fd37b19b1f7c25 Mon Sep 17 00:00:00 2001 From: Vishvamsinh Vaghela <90895835+vishvamsinh28@users.noreply.github.com> Date: Sun, 27 Oct 2024 00:07:56 +0530 Subject: [PATCH 15/16] feat: exclude scripts with import errors (#3285) Co-authored-by: Ansh Goyal --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index 9d370a6bb769..39211f19dc49 100644 --- a/jest.config.js +++ b/jest.config.js @@ -4,6 +4,7 @@ module.exports = { coverageReporters: ['text', 'lcov', 'json-summary'], coverageDirectory: 'coverage', collectCoverageFrom: ['scripts/**/*.js'], + coveragePathIgnorePatterns: ['scripts/compose.js'], // To disallow netlify edge function tests from running testMatch: ['**/tests/**/*.test.*', '!**/netlify/**/*.test.*'], }; \ No newline at end of file From c9ef36daa9e8ec2dc058746f3ce6eee52c0d7cba Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Sun, 27 Oct 2024 02:40:21 +0200 Subject: [PATCH 16/16] chore: update meetings.json and newsrooom_videos.json (#3332) --- config/meetings.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/meetings.json b/config/meetings.json index 850bac956a6c..06ad36dae20b 100644 --- a/config/meetings.json +++ b/config/meetings.json @@ -152,5 +152,12 @@ "url": "https://github.com/asyncapi/community/issues/1566", "banner": "", "date": "2024-10-28T16:00:00.000Z" + }, + { + "title": "AsyncAPI + WebSocket: The Collaborative Combo ", + "calLink": "https://www.google.com/calendar/event?eid=bGo4aXNjNzg3Ym5tbWRtb2wxZ2ZuMmtxN2sgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/1569", + "banner": "https://github.com/user-attachments/assets/0cdfc741-e61d-4710-bb0a-af9f7485ff9a", + "date": "2024-11-01T13:00:00.000Z" } ] \ No newline at end of file