| Crates.io | pr-note |
| lib.rs | pr-note |
| version | 0.1.3 |
| created_at | 2025-11-13 13:41:28.300761+00 |
| updated_at | 2025-11-15 14:51:53.905601+00 |
| description | A command-line tool to generate PR notes summarizing unmerged PRs on GitHub between two branches. |
| homepage | |
| repository | https://github.com/K-tecchan/pr-note |
| max_upload_size | |
| id | 1931146 |
| size | 1,650,696 |
A command-line tool to generate PR notes summarizing unmerged PRs on GitHub between two branches.

For example, to create a release pull request from the feature to the main in the octocat/Hello-World repository, do the following:
pr-note \
--owner octocat \
--repo Hello-World \
--base main \
--head feature \
--token <github_token>
Alternatively, if environment variables are set in a CI/CD environment, corresponding arguments can be omitted as follows:
export PR_NOTE_GITHUB_TOKEN="<GITHUB_TOKEN>"
pr-note \
--owner octocat \
--repo Hello-World \
--base main \
--head feature
Executing the above command will create a pull request from the head branch to the base branch. If a pull request already exists, it will be updated instead.
Pull request body and title can be customized using a template file. The first line of the template file is used as the pull request title, and the rest as the body. Default template is used if no template file is specified.
Template uses Tera syntax.
In the template, the prs object is available, which is the list of pull requests that have been merged into the head branch but not into the base branch. Each pull request object has the following fields:
number: Pull request numberauthor: Pull request authortitle: Pull request titlebody: Pull request body as markdownlabels: List of labels attached to the pull requestgroup: Group name if --group-by option is used, otherwise ""group is determined based on the value of --group-by option:
label is specified, labels attached to the pull request are arranged in lexicographical order and joined with " / " to form the group name. If no labels are attached, "others" is used.title is specified, one or more [bracket] segments at the beginning of the title are arranged in lexicographical order and joined with " / " to form the group name. If no bracketed segments are found, "others" is used.cargo install pr-note
# If you want to install globally
npm install -g @pr-note/pr-note
# If you want to install as a development dependency in a project
npm install -D @pr-note/pr-note
brew install K-tecchan/tap/pr-note
$ pr-note --help
Generate or update a GitHub Pull Request (PR) note summarizing unmerged PRs between two branches.
Usage: pr-note [OPTIONS] --owner <OWNER> --repo <REPO> --base <BASE> --head <HEAD> --token <TOKEN>
Options:
--host <HOST>
API host domain for GitHub. Default is "api.github.com".
For GitHub Enterprise, set your enterprise host domain.
[env: PR_NOTE_GITHUB_HOST=]
[default: api.github.com]
-o, --owner <OWNER>
The owner of the repository.
[env: PR_NOTE_REPO_OWNER=]
-r, --repo <REPO>
The name of the repository.
[env: PR_NOTE_REPO_NAME=]
-b, --base <BASE>
The name of the base branch.
[env: PR_NOTE_BASE_BRANCH=]
-a, --head <HEAD>
The name of the head branch.
[env: PR_NOTE_HEAD_BRANCH=]
-t, --token <TOKEN>
GitHub API token with appropriate repository permissions:
- Contents: read
- Metadata: read
- Pull requests: write
[env: PR_NOTE_GITHUB_TOKEN]
-p, --template-path <TEMPLATE_PATH>
Template file path for PR title and body.
First line is used as the title, rest as the body.
If not specified, the default template will be used.
[env: PR_NOTE_TEMPLATE_PATH=]
-g, --group-by <GROUP_BY>
Grouping options for unmerged PRs.
Options are "label" or "title".
[env: PR_NOTE_GROUP_BY=]
[possible values: label, title]
-d, --dry-run
Dry run mode.
With this option, no PR will be created or updated, only output the generated text to stdout.
[env: PR_NOTE_DRY_RUN=]
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
Tools that inspired this project or can be used as alternatives: