Generates opinionated release notes text from github release with pull requests and git commits content.
It uses the internal github client and fetch a sorted list of all Github releases on the configured repository. If the getAppendLatestRelease() flag is set, it will use only the latest release. The list of releases will be converted into org.ajoberstar.gradle.git.release.base.ReleaseVersion objects and passed to a ReleaseNotesGenerator. The result of the generateReleaseNotes() will saved to the configured export file. (ReleaseNotesGenerator.getReleaseNotes).
Example:
task(updateReleaseNotes, type:wooga.gradle.releaseNotesGenerator.tasks.GenerateReleaseNotes) {
releaseNotes = file("path/to/release_notes.md")
appendLatestRelease = false
}
Fields inherited from class | Fields |
---|---|
class wooga.gradle.github.base.tasks.internal.AbstractGithubTask |
__$stMC, TASK_NAME, TASK_DESCRIPTION, TASK_GROUP, TASK_TYPE, TASK_DEPENDS_ON, TASK_OVERWRITE, TASK_ACTION, TASK_CONSTRUCTOR_ARGS |
class org.gradle.api.internal.ConventionTask |
TASK_NAME, TASK_DESCRIPTION, TASK_GROUP, TASK_TYPE, TASK_DEPENDS_ON, TASK_OVERWRITE, TASK_ACTION, TASK_CONSTRUCTOR_ARGS |
Constructor and description |
---|
GenerateReleaseNotes
() |
Type Params | Return Type | Name and description |
---|---|---|
|
GenerateReleaseNotes |
appendLatestRelease(java.lang.Object releaseNotes) Sets the Boolean flag to indicate
if only the notes for the latest release should be generated and appended. |
|
protected java.lang.Object |
generate() |
|
java.lang.Boolean |
getAppendLatestRelease() Returns a Boolean value indicating,
if only the notes for the latest release should be generated and appended. |
|
org.ajoberstar.grgit.Grgit |
getGit() Returns the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags. |
|
java.io.File |
getReleaseNotes() Returns the File where the generated release notes will be written to. |
|
GenerateReleaseNotes |
git(org.ajoberstar.grgit.Grgit git) Sets the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags. |
|
GenerateReleaseNotes |
releaseNotes(java.lang.Object releaseNotes) Sets the File where the generated release notes will be written to. |
|
protected org.ajoberstar.gradle.git.release.base.ReleaseVersion |
releaseVersionForIndex(int index, java.util.List<org.kohsuke.github.GHRelease> releases) Creates a org.ajoberstar.gradle.git.release.base.ReleaseVersion object from a list of Github releases and an index. |
|
GenerateReleaseNotes |
setAppendLatestRelease(java.lang.Object isAppending) Sets the Boolean flag to indicate
if only the notes for the latest release should be generated and appended. |
|
GenerateReleaseNotes |
setGit(org.ajoberstar.grgit.Grgit git) Sets the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags. |
|
GenerateReleaseNotes |
setReleaseNotes(java.lang.Object releaseNotes) Sets the File where the generated release notes will be written to. |
Methods inherited from class | Name |
---|---|
class wooga.gradle.github.base.tasks.internal.AbstractGithubTask |
wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getProperty(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getToken(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#invokeMethod(java.lang.String, java.lang.Object), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#token(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#token(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getMetaClass(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setMetaClass(groovy.lang.MetaClass), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getRepository(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getRepository(org.kohsuke.github.GitHub), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getPassword(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#username(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#username(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#password(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#password(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setUsername(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setUsername(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setPassword(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setPassword(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getUsername(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getRepositoryName(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#repositoryName(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#repositoryName(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#baseUrl(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#baseUrl(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setRepositoryName(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setRepositoryName(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getBaseUrl(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setBaseUrl(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setBaseUrl(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setToken(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setToken(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getConventionMapping(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#conventionMapping(java.lang.String, java.util.concurrent.Callable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#conventionMapping(java.lang.String, groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setProperty(java.lang.String, java.lang.Object), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#toString(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#compareTo(org.gradle.api.Task), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#compareTo(java.lang.Object), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getName(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#execute(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getActions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getState(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getState(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getPath(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getExtensions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTaskActions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#hasTaskActions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getOnlyIf(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getImpliesSubProjects(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setImpliesSubProjects(boolean), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getExecuter(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setExecuter(org.gradle.api.internal.tasks.TaskExecuter), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#replaceLogger(org.gradle.api.logging.Logger), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTemporaryDirFactory(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#addValidator(org.gradle.api.internal.tasks.execution.TaskValidator), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getValidators(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#appendParallelSafeAction(org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#isHasCustomActions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getAsDynamicObject(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#isEnabled(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#configure(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#configure(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#property(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setEnabled(boolean), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#hasProperty(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getGroup(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getInputs(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getInputs(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getIdentityPath(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getDescription(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getProject(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setDescription(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getLogger(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#leftShift(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#prependParallelSafeAction(org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#injectIntoNewInstance(org.gradle.api.internal.project.ProjectInternal, org.gradle.api.internal.project.taskfactory.TaskIdentity, java.util.concurrent.Callable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setActions(java.util.List), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTaskDependencies(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTaskDependencies(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getDependsOn(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setDependsOn(java.lang.Iterable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#dependsOn([Ljava.lang.Object;), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#onlyIf(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#onlyIf(org.gradle.api.specs.Spec), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setOnlyIf(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setOnlyIf(org.gradle.api.specs.Spec), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setDidWork(boolean), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getDidWork(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doFirst(java.lang.String, org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doFirst(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doFirst(org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doLast(org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doLast(groovy.lang.Closure), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#doLast(java.lang.String, org.gradle.api.Action), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#deleteAllActions(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getEnabled(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#dependsOnTaskDidWork(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getOutputs(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getOutputs(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getDestroyables(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getLocalState(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTemporaryDir(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#mustRunAfter([Ljava.lang.Object;), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setMustRunAfter(java.lang.Iterable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getMustRunAfter(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#finalizedBy([Ljava.lang.Object;), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setFinalizedBy(java.lang.Iterable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getFinalizedBy(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#shouldRunAfter([Ljava.lang.Object;), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setShouldRunAfter(java.lang.Iterable), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getShouldRunAfter(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getAnt(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getStandardOutputCapture(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#setGroup(java.lang.String), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getConvention(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getLogging(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getLogging(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getTaskIdentity(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#wait(long, int), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#wait(long), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#wait(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#equals(java.lang.Object), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#hashCode(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#getClass(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#notify(), wooga.gradle.github.base.tasks.internal.AbstractGithubTask#notifyAll() |
class org.gradle.api.internal.ConventionTask |
org.gradle.api.internal.ConventionTask#getConventionMapping(), org.gradle.api.internal.ConventionTask#conventionMapping(java.lang.String, java.util.concurrent.Callable), org.gradle.api.internal.ConventionTask#conventionMapping(java.lang.String, groovy.lang.Closure), org.gradle.api.internal.ConventionTask#setProperty(java.lang.String, java.lang.Object), org.gradle.api.internal.ConventionTask#toString(), org.gradle.api.internal.ConventionTask#compareTo(org.gradle.api.Task), org.gradle.api.internal.ConventionTask#compareTo(java.lang.Object), org.gradle.api.internal.ConventionTask#getName(), org.gradle.api.internal.ConventionTask#execute(), org.gradle.api.internal.ConventionTask#getActions(), org.gradle.api.internal.ConventionTask#getState(), org.gradle.api.internal.ConventionTask#getState(), org.gradle.api.internal.ConventionTask#getPath(), org.gradle.api.internal.ConventionTask#getExtensions(), org.gradle.api.internal.ConventionTask#getTaskActions(), org.gradle.api.internal.ConventionTask#hasTaskActions(), org.gradle.api.internal.ConventionTask#getOnlyIf(), org.gradle.api.internal.ConventionTask#getImpliesSubProjects(), org.gradle.api.internal.ConventionTask#setImpliesSubProjects(boolean), org.gradle.api.internal.ConventionTask#getExecuter(), org.gradle.api.internal.ConventionTask#setExecuter(org.gradle.api.internal.tasks.TaskExecuter), org.gradle.api.internal.ConventionTask#replaceLogger(org.gradle.api.logging.Logger), org.gradle.api.internal.ConventionTask#getTemporaryDirFactory(), org.gradle.api.internal.ConventionTask#addValidator(org.gradle.api.internal.tasks.execution.TaskValidator), org.gradle.api.internal.ConventionTask#getValidators(), org.gradle.api.internal.ConventionTask#appendParallelSafeAction(org.gradle.api.Action), org.gradle.api.internal.ConventionTask#isHasCustomActions(), org.gradle.api.internal.ConventionTask#getAsDynamicObject(), org.gradle.api.internal.ConventionTask#isEnabled(), org.gradle.api.internal.ConventionTask#configure(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#configure(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#property(java.lang.String), org.gradle.api.internal.ConventionTask#setEnabled(boolean), org.gradle.api.internal.ConventionTask#hasProperty(java.lang.String), org.gradle.api.internal.ConventionTask#getGroup(), org.gradle.api.internal.ConventionTask#getInputs(), org.gradle.api.internal.ConventionTask#getInputs(), org.gradle.api.internal.ConventionTask#getIdentityPath(), org.gradle.api.internal.ConventionTask#getDescription(), org.gradle.api.internal.ConventionTask#getProject(), org.gradle.api.internal.ConventionTask#setDescription(java.lang.String), org.gradle.api.internal.ConventionTask#getLogger(), org.gradle.api.internal.ConventionTask#leftShift(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#prependParallelSafeAction(org.gradle.api.Action), org.gradle.api.internal.ConventionTask#injectIntoNewInstance(org.gradle.api.internal.project.ProjectInternal, org.gradle.api.internal.project.taskfactory.TaskIdentity, java.util.concurrent.Callable), org.gradle.api.internal.ConventionTask#setActions(java.util.List), org.gradle.api.internal.ConventionTask#getTaskDependencies(), org.gradle.api.internal.ConventionTask#getTaskDependencies(), org.gradle.api.internal.ConventionTask#getDependsOn(), org.gradle.api.internal.ConventionTask#setDependsOn(java.lang.Iterable), org.gradle.api.internal.ConventionTask#dependsOn([Ljava.lang.Object;), org.gradle.api.internal.ConventionTask#onlyIf(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#onlyIf(org.gradle.api.specs.Spec), org.gradle.api.internal.ConventionTask#setOnlyIf(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#setOnlyIf(org.gradle.api.specs.Spec), org.gradle.api.internal.ConventionTask#setDidWork(boolean), org.gradle.api.internal.ConventionTask#getDidWork(), org.gradle.api.internal.ConventionTask#doFirst(java.lang.String, org.gradle.api.Action), org.gradle.api.internal.ConventionTask#doFirst(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#doFirst(org.gradle.api.Action), org.gradle.api.internal.ConventionTask#doLast(org.gradle.api.Action), org.gradle.api.internal.ConventionTask#doLast(groovy.lang.Closure), org.gradle.api.internal.ConventionTask#doLast(java.lang.String, org.gradle.api.Action), org.gradle.api.internal.ConventionTask#deleteAllActions(), org.gradle.api.internal.ConventionTask#getEnabled(), org.gradle.api.internal.ConventionTask#dependsOnTaskDidWork(), org.gradle.api.internal.ConventionTask#getOutputs(), org.gradle.api.internal.ConventionTask#getOutputs(), org.gradle.api.internal.ConventionTask#getDestroyables(), org.gradle.api.internal.ConventionTask#getLocalState(), org.gradle.api.internal.ConventionTask#getTemporaryDir(), org.gradle.api.internal.ConventionTask#mustRunAfter([Ljava.lang.Object;), org.gradle.api.internal.ConventionTask#setMustRunAfter(java.lang.Iterable), org.gradle.api.internal.ConventionTask#getMustRunAfter(), org.gradle.api.internal.ConventionTask#finalizedBy([Ljava.lang.Object;), org.gradle.api.internal.ConventionTask#setFinalizedBy(java.lang.Iterable), org.gradle.api.internal.ConventionTask#getFinalizedBy(), org.gradle.api.internal.ConventionTask#shouldRunAfter([Ljava.lang.Object;), org.gradle.api.internal.ConventionTask#setShouldRunAfter(java.lang.Iterable), org.gradle.api.internal.ConventionTask#getShouldRunAfter(), org.gradle.api.internal.ConventionTask#getAnt(), org.gradle.api.internal.ConventionTask#getStandardOutputCapture(), org.gradle.api.internal.ConventionTask#setGroup(java.lang.String), org.gradle.api.internal.ConventionTask#getConvention(), org.gradle.api.internal.ConventionTask#getLogging(), org.gradle.api.internal.ConventionTask#getLogging(), org.gradle.api.internal.ConventionTask#getTaskIdentity(), org.gradle.api.internal.ConventionTask#wait(long, int), org.gradle.api.internal.ConventionTask#wait(long), org.gradle.api.internal.ConventionTask#wait(), org.gradle.api.internal.ConventionTask#equals(java.lang.Object), org.gradle.api.internal.ConventionTask#hashCode(), org.gradle.api.internal.ConventionTask#getClass(), org.gradle.api.internal.ConventionTask#notify(), org.gradle.api.internal.ConventionTask#notifyAll() |
Sets the Boolean
flag to indicate
if only the notes for the latest release should be generated and appended.
The value can be any value Object
or a Closure
.
If the value is a Closure
object, it will be called in the getter and toBoolean
executed on the
return value.
isAppending
- true
if release notes for latest release only should be generated and appended. Returns a Boolean
value indicating,
if only the notes for the latest release should be generated and appended.
If the value is false
, the release notes will be generated from all available github releases.
If the value is true
, only the release notes from the latest release will be generated and append to the
release notes file.
true
if release notes for latest release only should be generated and appended.Returns the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags.
Returns the File
where the generated release notes will be written to.
Sets the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags.
git
- org.ajoberstar.grgit.Grgit instance Sets the File
where the generated release notes will be written to.
releaseNotes
- the release notes fileCreates a org.ajoberstar.gradle.git.release.base.ReleaseVersion object from a list of Github releases and an index.
The method fetches the release at index the previous release if available and constructs a org.ajoberstar.gradle.git.release.base.ReleaseVersion
object with the release name
values.
Note By Wooga convention all releases are named after the version. This makes it easy to convert releases back into versions values.
index
- the index of the release to create the ReleaseVersion
object for.releases
- list of releases Sets the Boolean
flag to indicate
if only the notes for the latest release should be generated and appended.
The value can be any value Object
or a Closure
.
If the value is a Closure
object, it will be called in the getter and toBoolean
executed on the
return value.
isAppending
- true
if release notes for latest release only should be generated and appended.Sets the org.ajoberstar.grgit.Grgit instance used to fetch commit logs and git tags.
git
- org.ajoberstar.grgit.Grgit instance Sets the File
where the generated release notes will be written to.
releaseNotes
- the release notes fileGithub Release Notes Generator API