Generate release notes based on GitHub Pull Requests
You can install prlog using the following command.
deno install -A https://deno.land/x/prlog/prlog.ts
prlog <owner/repo> [start_tag] [end_tag] [options]
[start_tag]
- where to start counting changes. Defaults to last tag or first commit.[end_tag]
- where to stop counting changes. Defaults to the last commit.[options]
:-t, --template
- location of the release notes template (default: undefined)-o, --output
- location where to output generated release notes (default: undefined)-v, --version
- version to use in release notes (default: "UNRELEASED")-b, --branch
- name of the default branch of the repo (default: "master")-m, --markdown
- use CommonMark spec instead of GitHub Flavoured Markdown-a, --append
- append the out to an existing changelog instead of owerwriting it--auth
- GitHub access token. Use this to avoid API rate limits and access private repositories
You can also use the GITHUB_TOKEN
environment variable to use the GitHub access token.
prlog can use any plaintext file for templates. Just use appropriate tags where you need them. If you don't define a template, prlog cli will output only a markdown list of pull requests.
Officially supported tags:
{{ VERSION }}
- release version{{ CHANGELOG }}
- list of merged pull requests
Example :
<!-- template.md -->
### {{ VERSION }}
{{ CHANGELOG }}
# /bin/sh
prlog denoland/deno -v 1.3.3 -t template.md -o changelog.md
<!-- changelog.md -->
### 1.3.3
- docs(std/fs): remove stale references to readFileStr and writeFileStr (#7254)
- Typo in zsh env setup steps (#7250)
- upgrade: rust 1.46.0 (#7251)
In addition to using the CLI, you can build custom plugins for prlog.
Official plugins:
- Version - Set the release version. tag:
{{ VERSION }}
- SetDate - Set date of release in desired format. tag:
{{ DATE }}
- CodeName - Set a code name for the release. tag:
{{ CODENAME }}
View plugins and docs for more info.
Example:
// release.ts
import prlog from "https://deno.land/x/prlog/mod.ts";
import "https://deno.land/x/prlog/plugins/SetDate.ts";
import "https://deno.land/x/prlog/plugins/Version.ts";
const template: string = `
# {{ VERSION }} / {{ DATE }}
{{ CHANGELOG }}
`;
const changelog: string = (await prlog(template, "denoland/deno"))
.prlogSetDate()
.prlogVersion("1.3.3");
console.log(changelog);
/*
$ deno run -A release.ts
### 1.3.3 / 02 09 2020
- docs(std/fs): remove stale references to readFileStr and writeFileStr (#7254)
- Typo in zsh env setup steps (#7250)
- upgrade: rust 1.46.0 (#7251)
*/
This software is released under The MIT License