Skip to content

Commit 991b398

Browse files
author
Steve Riesenberg
committed
Create release with full docs path
Closes gh-13500
1 parent 488b6ea commit 991b398

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616

1717
package org.springframework.gradle.sagan;
1818

19+
import java.util.regex.Matcher;
20+
import java.util.regex.Pattern;
21+
22+
import org.eclipse.core.runtime.Assert;
1923
import org.gradle.api.DefaultTask;
2024
import org.gradle.api.tasks.Input;
2125
import org.gradle.api.tasks.TaskAction;
@@ -25,6 +29,8 @@
2529

2630
public class SaganCreateReleaseTask extends DefaultTask {
2731

32+
private static final Pattern VERSION_PATTERN = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-.+)?$");
33+
2834
@Input
2935
private String gitHubAccessToken;
3036
@Input
@@ -44,9 +50,12 @@ public void saganCreateRelease() {
4450
// Antora reference docs URLs for snapshots do not contain -SNAPSHOT
4551
String referenceDocUrl = this.referenceDocUrl;
4652
if (this.version.endsWith("-SNAPSHOT")) {
47-
referenceDocUrl = this.referenceDocUrl
48-
.replace("{version}", this.version)
49-
.replace("-SNAPSHOT", "");
53+
Matcher versionMatcher = VERSION_PATTERN.matcher(this.version);
54+
Assert.isTrue(versionMatcher.matches(), "Version " + this.version + " does not match expected pattern");
55+
var majorVersion = versionMatcher.group(1);
56+
var minorVersion = versionMatcher.group(2);
57+
var majorMinorVersion = "%s.%s-SNAPSHOT".formatted(majorVersion, minorVersion);
58+
referenceDocUrl = this.referenceDocUrl.replace("{version}", majorMinorVersion);
5059
}
5160

5261
SaganApi sagan = new SaganApi(user.getLogin(), this.gitHubAccessToken);

0 commit comments

Comments
 (0)