- Published on
- Authors
- Name
- Seb Burrell
- @Hankanman
Ever found yourself spending hours manually compiling release notes, trying to make sense of dozens of work items, pull requests, and commits? As a developer working on enterprise projects, I frequently encountered this challenge. That's why I created Changelog Weaver - an intelligent automation tool that transforms the tedious process of release note generation into a streamlined, AI-powered workflow.
The Problem
Release notes are crucial for keeping stakeholders informed about software changes, but creating them is often a time-consuming and error-prone process. Developers need to:
- Gather work items from different sources (Azure DevOps, GitHub)
- Organize them into a coherent structure
- Write clear, concise summaries
- Format everything consistently
- Maintain links to original items for reference
This manual process can take hours, especially for large releases with numerous changes.
Enter Changelog Weaver
Changelog Weaver automates this entire process by:
- Connecting to your development platform (Azure DevOps or GitHub)
- Fetching work items based on your criteria
- Using GPT to generate human-readable summaries
- Organizing everything into a beautifully formatted Markdown document
Here's a quick look at the generated output:
Example Generated Release Notes
Release Notes for Example Software v1.0.20240529.1
Summary
In this iteration of Examine Plus, a series of enhancements and fixes were implemented to augment the application's effectiveness. Principal updates comprised advancements in the primary administration utilities for overseeing assessments and files, alongside the creation of a gateway permitting external parties to contribute proofs prior to assessments. The team rectified crucial defects concerning failure in initiation contacts and malfunctioning query Features within the assessments utility. Moreover, a script malfunction impacting the Automate feature was rectified, while enhancements in the automation workflows were realized through the incorporation of a Try Catch approach for the session invite workflow, boosting the overall system reliability.
Epics
#2007 Examine+ Core
Features
#11195 Alerts & Error Management
- #16181 Initiating Contact Invitations Unsuccessful Resolved the defect causing unsuccessfulness in initiating contact invitations.
#850 Examine+ Gateway
Features
#1115 Proof in Advance Gateway
- #16338 Invitation Codes Malfunction The complication with non-functional invitation codes has been corrected.
#839 Examine+ Application
Features
#1107 Proof (App)
- #17107 Query Function in Assessments Utility Addressed.
Others
Bugs
- #17713 Script Malfunction Addressed the script malfunction that caused a pop-up on the Account Interface when selecting an account in Automate Power.
Product Backlog Items
- #15981 Flow "Auto | Evidence | Dispatch Meeting Invitation" should incorporate Try Catch Approach and a condition trigger Incorporated Try Catch Approach in the "Auto | Evidence | Dispatch Meeting Invitation" flow and established a trigger condition for the item type as described.
Key Features
1. Multi-Platform Support
The tool is designed to work seamlessly with both Azure DevOps and GitHub. It automatically detects the platform from your configuration and adapts its behavior accordingly:
def _create_platform_client(self, config: Config) -> PlatformClient:
if self.platform.platform == Platform.AZURE_DEVOPS:
return DevOpsPlatformClient(
DevOpsConfig(
url=config.project.platform.base_url,
org=config.project.platform.organization,
project=config.project.ref,
query=config.project.platform.query,
pat=config.project.platform.access_token,
repo_name=config.project.platform.repo_name,
)
)
if self.platform.platform == Platform.GITHUB:
return GitHubPlatformClient(
GitHubConfig(
access_token=config.project.platform.access_token,
repo_name=config.project.ref,
)
)
2. Intelligent Summarization
One of the standout features is the AI-powered summarization. Using GPT, Changelog Weaver can:
- Generate concise summaries of individual work items
- Create an overall release summary that captures the key themes
- Maintain technical accuracy while being readable
3. Hierarchical Organization
The tool automatically organizes work items into a logical hierarchy:
- Epics/Features at the top level
- User Stories and Tasks grouped under their parents
- Commits and other items properly categorized
This structure makes it easy for readers to understand the scope and impact of changes.
4. CI/CD Integration
Changelog Weaver is designed to work in automated environments. It provides:
- GitHub Actions workflow for automatic generation on release
- Azure DevOps pipeline configuration
- Environment variable-based configuration for flexibility
Here's a snippet from the GitHub Actions workflow:
name: Generate Changelog
on:
release:
types: [created]
jobs:
generate-changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
Implementation Details
Architecture
The project follows a clean, modular architecture:
- Platform Clients: Abstract base class with specific implementations for Azure DevOps and GitHub
- Configuration: Environment-based configuration with sensible defaults
- Work Item Processing: Hierarchical processing with support for different item types
- Output Generation: Customizable Markdown generation with optional HTML conversion
Error Handling
Robust error handling ensures the tool gracefully handles common issues:
- API rate limiting
- Authentication failures
- Missing work items
- Invalid configurations
Performance Optimization
Several optimizations keep the tool running efficiently:
- Asynchronous API calls for parallel processing
- Batch processing of work items
- Caching of API responses
- Efficient hierarchy building algorithms
Getting Started
Using Changelog Weaver is straightforward. First, install the package:
git clone https://github.com/Hankanman/Changelog-Weaver.git
cd Changelog-Weaver
pip install -r requirements.txt
Create a .env
file with your configuration:
SOLUTION_NAME=YourProject
RELEASE_VERSION=1.0.0
PROJECT_URL=https://dev.azure.com/org/project
# ... other configuration options
Then run the tool:
python -m changelog_weaver
Future Plans
I'm actively working on several exciting enhancements:
- Support for additional platforms (GitLab, Bitbucket)
- Custom template support for different output formats
- Enhanced AI prompts for better summarization
- Integration with more CI/CD platforms
- API endpoint for service integration
Conclusion
Changelog Weaver transforms a traditionally manual, time-consuming process into an automated, intelligent workflow. Whether you're working with Azure DevOps or GitHub, it provides a consistent, professional way to generate release notes.
Want to try it out? Check out the GitHub repository and let me know what you think. I'm always looking for feedback and contributions to make the tool even better.
Remember to star the repository if you find it useful, and feel free to open issues or pull requests if you have suggestions for improvements!