From bc49d62e740f4adacff940d00b11f685a5a21168 Mon Sep 17 00:00:00 2001 From: Ben Sherman Date: Mon, 6 Mar 2023 11:05:54 -0600 Subject: [PATCH 1/2] Infer commit revision type for azure repos Signed-off-by: Ben Sherman --- .../nextflow/scm/AzureRepositoryProvider.groovy | 8 +++++++- .../scm/AzureRepositoryProviderTest.groovy | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy index f0fdd817c1..2f5dcee82f 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy @@ -30,6 +30,8 @@ import groovy.transform.Memoized @CompileStatic final class AzureRepositoryProvider extends RepositoryProvider { + private static final COMMIT_REGEX = ~/[a-zA-Z0-9]{40}/ + private String user private String repo private String continuationToken @@ -74,8 +76,12 @@ final class AzureRepositoryProvider extends RepositoryProvider { '$format':'json', 'path':path ] as Map - if( revision ) + if( revision ) { queryParams['versionDescriptor.version']=revision + + if( COMMIT_REGEX.matcher(revision).matches() ) + queryParams['versionDescriptor.versionType'] = 'commit' + } def queryString = queryParams.collect({ "$it.key=$it.value"}).join('&') def result = "$endpointUrl/items?$queryString" result diff --git a/modules/nextflow/src/test/groovy/nextflow/scm/AzureRepositoryProviderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/scm/AzureRepositoryProviderTest.groovy index ea1c03a2ee..8d3e9cfd2d 100644 --- a/modules/nextflow/src/test/groovy/nextflow/scm/AzureRepositoryProviderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/scm/AzureRepositoryProviderTest.groovy @@ -202,4 +202,21 @@ class AzureRepositoryProviderTest extends Specification { then: result=='hello\n' } + + @IgnoreIf({System.getenv('NXF_SMOKE')}) + @Requires({System.getenv('NXF_AZURE_REPOS_TOKEN')}) + def 'should infer revision type for commit revision'() { + given: + def token = System.getenv('NXF_AZURE_REPOS_TOKEN') + def config = new ProviderConfig('azurerepos').setAuth(token) + + when: + // uses repo at + // https://pditommaso.visualstudio.com/nf-azure-repo/_git/nf-azure-repo + def repo = new AzureRepositoryProvider('pditommaso/nf-azure-repo', config) + repo.revision = 'cc0ca18640a5c995231e22d91f1527d5155d024b' + def result = repo.readText('file-on-dev.txt') + then: + result=='hello\n' + } } From 21b34c008b59058d80763efbcb027626ca2d6566 Mon Sep 17 00:00:00 2001 From: Ben Sherman Date: Mon, 6 Mar 2023 11:22:06 -0600 Subject: [PATCH 2/2] Fix compile errors Signed-off-by: Ben Sherman --- .../main/groovy/nextflow/scm/AzureRepositoryProvider.groovy | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy index 2f5dcee82f..17376a17bf 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/AzureRepositoryProvider.groovy @@ -17,6 +17,8 @@ package nextflow.scm +import java.util.regex.Pattern + import groovy.transform.CompileDynamic import groovy.transform.CompileStatic import groovy.transform.Memoized @@ -30,7 +32,7 @@ import groovy.transform.Memoized @CompileStatic final class AzureRepositoryProvider extends RepositoryProvider { - private static final COMMIT_REGEX = ~/[a-zA-Z0-9]{40}/ + private static final Pattern COMMIT_REGEX = ~/[a-zA-Z0-9]{40}/ private String user private String repo