utils

package
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2022 License: Apache-2.0 Imports: 24 Imported by: 137

Documentation

Index

Constants

View Source
const (
	Development = "development"
	Agent       = "jfrog-client-go"
	Version     = "1.9.0"
)
View Source
const CredentialsInUrlRegexp = `(http|https|git)://.+@`
View Source
const MaxEntries = 10000

Variables

View Source
var MaxBufferSize = 50000

In order to limit the number of items loaded from a reader into the memory, we use a buffers with this size limit.

Functions

func AddProps added in v0.19.0

func AddProps(oldProps, additionalProps string) string

func AddTrailingSlashIfNeeded

func AddTrailingSlashIfNeeded(url string) string

func Bool2Int

func Bool2Int(b bool) int

func BuildTargetPath

func BuildTargetPath(pattern, path, target string, ignoreRepo bool) (string, bool, error)

Replaces matched regular expression from path to corresponding placeholder {i} at target. Example 1:

pattern = "repoA/1(.*)234" ; path = "repoA/1hello234" ; target = "{1}" ; ignoreRepo = false
returns "hello"

Example 2:

pattern = "repoA/1(.*)234" ; path = "repoB/1hello234" ; target = "{1}" ; ignoreRepo = true
returns "hello"

return (parsed target, placeholders replaced in target, error)

func CheckErrorWithMessage added in v0.1.1

func CheckErrorWithMessage(err error, message string) error

func ConvertLocalPatternToRegexp added in v1.0.1

func ConvertLocalPatternToRegexp(localPath string, patternType PatternType) string

func ConvertSliceToMap added in v0.1.2

func ConvertSliceToMap(slice []string) map[string]bool

func CopyMap

func CopyMap(src map[string]string) (dst map[string]string)

func ExtractArchive added in v0.17.2

func ExtractArchive(localPath, localFileName, originFileName, logMsgPrefix string) error

localPath - The path of the downloaded archive file. localFileName - name of the archive file. originFileName - name of the archive file in Artifactory. logMsgPrefix - prefix log message. Extract an archive file to the 'localPath'.

func ExtractSha256FromResponseBody added in v0.24.0

func ExtractSha256FromResponseBody(body []byte) (string, error)

Extract sha256 of the uploaded file (calculated by artifactory) from the response's body. In case of uploading archive with "--explode" the response body will be empty and sha256 won't be shown at the detailed summary.

func GetBoolEnvValue added in v0.1.1

func GetBoolEnvValue(flagName string, defValue bool) (bool, error)

func GetLogMsgPrefix

func GetLogMsgPrefix(threadId int, dryRun bool) string

func GetRegExp added in v0.3.1

func GetRegExp(regex string) (*regexp.Regexp, error)

func GetRootPath

func GetRootPath(path string, patternType PatternType, parentheses ParenthesesSlice) string

Get the local root path, from which to start collecting artifacts to be used for: 1. Uploaded to Artifactory, 2. Adding to the local build-info, to be later published to Artifactory.

func GetUserAgent

func GetUserAgent() string

func GetUserHomeDir

func GetUserHomeDir() string

func IndentJson

func IndentJson(jsonStr []byte) string

func IndentJsonArray added in v0.13.0

func IndentJsonArray(jsonStr []byte) string

func IsSlashPrecedeAsterisk added in v0.11.1

func IsSlashPrecedeAsterisk(asteriskIndex, slashIndex int) bool

func MergeMaps

func MergeMaps(src map[string]string, dst map[string]string)

func NewGitManager added in v0.6.2

func NewGitManager(path string) *manager

func PlaceholdersUserd added in v1.0.1

func PlaceholdersUserd(pattern, target string) bool

Return true if at least one of the {i} in 'target' has corresponding parentheses in 'pattern'.

func RemoveCredentials added in v0.17.5

func RemoveCredentials(line, credentialsPart string) string

Remove credentials from the URL contained in the input line. The credentials are built as 'user:password' or 'token' For example: line = 'This is a line http://user:password@127.0.0.1:8081/artifactory/path/to/repo' credentialsPart = 'http://user:password@' Returned value: 'This is a line http://127.0.0.1:8081/artifactory/path/to/repo'

line = 'This is a line http://token@127.0.0.1:8081/artifactory/path/to/repo' credentialsPart = 'http://token@' Returned value: 'This is a line http://127.0.0.1:8081/artifactory/path/to/repo'

func RemovePlaceholderParentheses added in v0.5.3

func RemovePlaceholderParentheses(pattern, target string) string

func ReplacePlaceHolders added in v1.0.1

func ReplacePlaceHolders(groups []string, toReplace string) (string, bool)

group - regular expression matched group to replace with placeholders toReplace - target pattern to replace Return - (parsed placeholders string, placeholders were replaced)

func ReplaceTildeWithUserHome

func ReplaceTildeWithUserHome(path string) string

func SaveFileTransferDetailsInFile added in v0.24.0

func SaveFileTransferDetailsInFile(filePath string, details *[]FileTransferDetails) error

func SaveFileTransferDetailsInTempFile added in v0.24.0

func SaveFileTransferDetailsInTempFile(filesDetails *[]FileTransferDetails) (string, error)

func SetUserAgent

func SetUserAgent(newUserAgent string)

func SplitWithEscape

func SplitWithEscape(str string, separator rune) []string

Split str by the provided separator, escaping the separator if it is prefixed by a back-slash.

