Skip to content

gventino/gazette

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Gazette Logo

Gazette

AI-powered changelog generator from GitHub Pull Requests

Rust 2026 Version License


Gazette automatically generates well-structured changelogs from your GitHub Pull Requests, enriched with Jira context and summarized by a LLM.

Features

  • πŸ“‹ GitHub Integration β€” Fetches merged PRs from your repositories
  • 🎫 Jira Context β€” Automatically extracts and enriches changelogs with Jira ticket information
  • πŸ€– AI-Powered β€” Uses Claude, OpenAI, Google Gemini or Ollama to generate concise, well-structured changelogs
  • ⏱️ Configurable Time Periods β€” Filter PRs by last hour, 6h, 12h, 24h, or custom periods
  • πŸ“¦ Repository Subscriptions β€” Subscribe to multiple repos and generate changelogs in batch

Installation

Quick Install (macOS/Linux)

curl -fsSL https://raw.githubusercontent.com/gventino/gazette/main/install.sh | bash

From Source

Requires Rust (edition 2026).

git clone https://github.com/gventino/gazette.git
cd gazette
cargo build --release
cp target/release/gazette /usr/local/bin/

Manual Download

Download the latest binary from the Releases page and add it to your PATH.

Configuration

On first run, Gazette will prompt you for the required API credentials:

Credential Required Description
GITHUB_TOKEN βœ… GitHub Personal Access Token with repo scope
GEMINI_API_KEY βœ… Google Gemini API key
JIRA_BASE_URL ❌ Your Jira instance URL (e.g., https://company.atlassian.net)
JIRA_EMAIL ❌ Jira account email
JIRA_API_TOKEN ❌ Jira API token

Credentials are stored in a .env file in your working directory.

Getting API Keys

GitHub Token

  1. Go to GitHub Settings β†’ Developer settings β†’ Personal access tokens
  2. Generate a new token with repo scope

Gemini API Key

  1. Visit Google AI Studio
  2. Create a new API key

Jira API Token (Optional)

  1. Go to Atlassian Account Settings
  2. Create a new API token

Usage

Run the CLI:

gazette

Main Menu Options

Option Description
Subscribe to a repo Add a repository to track (format: owner/name)
Unsubscribe from a repo Remove a repository from tracking
List subscribed repos Show all tracked repositories
Configure time period Set the time window for PR filtering
Generate changelog Create a changelog for one or all subscribed repos
Update credentials Modify stored API tokens

Time Period Options

  • Last hour
  • Last 6 hours
  • Last 12 hours
  • Last 24 hours (default)
  • Custom (format: HH:MM:SS)

Output

Changelogs are saved as Markdown files in the current directory:

changelog_<repo-name>_<date>.md

Example Output

# Changelog for acme/backend - 2026-02-10

## Features
- Add user authentication via OAuth2 ([#142](https://github.com/acme/backend/pull/142))
- Implement rate limiting for API endpoints ([#138](https://github.com/acme/backend/pull/138))

## Bug Fixes
- Fix memory leak in connection pool ([#141](https://github.com/acme/backend/pull/141))

## Improvements
- Refactor database queries for better performance ([#139](https://github.com/acme/backend/pull/139))

Configuration File

Gazette stores repository subscriptions and settings in config.json:

{
  "repos": [
    { "owner": "acme", "name": "backend" },
    { "owner": "acme", "name": "frontend" }
  ],
  "time_period": { "type": "Last24Hours" }
}

Dependencies

  • clap β€” Command-line argument parsing
  • inquire β€” Interactive prompts
  • reqwest β€” HTTP client
  • tokio β€” Async runtime
  • serde β€” Serialization
  • chrono β€” Date/time handling
  • crossterm β€” Terminal manipulation
  • owo-colors β€” Terminal colors

Development

# Run in development
cargo run

# Run tests
cargo test

# Build release binary
cargo build --release

# Format code
cargo fmt

# Lint
cargo clippy

Pre-commit Hooks

This project uses pre-commit to ensure code quality before each commit.

Install pre-commit:

# macOS
brew install prek

Enable hooks:

prek install

The following checks run automatically on each commit:

  • cargo fmt --check β€” Code formatting
  • cargo clippy -- -D warnings β€” Linting with warnings as errors
  • cargo build β€” Build verification (no warnings allowed)

License

MIT License β€” see LICENSE for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.


Made with ❀️ and πŸ¦€ βš™οΈ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors