diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/BitbucketRepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/BitbucketRepositoryProvider.groovy index 2c87272f4..df1038f74 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/BitbucketRepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/BitbucketRepositoryProvider.groovy @@ -48,7 +48,7 @@ final class BitbucketRepositoryProvider extends RepositoryProvider { @Override boolean hasCredentials() { - return config.token + return getToken() ? true : super.hasCredentials() } diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/GiteaRepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/GiteaRepositoryProvider.groovy index 65be6c04f..b47901cac 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/GiteaRepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/GiteaRepositoryProvider.groovy @@ -53,6 +53,13 @@ final class GiteaRepositoryProvider extends RepositoryProvider { return null } + @Override + boolean hasCredentials() { + return getToken() + ? true + : super.hasCredentials() + } + @Override @CompileDynamic List getBranches() { diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/GitlabRepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/GitlabRepositoryProvider.groovy index 454a76eda..071ec9cd0 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/GitlabRepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/GitlabRepositoryProvider.groovy @@ -50,6 +50,13 @@ class GitlabRepositoryProvider extends RepositoryProvider { return null } + @Override + boolean hasCredentials() { + return getToken() + ? true + : super.hasCredentials() + } + @Override String getName() { "GitLab" } diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/RepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/RepositoryProvider.groovy index fee74b3fc..495055c18 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/RepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/RepositoryProvider.groovy @@ -133,6 +133,8 @@ abstract class RepositoryProvider { String getPassword() { config?.password } + String getToken() { config?.token } + /** * @return The name of the source hub service e.g. github or bitbucket */ diff --git a/modules/nextflow/src/test/groovy/nextflow/scm/GiteaRepositoryProviderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/scm/GiteaRepositoryProviderTest.groovy index f1791e2b6..2ec1b6284 100644 --- a/modules/nextflow/src/test/groovy/nextflow/scm/GiteaRepositoryProviderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/scm/GiteaRepositoryProviderTest.groovy @@ -19,6 +19,8 @@ package nextflow.scm import spock.lang.IgnoreIf import spock.lang.Requires import spock.lang.Specification +import spock.lang.Unroll + /** * * @author Akira Sekiguchi @@ -68,6 +70,22 @@ class GiteaRepositoryProviderTest extends Specification { } + @Unroll + def 'should validate hasCredentials' () { + given: + def provider = new GiteaRepositoryProvider('pditommaso/tutorial', PROVIDER_CONFIG) + + expect: + provider.hasCredentials() == EXPECTED + + where: + EXPECTED | PROVIDER_CONFIG + false | new ProviderConfig('gitea') + false | new ProviderConfig('gitea').setUser('foo') + true | new ProviderConfig('gitea').setUser('foo').setPassword('bar') + true | new ProviderConfig('gitea').setToken('xyz') + } + @IgnoreIf({System.getenv('NXF_SMOKE')}) @Requires({System.getenv('NXF_GITEA_ACCESS_TOKEN')}) def 'should read file content'() { diff --git a/modules/nextflow/src/test/groovy/nextflow/scm/GitlabRepositoryProviderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/scm/GitlabRepositoryProviderTest.groovy index 3c6d45a6f..59f7b848d 100644 --- a/modules/nextflow/src/test/groovy/nextflow/scm/GitlabRepositoryProviderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/scm/GitlabRepositoryProviderTest.groovy @@ -19,6 +19,7 @@ package nextflow.scm import spock.lang.IgnoreIf import spock.lang.Requires import spock.lang.Specification +import spock.lang.Unroll /** * @@ -37,6 +38,22 @@ class GitlabRepositoryProviderTest extends Specification { new GitlabRepositoryProvider('pditommaso/hello').getRepositoryUrl() == 'https://gitlab.com/pditommaso/hello' } + @Unroll + def 'should validate hasCredentials' () { + given: + def provider = new GitlabRepositoryProvider('pditommaso/tutorial', CONFIG) + + expect: + provider.hasCredentials() == EXPECTED + + where: + EXPECTED | CONFIG + false | new ProviderConfig('gitlab') + false | new ProviderConfig('gitlab').setUser('foo') + true | new ProviderConfig('gitlab').setUser('foo').setPassword('bar') + true | new ProviderConfig('gitlab').setToken('xyz') + } + @Requires({System.getenv('NXF_GITLAB_ACCESS_TOKEN')}) def 'should return clone url'() { given: