Inspiration
I'm a DevOps engineer. On every release, someone has to write release notes by hand: digging through Jira, grouping issues, and copying them into Confluence. It's slow, and when a release is rushed, the notes get skipped or miss important fixes. I wanted teams to ship with confidence and always communicate what changed, without extra work.
What it does
- Ready to ship? check: before generating notes, the app flags unfinished items in the version, open High/Highest bugs, and Done issues with no fix version that might be missed.
- One-click release notes: pick a Jira version and the app groups all completed issues into New Features, Bug Fixes and Improvements, with priorities and links back to Jira. Unfinished work is left out automatically.
- Publish to Confluence: creates a clean page with a metadata header (version, project, release date, generated date). Publishing again updates the same page instead of creating duplicates.
- Auto-publish on release: when a version is released in Jira, the app automatically generates and publishes the notes. Zero clicks.
- Rovo agent – Release Notes Assistant: generates notes in chat for two audiences: technical (issue keys and priorities) or customer-friendly (plain language, no keys). It asks which audience if unclear, only states what the issues actually say, and can publish to Confluence from chat. An "Ask Rovo" button on the page opens the agent with the version pre-filled.
How we built it
Built entirely on Atlassian Forge: a Jira project page (UI Kit) with resolvers calling the Jira REST API (versions, JQL search with pagination) and the Confluence v2 API (spaces, create/update pages). A Forge trigger on the Jira version-released event powers auto-publish, with per-project settings stored in Forge storage. The Rovo agent reuses the same core logic through Forge actions, so the page, the trigger and the agent all share one tested code path. I used Claude (Claude Code, Claude in Chrome and the Claude chat) as an AI pair programmer throughout.
Challenges we ran into
- Forge CLI required a newer Node.js version than I had installed.
- Adding scopes silently blocked deploys until I approved the major version upgrade and reinstalled in both Jira and Confluence.
- Rovo chat wasn't available on my free developer site, so I moved testing to a Forge demo site that includes Rovo.
- The AI sometimes added benefits that weren't in the Jira issues (like "faster" or "more secure"), so I added grounding rules: it rephrases in plain words but never claims outcomes the issues don't state.
Accomplishments that we're proud of
A complete, working app with four connected features (readiness check, publishing, auto-publish and a Rovo agent) built on a shared core, plus responsible AI output that stays accurate for customer-facing notes.
What we learned
How Forge apps work end to end: manifests, scopes and major versions, resolvers, triggers, storage, multi-product installs, production vs development environments, and building Rovo agents with actions.
What's next for DevOps Context App
Pulling in deployment and pull-request data from Bitbucket, a release health score over time, and publishing to the Atlassian Marketplace.