Skip to content

Commit 539c33e

Browse files
committed
feat: added test that empty string in requireBranch acts as a wildcard
1 parent cfe03eb commit 539c33e

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ Below are some properties of the Release Plugin Convention that are specific to
160160
<td>Git</td>
161161
<td>requireBranch</td>
162162
<td>main</td>
163-
<td>Defines the branch which releases must be done off of. Eg. set to `release` to require releases are done on the `release` branch (or use a regular expression to allow releases from multiple branches, e.g. `/release|main/`). Set to null to ignore.</td>
163+
<td>Defines the branch which releases must be done off of. Eg. set to `release` to require releases are done on the `release` branch (or use a regular expression to allow releases from multiple branches, e.g. `/release|main/`). Set to empty string "" to ignore.</td>
164164
</tr>
165165
<tr>
166166
<td>Git</td>

src/main/groovy/net/researchgate/release/GitAdapter.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class GitAdapter extends BaseScmAdapter {
8888
} else {
8989
releaseBranch = workingBranch
9090
}
91-
if (extension.git.requireBranch.isPresent() && extension.git.requireBranch.get()) {
91+
if (extension.git.requireBranch.isPresent() && !extension.git.requireBranch.get().isEmpty()) {
9292
if (!(workingBranch ==~ extension.git.requireBranch.get())) {
9393
throw new GradleException("Current Git branch is \"$workingBranch\" and not \"${ extension.git.requireBranch.get() }\".")
9494
}

src/test/groovy/net/researchgate/release/GitReleasePluginTests.groovy

+15
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package net.researchgate.release
1212

1313
import net.researchgate.release.cli.Executor
1414
import net.researchgate.release.tasks.CommitNewVersion
15+
import net.researchgate.release.tasks.InitScmAdapter
1516
import org.gradle.api.GradleException
1617
import org.gradle.api.Project
1718
import org.gradle.api.plugins.BasePlugin
@@ -131,4 +132,18 @@ class GitReleasePluginTests extends Specification {
131132
then:
132133
newestCommit.contains("Signed-off-by: Unit Test <unit@test>")
133134
}
135+
136+
def 'accept empty string to ignore requireBranch'() {
137+
given:
138+
executor.exec(['git', 'checkout', '-B', 'myBranch'], failOnStderr: false, directory: localRepo, env: [:])
139+
when:
140+
project.release {
141+
git {
142+
requireBranch.set('')
143+
}
144+
}
145+
(project.tasks.initScmAdapter as InitScmAdapter).initScmAdapter()
146+
then:
147+
(project.tasks.initScmAdapter as InitScmAdapter).getScmAdapter().class.equals(GitAdapter.class)
148+
}
134149
}

0 commit comments

Comments
 (0)