Add UX Forum post-session automation
Summary
Automates the two manual host tasks after each UX Forum session:
- Creates a tracking issue in
gitlab-org/gitlab-designfor the next scheduled session, pre-filled with host and speaker @-handles from the schedule - Opens an MR in
gitlab-com/content-sites/handbookto remove the completed session row from the schedule
How it works
A daily scheduled pipeline runs automations/ux-forum/ux_forum.py, which:
- Fetches the schedule markdown table from the handbook repo via API
- Compares today's date against the schedule rows
- If a session occurred today (or within the past 3 days), it acts; otherwise exits as a no-op
- Checks for idempotency (existing issue/branch) before creating anything
Files
| File | Purpose |
|---|---|
automations/ux-forum/ux_forum.py |
Main script (~300 lines) |
automations/ux-forum/config.yaml |
Project paths, tolerance, display name → @handle roster |
automations/ux-forum/README.md |
Setup, usage, configuration docs |
.gitlab/ci/ux-forum.yml |
CI jobs: scheduled run, manual run, dry-run |
.gitlab-ci.yml |
Top-level CI config with include |
Design decisions
- Schedule file as source of truth for timing — the pipeline runs daily and reads the schedule to decide whether to act, rather than hardcoding a biweekly cron that drifts
- Roster mapping — GitLab handles aren't derivable from display names; cross-referenced against verified org mapping
- CI variable gating via
$AUTOMATION— future automations in the same repo get their own triggers without interference --dry-runand--force-dateflags for safe testing
To deploy after merge
- Add masked CI/CD variable
GITLAB_TOKENwithapiscope (Settings > CI/CD > Variables) - Create pipeline schedule:
0 16 * * *, branchmain - Test with a manual dry-run first (
DRY_RUN = true)
Closes #23 (closed)
Edited by Taurie Davis