Documentation ¶
Index ¶
- Constants
- Variables
- func AllCmds() []string
- func CacheContainer(cchan chan ContainerEvent, cs ...ContainerEvent)
- func CheckFileExist(path string) bool
- func CheckIfImageExists(containerdClient *containerd.Client, image string) (imageName string, isExists bool, err error)
- func CheckTrustedRepositories(image, user, pass string) error
- func CopyFileWithProgress(src, dst string, logger event.Logger) error
- func CopyToFile(outfile string, r io.Reader) error
- func CopyWithProgress(srcFile SrcFile, dstFile DstFile, allSize int64, logger event.Logger) (err error)
- func CreateImageName(ServiceID, DeployVersion string) string
- func CreateVolumesAndMounts(contextDir, buildType string) (volumes []corev1.Volume, volumeMounts []corev1.VolumeMount)
- func EncodeAuthToBase64(authConfig types.AuthConfig) (string, error)
- func EncodePrivateKey(private *rsa.PrivateKey) []byte
- func EncodeSSHKey(public *rsa.PublicKey) ([]byte, error)
- func GenerateKey(bits int) (*rsa.PrivateKey, *rsa.PublicKey, error)
- func GetCodeSourceDir(RepositoryURL, branch, tenantEnvID string, ServiceID string) string
- func GetLastCommit(re *git.Repository) (*object.Commit, error)
- func GetPrivateFile(tenantEnvID string) string
- func GetPublicKey(tenantEnvID string) string
- func GetTagFromNamedRef(ref reference.Named) string
- func GitCheckout(sourceDir, branch string) error
- func GitClone(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
- func GitCloneOrPull(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
- func GitPull(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
- func Home() (string, error)
- func ImageBuild(contextDir, WtNamespace, ServiceID, DeployVersion string, logger event.Logger, ...) error
- func ImageExist(imageName, user, password string) (bool, error)
- func ImageImport(dockerCli *client.Client, image, source string, logger event.Logger) error
- func ImageInspectWithRaw(dockerCli *client.Client, image string) (*types.ImageInspect, error)
- func ImageLoad(dockerCli *client.Client, tarFile string, logger event.Logger) error
- func ImageNameHandle(imageName string) *model.ImageName
- func ImageNameWithNamespaceHandle(imageName string) *model.ImageName
- func ImagePull(client *containerd.Client, ref string, username, password string, ...) (*containerd.Image, error)
- func ImagePush(client *containerd.Client, rawRef, user, pass string, logger event.Logger, ...) error
- func ImageRemove(containerdClient *containerd.Client, image string) error
- func ImageSave(dockerCli *client.Client, image, destination string, logger event.Logger) error
- func ImageTag(containerdClient *containerd.Client, source, target string, ...) error
- func ImagesPullAndPush(sourceImage, targetImage, username, password string, logger event.Logger) error
- func MakeSSHKeyPair() (string, string, error)
- func MultiImageSave(ctx context.Context, dockerCli *client.Client, destination string, ...) error
- func RemoveDir(path string) error
- func TrustedImagePush(containerdClient *containerd.Client, image, user, pass string, ...) error
- func WaitingComplete(reChan *channels.RingChannel) (err error)
- type ClientFactory
- type CodeSourceInfo
- type Command
- type Commit
- type ContainerConfig
- func (m *ContainerConfig) GetAnnotations() map[string]string
- func (m *ContainerConfig) GetDevices() []*Device
- func (m *ContainerConfig) GetEnvs() []*KeyValue
- func (m *ContainerConfig) GetImage() *ImageSpec
- func (m *ContainerConfig) GetLabels() map[string]string
- func (m *ContainerConfig) GetMetadata() *ContainerMetadata
- func (m *ContainerConfig) GetMounts() []*Mount
- type ContainerDesc
- type ContainerEvent
- type ContainerImageCli
- type ContainerMetadata
- type Device
- type DstFile
- type IOError
- type ImageClient
- type ImageClientFactory
- type ImageSpec
- type Info
- type JSONError
- type JSONMessage
- type JSONProgress
- type KeyValue
- type Logs
- type Mount
- type NetworkConfig
- type ParseError
- type Repostory
- type RepostoryBuildInfo
- type SFTPClient
- type SVNClient
- type SrcFile
Constants ¶
const ( // ContainerRuntimeDocker docker runtime ContainerRuntimeDocker = "docker" // ContainerRuntimeContainerd containerd runtime ContainerRuntimeContainerd = "containerd" // DefaultDockerSock docker runtime endpoint DefaultDockerSock = "/var/run/dockershim.sock" // DefaultContainerdSock containerd runtime endpoint DefaultContainerdSock = "/run/containerd/containerd.sock" )
const ( // CONTAINER_ACTION_START is start container event action CONTAINER_ACTION_START = "start" // CONTAINER_ACTION_STOP is stop container event action CONTAINER_ACTION_STOP = "stop" // CONTAINER_ACTION_CREATE is create container event action CONTAINER_ACTION_CREATE = "create" // CONTAINER_ACTION_DESTROY is destroy container event action CONTAINER_ACTION_DESTROY = "destroy" // CONTAINER_ACTION_DIE is die container event action CONTAINER_ACTION_DIE = "die" )
Variables ¶
var ErrorNoAuth = fmt.Errorf("pull image require docker login")
ErrorNoAuth error no auth
var ErrorNoImage = fmt.Errorf("image not exist")
ErrorNoImage error no image
var Namespace = "k8s.io"
Namespace containerd image namespace
Functions ¶
func CacheContainer ¶
func CacheContainer(cchan chan ContainerEvent, cs ...ContainerEvent)
func CheckIfImageExists ¶
func CheckIfImageExists(containerdClient *containerd.Client, image string) (imageName string, isExists bool, err error)
CheckIfImageExists -
func CheckTrustedRepositories ¶
CheckTrustedRepositories check Repositories is exist ,if not create it.
func CopyFileWithProgress ¶
CopyFileWithProgress 复制文件,带进度
func CopyToFile ¶
CopyToFile writes the content of the reader to the specified file
func CopyWithProgress ¶
func CopyWithProgress(srcFile SrcFile, dstFile DstFile, allSize int64, logger event.Logger) (err error)
CopyWithProgress copy file
func CreateImageName ¶
CreateImageName -
func CreateVolumesAndMounts ¶
func CreateVolumesAndMounts(contextDir, buildType string) (volumes []corev1.Volume, volumeMounts []corev1.VolumeMount)
CreateVolumesAndMounts -
func EncodeAuthToBase64 ¶
func EncodeAuthToBase64(authConfig types.AuthConfig) (string, error)
EncodeAuthToBase64 serializes the auth configuration as JSON base64 payload
func EncodePrivateKey ¶
func EncodePrivateKey(private *rsa.PrivateKey) []byte
EncodePrivateKey EncodePrivateKey
func EncodeSSHKey ¶
EncodeSSHKey EncodeSSHKey
func GenerateKey ¶
GenerateKey GenerateKey
func GetCodeSourceDir ¶
GetCodeSourceDir get source storage directory it changes as gitrepostory address, branch, and service id change
func GetLastCommit ¶
func GetLastCommit(re *git.Repository) (*object.Commit, error)
GetLastCommit get last commit info get commit by head reference
func GetTagFromNamedRef ¶
GetTagFromNamedRef get image tag by name
func GitCheckout ¶
GitCheckout checkout the specified branch
func GitClone ¶
func GitClone(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
GitClone git clone code
func GitCloneOrPull ¶
func GitCloneOrPull(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
GitCloneOrPull if code exist in local,use git pull.
func GitPull ¶
func GitPull(csi CodeSourceInfo, sourceDir string, logger event.Logger, timeout int) (*git.Repository, error)
GitPull git pull code
func Home ¶
Home returns the home directory for the executing user.
This uses an OS-specific method for discovering the home directory. An error is returned if a home directory cannot be detected.
func ImageBuild ¶
func ImageExist ¶
ImageExist check image exist
func ImageImport ¶
ImageImport save image to tar file source source file name eg. /tmp/xxx.tar
func ImageInspectWithRaw ¶
ImageInspectWithRaw get image inspect
func ImageLoad ¶
ImageLoad load image from tar file destination destination file name eg. /tmp/xxx.tar
func ImageNameHandle ¶
ImageNameHandle 解析imagename
func ImageNameWithNamespaceHandle ¶
ImageNameWithNamespaceHandle if have namespace,will parse namespace
func ImagePull ¶
func ImagePull(client *containerd.Client, ref string, username, password string, logger event.Logger, timeout int) (*containerd.Image, error)
ImagePull pull docker image Deprecated: use sources.ImageClient.ImagePull instead
func ImagePush ¶
func ImagePush(client *containerd.Client, rawRef, user, pass string, logger event.Logger, timeout int) error
ImagePush push image to registry timeout minutes of the unit Deprecated: use sources.ImageClient.ImagePush instead
func ImageRemove ¶
func ImageRemove(containerdClient *containerd.Client, image string) error
ImageRemove remove image
func ImageSave ¶
ImageSave save image to tar file destination destination file name eg. /tmp/xxx.tar
func ImageTag ¶
func ImageTag(containerdClient *containerd.Client, source, target string, logger event.Logger, timeout int) error
ImageTag change docker image tag Deprecated: use sources.ImageClient.ImagePull instead
func ImagesPullAndPush ¶
func ImagesPullAndPush(sourceImage, targetImage, username, password string, logger event.Logger) error
ImagesPullAndPush Used to process mirroring of non local components, example: builder, runner, /wt-mesh-data-panel Deprecated: ImagesPullAndPush
func MultiImageSave ¶
func MultiImageSave(ctx context.Context, dockerCli *client.Client, destination string, logger event.Logger, images ...string) error
MultiImageSave save multi image to tar file destination destination file name eg. /tmp/xxx.tar
func TrustedImagePush ¶
func TrustedImagePush(containerdClient *containerd.Client, image, user, pass string, logger event.Logger, timeout int) error
TrustedImagePush push image to trusted registry
func WaitingComplete ¶
func WaitingComplete(reChan *channels.RingChannel) (err error)
Types ¶
type ClientFactory ¶
type ClientFactory interface {
NewClient(endpoint string, timeout time.Duration) (ContainerImageCli, error)
}
ClientFactory client factory
type CodeSourceInfo ¶
type CodeSourceInfo struct { ServerType string `json:"server_type"` RepositoryURL string `json:"repository_url"` Branch string `json:"branch"` User string `json:"user"` Password string `json:"password"` //避免项目之间冲突,代码缓存目录提高到租户 TenantEnvID string `json:"tenant_env_id"` ServiceID string `json:"service_id"` }
CodeSourceInfo 代码源信息
func (CodeSourceInfo) GetCodeSourceDir ¶
func (c CodeSourceInfo) GetCodeSourceDir() string
GetCodeSourceDir get source storage directory
type Command ¶
type Command struct { Cmd string // lowercased command name (ex: `from`) SubCmd string // for ONBUILD only this holds the sub-command Json bool // whether the value is written in json form Original string // The original source line StartLine int // The original source line number Flags []string // Any flags such as `--from=...` for `COPY`. Value []string // The contents of the command (ex: `ubuntu:xenial`) }
Command Represents a single line (layer) in a Dockerfile. For example `FROM ubuntu:xenial`
type Commit ¶
type Commit struct { Revision string `xml:"revision,attr"` Author string `xml:"author"` Msg string `xml:"msg"` Date string `xml:"date"` }
Commit Commit
type ContainerConfig ¶
type ContainerConfig struct { // Metadata of the container. This information will uniquely identify the // container, and the runtime should leverage this to ensure correct // operation. The runtime may also use this information to improve UX, such // as by constructing a readable name. Metadata *ContainerMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"` // Image to use. Image *ImageSpec `protobuf:"bytes,2,opt,name=image" json:"image,omitempty"` // Command to execute (i.e., entrypoint for docker) Command []string `protobuf:"bytes,3,rep,name=command" json:"command,omitempty"` // Args for the Command (i.e., command for docker) Args []string `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"` // Current working directory of the command. WorkingDir string `protobuf:"bytes,5,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"` // List of environment variable to set in the container. Envs []*KeyValue `protobuf:"bytes,6,rep,name=envs" json:"envs,omitempty"` // Mounts for the container. Mounts []*Mount `protobuf:"bytes,7,rep,name=mounts" json:"mounts,omitempty"` // Devices for the container. Devices []*Device `protobuf:"bytes,8,rep,name=devices" json:"devices,omitempty"` // Key-value pairs that may be used to scope and select individual resources. // Label keys are of the form: // label-key ::= prefixed-name | name // prefixed-name ::= prefix '/' name // prefix ::= DNS_SUBDOMAIN // name ::= DNS_LABEL Labels map[string]string `` /* 146-byte string literal not displayed */ // Unstructured key-value map that may be used by the kubelet to store and // retrieve arbitrary metadata. // // Annotations MUST NOT be altered by the runtime; the annotations stored // here MUST be returned in the ContainerStatus associated with the container // this ContainerConfig creates. // // In general, in order to preserve a well-defined interface between the // kubelet and the container runtime, annotations SHOULD NOT influence // runtime behaviour. Annotations map[string]string `` /* 157-byte string literal not displayed */ // Path relative to PodSandboxConfig.LogDirectory for container to store // the log (STDOUT and STDERR) on the host. // E.g., // PodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/` // ContainerConfig.LogPath = `containerName_Instance#.log` // // WARNING: Log management and how kubelet should interface with the // container logs are under active discussion in // https://issues.k8s.io/24677. There *may* be future change of direction // for logging as the discussion carries on. LogPath string `protobuf:"bytes,11,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` // Variables for interactive containers, these have very specialized // use-cases (e.g. debugging). // TODO: Determine if we need to continue supporting these fields that are // part of Kubernetes's Container Spec. Stdin bool `protobuf:"varint,12,opt,name=stdin,proto3" json:"stdin,omitempty"` StdinOnce bool `protobuf:"varint,13,opt,name=stdin_once,json=stdinOnce,proto3" json:"stdin_once,omitempty"` Tty bool `protobuf:"varint,14,opt,name=tty,proto3" json:"tty,omitempty"` // Configuration specific to Linux containers. //Linux *LinuxContainerConfig `protobuf:"bytes,15,opt,name=linux" json:"linux,omitempty"` AttachStdin bool AttachStdout bool AttachStderr bool NetworkConfig *NetworkConfig ExtraHosts []string }
ContainerConfig holds all the required and optional fields for creating a container.
func (*ContainerConfig) GetAnnotations ¶
func (m *ContainerConfig) GetAnnotations() map[string]string
GetAnnotations GetAnnotations
func (*ContainerConfig) GetDevices ¶
func (m *ContainerConfig) GetDevices() []*Device
GetDevices GetDevices
func (*ContainerConfig) GetImage ¶
func (m *ContainerConfig) GetImage() *ImageSpec
GetImage GetImage
func (*ContainerConfig) GetLabels ¶
func (m *ContainerConfig) GetLabels() map[string]string
GetLabels GetLabels
func (*ContainerConfig) GetMetadata ¶
func (m *ContainerConfig) GetMetadata() *ContainerMetadata
GetMetadata GetMetadata
func (*ContainerConfig) GetMounts ¶
func (m *ContainerConfig) GetMounts() []*Mount
GetMounts GetMounts
type ContainerDesc ¶
type ContainerDesc struct { ContainerRuntime string // Info is extra information of the Container. The key could be arbitrary string, and // value should be in json format. The information could include anything useful for // debug, e.g. pid for linux container based container runtime. // It should only be returned non-empty when Verbose is true. Info map[string]string *runtimeapi.ContainerStatus // Docker container json *types.ContainerJSON }
func (*ContainerDesc) GetId ¶
func (c *ContainerDesc) GetId() string
func (*ContainerDesc) GetLogPath ¶
func (c *ContainerDesc) GetLogPath() string
type ContainerEvent ¶
type ContainerEvent struct { Action string Container *ContainerDesc }
ContainerEvent container event
type ContainerImageCli ¶
type ContainerImageCli interface { ListContainers() ([]*runtimeapi.Container, error) InspectContainer(containerID string) (*ContainerDesc, error) WatchContainers(ctx context.Context, cchan chan ContainerEvent) error GetRuntimeClient() (*runtimeapi.RuntimeServiceClient, error) GetDockerClient() (*dockercli.Client, error) }
ContainerImageCli container image client
func NewContainerImageClient ¶
func NewContainerImageClient(containerRuntime, endpoint string, timeout time.Duration) (c ContainerImageCli, err error)
NewContainerImageClient new container image client
type ContainerMetadata ¶
type ContainerMetadata struct { // Name of the container. Same as the container name in the PodSpec. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Attempt number of creating the container. Default: 0. Attempt uint32 `protobuf:"varint,2,opt,name=attempt,proto3" json:"attempt,omitempty"` }
ContainerMetadata holds all necessary information for building the container name. The container runtime is encouraged to expose the metadata in its user interface for better user experience. E.g., runtime can construct a unique container name based on the metadata. Note that (name, attempt) is unique within a sandbox for the entire lifetime of the sandbox.
type Device ¶
type Device struct { // Path of the device within the container. ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"` // Path of the device on the host. HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` // Cgroups permissions of the device, candidates are one or more of // * r - allows container to read from the specified device. // * w - allows container to write to the specified device. // * m - allows container to create device files that do not yet exist. Permissions string `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` }
Device specifies a host device to mount into a container.
type ImageClient ¶
type ImageClient interface { GetContainerdClient() *containerd.Client GetDockerClient() *dockercli.Client CheckIfImageExists(imageName string) (imageRef string, exists bool, err error) ImagePull(image string, username, password string, logger event.Logger, timeout int) (*ocispec.ImageConfig, error) ImageTag(source, target string, logger event.Logger, timeout int) error ImagePush(image, user, pass string, logger event.Logger, timeout int) error ImagesPullAndPush(sourceImage, targetImage, username, password string, logger event.Logger) error ImageRemove(image string) error ImageSave(image, destination string) error ImageLoad(tarFile string, logger event.Logger) error TrustedImagePush(image, user, pass string, logger event.Logger, timeout int) error }
ImageClient image client
func NewImageClient ¶
func NewImageClient(containerRuntime, endpoint string, timeout time.Duration) (c ImageClient, err error)
NewImageClient new image client
type ImageClientFactory ¶
type ImageClientFactory interface {
NewClient(endpoint string, timeout time.Duration) (ImageClient, error)
}
ImageClientFactory client factory
type ImageSpec ¶
type ImageSpec struct {
Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
}
ImageSpec is an internal representation of an image. Currently, it wraps the value of a Container's Image field (e.g. imageID or imageDigest), but in the future it will include more detailed information about the different image types.
type Info ¶
type Info struct { XMLName xml.Name `xml:"info"` URL string `xml:"entry>url"` RelativeURL string `xml:"entry>relative-url"` Root string `xml:"entry>repository>root"` UUID string `xml:"entry>repository>uuid"` WcrootAbspath string `xml:"entry>wc-info>wcroot-abspath"` Schedule string `xml:"entry>wc-info>schedule"` Depth string `xml:"entry>wc-info>depth"` Logs *Logs Branchs []string Tags []string }
Info Info
type JSONError ¶
type JSONError struct { Code int `json:"code,omitempty"` Message string `json:"message,omitempty"` }
JSONError wraps a concrete Code and Message, `Code` is is an integer error code, `Message` is the error message.
type JSONMessage ¶
type JSONMessage struct { Stream string `json:"stream,omitempty"` Status string `json:"status,omitempty"` Progress *JSONProgress `json:"progressDetail,omitempty"` ProgressMessage string `json:"progress,omitempty"` //deprecated ID string `json:"id,omitempty"` From string `json:"from,omitempty"` Time int64 `json:"time,omitempty"` TimeNano int64 `json:"timeNano,omitempty"` Error *JSONError `json:"errorDetail,omitempty"` ErrorMessage string `json:"error,omitempty"` //deprecated // Aux contains out-of-band data, such as digests for push signing. Aux *json.RawMessage `json:"aux,omitempty"` }
JSONMessage JSONMessage
func (*JSONMessage) JSONString ¶
func (j *JSONMessage) JSONString() string
JSONString return json string
type JSONProgress ¶
type JSONProgress struct { Current int64 `json:"current,omitempty"` Total int64 `json:"total,omitempty"` Start int64 `json:"start,omitempty"` // If true, don't show xB/yB HideCounts bool `json:"hidecounts,omitempty"` // contains filtered or unexported fields }
JSONProgress describes a Progress. terminalFd is the fd of the current terminal, Start is the initial value for the operation. Current is the current status and value of the progress made towards Total. Total is the end value describing when we made 100% progress for an operation.
type KeyValue ¶
type KeyValue struct { Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` }
KeyValue KeyValue
type Mount ¶
type Mount struct { // Path of the mount within the container. ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"` // Path of the mount on the host. HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` // If set, the mount is read-only. Readonly bool `protobuf:"varint,3,opt,name=readonly,proto3" json:"readonly,omitempty"` // If set, the mount needs SELinux relabeling. SelinuxRelabel bool `protobuf:"varint,4,opt,name=selinux_relabel,json=selinuxRelabel,proto3" json:"selinux_relabel,omitempty"` }
Mount specifies a host volume to mount into a container.
type NetworkConfig ¶
type NetworkConfig struct {
NetworkMode string `json:"network_mode"`
}
NetworkConfig network config for container
type ParseError ¶
type ParseError struct {
Msg string
}
ParseError A failure in parsing the file as a dockerfile.
func (ParseError) Error ¶
func (e ParseError) Error() string
type Repostory ¶
type Repostory struct { ID int `json:"id,omitempty"` Namespace string `json:"namespace,omitempty"` NamespaceType string `json:"namespaceType,omitempty"` Name string `json:"name"` ShortDescription string `json:"shortDescription"` LongDescription string `json:"longDescription"` Visibility string `json:"visibility"` Status string `json:"status,omitempty"` }
Repostory repostory info
type RepostoryBuildInfo ¶
type RepostoryBuildInfo struct { RepostoryURL string RepostoryURLType string BuildBranch string BuildPath string CodeHome string // contains filtered or unexported fields }
RepostoryBuildInfo 源码编译信息
func CreateRepostoryBuildInfo ¶
func CreateRepostoryBuildInfo(repoURL, repoType, branch, tenantEnvID string, ServiceID string) (*RepostoryBuildInfo, error)
CreateRepostoryBuildInfo 创建源码编译信息 repoType git or svn
func (*RepostoryBuildInfo) GetCodeBuildAbsPath ¶
func (r *RepostoryBuildInfo) GetCodeBuildAbsPath() string
GetCodeBuildAbsPath 获取代码编译绝对目录
func (*RepostoryBuildInfo) GetCodeBuildPath ¶
func (r *RepostoryBuildInfo) GetCodeBuildPath() string
GetCodeBuildPath 获取代码编译相对目录
func (*RepostoryBuildInfo) GetCodeHome ¶
func (r *RepostoryBuildInfo) GetCodeHome() string
GetCodeHome 获取代码目录
func (*RepostoryBuildInfo) GetProtocol ¶
func (r *RepostoryBuildInfo) GetProtocol() string
GetProtocol 获取协议
type SFTPClient ¶
type SFTPClient struct { UserName string `json:"username"` PassWord string `json:"password"` Host string `json:"host"` Port int `json:"int"` // contains filtered or unexported fields }
SFTPClient sFTP客户端
func NewSFTPClient ¶
func NewSFTPClient(username, password, host, port string) (*SFTPClient, error)
NewSFTPClient NewSFTPClient
func (*SFTPClient) DownloadFile ¶
func (s *SFTPClient) DownloadFile(src, dst string, logger event.Logger) error
DownloadFile DownloadFile
type SVNClient ¶
type SVNClient interface { Checkout() (*Info, error) Update(childpath string) (*Info, error) UpdateOrCheckout(childpath string) (*Info, error) }
SVNClient svn svnclient
func NewClient ¶
func NewClient(csi CodeSourceInfo, codeHome string, logger event.Logger) SVNClient
NewClient new svn svnclient
func NewClientWithEnv ¶
NewClientWithEnv ...