Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neo4j-devtools/practicle
A CLI for pull request to changelog markdown generator for github
https://github.com/neo4j-devtools/practicle
changelog pull-requests
Last synced: about 1 month ago
JSON representation
A CLI for pull request to changelog markdown generator for github
- Host: GitHub
- URL: https://github.com/neo4j-devtools/practicle
- Owner: neo4j-devtools
- License: apache-2.0
- Created: 2018-08-08T09:11:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-02-07T18:18:05.000Z (almost 3 years ago)
- Last Synced: 2024-10-31T16:47:09.552Z (2 months ago)
- Topics: changelog, pull-requests
- Language: JavaScript
- Homepage:
- Size: 146 KB
- Stars: 5
- Watchers: 12
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PRacticle - the pr-activated-changelog-emitter
# Installation
Install globally to get a binary executable in your system.
```
npm install -g @neo4j/practicle
```# Commands
## `generate-changelog`
Generate a markdown formatted changelog from pull requests in a Github repository.
The pull requests need to have a `changelog` label applied to them.If the option `--prev-version` is omitted PRacticle finds all PR:s in
the semver minor version and generates a complete changelog for all versions in that range.I.e. if `--next-version=3.2.5` is used, the output will include all changes from `3.2.0` to the upoming `3.2.5` release. They are grouped by version.
Versions are generated from git tags that has the format `x.y.z`.
When `--prev-version` is included, the same thing happens but it starts from the version of `--prev-version` rather than `.0`.
By default, the text for the changelog entry is taken from the pull request title. If the pull request body includes `changelog:` on a separate line, it will override the default text.
If `release-tag-filter` is included, which should be a **regex** string, it will be used to filter out releases by their tags. Default value complies with semantic versioning that can optionally start with a _v_, like 1.0.1 or v1.0.1
# Usage
```bash
Options:
--token GITHUB_TOKEN env should be set [required]
--repo, -r Github repo to pull changes from [required]
--next-version, --nv The next version of the software to be release
[required]
--release-commit, --rc The commit hash to be considered as the release
for the changelog [required]
--output-pr-links, --opl Adds the corresponding Github link at the end of
the change message
--output-author, --oa Appends the PR author to the change message
--prev-version, --pv The prev version to generate the
changelog from.
- If arg is a valid Semver string
(x.x.x) then the changelog will
generate notes from the tag
- If used as a flag then the changelog
is generated from the previous semver
tag.
- If ommitted then the semver
major.minor version is used to
generate changelogs over that range--release-tag-filter, --rtf The regex to filter out releases by their release
tags [default: "^v?\d+\.\d+\.\d+$"]
--label-filter, --lf Override the pull requests label filter
[array] [default: ["changelog"]]
```## `draft-release`
Takes contents from a file and creates a _draft_ release on GitHub using that contents.
```bash
Options:
--token GITHUB_TOKEN env should be set [required]
--repo, -r Github repo to push draft release to [required]
--next-version, --nv The next version of the software to be release[required]
--commit, -c The commit that will be tagged [required]
--file File from which to read that will be used for the
release description [required]
```## `release`
Takes contents from a file and creates a release on GitHub using that contents.
```bash
Options:
--token GITHUB_TOKEN env should be set [required]
--repo, -r Github repo to push draft release to [required]
--next-version, --nv The next version of the software to be release[required]
--commit, -c The commit that will be tagged [required]
--file File from which to read that will be used for the
release description [required]
```## `fetch-release-notes`
Fetches release notes from a release tag (or draft release tag) from Github and outputs it to standard out.
```
Options:
--token GITHUB_TOKEN env should be set [required]
--repo, -r Github repo to push draft release to [required]
--tag, -t The tag associated with the release [required]
```# Usage
## Examples
```bash
# Generate md formatted changelog for 3.2.0 -> 3.2.5
# Output to standard output
practicle generate-changelog \
--repo=https://github.com/neo4j/neo4j-browser \
--next-version=3.2.5 \
--release-commit=195694b5479ccc22d144d4ad5f81d74a1ceedb0e \
--output-pr-links \
--token=xxx
``````bash
# Generate and pipe to release_notes.md (just changes since the last release)
practicle generate-changelog \
--repo=https://github.com/neo4j/neo4j-browser \
--next-version=3.2.5 \
--prev-version=3.2.4 \
--release-commit=195694b5479ccc22d144d4ad5f81d74a1ceedb0e \
--output-pr-links \
--token=xxx \
> release_notes.md
``````bash
# Only consider releases with name being in the format of `d.d.0`, so where patch is 0
# Output to standard output
practicle generate-changelog \
--repo=https://github.com/neo4j/neo4j-browser \
--next-version=3.2.5 \
--release-commit=195694b5479ccc22d144d4ad5f81d74a1ceedb0e \
--token=xxx
--release-tag-filter='^(?:\d*\.){2}0$'
```### Output
The following command (try it, just remember to use your [own token](https://github.com/settings/tokens)):
```
practicle generate-changelog \
--repo=https://github.com/neo4j/neo4j-browser \
--next-version=3.2.6 \
--release-commit=7ee472bedcc2e73023e9cf09708e597913ff70cd \
--output-pr-links \
--token=xxx
```produces the following output
```
## 3.2.6- Add `:history clear` command [#800](https://github.com/neo4j/neo4j-browser/pull/800)
- Add pagecache hits and misses to plan output [#812](https://github.com/neo4j/neo4j-browser/pull/812)
- Add complete support for bolt+routing:// [#814](https://github.com/neo4j/neo4j-browser/pull/814)
- Enable users with non reader roles to connect [#818](https://github.com/neo4j/neo4j-browser/pull/818)## 3.2.5
- Add toggle for multi statement cypher editor [#793](https://github.com/neo4j/neo4j-browser/pull/793)
## 3.2.3
- Fix editor to handle string literals that contain new lines [#794](https://github.com/neo4j/neo4j-browser/pull/794)
## 3.2.2
- Add support for multi-statement execution [#722](https://github.com/neo4j/neo4j-browser/pull/722)
## 3.2.1
- Handle changelog url building in disconnected state [#787](https://github.com/neo4j/neo4j-browser/pull/787)
- Fix issue with creating unique keys from user input [#790](https://github.com/neo4j/neo4j-browser/pull/790)
```