feat: add auto genrated meetings template (#1218)

This commit is contained in:
tsk
2025-10-27 18:58:48 -04:00
committed by GitHub
parent a40989b6b3
commit d6824dd56f
23 changed files with 946 additions and 0 deletions

122
.github/scripts/generate-agenda.sh vendored Executable file
View File

@@ -0,0 +1,122 @@
#!/bin/bash
set -e
# Configuration
REPO="${GITHUB_REPOSITORY:-cashubtc/cdk}"
DAYS_BACK="${DAYS_BACK:-7}"
MEETING_LINK="https://meet.fulmo.org/cdk-dev"
OUTPUT_DIR="meetings"
# Calculate date range (last 7 days)
SINCE_DATE=$(date -d "$DAYS_BACK days ago" -u +"%Y-%m-%dT%H:%M:%SZ")
MEETING_DATE=$(date -u +"%b %d %Y %H:%M UTC")
FILE_DATE=$(date -u +"%Y-%m-%d")
echo "Generating meeting agenda for $MEETING_DATE"
echo "Fetching data since $SINCE_DATE"
# Function to format PR/issue list
format_list() {
local items="$1"
if [ -z "$items" ]; then
echo "- None"
else
echo "$items" | while IFS=$'\t' read -r number title url; do
echo "- [#$number]($url) - $title"
done
fi
}
# Fetch merged PRs
echo "Fetching merged PRs..."
MERGED_PRS=$(gh pr list \
--repo "$REPO" \
--state merged \
--search "merged:>=$SINCE_DATE" \
--json number,title,url \
--jq '.[] | [.number, .title, .url] | @tsv' \
2>/dev/null || echo "")
# Fetch ongoing (open) PRs
echo "Fetching ongoing PRs..."
ONGOING_PRS=$(gh pr list \
--repo "$REPO" \
--state open \
--json number,title,url,createdAt \
--jq '.[] | select(.createdAt < "'$SINCE_DATE'") | [.number, .title, .url] | @tsv' \
2>/dev/null || echo "")
# Fetch new PRs (opened in the last week)
echo "Fetching new PRs..."
NEW_PRS=$(gh pr list \
--repo "$REPO" \
--state open \
--search "created:>=$SINCE_DATE" \
--json number,title,url \
--jq '.[] | [.number, .title, .url] | @tsv' \
2>/dev/null || echo "")
# Fetch new issues
echo "Fetching new issues..."
NEW_ISSUES=$(gh issue list \
--repo "$REPO" \
--state open \
--search "created:>=$SINCE_DATE" \
--json number,title,url \
--jq '.[] | [.number, .title, .url] | @tsv' \
2>/dev/null || echo "")
# Generate markdown
AGENDA=$(cat <<EOF
# CDK Development Meeting
$MEETING_DATE
Meeting Link: $MEETING_LINK
## Merged
$(format_list "$MERGED_PRS")
## Ongoing
$(format_list "$ONGOING_PRS")
## New
### Issues
$(format_list "$NEW_ISSUES")
### PRs
$(format_list "$NEW_PRS")
EOF
)
echo "$AGENDA"
# Output to file if requested
if [ "${OUTPUT_TO_FILE:-true}" = "true" ]; then
mkdir -p "$OUTPUT_DIR"
OUTPUT_FILE="$OUTPUT_DIR/$FILE_DATE-agenda.md"
echo "$AGENDA" > "$OUTPUT_FILE"
echo "Agenda saved to $OUTPUT_FILE"
fi
# Create GitHub Discussion if requested
if [ "${CREATE_DISCUSSION:-false}" = "true" ]; then
echo "Creating GitHub discussion..."
DISCUSSION_TITLE="CDK Dev Meeting - $MEETING_DATE"
# Note: gh CLI doesn't have direct discussion creation yet, so we'd need to use the API
# For now, we'll just output instructions
echo "To create discussion manually, use the GitHub web interface or API"
echo "Title: $DISCUSSION_TITLE"
fi
# Output for GitHub Actions
if [ -n "$GITHUB_OUTPUT" ]; then
echo "agenda_file=$OUTPUT_FILE" >> "$GITHUB_OUTPUT"
echo "meeting_date=$MEETING_DATE" >> "$GITHUB_OUTPUT"
fi