Shared release notes tool for Aurea products (Monitor, Messenger, Pivotal CRM).
A single CLI tool that:
- Takes a checked-out repo + two git refs (tags, SHAs, branches)
- Walks submodules to find what changed
- Gathers PRs, issues, commits per changed repo
- Correlates to support tickets (Kayako/Zendesk)
- Outputs structured YAML
- Fills a Google Docs template
- Optionally exports PDF
Product differences are handled by configuration, not code.
repo + two refs → gather-changes.py → changes.yaml
↓
md-to-yaml.py (Bedrock) → release-notes-data.yaml
↓
gdrive-fill-template.py → Google Doc [DRAFT]
↓
gdrive-export-pdf.py → PDF
↓
publish.gs (Apps Script) → removes DRAFT, saves PDF
| Script | Description |
|---|---|
bin/gather-changes.py |
Git diff + PR/issue/ticket collection |
bin/md-to-yaml.py |
MD → structured YAML via Bedrock |
bin/gdrive-fill-template.py |
YAML → Google Doc (generic, YAML-driven) |
bin/gdrive-export-pdf.py |
Google Doc → PDF export |
bin/md-to-pdf.sh |
MD → PDF via Pandoc + WeasyPrint (local preview) |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtFor Google Drive scripts:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_REFRESH_TOKEN
For md-to-yaml.py (Bedrock):
- AWS credentials (via
AWS_PROFILE, env vars, or instance role)
# 1. Gather changes between two refs
bin/gather-changes.py /path/to/repo v6.6.5.10 v6.7.0.0 --config configs/pivotal.yaml
# 2. Convert markdown release notes to YAML
bin/md-to-yaml.py release-notes.md release-notes-data.yaml --version 6.7.0.0 --release-name "6.7.0.0"
# 3. Fill Google Docs template
bin/gdrive-fill-template.py release-notes-data.yaml --draft
# 4. Export PDF
bin/gdrive-export-pdf.py <doc-id> release-notes.pdf
# 5. Local preview (no Google account needed)
bin/md-to-pdf.sh release-notes.md release-notes.pdf --product-name "Pivotal CRM" --version "6.7.0.0"Each product has a YAML config in configs/:
configs/monitor.yamlconfigs/messenger.yamlconfigs/pivotal.yaml