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