utils

package
v2.23.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2022 License: Apache-2.0 Imports: 42 Imported by: 21

Documentation

Index

Constants

View Source
const (
	BuildInfoDetails          = "details"
	BuildTempPath             = "jfrog/builds/"
	ProjectConfigBuildNameKey = "name"
)
View Source
const (
	ProjectConfigResolverPrefix = "resolver"
	ProjectConfigDeployerPrefix = "deployer"
	ProjectConfigRepo           = "repo"
	ProjectConfigServerId       = "serverId"
)
View Source
const (
	// DefaultThreads is the default number of threads working while transferring Artifactory's data
	DefaultThreads      = 8
	MaxBuildInfoThreads = 8
)
View Source
const ArtifactPattern = "artifactPattern"
View Source
const BuildName = "build.name"

For key/value binding

View Source
const BuildNumber = "build.number"
View Source
const BuildProject = "build.project"
View Source
const BuildTimestamp = "build.timestamp"
View Source
const ClassworldsConf = `` /* 166-byte string literal not displayed */
View Source
const DeployArtifacts = "artifacts"
View Source
const DeployableArtifacts = "deployable.artifacts.map"
View Source
const DeployerPrefix = "deployer."
View Source
const ExcludePatterns = "excludePatterns"
View Source
const (
	// This env var should be used for downloading the extractor jars through an Artifactory remote
	// repository, instead of downloading directly from releases.jfrog.io. The remote repository should be
	// configured to proxy releases.jfrog.io.
	// This env var should store a server ID and a remote repository in form of '<ServerID>/<RemoteRepo>'
	ExtractorsRemoteEnv = "JFROG_CLI_EXTRACTORS_REMOTE"
)
View Source
const FilterExcludedArtifactsFromBuild = "filterExcludedArtifactsFromBuild"
View Source
const ForkCount = "forkCount"
View Source
const GeneratedBuildInfo = "buildInfo.generated"
View Source
const GeneratedBuildInfoTempPrefix = "generatedBuildInfo"
View Source
const GradleInitScript = `` /* 1384-byte string literal not displayed */
View Source
const Host = "host"
View Source
const (
	HttpProxy = "HTTP_PROXY"
)
View Source
const IncludePatterns = "includePatterns"
View Source
const InsecureTls = "insecureTls"
View Source
const IvyDescriptor = "deployIvyDescriptors"
View Source
const IvyPattern = "ivyPattern"
View Source
const MavenDescriptor = "deployMavenDescriptors"
View Source
const Password = "password"
View Source
const Port = "port"
View Source
const PropertiesTempPath = "jfrog/properties/"
View Source
const PropertiesTempPrefix = "buildInfoProperties"

For path and temp files

View Source
const Proxy = "proxy."
View Source
const ReleaseRepo = "releaseRepo"
View Source
const Repo = "repo"
View Source
const ResolverPrefix = "resolver."
View Source
const ServerId = "serverId"
View Source
const SnapshotRepo = "snapshotRepo"
View Source
const Url = "url"
View Source
const Username = "username"

Variables

View Source
var ProjectTypes = []string{
	"go",
	"pip",
	"pipenv",
	"poetry",
	"npm",
	"yarn",
	"nuget",
	"maven",
	"gradle",
	"dotnet",
	"build",
	"terraform",
}
View Source
var RepoTypes = []string{
	"local",
	"remote",
	"virtual",
	"federated",
}

Functions

func AqlResultToSearchResult

func AqlResultToSearchResult(readers []*content.ContentReader) (*content.ContentReader, error)

func ConfirmDelete

func ConfirmDelete(pathsToDeleteReader *content.ContentReader) (bool, error)

func CreateAccessServiceManager added in v2.2.0

func CreateAccessServiceManager(serviceDetails *config.ServerDetails, isDryRun bool) (*access.AccessServicesManager, error)

func CreateBuildInfoProps added in v2.9.0

func CreateBuildInfoProps(buildArtifactsDetailsFile string, config *viper.Viper, projectType ProjectType) (map[string]string, error)

func CreateBuildInfoService added in v2.5.0

func CreateBuildInfoService() *build.BuildInfoService

func CreateBuildProperties

func CreateBuildProperties(buildName, buildNumber, projectKey string) (string, error)

func CreateDeleteServiceManager

func CreateDeleteServiceManager(artDetails *config.ServerDetails, threads, httpRetries, httpRetryWaitMilliSecs int, dryRun bool) (artifactory.ArtifactoryServicesManager, error)

func CreateDistributionServiceManager

func CreateDistributionServiceManager(serviceDetails *config.ServerDetails, isDryRun bool) (*distribution.DistributionServicesManager, error)

func CreateDownloadServiceManager

func CreateDownloadServiceManager(artDetails *config.ServerDetails, threads, httpRetries, httpRetryWaitMilliSecs int, dryRun bool, progressBar io.ProgressMgr) (artifactory.ArtifactoryServicesManager, error)

func CreateServiceManager

func CreateServiceManager(serverDetails *config.ServerDetails, httpRetries, httpRetryWaitMilliSecs int, isDryRun bool) (artifactory.ArtifactoryServicesManager, error)

func CreateServiceManagerWithContext added in v2.20.6

func CreateServiceManagerWithContext(context context.Context, serverDetails *config.ServerDetails, isDryRun bool, threads, httpRetries, httpRetryWaitMilliSecs int) (artifactory.ArtifactoryServicesManager, error)

func CreateServiceManagerWithProgressBar

func CreateServiceManagerWithProgressBar(serverDetails *config.ServerDetails, threads, httpRetries, httpRetryWaitMilliSecs int, dryRun bool, progressBar io.ProgressMgr) (artifactory.ArtifactoryServicesManager, error)

func CreateServiceManagerWithThreads

func CreateServiceManagerWithThreads(serverDetails *config.ServerDetails, isDryRun bool, threads, httpRetries, httpRetryWaitMilliSecs int) (artifactory.ArtifactoryServicesManager, error)

Create a service manager with threads. If the value sent for httpRetries is negative, the default will be used.

func CreateUploadServiceManager

func CreateUploadServiceManager(serverDetails *config.ServerDetails, threads, httpRetries, httpRetryWaitMilliSecs int, dryRun bool, progressBar io.ProgressMgr) (artifactory.ArtifactoryServicesManager, error)

func DownloadExtractorIfNeeded

func DownloadExtractorIfNeeded(targetPath, downloadPath string) error

Download the relevant build-info-extractor jar, if it does not already exist locally. By default, the jar is downloaded directly from jfrog releases.

downloadPath: Artifactory download path. targetPath: The local download path (without the file name).

func GetBuildDir

func GetBuildDir(buildName, buildNumber, projectKey string) (string, error)

func GetBuildScanError

func GetBuildScanError() error

func GetEncryptedPasswordFromArtifactory

func GetEncryptedPasswordFromArtifactory(artifactoryAuth auth.ServiceDetails, insecureTls bool) (string, error)

func GetExtractorsRemoteDetails

func GetExtractorsRemoteDetails(downloadPath string) (*config.ServerDetails, string, error)

func GetFilteredBuildInfoRepositories added in v2.19.1

func GetFilteredBuildInfoRepositories(storageInfo *clientUtils.StorageInfo, includePatterns, excludePatterns []string) ([]string, error)

GetFilteredBuildInfoRepositories returns the names of all build-info repositories filtered by their names. storageInfo - storage info response from Artifactory includePatterns - patterns of repository names (can contain wildcards) to include in the results. A repository's name must match at least one of these patterns in order to be included in the results. If includePatterns' length is zero, all repositories are included. excludePatterns - patterns of repository names (can contain wildcards) to exclude from the results. A repository's name must NOT match any of these patterns in order to be included in the results.

func GetFilteredRepositoriesByName added in v2.19.1

func GetFilteredRepositoriesByName(servicesManager artifactory.ArtifactoryServicesManager, includePatterns, excludePatterns []string) ([]string, error)

GetFilteredRepositoriesByName returns the names of local, remote, virtual and federated repositories filtered by their names. includePatterns - patterns of repository names (can contain wildcards) to include in the results. A repository's name must match at least one of these patterns in order to be included in the results. If includePatterns' length is zero, all repositories are included. excludePatterns - patterns of repository names (can contain wildcards) to exclude from the results. A repository's name must NOT match any of these patterns in order to be included in the results.

func GetFilteredRepositoriesByNameAndType added in v2.19.1

func GetFilteredRepositoriesByNameAndType(servicesManager artifactory.ArtifactoryServicesManager, includePatterns, excludePatterns []string, repoType RepoType) ([]string, error)

