The tool provides a way of customizing the process of generating the Release Notes based on:
- Issue tracking identifiers in commit messages
- Tags on commit
- Release artifacts repository
To run the tool, call:
& just_release --config <config.json> notes
Configuration file is in flux. For now it is a json looking something like this:
{
"pathToSave" : <output path>,
"packages" : {
<package name> : {
"Issues" : [{
"Provider" : <issues provider>,
"HtmlUrl" : ...,
"Authorization" : ...,
"Url" : ...,
"WebImagesPath" : ...,
"TicketRegex" : ...
}],
"Releases" : {
"Provider" : <releases provider>,
"Repository" : ...,
"ArtifactUri" : ...,
"StorageUrl" : ...
},
"Source" : {
"Provider" : <source provider>,
"RepositoryUrl" : ...,
"Remote" : ...,
"Branch" : ...,
"VersionTagRegex" : "^([0-9]+\\.[0-9]+\\.[0-9]+)$",
"OldestCommitToProcess" : <commit hexsha>,
"ExcludeCommitsWithMessageMatchingRegex" : <regex>
},
"ReleaseNotesWriter" : [{
"Provider" : <notes writer provider>
"PathToSave" : ...
}]
}
}
}
where
notes writer provider
is either:
- HtmlWriter
- MarkdownWriter
- GitHubMarkdownWriter
- StashMarkdownWriter
- JsonWriter
releases provider
is either:
- Artifactory
- GitHubReleases
issues provider
is either:
- JiraIssues
- GitHubIssues
It is also possible to specify an array of issue providers, then all of them will be used to retrieve information about tickets.
source provider
is currently only:
- GitRepo
You can also use environment variables using the following syntax:
{
...
"key" : "aaa ENV[xxx] bbb"
...
}
In the above example, ENV[xxx] will be replaced with the value of 'xxx' variable