@ -16,6 +16,10 @@
@@ -16,6 +16,10 @@
package org.springframework.gradle.sagan ;
import java.util.regex.Matcher ;
import java.util.regex.Pattern ;
import org.eclipse.core.runtime.Assert ;
import org.gradle.api.DefaultTask ;
import org.gradle.api.tasks.Input ;
import org.gradle.api.tasks.TaskAction ;
@ -25,6 +29,8 @@ import org.springframework.gradle.github.user.User;
@@ -25,6 +29,8 @@ import org.springframework.gradle.github.user.User;
public class SaganCreateReleaseTask extends DefaultTask {
private static final Pattern VERSION_PATTERN = Pattern . compile ( "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-.+)?$" ) ;
@Input
private String gitHubAccessToken ;
@Input
@ -44,9 +50,12 @@ public class SaganCreateReleaseTask extends DefaultTask {
@@ -44,9 +50,12 @@ public class SaganCreateReleaseTask extends DefaultTask {
// Antora reference docs URLs for snapshots do not contain -SNAPSHOT
String referenceDocUrl = this . referenceDocUrl ;
if ( this . version . endsWith ( "-SNAPSHOT" ) ) {
referenceDocUrl = this . referenceDocUrl
. replace ( "{version}" , this . version )
. replace ( "-SNAPSHOT" , "" ) ;
Matcher versionMatcher = VERSION_PATTERN . matcher ( this . version ) ;
Assert . isTrue ( versionMatcher . matches ( ) , "Version " + this . version + " does not match expected pattern" ) ;
var majorVersion = versionMatcher . group ( 1 ) ;
var minorVersion = versionMatcher . group ( 2 ) ;
var majorMinorVersion = "%s.%s-SNAPSHOT" . formatted ( majorVersion , minorVersion ) ;
referenceDocUrl = this . referenceDocUrl . replace ( "{version}" , majorMinorVersion ) ;
}
SaganApi sagan = new SaganApi ( user . getLogin ( ) , this . gitHubAccessToken ) ;