GetFilteredRepositoriesByNameAndType returns the names of local, remote, virtual and federated repositories filtered by their names and type. includePatterns - patterns of repository names (can contain wildcards) to include in the results. A repository's name must match at least one of these patterns in order to be included in the results. If includePatterns' length is zero, all repositories are included. excludePatterns - patterns of repository names (can contain wildcards) to exclude from the results. A repository's name must NOT match any of these patterns in order to be included in the results. repoType - only repositories of this type will be returned.

func GetGeneratedBuildsInfo

func GetGeneratedBuildsInfo(buildName, buildNumber, projectKey string) ([]*buildInfo.BuildInfo, error)

func GetProjectConfFilePath

func GetProjectConfFilePath(projectType ProjectType) (confFilePath string, exists bool, err error)

If configuration file exists in the working dir or in one of its parent dirs return its path, otherwise return the global configuration file path

func GetProjectDir

func GetProjectDir(global bool) (string, error)

func GetRepoNameForDependenciesSearch

func GetRepoNameForDependenciesSearch(repoName string, serviceManager artifactory.ArtifactoryServicesManager) (string, error)

Since we can't search dependencies in a remote repository, we will turn the search to the repository's cache. Local/Virtual repository name will be returned as is.

func GetRepositories

func GetRepositories(artDetails *config.ServerDetails, repoTypes ...RepoType) ([]string, error)

GetRepositories returns the names of local, remote, virtual or federated repositories filtered by their type. artDetails - Artifactory server details repoTypes - Repository types to filter. If empty - return all repository types.

func GetSearchParams

func GetSearchParams(f *spec.File) (searchParams services.SearchParams, err error)

func GetServerDetails

func GetServerDetails(vConfig *viper.Viper) (*config.ServerDetails, error)

Returns the Artifactory details Checks first for the deployer information if exists and if not, checks for the resolver information.

func GetTestDataPath added in v2.10.0

func GetTestDataPath() (string, error)

func IsRemoteRepo

func IsRemoteRepo(repoName string, serviceManager artifactory.ArtifactoryServicesManager) (bool, error)

func PrepareBuildPrerequisites added in v2.12.3

func PrepareBuildPrerequisites(buildConfiguration *BuildConfiguration) (build *build.Build, err error)

func PrintSearchResults

func PrintSearchResults(reader *content.ContentReader) error

func ReadBuildInfoGeneralDetails

func ReadBuildInfoGeneralDetails(buildName, buildNumber, projectKey string) (*buildInfo.General, error)

func ReadConfigFile

func ReadConfigFile(configPath string, configType ConfigType) (config *viper.Viper, err error)

func ReadGradleConfig added in v2.20.4

func ReadGradleConfig(path string, useWrapperIfMissingConfig bool) (config *viper.Viper, err error)

func ReadMavenConfig added in v2.20.4

func ReadMavenConfig(path string) (config *viper.Viper, err error)

func ReadPartialBuildInfoFiles

func ReadPartialBuildInfoFiles(buildName, buildNumber, projectKey string) (buildInfo.Partials, error)

func RemoteUnmarshal

func RemoteUnmarshal(serviceManager artifactory.ArtifactoryServicesManager, remoteFileUrl string, loadTarget interface{}) (err error)

Download and unmarshal a file from artifactory.

func RemoveBuildDir

func RemoveBuildDir(buildName, buildNumber, projectKey string) error

func SaveBuildGeneralDetails

func SaveBuildGeneralDetails(buildName, buildNumber, projectKey string) error

func SaveBuildInfo

func SaveBuildInfo(buildName, buildNumber, projectKey string, buildInfo *buildInfo.BuildInfo) (err error)

func SavePartialBuildInfo

func SavePartialBuildInfo(buildName, buildNumber, projectKey string, populatePartialBuildInfoFunc populatePartialBuildInfo) error

func SaveTransferSettings added in v2.17.0

func SaveTransferSettings(settings *TransferSettings) (err error)

func SearchResultNoDate

func SearchResultNoDate(reader *content.ContentReader) (*content.ContentReader, error)

func ValidateRepoExists added in v2.9.0

func ValidateRepoExists(repoKey string, serviceDetails auth.ServiceDetails) error

Returns an error if the given repo doesn't exist.

Types

type BuildConfigMapping

type BuildConfigMapping map[ProjectType][]*map[string]string

type BuildConfiguration

type BuildConfiguration struct {
	// contains filtered or unexported fields
}

func ExtractBuildDetailsFromArgs

func ExtractBuildDetailsFromArgs(args []string) (cleanArgs []string, buildConfig *BuildConfiguration, err error)

func NewBuildConfiguration added in v2.7.0

func NewBuildConfiguration(buildName, buildNumber, module, project string) *BuildConfiguration

func (*BuildConfiguration) GetBuildName added in v2.7.0

func (bc *BuildConfiguration) GetBuildName() (string, error)

func (*BuildConfiguration) GetBuildNumber added in v2.7.0

func (bc *BuildConfiguration) GetBuildNumber() (string, error)

func (*BuildConfiguration) GetModule added in v2.7.0

func (bc *BuildConfiguration) GetModule() string

func (*BuildConfiguration) GetProject added in v2.7.0

func (bc *BuildConfiguration) GetProject() string

func (*BuildConfiguration) IsCollectBuildInfo added in v2.7.0

func (bc *BuildConfiguration) IsCollectBuildInfo() (bool, error)

func (*BuildConfiguration) IsLoadedFromConfigFile added in v2.7.0

func (bc *BuildConfiguration) IsLoadedFromConfigFile() bool

func (*BuildConfiguration) SetBuildName added in v2.7.0

func (bc *BuildConfiguration) SetBuildName(buildName string) *BuildConfiguration

func (*BuildConfiguration) SetBuildNumber added in v2.7.0

func (bc *BuildConfiguration) SetBuildNumber(buildNumber string) *BuildConfiguration

func (*BuildConfiguration) SetModule added in v2.7.0

func (bc *BuildConfiguration) SetModule(module string) *BuildConfiguration

func (*BuildConfiguration) SetProject added in v2.7.0

func (bc *BuildConfiguration) SetProject(project string) *BuildConfiguration

func (*BuildConfiguration) ValidateBuildAndModuleParams added in v2.7.0

func (bc *BuildConfiguration) ValidateBuildAndModuleParams() error

Validates: 1. If the build number exists, the build name also exists (and vice versa). 2. If the modules exists, the build name/number are also exist (and vice versa).

func (*BuildConfiguration) ValidateBuildParams added in v2.7.0

func (bc *BuildConfiguration) ValidateBuildParams() error

Validates that if the build number exists, the build name also exists (and vice versa).

type ConfigType

type ConfigType string
const (
	YAML       ConfigType = "yaml"
	PROPERTIES ConfigType = "properties"
)

type DownloadConfiguration

type DownloadConfiguration struct {
	Threads         int
	SplitCount      int
	MinSplitSize    int64
	Symlink         bool
	ValidateSymlink bool
	SkipChecksum    bool
}

type FileTree added in v2.17.0

type FileTree struct {
	// contains filtered or unexported fields
}

FileTree is a UI components that displays a file-system tree view in the terminal.

func NewFileTree added in v2.17.0

func NewFileTree() *FileTree

func (*FileTree) AddFile added in v2.17.0

func (ft *FileTree) AddFile(path string)

func (*FileTree) String added in v2.17.0

func (ft *FileTree) String() string

Returns a string representation of the tree. If the number of files exceeded the maximum, an empty string will be returned.

type ProjectType

type ProjectType int
const (
	Go ProjectType = iota
	Pip
	Pipenv
	Poetry
	Npm
	Yarn
	Nuget
	Maven
	Gradle
	Dotnet
	Build
	Terraform
)

func (ProjectType) String

func (projectType ProjectType) String() string

type RepoType

type RepoType int
const (
	Local RepoType = iota
	Remote
	Virtual
	Federated
)

func (RepoType) String

func (repoType RepoType) String() string

type Repository

type Repository struct {
	Repo             string `yaml:"repo,omitempty"`
	ServerId         string `yaml:"serverId,omitempty"`
	SnapshotRepo     string `yaml:"snapshotRepo,omitempty"`
	ReleaseRepo      string `yaml:"releaseRepo,omitempty"`
	DeployMavenDesc  bool   `yaml:"deployMavenDescriptors,omitempty"`
	DeployIvyDesc    bool   `yaml:"deployIvyDescriptors,omitempty"`
	IvyPattern       string `yaml:"ivyPattern,omitempty"`
	ArtifactsPattern string `yaml:"artifactPattern,omitempty"`
	NugetV2          bool   `yaml:"nugetV2,omitempty"`
	IncludePatterns  string `yaml:"includePatterns,omitempty"`
	ExcludePatterns  string `yaml:"excludePatterns,omitempty"`
}

