-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
chore: update meetings.json and newsrooom_videos.json #4334
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: update meetings.json and newsrooom_videos.json #4334
Conversation
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughAdds a new "Community Meeting" object to config/meetings.json with title, Google Calendar link, issue URL (#2039), empty banner, and date 2025-08-26T15:00:00.000Z. No other entries were modified. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4334 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 22 22
Lines 778 778
Branches 144 144
=========================================
Hits 778 778 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4334--asyncapi-website.netlify.app/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
config/meetings.json (2)
143-143: Consider aligning the title with established naming (“AsyncAPI Community WG Meeting”).Most similar items use the “AsyncAPI Community WG Meeting” title. If this is the same recurring meeting, align the title for searchability and consistency.
- "title": "Community Meeting", + "title": "AsyncAPI Community WG Meeting",
146-146: Banner: verify whether a banner is expected for this meeting type.Some WG entries use a shared banner, others are empty. If this is part of the Community WG series, consider adding the standard community banner for visual consistency.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
config/meetings.json(1 hunks)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: Automerge PR autoapproved by a bot
- GitHub Check: Redirect rules - asyncapi-website
- GitHub Check: Header rules - asyncapi-website
- GitHub Check: Pages changed - asyncapi-website
- GitHub Check: Test NodeJS PR - windows-latest
- GitHub Check: Lighthouse CI
- GitHub Check: Test NodeJS PR - macos-13
🔇 Additional comments (2)
config/meetings.json (2)
141-147: LGTM: Valid JSON and consistent field ordering.The new entry preserves JSON validity (comma placement is correct), follows the existing key order, and the date is in ISO 8601 UTC format consistent with the rest.
145-145: Meeting Issue Link Verified
The linked issue #2039 is open and titled “Community Meeting, 15:00 UTC Tuesday August 26th 2025,” which matches the event in config/meetings.json:145. No further action required.
| "calLink": "https://www.google.com/calendar/event?eid=bWQ1MGEwdWJlMHVnMWhjMXN1dDhtOGdxaWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", | ||
| "url": "https://github.com/asyncapi/community/issues/2039", | ||
| "banner": "", | ||
| "date": "2025-08-26T15:00:00.000Z" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify chronological ordering and detect duplicates.
Although the new date looks correctly placed, please run the checks below to ensure global ordering and no duplicate times/URLs/calLinks crept in.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="config/meetings.json"
# 1) Validate JSON
jq empty "$FILE" || { echo "Invalid JSON"; exit 1; }
# 2) Ensure required keys exist for every object
missing_keys=$(jq -r '
to_entries
| .[] as $i
| .value
| to_entries
| select(.key == "value")
' "$FILE" >/dev/null 2>&1)
jq -e 'map(has("title") and has("calLink") and has("url") and has("banner") and has("date")) | all' "$FILE" \
|| { echo "One or more entries are missing required keys"; exit 1; }
# 3) Check array is sorted by date ascending (ISO 8601 with Z sorts lexicographically)
dates=$(jq -r '.[].date' "$FILE")
if [ "$(printf "%s\n" $dates | sort)" != "$(printf "%s\n" $dates)" ]; then
echo "Entries are not strictly sorted by date ascending."
echo "Offending sequence (actual vs sorted):"
paste <(printf "%s\n" $dates) <(printf "%s\n" $dates | sort) | sed 's/\t/ | /'
exit 1
fi
echo "Dates are sorted ascending."
# 4) Detect duplicates by date, calLink, or url
dups_date=$(printf "%s\n" $dates | sort | uniq -d || true)
dups_url=$(jq -r '.[].url' "$FILE" | sort | uniq -d || true)
dups_cal=$(jq -r '.[].calLink' "$FILE" | sort | uniq -d || true)
if [ -n "$dups_date" ] || [ -n "$dups_url" ] || [ -n "$dups_cal" ]; then
echo "Potential duplicates found:"
[ -n "$dups_date" ] && echo "- Dates:" && printf "%s\n" "$dups_date"
[ -n "$dups_url" ] && echo "- URLs:" && printf "%s\n" "$dups_url"
[ -n "$dups_cal" ] && echo "- calLinks:" && printf "%s\n" "$dups_cal"
exit 1
fi
echo "No duplicates detected."Length of output: 210
#!/bin/bash
set -euo pipefail
FILE="config/meetings.json"
echo "1) Validating JSON…"
jq empty "$FILE"
echo
echo "2) Checking required keys for each entry…"
missing=$(jq -r '
to_entries[]
| select(
(.value | has("title") | not)
or (.value | has("calLink") | not)
or (.value | has("url") | not)
or (.value | has("banner") | not)
or (.value | has("date") | not)
)
| "Entry index (.key) is missing one or more of: title, calLink, url, banner, date"
' "$FILE")
if [ -n "$missing" ]; then
echo "$missing"
exit 1
else
echo "All entries have required keys."
fi
echo
echo "3) Listing dates with original index:"
jq -r 'to_entries[] | "(.key): (.value.date)"' "$FILE"
echo
echo "4) Verifying sort order:"
mapfile -t dates < <(jq -r '.[].date' "$FILE")
mapfile -t sorted < <(printf "%s\n" "${dates[@]}" | sort)
if [ "${dates[]}" = "${sorted[]}" ]; then
echo "Dates are sorted ascending."
else
echo "Dates are NOT sorted ascending."
echo "Actual | Expected(sorted)"
paste <(printf "%s\n" "${dates[@]}") <(printf "%s\n" "${sorted[@]}") | sed 's/\t/ | /'
exit 1
fi
echo
echo "5) Detecting duplicates in date, url, and calLink:"
for key in date url calLink; do
echo "- $key duplicates:"
dup=$(jq -r --arg k "$key" '.[].[$k]' "$FILE" | sort | uniq -d)
if [ -n "$dup" ]; then
echo "$dup"
exit 1
else
echo " None"
fi
done
#!/bin/bash
set -euo pipefail
FILE="config/meetings.json"
echo "1) JSON validity check:"
if jq empty "$FILE" >/dev/null 2>&1; then
echo " ✔ Valid JSON"
else
echo " ✖ Invalid JSON"
exit 1
fi
echo
echo "2) Required keys per entry:"
missing=$(jq -r '
to_entries[]
| select(
(.value | has("title") | not)
or (.value | has("calLink") | not)
or (.value | has("url") | not)
or (.value | has("banner") | not)
or (.value | has("date") | not)
)
| "Entry index (.key) missing one or more of: title, calLink, url, banner, date"
' "$FILE")
if [ -n "$missing" ]; then
echo " ✖ Found missing keys:"
echo "$missing"
exit 1
else
echo " ✔ All entries have required keys."
fi
echo
echo "3) Listing dates with their indices:"
jq -r 'to_entries[] | " [(.key)] (.value.date)"' "$FILE"
echo
echo "4) Sort order check:"
mapfile -t dates < <(jq -r '.[].date' "$FILE")
mapfile -t sorted < <(printf "%s\n" "${dates[@]}" | sort)
if [ "${dates[]}" = "${sorted[]}" ]; then
echo " ✔ Dates are sorted ascending."
else
echo " ✖ Dates are NOT sorted ascending."
echo " Actual | Expected(sorted)"
paste <(printf "%s\n" "${dates[@]}") <(printf "%s\n" "${sorted[@]}") | sed 's/\t/ | /'
exit 1
fi
echo
echo "5) Duplicate detection (date, url, calLink):"
for key in date url calLink; do
echo " - $key duplicates:"
dup=$(jq -r --arg k "$key" '.[].[$k]' "$FILE" | sort | uniq -d)
if [ -n "$dup" ]; then
echo " ✖ $dup"
exit 1
else
echo " ✔ None"
fi
done
echo
echo "No ordering issues or duplicates detected."
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="config/meetings.json"
echo "1) Validating JSON…"
jq empty "$FILE" || { echo "✖ Invalid JSON"; exit 1; }
echo
echo "2) Checking required keys…"
jq -r '
to_entries[]
| select(
(.value | has("title") | not)
or (.value | has("calLink") | not)
or (.value | has("url") | not)
or (.value | has("banner") | not)
or (.value | has("date") | not)
)
| "Entry index \(.key) missing one or more of: title, calLink, url, banner, date"
' "$FILE" | tee missing_keys.txt
if [ -s missing_keys.txt ]; then
echo "✖ Missing keys detected above."
exit 1
else
echo "✔ All entries have required keys."
fi
echo
echo "3) Listing entries with dates, URLs, and calLinks…"
jq -r 'to_entries[] | "[\(.key)] date: \(.value.date), url: \(.value.url), calLink: \(.value.calLink)"' "$FILE"
echo
echo "4) Verifying chronological sort…"
mapfile -t dates < <(jq -r '.[].date' "$FILE")
mapfile -t sorted < <(printf "%s\n" "${dates[@]}" | sort)
if [ "${dates[*]}" = "${sorted[*]}" ]; then
echo "✔ Dates are sorted ascending."
else
echo "✖ Dates are NOT sorted ascending."
echo "Actual | Expected(sorted)"
paste <(printf "%s\n" "${dates[@]}") <(printf "%s\n" "${sorted[@]}") | sed 's/\t/ | /'
exit 1
fi
echo
echo "5) Detecting duplicates in date, url, and calLink…"
for field in date url calLink; do
echo "- $field duplicates:"
dup=$(jq -r --arg f "$field" '.[].[$f]' "$FILE" | sort | uniq -d)
if [ -n "$dup" ]; then
echo " ✖ $dup"
exit 1
else
echo " ✔ None"
fi
done
echo
echo "No ordering issues or duplicates detected."Length of output: 657
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="config/meetings.json"
echo "1) JSON validity check:"
if jq empty "$FILE" >/dev/null 2>&1; then
echo " ✔ Valid JSON"
else
echo " ✖ Invalid JSON"
exit 1
fi
echo
echo "2) Checking required keys for each entry:"
missing=$(jq -r '
to_entries[]
| select(
(.value | has("title") | not)
or (.value | has("calLink") | not)
or (.value | has("url") | not)
or (.value | has("banner") | not)
or (.value | has("date") | not)
)
| "Entry index \(.key) missing one or more of: title, calLink, url, banner, date"
' "$FILE")
if [ -n "$missing" ]; then
echo " ✖ Missing keys detected:"
echo "$missing"
exit 1
else
echo " ✔ All entries have required keys."
fi
echo
echo "3) Listing entries with date, url, and calLink:"
jq -r 'to_entries[] | "[\(.key)] date: \(.value.date), url: \(.value.url), calLink: \(.value.calLink)"' "$FILE"
echo
echo "4) Verifying chronological sort order:"
mapfile -t dates < <(jq -r '.[].date' "$FILE")
mapfile -t sorted < <(printf "%s\n" "${dates[@]}" | sort)
if [ "${dates[*]}" = "${sorted[*]}" ]; then
echo " ✔ Dates are sorted ascending."
else
echo " ✖ Dates are NOT sorted ascending."
echo " Actual | Expected(sorted)"
paste <(printf "%s\n" "${dates[@]}") <(printf "%s\n" "${sorted[@]}") | sed 's/\t/ | /'
exit 1
fi
echo
echo "5) Detecting duplicates in date, url, and calLink:"
for field in date url calLink; do
dup=$(jq -r --arg f "$field" '.[].[$f]' "$FILE" | sort | uniq -d)
if [ -n "$dup" ]; then
echo " ✖ $field duplicates: $dup"
exit 1
else
echo " ✔ No duplicate $field values."
fi
done
echo
echo "✅ No ordering issues or duplicates detected."Length of output: 5865
Fix chronological ordering in config/meetings.json
Manual inspection shows the meetings.json array is not strictly sorted by the "date" field. Please reorder the entries so that each event’s ISO-8601 timestamp ascends. For example:
2025-05-15T16:00:00.000Z(index 2) should come before2025-05-20T15:00:00.000Z(index 1)2025-05-29T10:00:00.000Z(index 6) should come before2025-05-29T16:00:00.000Z(index 3)2025-06-17T15:00:00.000Z(index 10) should come before2025-06-19T16:00:00.000Z(index 8) and2025-06-24T14:00:00.000Z(index 9)2025-07-03T16:00:00.000Z(index 14) should come before2025-07-08T14:00:00.000Z(index 12) and2025-07-15T15:00:00.000Z(index 13)2025-07-29T13:00:00.000Z(index 16) should come before2025-07-29T15:00:00.000Z(index 15)2025-08-07T16:00:00.000Z(index 18) should come before2025-08-12T15:00:00.000Z(index 17)
No duplicate date, url, or calLink values were detected. Once reordered, the file will pass JSON-sort and duplication checks.
🤖 Prompt for AI Agents
In config/meetings.json around line 147, the meetings array is not strictly
sorted by the "date" ISO-8601 timestamps; reorder the objects so dates ascend
chronologically (e.g., place 2025-05-15T16:00:00.000Z before
2025-05-20T15:00:00.000Z, 2025-05-29T10:00:00.000Z before
2025-05-29T16:00:00.000Z, 2025-06-17T15:00:00.000Z before
2025-06-19T16:00:00.000Z and 2025-06-24T14:00:00.000Z, 2025-07-03T16:00:00.000Z
before 2025-07-08T14:00:00.000Z and 2025-07-15T15:00:00.000Z,
2025-07-29T13:00:00.000Z before 2025-07-29T15:00:00.000Z, and
2025-08-07T16:00:00.000Z before 2025-08-12T15:00:00.000Z); preserve each object
exactly (no field changes), ensure no duplicates of date/url/calLink are
introduced, and verify the final JSON is valid and strictly ascending by date so
it passes the JSON-sort and duplication checks.
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit