GitLab Releases: the basics
GitLab has its own Releases feature — accessible at Project → Deployments → Releases. Like GitHub Releases, it's tied to a git tag and rendered from Markdown. GitLab also supports linking releases to milestones, which makes it easy to connect release notes to the issues that were resolved.
GitLab's auto-generated release notes list merged MR (merge request) titles. Better than nothing — but the same problem as GitHub's: raw MR titles are not user-facing prose.
GitLab vs GitHub: release notes differences
| Feature | GitHub | GitLab |
|---|---|---|
| Markdown support | ✓ | ✓ (mostly compatible) |
| Milestone linking | Limited | ✓ Native |
| Asset uploads | ✓ | ✓ |
| Auto-generated from MRs | ✓ | ✓ |
| API access to create releases | ✓ | ✓ |
| Deployments integration | Limited | ✓ Native |
From GitLab commit log to a Release
How to create a GitLab Release
Get your commits
Run git log PREVIOUS_TAG..HEAD --oneline on your GitLab project. Paste the output into ChangelogAI.
Generate the release notes
Select the GitHub/GitLab Release format (they use the same Markdown). Add your version number. Hit generate.
Create the Release in GitLab
Go to Deployments → Releases → New Release. Select your tag, paste the generated notes into the description field, optionally link your milestone, and publish.
GitLab CI tip: Add a job to your .gitlab-ci.yml that runs on tags, grabs the git log, and POSTs to the GitLab Releases API. ChangelogAI's format works directly with the API's description field.
Best practices for GitLab release notes
- Link to your milestone. GitLab's milestone linking shows which issues were resolved — add the milestone URL at the bottom of every release.
- Reference closed issues. GitLab auto-links
#123— mention issue numbers in your release notes and they become clickable links. - Use GitLab Markdown features. Tables, task lists, and collapsible sections (
<details>) all render in GitLab release descriptions. - Flag breaking changes visibly. Add a dedicated Breaking Changes section with ⚡ before the normal sections.
- Publish on the tag day. Don't let releases lag behind tags — it confuses users about what's actually deployed.
Frequently Asked Questions
Does ChangelogAI connect to my GitLab account?
No. You paste your commit log as plain text — no OAuth, no API tokens, no repository access. Works for private GitLab instances too.
Is GitLab Markdown the same as GitHub Markdown?
Mostly, yes — both support the same core elements. GitLab has some extras like task lists and collapsible sections. ChangelogAI's release format uses the compatible subset that renders in both.
Can I use ChangelogAI with self-hosted GitLab?
Yes. Since you paste commit text rather than connecting your instance, it works identically with gitlab.com and self-hosted GitLab instances.
How do I link a release to a GitLab milestone?
Create the release in GitLab's UI (Deployments → Releases → New Release) and select the milestone from the dropdown. Or add the milestone URL manually to the release notes ChangelogAI generates.
Is it free?
ChangelogAI is completely free — unlimited generations, no account required.
Related Tools & Guides
Stop writing release notes by hand
Paste your commits. Get polished, publish-ready release notes in seconds. Completely free, no account needed.
Try ChangelogAI Free →