func StringToBool

func StringToBool(boolVal string, defaultValue bool) (bool, error)

func TrimPath

func TrimPath(path string) string

Types

type Artifact

type Artifact struct {
	LocalPath           string
	TargetPath          string
	SymlinkTargetPath   string
	TargetPathInArchive string
}

type DeployableArtifactDetails added in v0.24.0

type DeployableArtifactDetails struct {
	SourcePath       string `json:"sourcePath,omitempty"`
	ArtifactDest     string `json:"artifactDest,omitempty"`
	Sha256           string `json:"sha256,omitempty"`
	DeploySucceeded  bool   `json:"deploySucceeded,omitempty"`
	TargetRepository string `json:"targetRepository,omitempty"`
}

Represent deployed artifact's details returned from build-info project for maven and gradle.

func (*DeployableArtifactDetails) CreateFileTransferDetails added in v0.24.0

func (details *DeployableArtifactDetails) CreateFileTransferDetails(rtUrl, targetRepository string) (FileTransferDetails, error)

type ErrorsQueue added in v0.11.0

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

func NewErrorsQueue added in v0.11.0

func NewErrorsQueue(size int) *ErrorsQueue

func (*ErrorsQueue) AddError added in v0.11.0

func (errQueue *ErrorsQueue) AddError(err error)

func (*ErrorsQueue) GetError added in v0.11.0

func (errQueue *ErrorsQueue) GetError() error

type ExecutionHandlerFunc added in v0.2.2

type ExecutionHandlerFunc func() (bool, error)

type FileTransferDetails added in v0.24.0

type FileTransferDetails struct {
	SourcePath string `json:"sourcePath,omitempty"`
	TargetPath string `json:"targetPath,omitempty"`
	Sha256     string `json:"sha256,omitempty"`
}

Represents a file transfer from SourcePath to TargetPath. Each of the paths can be on the local machine (full or relative) or in Artifactory (full URL). The file's Sha256 is calculated by Artifactory during the upload. we read the sha256 from the HTTP's response body.

type Parentheses added in v0.5.3

type Parentheses struct {
	OpenIndex  int
	CloseIndex int
}

This struct represents the parentheses used for defining Placeholders (Placeholders is a feature supported by File Specs).

type ParenthesesSlice added in v0.5.3

type ParenthesesSlice struct {
	Parentheses []Parentheses
}

func CreateParenthesesSlice added in v1.8.0

func CreateParenthesesSlice(pattern, target string) ParenthesesSlice

func NewParenthesesSlice added in v0.7.0

func NewParenthesesSlice(slice []Parentheses) ParenthesesSlice

func (*ParenthesesSlice) IsPresent added in v0.5.3

func (p *ParenthesesSlice) IsPresent(index int) bool

type PatternType added in v0.20.1

type PatternType string
const (
	WildCardPattern PatternType = "wildcard"
	RegExp          PatternType = "regexp"
	AntPattern      PatternType = "ant"
)

func GetPatternType added in v0.20.1

func GetPatternType(patternTypes PatternTypes) PatternType

type PatternTypes added in v0.20.1

type PatternTypes struct {
	RegExp bool
	Ant    bool
}

type RetryExecutor added in v0.2.2

type RetryExecutor struct {
	// The amount of retries to perform.
	MaxRetries int

	// Number of milliseconds to sleep between retries.
	RetriesIntervalMilliSecs int

	// Message to display when retrying.
	ErrorMessage string

	// Prefix to print at the beginning of each log.
	LogMsgPrefix string

	// ExecutionHandler is the operation to run with retries.
	ExecutionHandler ExecutionHandlerFunc
}

func (*RetryExecutor) Execute added in v0.2.2

func (runner *RetryExecutor) Execute() error

func (*RetryExecutor) LogRetry added in v1.8.0

func (runner *RetryExecutor) LogRetry(attemptNumber int, err error)

type Sha256Summary added in v0.23.0

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

func NewSha256Summary added in v0.23.0

func NewSha256Summary() *Sha256Summary

func (*Sha256Summary) GetSha256 added in v0.23.0

func (bps *Sha256Summary) GetSha256() string

func (*Sha256Summary) IsSucceeded added in v0.23.0

func (bps *Sha256Summary) IsSucceeded() bool

func (*Sha256Summary) SetSha256 added in v0.23.0

func (bps *Sha256Summary) SetSha256(sha256 string) *Sha256Summary

func (*Sha256Summary) SetSucceeded added in v0.23.0

func (bps *Sha256Summary) SetSucceeded(succeeded bool) *Sha256Summary

type UploadResponseBody added in v0.24.0

type UploadResponseBody struct {
	Checksums entities.Checksum `json:"checksums,omitempty"`
}

type VcsCache added in v0.6.2

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

func NewVcsDetails added in v1.7.0

func NewVcsDetails() *VcsCache

func (*VcsCache) GetVcsDetails added in v0.6.2

func (vc *VcsCache) GetVcsDetails(path string) (revision, refUrl, branch string, err error)

Search for '.git' directory inside 'path', incase there is one, extract the details and add a new entry to the cache(key:path in the file system ,value: git revision & url). otherwise, search in the parent folder and try: 1. search for .git, and save the details for the current dir and all subpath 2. .git not found, go to parent dir and repeat 3. not found on the root directory, add all subpath to cache with nil as a value

Directories

Path Synopsis
io

Jump to

Keyboard shortcuts

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