| Crates.io | ribir-bot |
| lib.rs | ribir-bot |
| version | 0.1.12 |
| created_at | 2026-01-08 07:11:49.139494+00 |
| updated_at | 2026-01-22 09:20:32.161037+00 |
| description | A CLI tool for managing Ribir releases and changelogs |
| homepage | |
| repository | https://github.com/RibirX/Ribir |
| max_upload_size | |
| id | 2029690 |
| size | 168,057 |
Unified CLI for PR, changelog, and release automation for the Ribir project.
cargo install --path .
gh) - for GitHub operationsgemini) - for AI generationribir-bot <COMMAND> [OPTIONS]
Update PR body with AI-generated content:
| Command | Description |
|---|---|
pr fill [PR_ID] |
Auto-fill placeholders in PR body |
pr regen [PR_ID] [CTX] |
Regenerate all content |
pr summary [PR_ID] [CTX] |
Regenerate summary only |
pr entry [PR_ID] [CTX] |
Regenerate changelog entry only |
Examples:
ribir-bot pr fill # Auto-fill current PR
ribir-bot pr regen 123 # Regenerate PR #123
ribir-bot pr summary --context "be concise" # Regenerate with context
Update CHANGELOG.md:
| Command | Description |
|---|---|
log collect --version VER |
Collect merged PRs into changelog |
log merge --version VER |
Merge pre-release versions |
log verify |
Verify changelog structure |
Examples:
ribir-bot log collect --version 0.5.0 # Collect PRs for 0.5.0
ribir-bot log merge --version 0.5.0 --write # Merge and write changes
ribir-bot log verify # Verify parsing
ribir-bot release <SUBCOMMAND> [OPTIONS]
| Subcommand | Description |
|---|---|
next <level> |
Full release in one command (changelog + cargo workspace + GitHub Release) |
enter-rc --version VER |
Enter RC phase (branch + PR + RC.1) |
publish [PR_ID] |
Publish GitHub release |
stable [--version VER] |
Release stable version (auto-detect from branch) |
highlights [CTX] |
Regenerate highlights in CHANGELOG.md |
verify |
Verify release state |
next| Level | Example | Description |
|---|---|---|
alpha |
0.5.0-alpha.54 | Development releases |
rc |
0.5.0-rc.1 | Release candidates |
patch |
0.5.1 | Patch releases |
minor |
0.6.0 | Minor releases |
major |
1.0.0 | Major releases |
Examples:
# Preview release (default is dry-run)
ribir-bot release next alpha
# Execute release
ribir-bot release next alpha --execute
# Enter RC phase (creates branch, PR, and publishes RC.1)
ribir-bot release enter-rc --version 0.5.0
# Release stable version (auto-detect from release branch)
ribir-bot release stable --execute
# Release stable version (explicit version)
ribir-bot release stable --version 0.5.0 --execute
# Verify release state
ribir-bot release verify
| Option | Description |
|---|---|
--dry-run |
Preview without applying changes |
--execute |
Execute changes (required for release next and stable) |
--write |
Write changes (for log collect/log merge) |
-h, --help |
Show help |
src/
├── main.rs # Entry point and command dispatch
├── cli.rs # Argument parsing and help text
├── types.rs # Shared data types
├── utils.rs # Utility functions
├── external.rs # Gemini AI and GitHub CLI integration
├── changelog.rs # Changelog AST parsing and manipulation
└── commands/
├── pr.rs # PR body generation
├── changelog.rs # Changelog collection/merge/verify
└── release.rs # Release preparation and publishing
gh pr viewgh pr editgh pr listrelease next <level> - One Command, DoneThe unified release workflow:
cargo set-version <level> --dry-run logic (internal) to determine next versioncargo set-version, commits, tags, and publishes to crates.ioDry-run mode (default): Shows what would happen, including changelog and release notes preview.
Execute mode (--execute): Performs all operations.
The bot recognizes these types in PR titles and changelog entries:
| Type | Section |
|---|---|
feat |
Features |
fix |
Fixed |
change |
Changed |
perf |
Performance |
docs |
Documentation |
breaking |
Breaking |
chore, refactor, internal |
Internal |
Same license as the Ribir project.