diff --git a/release-plugin/src/main/java/io/spring/gradle/plugin/release/CreateGitHubReleaseTask.java b/release-plugin/src/main/java/io/spring/gradle/plugin/release/CreateGitHubReleaseTask.java index ca6ccb4..caed26b 100644 --- a/release-plugin/src/main/java/io/spring/gradle/plugin/release/CreateGitHubReleaseTask.java +++ b/release-plugin/src/main/java/io/spring/gradle/plugin/release/CreateGitHubReleaseTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,15 +43,16 @@ public abstract class CreateGitHubReleaseTask extends DefaultTask { @Input public abstract Property getVersion(); - @Input - public abstract Property getReleaseNotes(); - @Input public abstract Property getBranch(); @Input public abstract Property getCreateRelease(); + @Input + @Optional + public abstract Property getReleaseNotes(); + @Input @Optional public abstract Property getVersionPrefix(); @@ -67,12 +68,21 @@ public void createGitHubRelease() { var version = getVersion().get(); var versionPrefix = getVersionPrefix().getOrElse(""); var branch = getBranch().get(); - var body = getReleaseNotes().get(); + var createRelease = getCreateRelease().get(); if (createRelease && gitHubAccessToken == null) { throw new MissingPropertyException("Please provide an access token with -PgitHubAccessToken=..."); } + var body = getReleaseNotes().getOrNull(); + if (body == null) { + // @formatter:off + throw new MissingPropertyException(("Nothing was generated by the release-notes-generator, " + + "perhaps because no issues were available in release milestone %s. " + + "Please ensure there is at least one issue in the release.").formatted(version)); + // @formatter:on + } + System.out.printf("%sCreating GitHub release for %s/%s@%s%s%n", createRelease ? "" : "[DRY RUN] ", repository.owner(), repository.name(), versionPrefix, version); System.out.printf("%nRelease Notes:%n%n----%n%s%n----%n%n", body.trim());