Notes by Doctor Droid

Auto-generate Changelogs for your Github Repository using AI

·

2 min read

Generate changelogs for your Github Repository using one-click and save hours of manual effort

Cover Image for Auto-generate Changelogs for your Github Repository using AI

Recently while working on our open source project, PlayBooks, we reached a place where we needed to make stable "releases" at a weekly pace.

How do "releases" help?

Our project has been having a constant stream of changes as you might notice from our changelogs or our commit frequency (from one of the weeks).

Merging everything into main was leading to too many breakages too often and we did not want to go down the path of breaking things for our users. To enable users to deploy the latest stable and face a bug free experience, we started the cadence of creating releases on Github.

Releases need detailed notes on updates & improvements

When the first release (v0.1) came out, I learnt that writing changelogs required dedicated time & energy that we couldn't continue after our first couple of weeks because it was just too much content to be put in.

To compensate and make the changelogs detailed, I wrote a small script that fetches all the PRs merged into a branch (default: main), fetches all related commits & commit messages and then creates a summary as per a popular changelog convention.

Before:

After:

This acted as the de-facto start point for any new release and then we make changes to re-arrange points as needed.

User Configuration:

While writing release notes, what was essential for us was:

  • Generate it in a standard convention: While there's no official format, I liked the format proposed by Olivier on KeepAChangelog.

  • To only consider PRs that were merged & allow user to select time range and branch.

Using a Private Repo?

Fork the github repo and add your own keys (Github, OpenAI).

Tech Stack used to build the changelog generator:

UI: Python (using Streamlit)

Backend: Python

LLM: OpenAI GPT4-turbo

Code: https://github.com/DrDroidLab/changelog-generator

Try now: https://changelog-generator.streamlit.app/