type RepositoryConfig

type RepositoryConfig struct {
	// contains filtered or unexported fields
}

func GetRepoConfigByPrefix

func GetRepoConfigByPrefix(configFilePath, prefix string, vConfig *viper.Viper) (*RepositoryConfig, error)

func GetResolutionOnlyConfiguration

func GetResolutionOnlyConfiguration(projectType ProjectType) (*RepositoryConfig, error)

func ReadResolutionOnlyConfiguration

func ReadResolutionOnlyConfiguration(confFilePath string) (*RepositoryConfig, error)

func (*RepositoryConfig) IsServerDetailsEmpty

func (repo *RepositoryConfig) IsServerDetailsEmpty() bool

func (*RepositoryConfig) ServerDetails

func (repo *RepositoryConfig) ServerDetails() (*config.ServerDetails, error)

func (*RepositoryConfig) SetServerDetails

func (repo *RepositoryConfig) SetServerDetails(rtDetails *config.ServerDetails) *RepositoryConfig

func (*RepositoryConfig) SetTargetRepo

func (repo *RepositoryConfig) SetTargetRepo(targetRepo string) *RepositoryConfig

func (*RepositoryConfig) TargetRepo

func (repo *RepositoryConfig) TargetRepo() string

type RepositoryFilter added in v2.19.1

type RepositoryFilter struct {
	IncludePatterns []string
	ExcludePatterns []string
}

func (*RepositoryFilter) ShouldIncludeRepository added in v2.19.1

func (rf *RepositoryFilter) ShouldIncludeRepository(repoKey string) (bool, error)

type SearchResult

type SearchResult struct {
	Path     string              `json:"path,omitempty"`
	Type     string              `json:"type,omitempty"`
	Size     int64               `json:"size,omitempty"`
	Created  string              `json:"created,omitempty"`
	Modified string              `json:"modified,omitempty"`
	Sha1     string              `json:"sha1,omitempty"`
	Md5      string              `json:"md5,omitempty"`
	Props    map[string][]string `json:"props,omitempty"`
}

type StorageInfoManager added in v2.20.0

type StorageInfoManager struct {
	// contains filtered or unexported fields
}

func NewStorageInfoManager added in v2.20.0

func NewStorageInfoManager(ctx context.Context, serverDetails *config.ServerDetails) (*StorageInfoManager, error)

func (*StorageInfoManager) CalculateStorageInfo added in v2.20.0

func (sim *StorageInfoManager) CalculateStorageInfo() error

Start calculating storage info in Artifactory

func (*StorageInfoManager) GetRepoSummary added in v2.20.0

func (sim *StorageInfoManager) GetRepoSummary(repoKey string) (*utils.RepositorySummary, error)

Get repository summary from the storage info. This method must be called after CalculateStorageInfo. repoKey - The repository key

func (*StorageInfoManager) GetReposTotalSize added in v2.21.0

func (sim *StorageInfoManager) GetReposTotalSize(repoKeys ...string) (int64, error)

GetReposTotalSize gets the total size of all passed repositories, in bytes. This method must be called after CalculateStorageInfo. The result of this function might not be accurate!

func (*StorageInfoManager) GetServiceId added in v2.21.0

func (sim *StorageInfoManager) GetServiceId() (string, error)

Get Service Id from Artifactory

func (*StorageInfoManager) GetServiceManager added in v2.21.0

func (*StorageInfoManager) GetStorageInfo added in v2.20.0

func (sim *StorageInfoManager) GetStorageInfo() (*utils.StorageInfo, error)

Get storage info from Artifactory

type TransferSettings added in v2.17.0

type TransferSettings struct {
	ThreadsNumber int `json:"threadsNumber,omitempty"`
}

func LoadTransferSettings added in v2.17.0

func LoadTransferSettings() (settings *TransferSettings, err error)

func (*TransferSettings) CalcNumberOfThreads added in v2.19.2

func (ts *TransferSettings) CalcNumberOfThreads(buildInfoRepo bool) int

type UploadConfiguration

type UploadConfiguration struct {
	Deb                   string
	Threads               int
	MinChecksumDeploySize int64
	ExplodeArchive        bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL