package.json.
Create the four template files
All template files live in the
The supported template variables are:
templates/ directory and follow a strict naming convention using a short identifier for your group — referred to here as <shortname>.templates/invited_<shortname>A list of GitHub team mentions for everyone who is always invited to the meeting. Typically a single line referencing a GitHub Team.templates/observers_<shortname>A list of observers who consistently attend but are not full members. This file can be empty if there are no standing observers.templates/meeting_base_<shortname>A dotenv-format config file containing the meeting’s calendar and GitHub metadata. This file is parsed by dotenv at runtime.| Property | Description |
|---|---|
CALENDAR_FILTER | Exact name of the calendar event to match |
ICAL_URL | iCal URL for the group’s calendar feed |
USER | GitHub organization (typically nodejs) |
REPO | Repository where meeting issues are created |
GROUP_NAME | Full display name of the group |
AGENDA_TAG | GitHub label used to collect agenda items |
HACKMD_TEAM_NAME | HackMD team workspace for minutes documents |
JOINING_INSTRUCTIONS | Zoom link, YouTube stream URL, or other join info |
templates/minutes_base_<shortname>A HackMD-compatible Markdown template for the meeting minutes document. Use the template variables listed below — they are substituted at runtime.| Variable | Description |
|---|---|
$TITLE$ | Generated meeting title including date |
$AGENDA_CONTENT$ | Markdown list of agenda issues from GitHub |
$INVITED$ | Contents of invited_<shortname> |
$OBSERVERS$ | Contents of observers_<shortname> |
$GITHUB_ISSUE$ | URL of the created GitHub issue |
$MINUTES_DOC$ | URL of the HackMD minutes document |
Add the group to GitHub Actions workflows
The scheduled workflow discovers groups automatically by scanning The manual workflow accepts a free-form string input, so no additional options list is required — just dispatch the workflow with your group’s shortname as the Because the matrix is derived dynamically, your new group is picked up automatically once the
templates/ for meeting_base_* files, so creating the template file in Step 1 is sufficient for scheduled runs.For the manual workflow, you must also add the group as an allowed input value. Open .github/workflows/create-meeting-artifacts-manual.yml and add your shortname to the workflow_dispatch inputs:meeting_group value.The scheduled workflow (.github/workflows/create-meeting-artifacts-scheduled.yml) automatically builds a matrix from all meeting_base_* files in templates/:meeting_base_<shortname> file exists.Add npm scripts to package.json
Add two entries to the Use kebab-case for the script name (
scripts section of package.json — one for production use in CI and one for local development:my-group-meeting) because npm script names follow shell conventions where hyphens are conventional word separators. Use snake_case for the group parameter (my_group) because the parameter maps directly to filenames in the templates/ directory — for example, meeting_base_my_group — and underscores are safer in filenames across operating systems.The :dev variant passes --env-file=.env so Node.js automatically loads your local credentials without needing to export environment variables manually.Test the new group
Before running the full workflow, verify your templates are correct with a dry run:You can get the
ICAL_URL for a group’s calendar from the Node.js Foundation calendar. On the calendar page, find the group’s calendar, open its settings, and copy the iCal (.ics) subscription URL.