diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f356231f..a3026f842 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v4 - name: Setup Python3 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.x" diff --git a/artifactory/commands/repository/repository.go b/artifactory/commands/repository/repository.go index e8ba2cf7f..05e407872 100644 --- a/artifactory/commands/repository/repository.go +++ b/artifactory/commands/repository/repository.go @@ -239,6 +239,8 @@ var localRepoHandlers = map[string]repoHandler{ Alpine: localAlpineHandler, Generic: localGenericHandler, Swift: localSwiftHandler, + Terraform: localTerraformHandler, + Cargo: localCargoHandler, } func localMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { @@ -620,6 +622,36 @@ func localSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, j return err } +func localTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewTerraformLocalRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + + if isUpdate { + err = servicesManager.UpdateLocalRepository().Terraform(params) + } else { + err = servicesManager.CreateLocalRepository().Terraform(params) + } + return err +} + +func localCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewCargoLocalRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + + if isUpdate { + err = servicesManager.UpdateLocalRepository().Cargo(params) + } else { + err = servicesManager.CreateLocalRepository().Cargo(params) + } + return err +} + func localGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { params := services.NewGenericLocalRepositoryParams() err := json.Unmarshal(jsonConfig, ¶ms) @@ -665,6 +697,8 @@ var remoteRepoHandlers = map[string]repoHandler{ Alpine: remoteAlpineHandler, Generic: remoteGenericHandler, Swift: remoteSwiftHandler, + Terraform: remoteTerraformHandler, + Cargo: remoteCargoHandler, } func remoteMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { @@ -1059,6 +1093,34 @@ func remoteSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, return err } +func remoteCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewCargoRemoteRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + if isUpdate { + err = servicesManager.UpdateRemoteRepository().Cargo(params) + } else { + err = servicesManager.CreateRemoteRepository().Cargo(params) + } + return err +} + +func remoteTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewTerraformRemoteRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + if isUpdate { + err = servicesManager.UpdateRemoteRepository().Terraform(params) + } else { + err = servicesManager.CreateRemoteRepository().Terraform(params) + } + return err +} + func remoteGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { params := services.NewGenericRemoteRepositoryParams() err := json.Unmarshal(jsonConfig, ¶ms) @@ -1102,6 +1164,8 @@ var federatedRepoHandlers = map[string]repoHandler{ Generic: federatedGenericHandler, Yum: federatedYumHandler, Swift: federatedSwiftHandler, + Terraform: federatedTerraformHandler, + Cargo: federatedCargoHandler, } func federatedMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { @@ -1430,6 +1494,30 @@ func federatedSwiftHandler(servicesManager artifactory.ArtifactoryServicesManage return servicesManager.CreateFederatedRepository().Swift(params) } +func federatedTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewTerraformFederatedRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + if isUpdate { + return servicesManager.UpdateFederatedRepository().Terraform(params) + } + return servicesManager.CreateFederatedRepository().Terraform(params) +} + +func federatedCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewCargoFederatedRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + if isUpdate { + return servicesManager.UpdateFederatedRepository().Cargo(params) + } + return servicesManager.CreateFederatedRepository().Cargo(params) +} + func federatedYumHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { params := services.NewYumFederatedRepositoryParams() err := json.Unmarshal(jsonConfig, ¶ms) @@ -1443,31 +1531,32 @@ func federatedYumHandler(servicesManager artifactory.ArtifactoryServicesManager, } var virtualRepoHandlers = map[string]repoHandler{ - Maven: virtualMavenHandler, - Gradle: virtualGradleHandler, - Ivy: virtualIvyHandler, - Sbt: virtualSbtHandler, - Helm: virtualHelmHandler, - Rpm: virtualRpmHandler, - Nuget: virtualNugetHandler, - Cran: virtualCranHandler, - Gems: virtualGemsHandler, - Npm: virtualNpmHandler, - Bower: virtualBowerHandler, - Debian: virtualDebianHandler, - Pypi: virtualPypiHandler, - Docker: virtualDockerHandler, - Gitlfs: virtualGitLfsHandler, - Go: virtualGoHandler, - Yum: virtualYumHandler, - Conan: virtualConanHandler, - Chef: virtualChefHandler, - Puppet: virtualPuppetHandler, - Conda: virtualCondaHandler, - P2: virtualP2Handler, - Alpine: virtualAlpineHandler, - Generic: virtualGenericHandler, - Swift: virtualSwiftHandler, + Maven: virtualMavenHandler, + Gradle: virtualGradleHandler, + Ivy: virtualIvyHandler, + Sbt: virtualSbtHandler, + Helm: virtualHelmHandler, + Rpm: virtualRpmHandler, + Nuget: virtualNugetHandler, + Cran: virtualCranHandler, + Gems: virtualGemsHandler, + Npm: virtualNpmHandler, + Bower: virtualBowerHandler, + Debian: virtualDebianHandler, + Pypi: virtualPypiHandler, + Docker: virtualDockerHandler, + Gitlfs: virtualGitLfsHandler, + Go: virtualGoHandler, + Yum: virtualYumHandler, + Conan: virtualConanHandler, + Chef: virtualChefHandler, + Puppet: virtualPuppetHandler, + Conda: virtualCondaHandler, + P2: virtualP2Handler, + Alpine: virtualAlpineHandler, + Generic: virtualGenericHandler, + Swift: virtualSwiftHandler, + Terraform: virtualTerraformHandler, } func virtualMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { @@ -1806,6 +1895,20 @@ func virtualSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, return err } +func virtualTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { + params := services.NewTerraformVirtualRepositoryParams() + err := json.Unmarshal(jsonConfig, ¶ms) + if errorutils.CheckError(err) != nil { + return err + } + if isUpdate { + err = servicesManager.UpdateVirtualRepository().Terraform(params) + } else { + err = servicesManager.CreateVirtualRepository().Terraform(params) + } + return err +} + func virtualGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error { params := services.NewGenericVirtualRepositoryParams() err := json.Unmarshal(jsonConfig, ¶ms) diff --git a/artifactory/commands/repository/template.go b/artifactory/commands/repository/template.go index 435df31b0..f046b1041 100644 --- a/artifactory/commands/repository/template.go +++ b/artifactory/commands/repository/template.go @@ -159,6 +159,8 @@ const ( Conda = "conda" P2 = "p2" Swift = "swift" + Terraform = "terraform" + Cargo = "cargo" // Repo layout Refs BowerDefaultRepoLayout = "bower-default" diff --git a/go.mod b/go.mod index 3d86d8c15..b2faee7a3 100644 --- a/go.mod +++ b/go.mod @@ -96,7 +96,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect ) -replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240214141548-6691c4323f52 +replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240218093454-1c352a93c23d // replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20231220102935-c8776c613ad8 diff --git a/go.sum b/go.sum index 3f9260691..2f8bea419 100644 --- a/go.sum +++ b/go.sum @@ -87,8 +87,8 @@ github.com/jfrog/build-info-go v1.9.21 h1:bcD0SEC2lEilhjE+aDB3xlvA8zsr4Kw/bFzvr9 github.com/jfrog/build-info-go v1.9.21/go.mod h1:Vxv6zmx4e1NWsx40OHaDWCCYDeYAq2yXzpJ4nsDChbE= github.com/jfrog/gofrog v1.6.0 h1:jOwb37nHY2PnxePNFJ6e6279Pgkr3di05SbQQw47Mq8= github.com/jfrog/gofrog v1.6.0/go.mod h1:SZ1EPJUruxrVGndOzHd+LTiwWYKMlHqhKD+eu+v5Hqg= -github.com/jfrog/jfrog-client-go v1.28.1-0.20240214141548-6691c4323f52 h1:eDwEWEKfz9gigNJNF60ioZFG3R/33Qq2z+5lH/FfO9Q= -github.com/jfrog/jfrog-client-go v1.28.1-0.20240214141548-6691c4323f52/go.mod h1:fV5wrs86ihQkFKfMKpGxMbNf3mbVT4LUf320C1T9C2M= +github.com/jfrog/jfrog-client-go v1.28.1-0.20240218093454-1c352a93c23d h1:59C2AOjdp5Wp/WoeQZkOGbAtKnhY1a9YhrnAdeVbVYs= +github.com/jfrog/jfrog-client-go v1.28.1-0.20240218093454-1c352a93c23d/go.mod h1:fV5wrs86ihQkFKfMKpGxMbNf3mbVT4LUf320C1T9C2M= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=