-
Notifications
You must be signed in to change notification settings - Fork 414
/
interface.go
51 lines (43 loc) · 2.04 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package artifact_manager
import (
"context"
buildinfo "github.com/jfrog/build-info-go/entities"
"github.com/jfrog/jfrog-client-go/artifactory/services"
"github.com/jfrog/jfrog-client-go/artifactory/services/utils"
arti "github.com/ovh/cds/sdk/artifact_manager/artifactory"
"github.com/ovh/cds/sdk"
)
// mockgen -source=interface.go -package mock_artifact_manager -destination=mock_artifact_manager/interface_mock.go ArtifactManager
type ArtifactManager interface {
GetFileInfo(repoName string, filePath string) (sdk.FileInfo, error)
GetRepository(repoName string) (*services.RepositoryDetails, error)
GetFolderInfo(repoName string, folderPath string) (*utils.FolderInfo, error)
GetProperties(repoName string, filePath string) (map[string][]string, error)
SetProperties(repoName string, filePath string, values *utils.Properties) error
DeleteBuild(project string, buildName string, buildVersion string) error
PublishBuildInfo(project string, request *buildinfo.BuildInfo) error
XrayScanBuild(params services.XrayScanParams) ([]byte, error)
GetURL() string
CheckArtifactExists(repoName string, artiName string) (bool, error)
PromoteDocker(params services.DockerPromoteParams) error
Copy(params services.MoveCopyParams) (successCount, failedCount int, err error)
Move(params services.MoveCopyParams) (successCount, failedCount int, err error)
GetRepositoryMaturity(repoName string) (string, error)
Search(ctx context.Context, query string) (sdk.ArtifactResults, error)
}
type ClientFactoryFunc func(string, string, string) (ArtifactManager, error)
var DefaultClientFactory ClientFactoryFunc = newClient
func NewClient(managerType, url, token string) (ArtifactManager, error) {
return DefaultClientFactory(managerType, url, token)
}
func newClient(managerType, url, token string) (ArtifactManager, error) {
switch managerType {
case "artifactory":
asm, err := sdk.NewArtifactoryClient(url, token)
if err != nil {
return nil, err
}
return &arti.Client{Asm: asm}, nil
}
return nil, sdk.Errorf("artifact Manager %s not implemented", managerType)
}