🌅 Aurora — Autonomous Release Intelligence
Five agents. One tag push. Zero changelog dread.
AURORA is a GitLab Duo Agent Platform flow that eliminates the last manual step in every engineering release cycle: writing about it. Push a tag; ten minutes later your CHANGELOG is updated, your GitLab Release is live, and your Slack message, email copy, and LinkedIn post are waiting in a merge request.
The Problem
Every engineering team ships code well. Nobody ships documentation of that code well.
Writing release notes is:
- Tedious — manually trawling through 30 merged MRs for the month
- Inconsistent — no two engineers format a changelog entry the same way
- Delayed — it happens after the tag, so releases sit in limbo
- Cross-functional — engineers write technical notes; PMs want business language; marketing wants a tweet
Tools like Release Drafter help with templates but still require humans to categorise every MR. AURORA removes that entirely.
What It Does
git tag v1.2.3 && git push origin v1.2.3
│
▼
┌─────────────────────────────────────────────────────────┐
│ AURORA Pipeline │
│ │
│ 🌾 Harvester ──► 🏷️ Classifier ──► ✍️ Writer │
│ │
│ ──► 📣 Announcer ──► 🚀 Publisher │
└─────────────────────────────────────────────────────────┘
│
▼
✅ CHANGELOG.md updated (MR opened)
✅ GitLab Release created with full notes
✅ Slack message ready to paste
✅ Email newsletter copy drafted
✅ Social post (≤280 chars) generated
The Five Agents
| Agent | Role | Key tools |
|---|---|---|
| Harvester | Finds all merged MRs between the previous tag and current tag; reads release policy | list_merge_requests, gitlab_api_get, run_git_command |
| Classifier | Assigns each MR a type (breaking/feat/fix/security/perf/docs/chore), extracts user-facing summary, flags migration requirements | list_merge_request_diffs, get_merge_request |
| Writer | Generates Keep-a-Changelog entry + rich GitLab Release notes with executive summary, highlights table, and upgrade guide | get_repository_file, gitlab_blob_search |
| Announcer | Drafts Slack message, email newsletter copy, and social post — in the tone your team configures | read_file |
| Publisher | Commits CHANGELOG.md, commits announcement copy, opens MR, creates GitLab Release via API | create_commit, create_merge_request, gitlab_api_get |
How to Trigger
Automatic — on every tag push
git tag v1.2.3 && git push origin v1.2.3
# AURORA fires via pipeline_hooks consumer
Manual — mention in any issue or MR
@aurora release tag: v1.2.3
Scheduled Configure a GitLab schedule for nightly pre-release notes generation.
Configuration — policy/release-policy.yml
Everything AURORA decides is driven by a single YAML file checked into your repo. No code changes. No redeployment.
# Tell AURORA what your labels mean
label_type_map:
"enhancement": feat
"bug": fix
"security": security
# Control what appears in the changelog
changelog:
include_chore: false
include_docs: true
# Control announcement tone
announcement:
tone: "dual" # technical | executive | dual
project_display_name: "Acme Platform"
social_hashtags:
- "#DevOps"
- "#GitLab"
# Safety gates
safety:
dry_run: false
min_mr_count: 1
skip_if_release_exists: false
Sample Output
CHANGELOG entry
## [v1.2.3] - 2026-03-25
> ⚠️ **UPGRADE NOTICE** — This release contains 1 breaking change. See upgrade guide below.
### ⚠️ Breaking Changes
- **[config]** Renames `DATABASE_URL` to `DB_CONNECTION_STRING`. `Migration:` Update your `.env` and CI/CD variables. (!87)
### 🔒 Security
- **[deps]** Patches CVE-2026-1234 in the `cryptography` package by upgrading to 42.0.5. (!91)
### ✨ Added
- **[auth]** Enables OAuth2 PKCE flow for more secure browser-based token exchange. (!84)
- **[dashboard]** Adds real-time pipeline status widget to the project overview page. (!82)
### 🐛 Fixed
- **[api]** Resolves a race condition in the webhook delivery queue that caused duplicate events. (!89)
- **[search]** Corrects pagination offset for search results beyond page 5. (!86)
Slack message (technical tone)
🚀 Released: Acme Platform v1.2.3
This release hardens authentication, patches a critical CVE, and ships the
real-time pipeline dashboard you've been waiting for.
• ⚠️ [config] DATABASE_URL → DB_CONNECTION_STRING (breaking — update your .env)
• 🔒 [deps] CVE-2026-1234 patched in cryptography 42.0.5
• ✨ [auth] OAuth2 PKCE flow now available
• ✨ [dashboard] Real-time pipeline status widget
• 🐛 [api] Webhook duplicate-delivery race condition fixed
⚠️ ACTION REQUIRED: See upgrade guide → https://gitlab.com/.../releases/v1.2.3
📦 Full release notes: https://gitlab.com/.../releases/v1.2.3
Thanks to 6 contributors: @jsmith, @priya, @tanaka, @ola, @marco, @lin
Architecture
AURORA runs entirely on the GitLab Duo Agent Platform. No external infrastructure, no secrets to manage outside of GitLab, no separate dashboard.
The flow chains all five agents sequentially in a single YAML file. Each agent has a deliberately scoped toolset to keep reasoning focused and token usage efficient.
Policy-as-code means both agents and humans read the same source of truth. When the
Classifier decides "this MR label maps to feat", and the Writer formats it, both
decisions trace back to the same label_type_map entry.
What's Next for AURORA
- Multi-repository releases — aggregate changelog entries across a monorepo or service mesh
- Milestone integration — map releases to GitLab milestones and auto-close them on publish
- Changelog diff reviewer — a sixth agent that detects gaps ("5 MRs have no user-facing summary")
- Historical analysis — track velocity metrics from changelog data over time
- Webhook delivery — push Slack/Teams messages directly instead of just drafting them
- Policy marketplace — shareable templates for SaaS products, OSS projects, regulated industries
Project Structure
aurora/
├── .ai-catalog-mapping.json # GitLab AI Catalog sync metadata
├── .gitlab-ci.yml # CI: YAML validation + tag-triggered release job
├── AGENTS.md # Agent rules (read by GitLab Duo)
├── README.md # This file
├── agents/
│ ├── harvester.yml # Stage 1: collect merged MRs
│ ├── classifier.yml # Stage 2: classify change types
│ ├── writer.yml # Stage 3: generate changelog + release notes
│ ├── announcer.yml # Stage 4: draft team announcements
│ └── publisher.yml # Stage 5: commit, MR, GitLab Release
├── flows/
│ └── flow.yml # Main 5-agent pipeline definition
└── policy/
└── release-policy.yml # ← Configure AURORA here
Built With
- ci/cd
- claude
- duo
- gitlab
- yaml
Log in or sign up for Devpost to join the conversation.