| Crates.io | mergelog |
| lib.rs | mergelog |
| version | 0.2.0 |
| created_at | 2025-02-19 08:10:24.382484+00 |
| updated_at | 2025-02-19 21:49:58.047184+00 |
| description | Magically merge multiple changelog files into one |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1561076 |
| size | 134,756 |
[!CAUTION]
mergelogonly supports GitLab now, but adding GitHub should be trivial.
mergelog is a simple tool to combine changelog entries spread over multiple
files into one, interactively inferring and resolving corresponding pull
requests.
To get started, just run:
cargo install mergelog
mergelog my/changelog/directory
I'm demoing it on Spade, a programming langauge I contribute to:
https://github.com/user-attachments/assets/9d8bef51-0a6d-420e-860d-812dd872be87
Here's the full --help output:
Usage: mergelog <changelog_directory> [--repo <repo>] [--host <host>] [-s <section...>] [--config <config>]
Merges changelog files into a single changelog
Positional Arguments:
changelog_directory
directory containing changelogs and a mergelog.toml
Options:
--repo link to the repository to resolve merge/pull requests at;
omit to infer from the current repo
--host the repository host; omit to infer from the repo URL
-s, --section changelog sections in order
--config path to optional config file
--help, help display usage information
You can pass --config <path> or create a mergelog.toml in the current
directory to configure the output further.
# example
sections = ["Added", ...]
format = "{item} [{link_short}]({link})"
short-links = false
--sections are passed on the CLI, they will override any given in the
config.format option string-replaces the keys {link}, {link_short}, and
{item}.short-links option is perhaps confusingly named; it extracts out the
links into a list at the end, so you can use "{item} [{short_link}]" as your
format, for example.