This document summarizes the automated workflows configured for the VanJS meetup repository.
File: .github/workflows/close-past-meetups.yml
Purpose: Automatically closes past meetup milestones and their associated issues.
Triggers:
- Daily at 10 AM PST (6 PM UTC)
- Manual trigger via workflow dispatch
Key Features:
- Uses PST/PDT timezone for accurate date comparisons
- Closes milestones that are 1+ days past their due date
- Automatically closes all open issues within past milestones
- Special thank-you messages for speaker issues (Talk/Demo labels)
- Generic closing messages for other meetup-related issues
- Safety features: dry-run mode and configurable enable/disable
- Rate limiting to prevent GitHub API abuse
Configuration Variables:
MEETUP_CLEANUP_ENABLED: Enable/disable cleanup (default: true)CLEANUP_DRY_RUN: Run in test mode without making changes
File: .github/workflows/speaker-date-selection.yml
Purpose: Automatically posts available presentation dates when speakers submit talk proposals.
Triggers:
- Issues labeled with "Talk" or "Demo"
Key Features:
- Fetches open milestones ending with "Meetup"
- Shows only future dates within 6 months
- Limits to milestones with fewer than 3 speakers
- Creates interactive checkboxes for date selection
- Prevents duplicate comments with time-based checks
- Updates availability when Event label is applied
Configuration Variables:
SPEAKER_DATE_SELECTION_ENABLED: Enable/disable automation (default: true)
File: .github/workflows/speaker-date-selected.yml
Purpose: Notifies maintainers when speakers select their preferred presentation dates.
Triggers:
- Issue comments are edited (specifically checkbox interactions)
Key Features:
- Monitors for date selection checkbox changes
- Sends notifications to maintainers via GitHub mentions
- Sends email notifications (if configured with SendGrid)
- Posts confirmation messages to speakers
- Prevents duplicate notifications with timing checks
- Only processes official date selection comments
Configuration Variables:
SPEAKER_NOTIFICATIONS_ENABLED: Enable/disable notifications (default: true)MAINTAINERS: Comma-separated list of GitHub usernamesMAINTAINER_EMAILS: Comma-separated list of email addressesFROM_EMAIL: Sender email address for notifications
Required Secrets:
SENDGRID_API_KEY: SendGrid API key for email notifications
These workflows work together to automate the speaker management process:
- Speaker submits talk proposal β Issue created with Talk/Demo label
- Date selection workflow β Posts available meetup dates as checkboxes
- Speaker selects dates β Edits comment to check preferred dates
- Notification workflow β Alerts maintainers and confirms with speaker
- Maintainer assigns to milestone β Speaker is scheduled for selected meetup
- After meetup occurs β Cleanup workflow closes past milestones and thanks speakers
All workflows can be disabled via repository variables:
- Set
MEETUP_CLEANUP_ENABLED=falseto disable meetup cleanup - Set
SPEAKER_DATE_SELECTION_ENABLED=falseto disable date selection - Set
SPEAKER_NOTIFICATIONS_ENABLED=falseto disable maintainer notifications - Set
CLEANUP_DRY_RUN=trueto test cleanup without making changes