Power Pilot
Published on

Authors
  • avatar
    Name
    Seb Burrell
    Twitter

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:

  1. Connecting to your development platform (Azure DevOps or GitHub)
  2. Fetching work items based on your criteria
  3. Using GPT to generate human-readable summaries
  4. 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

  • Version: v1.0.20240529.1
  • Issued: 2025-05-29
  • Software: Example

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.

Major IconEpics

Major Icon#2007 Examine+ Core

Function IconFeatures

Function Icon#11195 Alerts & Error Management
  • Defect Icon#16181 Initiating Contact Invitations Unsuccessful Resolved the defect causing unsuccessfulness in initiating contact invitations.

Major Icon#850 Examine+ Gateway

Function IconFeatures

Function Icon#1115 Proof in Advance Gateway
  • Defect Icon#16338 Invitation Codes Malfunction The complication with non-functional invitation codes has been corrected.

Major Icon#839 Examine+ Application

Function IconFeatures

Function Icon#1107 Proof (App)
  • Defect Icon#17107 Query Function in Assessments Utility Addressed.

Additional IconOthers

Defect IconBugs

  • Defect Icon#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 Item IconProduct Backlog Items

  • Product Backlog Item Icon#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:

  1. Support for additional platforms (GitLab, Bitbucket)
  2. Custom template support for different output formats
  3. Enhanced AI prompts for better summarization
  4. Integration with more CI/CD platforms
  5. 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!