Skip to content

Automate the meetup.com network event - #53

Merged
MasonEgger merged 3 commits into
mainfrom
meetup-com-event
Aug 25, 2026
Merged

Automate the meetup.com network event#53
MasonEgger merged 3 commits into
mainfrom
meetup-com-event

Conversation

@MasonEgger

Copy link
Copy Markdown
Member

Automates the last manual event listing: the monthly meetup.com event, verified live (September is published and fanned out to all 10 PyTexas groups with the banner).

What changed

  • scripts/create_meetup_event.py — creates one network event on pytexas-virtual-meetup-austin that propagates network-wide (proNetworkEvents.filterId), ONLINE at the Discord invite, first Tuesday 8-9 PM Central, as a DRAFT; converts the promo card to JPEG and sets it as the event photo. --dry-run prints the payload.
  • references/meetup-event.md — the full playbook: OAuth (refresh-token rotation, one-time re-auth), the network filterId, the JPEG-only photo gotcha, topic picking, draft→publish.
  • SKILL.md — Step 11 item 2, overview, and resource list now mark meetup.com automated.
  • secretsMEETUP_API_KEY, MEETUP_API_SECRET, MEETUP_REFRESH_TOKEN (encrypted).
  • .gitignore.meetup and *.har so local credential drops can't be committed.

Key findings (in the reference doc)

  • Consumer key/secret can't mint a token headless; only authorization-code + refresh-token grants exist. Refresh token rotates every use, so the script persists the new one each run.
  • Network propagation requires proNetworkEvents.filterId (the network's all-groups filter). Without it the event stays single-group.
  • Event photos must be JPEG: a PNG upload 200s to S3 but never processes (403s forever); the web UI converts client-side. The script converts to JPEG.

Merge note

This branch and #52 (Discord event) both add keys to secrets/meetup.sops.env and edit SKILL.md Step 11, so merging both will conflict. Resolution: keep all secret keys and both Step 11 items (Discord + meetup.com). Happy to help resolve at merge time.

Creating the monthly meetup.com listing was the last manual event step. It
now runs through create_meetup_event.py: one network event on the Austin
group that propagates to all ten PyTexas groups, with the promo card as the
event photo, created as a draft for review.

The hard-won details are in references/meetup-event.md and encoded in the
script:

* Auth is OAuth. The consumer key/secret cannot mint a token headless (only
  the authorization-code and refresh-token grants exist), so a one-time
  browser authorize produced a refresh token, stored in sops. Meetup rotates
  the refresh token on every use, so the script writes the new one back each
  run.
* Network propagation needs proNetworkEvents.filterId, the network's
  all-groups filter; without it the event stays single-group.
* Event photos must be JPEG. A PNG upload is accepted by S3 but never
  processed by Meetup's photoscaler, so the script converts to JPEG first.
* Topics are picked per talk from the group's active topics plus a
  suggestTopics search, up to five.

Adds MEETUP_API_KEY, MEETUP_API_SECRET, and MEETUP_REFRESH_TOKEN to the
encrypted secrets, and gitignores the local .meetup and *.har credential
drops so they can't be committed.
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

The Discord announcement templates linked the meetup.com event, which we
don't want in those messages, and still pointed at last season's Canva
deck. Drop the meetup.com event line (and its required field) and move
DECK_URL/DECK_NAME to the 2027 Meetup Banners deck. references/announcements.md
gets the same deck update plus a note to roll the deck over each September.

Also refreshes the rotated meetup refresh token in the encrypted secrets.
Integrate #50, #51, and #52 from main. Two conflicts resolved:

* SKILL.md: keep both the Discord (#52) and meetup.com (#53) event steps
  as automated in the overview, Step 11, and the resource list.
* secrets/meetup.sops.env: merge to the union of all keys, the Discord
  bot token from main plus the Meetup OAuth key, secret, and refresh
  token from this branch.
@MasonEgger
MasonEgger merged commit c6a57dd into main Aug 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant