ReleaseCraft.Engine
1.1.0-preview
dotnet add package ReleaseCraft.Engine --version 1.1.0-preview
NuGet\Install-Package ReleaseCraft.Engine -Version 1.1.0-preview
<PackageReference Include="ReleaseCraft.Engine" Version="1.1.0-preview" />
<PackageVersion Include="ReleaseCraft.Engine" Version="1.1.0-preview" />
<PackageReference Include="ReleaseCraft.Engine" />
paket add ReleaseCraft.Engine --version 1.1.0-preview
#r "nuget: ReleaseCraft.Engine, 1.1.0-preview"
#:package ReleaseCraft.Engine@1.1.0-preview
#addin nuget:?package=ReleaseCraft.Engine&version=1.1.0-preview&prerelease
#tool nuget:?package=ReleaseCraft.Engine&version=1.1.0-preview&prerelease
π― ReleaseCraft
ReleaseCraft is an automated release notes generator that transforms GitHub pull requests into beautifully formatted release notes. Stop writing release notes manuallyβlet ReleaseCraft do it for you!
π Visit our website (coming soon) | π Documentation | π¬ Community
π¦ Current Release Status
Production Ready (v0.1 MVP):
- β GitHub connector with Octokit
- β Markdown release notes generator
- β CLI console application
- β Integration tests with real GitHub API
- β Comprehensive documentation
In Development (Code Exists, Not Production):
- π AI summarization (OpenAI GPT-4)
- π Multiple output formats (JSON, HTML, CSV)
- π REST API (ASP.NET Core)
- π Web UI (Blazor WebAssembly)
Planned Features:
- β³ Config file support (.releasecraftrc.json)
- β³ GitHub Action automation
- β³ NuGet package publication
- β³ GitHub Marketplace listing
- β³ SaaS infrastructure (Auth, Billing, Monitoring)
Note: This is an active development project. Features marked π exist in the codebase but are experimental and not production-ready yet.
β¨ Features
- π Automated Generation - Fetches merged PRs between two git tags automatically
- π Smart Categorization - Organizes changes by labels (features, bugs, docs, etc.)
- π€ AI-Powered Summarization - Generate intelligent release summaries with OpenAI GPT-4
- π Tone Control - Adapt content for different audiences (Professional, Casual, Marketing, Technical)
- π¨ Multiple Formats - Supports Markdown, JSON, HTML, and CSV formats
- π₯οΈ Web UI - Modern graphical interface for non-technical users
- π REST API - HTTP endpoints for programmatic access and integrations
- β‘ CLI & Library - Use as a command-line tool or integrate into your .NET application
- π GitHub Integration - Seamless integration with GitHub API via Octokit
- ποΈ Extensible Architecture - Hexagonal design allows custom adapters and generators
π Quick Start
Prerequisites
- .NET 10.0 SDK or later
- GitHub Personal Access Token (optional, but recommended for higher rate limits)
Installation
Option 1: Install as Global Tool (Recommended)
Install the ReleaseCraft CLI as a global .NET tool:
dotnet tool install -g ReleaseCraft.CLI
Then use it from anywhere:
releasecraft --owner microsoft --repo vscode --from-tag 1.84.0 --to-tag 1.85.0
Option 2: Install as Library
Add ReleaseCraft packages to your .NET project:
# Install all components (recommended)
dotnet add package ReleaseCraft
# Or install specific components
dotnet add package ReleaseCraft.Engine # Core interfaces and models
dotnet add package ReleaseCraft.Connectors.GitHub # GitHub integration
dotnet add package ReleaseCraft.Templates # Markdown, JSON, HTML, CSV generators
dotnet add package ReleaseCraft.AI # AI-powered summarization
Option 3: Clone and Build from Source
Clone and Build:
git clone https://github.com/releasecraft/releasecraft-core.git
cd releasecraft-core
dotnet build ReleaseCraft.slnx -c Release
Basic Usage
Generate release notes from the command line:
# Using global tool
releasecraft --owner microsoft --repo vscode --from-tag 1.84.0 --to-tag 1.85.0
# Or from source
cd src/ReleaseCraft.CLI
dotnet run -- --owner microsoft --repo vscode --from-tag 1.84.0 --to-tag 1.85.0
With authentication (recommended):
export GITHUB_TOKEN="your_github_token_here"
releasecraft --owner kubernetes --repo kubernetes --from-tag v1.28.0 --to-tag v1.29.0
Save to a file:
releasecraft --owner facebook --repo react --from-tag v18.0.0 --to-tag v18.2.0 --output release-notes.md
With AI summarization:
export OPENAI_API_KEY="sk-your-openai-key"
releasecraft --owner microsoft --repo vscode --from-tag 1.84.0 --to-tag 1.85.0 --ai
With AI and custom tone:
releasecraft --owner facebook --repo react --from-tag v18.0.0 --to-tag v18.2.0 --ai --tone marketing
π REST API (v1.0+) π IN DEVELOPMENT
Note: REST API exists in the codebase but is not yet production-ready. Use for local development only.
ReleaseCraft includes a REST API (experimental) for programmatic access and integrations.
Quick Start
Start the API server:
cd src/ReleaseCraft.API
dotnet run
The API will be available at http://localhost:5026 with Swagger UI at http://localhost:5026/swagger/ui
API Endpoints
POST /api/release-notes- Generate release notesPOST /api/validate- Validate repository and tagsGET /api/formats- List supported formatsGET /api/health- Health check
Example: Generate Release Notes via API
curl -X POST http://localhost:5026/api/release-notes \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ghp_your_token" \
-d '{
"owner": "microsoft",
"repo": "vscode",
"fromTag": "1.90.0",
"toTag": "1.90.1",
"format": "markdown"
}'
For full API documentation, see src/ReleaseCraft.API/README.md
##π₯οΈ Web UI (v1.0+) π IN DEVELOPMENT
Note: Web UI exists in the codebase but is not yet production-ready. Use for local development only.
ReleaseCraft includes a modern web interface (experimental) for generating release notes without using the command line.
Perfect for product managers, marketing teams, and anyone who prefers a graphical interface.
Features
- π Easy Configuration - Input repository details through a clean form
- π¨ Format Selection - Choose from Markdown, JSON, HTML, or CSV
- π₯ Audience Modes - Internal (technical) or Client (non-technical)
- π€ AI Enhancement - Optional AI features with tone control
- ποΈ Live Preview - See your release notes in real-time
- π₯ Export Options - Download or copy to clipboard
Quick Start
1. Start the API server:
cd src/ReleaseCraft.API
dotnet run
2. Start the Web UI:
cd src/ReleaseCraft.Web
dotnet run
3. Open your browser:
Navigate to https://localhost:5001 and start generating release notes!
Screenshots
Deployment
The Web UI can be deployed to:
- Azure Static Web Apps (recommended)
- GitHub Pages
- Any static web hosting (Netlify, Vercel, AWS S3, etc.)
For deployment instructions, see docs/WEB_UI_DEPLOYMENT.md
π€ AI Features (v0.5+) π IN DEVELOPMENT
Note: AI features exist in the codebase but are not yet production-ready. Use with caution.
ReleaseCraft includes AI-powered summarization capabilities (experimental) to generate intelligent, context-aware release notes.
Setup
- Get an OpenAI API key from OpenAI Platform
- Set environment variable:
export OPENAI_API_KEY="sk-your-openai-key-here"
Usage
Enable AI with default settings (Professional tone):
dotnet run -- --owner microsoft --repo vscode --from-tag 1.84.0 --to-tag 1.85.0 --ai
Specify a tone style:
# Professional (default) - formal, business-appropriate
dotnet run -- --owner org --repo repo --from-tag v1.0 --to-tag v2.0 --ai --tone professional
# Casual - friendly, conversational for internal teams
dotnet run -- --owner org --repo repo --from-tag v1.0 --to-tag v2.0 --ai --tone casual
# Marketing - engaging, benefit-focused for public releases
dotnet run -- --owner org --repo repo --from-tag v1.0 --to-tag v2.0 --ai --tone marketing
# Technical - precise, detailed for developer audiences
dotnet run -- --owner org --repo repo --from-tag v1.0 --to-tag v2.0 --ai --tone technical
Example Output
Without AI:
# v1.5.0
**Release Date:** 2024-02-03
## π Features
- Add dark mode support [#127](https://github.com/owner/repo/pull/127) by @user1
- Implement new search algorithm [#128](https://github.com/owner/repo/pull/128) by @user2
With AI Summarization:
# v1.5.0
**Release Date:** 2024-02-03
**Summary:** This release focuses on user experience improvements with dark mode support and significantly faster search performance. Several critical security fixes are also included.
## π Features
- Add dark mode support [#127](https://github.com/owner/repo/pull/127) by @user1
- Implement new search algorithm [#128](https://github.com/owner/repo/pull/128) by @user2
Configuration File
Create .releasecraftrc.json in your project root:
{
"owner": "microsoft",
"repo": "vscode",
"ai": {
"enabled": true,
"apiKey": "env:OPENAI_API_KEY",
"model": "gpt-4-turbo",
"tone": "professional",
"maxTokens": 1000,
"features": {
"summarization": true,
"toneControl": true
}
}
}
Cost Considerations
AI features use OpenAI's GPT-4 Turbo model. Estimated costs:
- Small release (10 PRs): ~$0.02
- Medium release (50 PRs): ~$0.10
- Large release (200 PRs): ~$0.40
Cost optimization:
- Set
maxTokensto limit usage per request - Disable AI when not needed (don't use
--aiflag) - Use cheaper models like
gpt-3.5-turboin config
Security
- Never commit API keys to source control
- Always use environment variables:
OPENAI_API_KEY - API keys are never sent to GitHub or stored in generated files
- AI is opt-in only - disabled by default
π Documentation
- Installation Guide - Detailed setup instructions
- CLI Usage - Command-line examples and troubleshooting
- GitHub Action - Using ReleaseCraft as a GitHub Action
- AI Features - AI summarization, tone control, and pricing
- API Reference - Using ReleaseCraft as a library
- Configuration - Customizing category mappings
- Examples - Sample outputs and use cases
- Contributing - How to contribute to the project
π‘ Usage Examples
CLI Examples
Generate release notes between two tags:
dotnet run -- -o nodejs -r node -f v20.0.0 -t v20.1.0
With custom output path:
dotnet run -- --owner rails --repo rails --from-tag v7.0.0 --to-tag v7.1.0 --output docs/CHANGELOG_v7.1.0.md
Library Usage
Use ReleaseCraft programmatically in your .NET application:
using ReleaseCraft.Connectors.GitHub;
using ReleaseCraft.Templates;
using ReleaseCraft.Engine.Ports;
// Configure GitHub connection
var githubOptions = new GitHubOptions
{
ProductName = "MyApp",
Token = Environment.GetEnvironmentVariable("GITHUB_TOKEN") ?? string.Empty
};
// Create services
var changeSource = new GitHubChangeSource(githubOptions);
var generator = new MarkdownReleaseNotesGenerator(new MarkdownGeneratorOptions());
// Generate release notes
var changes = await changeSource.GetMergedPullRequestsBetweenTagsAsync(
owner: "dotnet",
repo: "aspnetcore",
fromTag: "v8.0.0",
toTag: "v8.1.0",
ct: CancellationToken.None
);
var releaseNotes = generator.Generate(
changes,
version: "v8.1.0",
releaseDate: DateTimeOffset.UtcNow
);
Console.WriteLine(releaseNotes);
π¨ Configuration
ReleaseCraft categorizes pull requests based on their labels. Default categories:
| Category | Labels | Priority |
|---|---|---|
| π Security | security, vulnerability, cve |
1 |
| β οΈ Breaking Changes | breaking, breaking-change |
2 |
| π Features | feature, enhancement |
3 |
| π Bug Fixes | bug, fix |
4 |
| β‘ Performance | performance, optimization, speed |
5 |
| π Documentation | documentation, docs |
6 |
| π§ Maintenance | chore, maintenance, refactor |
7 |
| Other Changes | (unlabeled PRs) | Default |
See Configuration Guide for customization options.
π GitHub Action (v1.1+) β³ PLANNED
Note: GitHub Action is not yet implemented. This is planned for v1.1.
ReleaseCraft will be available as a GitHub Action (planned) to automatically generate and update release notes when new releases are created.
Quick Start
Add this to your repository at .github/workflows/release-notes.yml:
name: Generate Release Notes
on:
release:
types: [created]
jobs:
release-notes:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Generate Release Notes
uses: releasecraft/releasecraft-core@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
Features
- β Automatic Trigger - Runs on release creation/edit
- β Auto-Detection - Automatically finds previous release tag
- β AI Support - Optional AI summarization
- β Multiple Formats - Markdown, JSON, HTML, CSV
- β No Setup Required - Just add the workflow file
With AI Summarization
- name: Generate AI-Enhanced Release Notes
uses: releasecraft/releasecraft-core@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-ai: true
ai-tone: marketing
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
For complete GitHub Action documentation, see GitHub Action Guide
ποΈ Architecture
ReleaseCraft follows Hexagonal (Ports & Adapters) Architecture:
βββββββββββββββββββββββββββββββββββββββββββ
β User Interface Layer β
β CLI β REST API β GitHub Action β
βββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββ
β Core Domain Layer β
β IGitChangeSource β IReleaseNotes β
β β Generator β
βββββββββββββββββββββββββββββββββββββββββββ
β β
ββββββββββββββββββββ ββββββββββββββββββββ
β GitHub Adapter β β Markdown Gen β
β (Octokit) β β JSON/HTML/CSV β
ββββββββββββββββββββ ββββββββββββββββββββ
For detailed architecture documentation, see ARCHITECTURE.md.
π οΈ Development
Build the Project
dotnet build ReleaseCraft.slnx -c Release
Run Tests
dotnet test ReleaseCraft.slnx
Project Structure
releasecraft-core/
βββ src/
β βββ ReleaseCraft.Engine/ # Core interfaces and models
β βββ ReleaseCraft.Connectors.GitHub/ # GitHub API adapter
β βββ ReleaseCraft.Templates/ # Output generators
β βββ ReleaseCraft.ConsoleApp/ # CLI application
βββ tests/
β βββ ReleaseCraft.Engine.Tests/ # Unit tests
β βββ ReleaseCraft.Integration.Tests/ # Integration tests
βββ docs/ # Documentation
See DEVELOPMENT.md for contributing guidelines.
π Authentication
ReleaseCraft supports two authentication methods:
Environment Variable (Recommended):
export GITHUB_TOKEN="ghp_your_token_here"Command-line Flag:
dotnet run -- --owner owner --repo repo --from-tag v1.0 --to-tag v2.0 --token ghp_your_token
Creating a GitHub Token:
- Go to GitHub Settings β Developer Settings β Personal Access Tokens
- Click "Generate new token (classic)"
- Select scopes:
public_repo(for public repos) orrepo(for private repos) - Copy the token and store it securely
See CLI Usage Guide for more details.
π€ Contributing
We welcome contributions! Please see our Contributing Guide for details.
Quick Contribution Flow:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following our coding standards
- Run tests (
dotnet test) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π Roadmap
β Phase 1 β Core Engine (MVP v0.1) β COMPLETE
- β GitHub connector with Octokit
- β Markdown release notes generator
- β CLI console application
- β Integration tests
- β Documentation
Phase 2 β Intelligence (v0.5) π IN DEVELOPMENT
- π AI summarization with OpenAI GPT-4 (code exists, not in prod)
- π Tone control (Professional, Casual, Marketing, Technical) (code exists, not in prod)
- π Config file support (.releasecraftrc.json) (code exists, not in prod)
- β³ Smart categorization (planned for v0.5.1)
- β³ Audience modes (Client vs Internal) (planned)
Phase 3 β Platform (v1.0) π IN DEVELOPMENT
- π REST API (code exists, not in prod)
- π Multiple output formats (JSON, HTML, CSV) (code exists, not in prod)
- π Web UI (code exists, not in prod)
Phase 4 β Ecosystem (v1.1+) β³ PLANNED
- β³ GitHub Action for automation (not started)
- β³ NuGet package publishing (not started)
- β³ Marketplace distribution (not started)
See VISION.md for the complete long-term vision.
π Project Documentation
Comprehensive documentation for understanding and contributing to ReleaseCraft:
- VISION.md - Product vision, strategy, and business model
- PRD.md - Product requirements document with detailed feature specifications
- PROJECT.md - Technical project overview and architecture summary
- ARCHITECTURE.md - Detailed technical architecture and design patterns
- DEVELOPMENT.md - Developer setup, workflow, and contribution guide
- docs/ - API reference, CLI usage, and examples
- website/ - Marketing website and landing page (Next.js)
Start with VISION.md to understand the product goals, then dive into technical details with ARCHITECTURE.md.
π Marketing Website
A professional landing page has been created in the website/ directory:
- Tech Stack: Next.js 16, TypeScript, Tailwind CSS
- Features: Responsive design, SEO optimized, fast static export
- Pages: Landing, Pricing (5 tiers), Features, Demo
- Deployment: Ready for Vercel, Netlify, Cloudflare Pages, or any static host
To run the website locally:
cd website
npm install
npm run dev
Visit http://localhost:3000 to see the site.
For deployment instructions, see website/DEPLOYMENT.md.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Built with Octokit.NET for GitHub API integration
- Inspired by tools like Release Drafter
π Support
- π Documentation
- π Report a Bug
- π‘ Request a Feature
- π¬ Discussions
Made with β€οΈ by the ReleaseCraft team
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ReleaseCraft.Engine:
| Package | Downloads |
|---|---|
|
ReleaseCraft
All-in-one meta-package for ReleaseCraft containing all core components: Engine, GitHub Connector, Templates, and AI Summarization. Install this package to get everything you need to generate beautiful release notes from GitHub pull requests. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|