types

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProviderGithub ...
	ProviderGithub = "github"
	// ProviderGitlab ...
	ProviderGitlab = "gitlab"

	// ProviderGerrit
	ProviderGerrit = "gerrit"

	// ProviderCodehub
	ProviderCodehub = "codehub"

	// ProviderGitee
	ProviderGitee = "gitee"

	// ProviderGiteeEE
	ProviderGiteeEE = "gitee-enterprise"

	// ProviderOther
	ProviderOther = "other"
)
View Source
const DebugImage = "koderover.tencentcloudcr.com/koderover-public/zadig-debug:v0.1.0"
View Source
const DevmodeWorkDir = "/home/zadig/"
View Source
const DindContainerName = "dind"
View Source
const DindMountName = "zadig-docker"
View Source
const DindMountPath = "/var/lib/docker"
View Source
const DindStatefulSetName = "dind"
View Source
const IDEContainerNameDev = "dev"
View Source
const IDEContainerNameSidecar = "sidecar"
View Source
const IDESidecarImage = "koderover.tencentcloudcr.com/koderover-public/zgctl-sidecar:20220526172433-amd64"
View Source
const IstioLabelKeyInjection = "istio-injection"
View Source
const IstioLabelValueInjection = "enabled"
View Source
const (
	ScanningTypeSonar = "sonarQube"
)
View Source
const Zadig = "zadig"
View Source
const ZadigDomain = "zadig.koderover.com"

Variables

View Source
var OriginSpec = fmt.Sprintf("%s/origin", ZadigDomain)
View Source
var ZadigLabelKeyGlobalOwner = fmt.Sprintf("%s/owner", ZadigDomain)

Functions

func GetShareStorageSubPath added in v1.9.9

func GetShareStorageSubPath(workflowName, storageName string, taskID int64) string

func GetShareStorageSubPathPrefix added in v1.9.9

func GetShareStorageSubPathPrefix(workflowName string, taskID int64) string

Types

type ActionRule added in v1.9.9

type ActionRule struct {
	Method          string       `json:"method"`
	Endpoint        string       `json:"endpoint"`
	ResourceType    string       `json:"resourceType,omitempty"`
	IDRegex         string       `json:"idRegex,omitempty"`
	MatchAttributes []*Attribute `json:"matchAttributes,omitempty"`
	Filter          bool         `json:"filter,omitempty"`
}

type Attribute added in v1.9.9

type Attribute struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type AuthType added in v1.9.9

type AuthType string
const (
	SSHAuthType                AuthType = "SSH"
	PrivateAccessTokenAuthType AuthType = "PrivateAccessToken"
)

type BranchFilterInfo added in v1.9.9

type BranchFilterInfo struct {
	// repository identifier
	CodehostID    int    `bson:"codehost_id"  json:"codehost_id"`
	RepoOwner     string `bson:"repo_owner"   json:"repo_owner"`
	RepoName      string `bson:"repo_name"    json:"repo_name"`
	RepoNamespace string `bson:"repo_namespace" json:"repo_namespace"`
	// actual regular expression filter
	FilterRegExp  string `bson:"filter_regexp"  json:"filter_regexp"`
	DefaultBranch string `bson:"default_branch" json:"default_branch"`
}

func (*BranchFilterInfo) GetNamespace added in v1.9.9

func (bf *BranchFilterInfo) GetNamespace() string

type Cache added in v1.9.9

type Cache struct {
	MediumType       MediumType       `json:"medium_type"       bson:"medium_type"`
	ObjectProperties ObjectProperties `json:"object_properties" bson:"object_properties"`
	NFSProperties    NFSProperties    `json:"nfs_properties"    bson:"nfs_properties"`
}

type CacheDirType added in v1.9.9

type CacheDirType string
const (
	WorkspaceCacheDir   CacheDirType = "workspace"
	UserDefinedCacheDir CacheDirType = "user_defined"
)

type CronTag added in v1.9.9

type CronTag string
const (
	CleanDockerTag CronTag = "CleanDockerTag"
)

type DindPod added in v1.9.9

type DindPod struct {
	ClusterID   string
	ClusterName string
	Pod         *corev1.Pod
}

type DockerBuildInfo added in v1.9.9

type DockerBuildInfo struct {
	WorkingDirectory    string `json:"working_directory"`
	DockerfileType      string `json:"dockerfile_type"` // it can be of local or template type
	DockerfileDirectory string `json:"dockerfile_directory"`
	BuildArgs           string `json:"build_args"`
	// when the dockerfile type is template, this field will be used to find the ID of the template
	TemplateName string `json:"template_name"`
	TemplateID   string `json:"template_id"`
}

DockerBuildInfo is the struct for docker build in the product workflow Mind that the templateID will be empty in the openAPI mode

type EnvType added in v1.9.9

type EnvType string
const (
	GeneralEnv EnvType = "general"
	ShareEnv   EnvType = "share"
)

type ExternalParamMapping added in v1.9.9

type ExternalParamMapping struct {
	// zadig parameter key
	ParamKey string `json:"param_key"`
	// response parameter key
	ResponseKey string `json:"response_key"`
	Display     bool   `json:"display"`
}

type ExternalSetting added in v1.9.9

type ExternalSetting struct {
	SystemID string                  `json:"system_id"`
	Endpoint string                  `json:"endpoint"`
	Method   string                  `json:"method"`
	Headers  []*KV                   `json:"headers"`
	Body     string                  `json:"body"`
	Params   []*ExternalParamMapping `json:"params"`
}

type FileInfo

type FileInfo struct {
	// parent path of the file
	Parent string `json:"parent"`
	// base name of the file
	Name string `json:"name"`
	// length in bytes for regular files; system-dependent for others
	Size int64 `json:"size"`
	// file mode bits
	Mode os.FileMode `json:"mode"`
	// modification time
	ModTime int64 `json:"mod_time"`
	// abbreviation for Mode().IsDir()
	IsDir bool `json:"is_dir"`
}

FileInfo ...

type HTTPGetAction added in v1.9.9

type HTTPGetAction struct {
	Path                string        `bson:"path"                        json:"path"`
	Port                int           `bson:"port"                        json:"port"`
	Host                string        `bson:"-"                           json:"host,omitempty"`
	HTTPHeaders         []*HTTPHeader `bson:"http_headers"                json:"http_headers"`
	TimeOutSecond       int           `bson:"timeout_second"              json:"timeout_second"`
	ResponseSuccessFlag string        `bson:"response_success_flag"       json:"response_success_flag"`
}

type HTTPHeader added in v1.9.9

type HTTPHeader struct {
	Name  string `bson:"name"                 json:"name"`
	Value string `bson:"value"                json:"value"`
}

type JenkinsBuildParam added in v1.9.9

type JenkinsBuildParam struct {
	Name         string           `bson:"name,omitempty"                json:"name,omitempty"`
	Value        interface{}      `bson:"value,omitempty"               json:"value,omitempty"`
	Type         JenkinsParamType `bson:"type,omitempty"                json:"type,omitempty"`
	AutoGenerate bool             `bson:"auto_generate,omitempty"       json:"auto_generate,omitempty"`
	ChoiceOption []string         `bson:"choice_option,omitempty"       json:"choice_option,omitempty"`
}

type JenkinsParamType added in v1.9.9

type JenkinsParamType string
const (
	Str    JenkinsParamType = "string"
	Choice JenkinsParamType = "choice"
)

type JobStatus added in v1.9.9

type JobStatus string
const (
	JobSuccess JobStatus = "success"
	JobFail    JobStatus = "fail"
)

type KV added in v1.9.9

type KV struct {
	Key          string `json:"key"`
	Value        string `json:"value"`
	Type         string `json:"type,omitempty"`
	IsCredential bool   `json:"is_credential,omitempty"`
}

type MatchAttribute added in v1.9.9

type MatchAttribute struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type MediumType added in v1.9.9

type MediumType string
const (
	ObjectMedium MediumType = "object"
	NFSMedium    MediumType = "nfs"
)

type NFSProperties added in v1.9.9

type NFSProperties struct {
	ProvisionType    ProvisionType `json:"provision_type"      bson:"provision_type"         yaml:"provision_type"`
	StorageClass     string        `json:"storage_class"       bson:"storage_class"          yaml:"storage_class"`
	StorageSizeInGiB int64         `json:"storage_size_in_gib" bson:"storage_size_in_gib"    yaml:"storage_size_in_gib"`
	PVC              string        `json:"pvc"                 bson:"pvc"                    yaml:"pvc"`
	Subpath          string        `json:"subpath"             bson:"subpath"                yaml:"subpath"`
}

type ObjectProperties added in v1.9.9

type ObjectProperties struct {
	ID string `json:"id" bson:"id"`
}

Note: In the current design, when the object storage is used as the cache medium, the default object storage will be used as the cache medium, but in the near future users may be allowed to select different object storage as the cache medium according to the cluster. So it is temporarily reserved in `v1.10.0`, but do not use.

type ObjectStorageInfo added in v1.9.9

type ObjectStorageInfo struct {
	Endpoint string `bson:"endpoint" json:"endpoint" yaml:"endpoint"`
	AK       string `bson:"AK"       json:"AK"       yaml:"AK"`
	SK       string `bson:"SK"       json:"SK"       yaml:"SK"`
	Bucket   string `bson:"bucket"   json:"bucket"   yaml:"bucket"`
	Insecure bool   `bson:"insecure" json:"insecure" yaml:"insecure"`
	Provider int8   `bson:"provider" json:"provider" yaml:"provider"`
	Region   string `bson:"region"   json:"region"   yaml:"region"`
}

type ObjectStoragePathDetail added in v1.9.9

type ObjectStoragePathDetail struct {
	FilePath        string `bson:"file_path" json:"file_path" yaml:"file_path"`
	AbsFilePath     string `bson:"abs_file_path" json:"abs_file_path" yaml:"abs_file_path"`
	DestinationPath string `bson:"dest_path" json:"dest_path" yaml:"dest_path"`
}

type OpenAPIAdvancedSetting added in v1.9.9

type OpenAPIAdvancedSetting struct {
	ClusterName string                 `json:"cluster_name"`
	Timeout     int64                  `json:"timeout"`
	Spec        setting.RequestSpec    `json:"resource_spec"`
	Webhooks    *OpenAPIWebhookSetting `json:"webhooks"`
	// Cache settings is for build only for now, remove this line if there are further changes
	CacheSetting *OpenAPICacheSetting `json:"cache_setting"`
}

type OpenAPICacheSetting added in v1.9.9

type OpenAPICacheSetting struct {
	Enabled  bool   `json:"enabled"`
	CacheDir string `json:"cache_dir"`
}

type OpenAPIRepoInput added in v1.9.9

type OpenAPIRepoInput struct {
	CodeHostName  string `json:"codehost_name"`
	RepoNamespace string `json:"repo_namespace"`
	RepoName      string `json:"repo_name"`
	Branch        string `json:"branch"`
	PR            int    `json:"pr"`
	PRs           []int  `json:"prs"`
	RemoteName    string `json:"remote_name"`
	CheckoutPath  string `json:"checkout_path"`
	SubModules    bool   `json:"submodules"`
}

type OpenAPIServiceBuildArgs added in v1.9.9

type OpenAPIServiceBuildArgs struct {
	ServiceModule string              `json:"service_module"`
	ServiceName   string              `json:"service_name"`
	RepoInfo      []*OpenAPIRepoInput `json:"repo_info"`
	Inputs        []*KV               `json:"inputs"`
}

type OpenAPIWebhookConfigDetail added in v1.9.9

type OpenAPIWebhookConfigDetail struct {
	CodeHostName  string                 `json:"codehost_name"`
	RepoNamespace string                 `json:"repo_namespace"`
	RepoName      string                 `json:"repo_name"`
	Branch        string                 `json:"branch"`
	Events        []config.HookEventType `json:"events"`
	MatchFolders  []string               `json:"match_folders"`
}

type OpenAPIWebhookSetting added in v1.9.9

type OpenAPIWebhookSetting struct {
	Enabled  bool                          `json:"enabled"`
	HookList []*OpenAPIWebhookConfigDetail `json:"hook_list"`
}

type ParameterSetting added in v1.9.9

type ParameterSetting struct {
	// External type parameter will NOT use this key.
	Key  string               `json:"key"`
	Type ParameterSettingType `json:"type"`
	//DefaultValue defines the default value of the parameter
	DefaultValue string `json:"default_value"`
	// choiceOption Are all options enumerated
	ChoiceOption []string `json:"choice_option"`
	// ExternalSetting It is the configuration of the external system to obtain the variable
	ExternalSetting *ExternalSetting `json:"external_setting"`
	IsCredential    bool             `json:"is_credential"`
}

type ParameterSettingType added in v1.9.9

type ParameterSettingType string
const (
	StringType   ParameterSettingType = "string"
	ChoiceType   ParameterSettingType = "choice"
	ExternalType ParameterSettingType = "external"
)

type Policy added in v1.9.9

type Policy struct {
	Name        string  `json:"name"`
	Description string  `json:"description"`
	UpdateTime  int64   `json:"update_time"`
	Rules       []*Rule `json:"rules"`
}

type PolicyMeta added in v1.9.9

type PolicyMeta struct {
	Resource    string      `json:"resource"`
	Alias       string      `json:"alias"`
	Description string      `json:"description"`
	Rules       []*RuleMeta `json:"rules"`
}

type PolicyMetaScope added in v1.9.9

type PolicyMetaScope string

PolicyMetaScope resource scope for permission

const (
	SystemScope  PolicyMetaScope = "system"
	ProjectScope PolicyMetaScope = "project"
)

type PolicyRule added in v1.9.9

type PolicyRule struct {
	Methods  []string `json:"methods"`
	Endpoint string   `json:"endpoint"`
}

type Probe added in v1.9.9

type Probe struct {
	ProbeScheme string         `bson:"probe_type"                 json:"probe_type"`
	HttpProbe   *HTTPGetAction `bson:"http_probe"                 json:"http_probe"`
}

type ProvisionType added in v1.9.9

type ProvisionType string
const (
	DynamicProvision ProvisionType = "dynamic"
	StaticProvision  ProvisionType = "static"
)

type ReaperType added in v1.9.9

type ReaperType string
const (
	BuildReaperType    ReaperType = "Build"
	TestReaperType     ReaperType = "Test"
	ScanningReaperType ReaperType = "Scanning"
)

type Repository

type Repository struct {
	Source        string `bson:"source,omitempty"          json:"source,omitempty"         yaml:"source,omitempty"`
	RepoOwner     string `bson:"repo_owner"                json:"repo_owner"               yaml:"repo_owner"`
	RepoNamespace string `bson:"repo_namespace"            json:"repo_namespace"           yaml:"repo_namespace"`
	RepoName      string `bson:"repo_name"                 json:"repo_name"                yaml:"repo_name"`
	RemoteName    string `bson:"remote_name,omitempty"     json:"remote_name,omitempty"    yaml:"remote_name,omitempty"`
	Branch        string `bson:"branch"                    json:"branch"                   yaml:"branch"`
	PR            int    `bson:"pr,omitempty"              json:"pr,omitempty"             yaml:"pr,omitempty"`
	PRs           []int  `bson:"prs,omitempty"             json:"prs,omitempty"            yaml:"prs,omitempty"`
	Tag           string `bson:"tag,omitempty"             json:"tag,omitempty"            yaml:"tag,omitempty"`
	CommitID      string `bson:"commit_id,omitempty"       json:"commit_id,omitempty"      yaml:"commit_id,omitempty"`
	CommitMessage string `bson:"commit_message,omitempty"  json:"commit_message,omitempty" yaml:"commit_message,omitempty"`
	CheckoutPath  string `bson:"checkout_path,omitempty"   json:"checkout_path,omitempty"  yaml:"checkout_path,omitempty"`
	SubModules    bool   `bson:"submodules,omitempty"      json:"submodules,omitempty"     yaml:"submodules,omitempty"`
	// UseDefault defines if the repo can be configured in start pipeline task page
	UseDefault bool `bson:"use_default,omitempty"          json:"use_default,omitempty"    yaml:"use_default,omitempty"`
	// IsPrimary used to generated image and package name, each build has one primary repo
	IsPrimary  bool `bson:"is_primary"                     json:"is_primary"               yaml:"is_primary"`
	CodehostID int  `bson:"codehost_id"                    json:"codehost_id"              yaml:"codehost_id"`
	// add
	OauthToken  string `bson:"oauth_token"                  json:"oauth_token"             yaml:"oauth_token"`
	Address     string `bson:"address"                      json:"address"                 yaml:"address"`
	AuthorName  string `bson:"author_name,omitempty"        json:"author_name,omitempty"   yaml:"author_name,omitempty"`
	CheckoutRef string `bson:"checkout_ref,omitempty"       json:"checkout_ref,omitempty"  yaml:"checkout_ref,omitempty"`
	// codehub
	ProjectUUID string `bson:"project_uuid,omitempty"       json:"project_uuid,omitempty"  yaml:"project_uuid,omitempty"`
	RepoUUID    string `bson:"repo_uuid,omitempty"          json:"repo_uuid,omitempty"     yaml:"repo_uuid,omitempty"`
	RepoID      string `bson:"repo_id,omitempty"            json:"repo_id,omitempty"       yaml:"repo_id,omitempty"`
	Username    string `bson:"username,omitempty"           json:"username,omitempty"      yaml:"username,omitempty"`
	Password    string `bson:"password,omitempty"           json:"password,omitempty"      yaml:"password,omitempty"`
	// Now EnableProxy is not something we store. We decide this on runtime
	EnableProxy bool `bson:"-"       json:"enable_proxy,omitempty"                         yaml:"enable_proxy,omitempty"`
	// FilterRegexp is the regular expression filter for the branches and tags
	FilterRegexp string `bson:"-"    json:"filter_regexp,omitempty"                        yaml:"filter_regexp,omitempty"`
	// The address of the code base input of the other type
	AuthType           AuthType `bson:"auth_type,omitempty"             json:"auth_type,omitempty"               yaml:"auth_type,omitempty"`
	SSHKey             string   `bson:"ssh_key,omitempty"               json:"ssh_key,omitempty"                 yaml:"ssh_key,omitempty"`
	PrivateAccessToken string   `bson:"private_access_token,omitempty"  json:"private_access_token,omitempty"    yaml:"private_access_token,omitempty"`
}

Repository struct

func (*Repository) BranchRef added in v1.9.9

func (r *Repository) BranchRef() string

BranchRef returns branch refs format e.g. refs/heads/master

func (*Repository) GetReleaseCandidateTag

func (repo *Repository) GetReleaseCandidateTag(taskID int64) string

GetReleaseCandidateTag 返回待发布对象Tag Branch: 20060102150405-{TaskID}-master PR: 20060102150405-{TaskID}-pr-1765 Branch + PR: 20060102150405-{TaskID}-master-pr-1276 Tag: 20060102150405-{TaskID}-v0.9.1

func (*Repository) GetRepoNamespace added in v1.9.9

func (repo *Repository) GetRepoNamespace() string

func (*Repository) PRRef added in v1.9.9

func (r *Repository) PRRef() string

PRRef returns refs format It will check repo provider type, by default returns github refs format.

e.g. github returns refs/pull/1/head e.g. gitlab returns merge-requests/1/head

func (*Repository) PRRefByPRID added in v1.9.9

func (r *Repository) PRRefByPRID(pr int) string

func (*Repository) Ref added in v1.9.9

func (r *Repository) Ref() string

Ref returns the changes ref of current repo in the following order: 1. tag ref 2. branch ref 3. pr ref

func (*Repository) TagRef added in v1.9.9

func (r *Repository) TagRef() string

TagRef returns the tag ref of current repo e.g. refs/tags/v1.0.0

type RoleBinding added in v1.9.9

type RoleBinding struct {
	Name   string               `json:"name"`
	UID    string               `json:"uid"`
	Role   string               `json:"role"`
	Preset bool                 `json:"preset"`
	Type   setting.ResourceType `json:"type"`
}

type Rule added in v1.9.9

type Rule struct {
	Verbs           []string         `json:"verbs"`
	Resources       []string         `json:"resources"`
	Kind            string           `json:"kind"`
	MatchAttributes []MatchAttribute `json:"match_attributes"`
}

type RuleMeta added in v1.9.9

type RuleMeta struct {
	Action      string        `json:"action"`
	Alias       string        `json:"alias"`
	Description string        `json:"description"`
	Rules       []*ActionRule `json:"rules"`
}

type ScanningAdvancedSetting added in v1.12.0

type ScanningAdvancedSetting struct {
	ClusterID  string              `bson:"cluster_id"   json:"cluster_id"`
	Timeout    int64               `bson:"timeout"      json:"timeout"`
	ResReq     setting.Request     `bson:"res_req"      json:"res_req"`
	ResReqSpec setting.RequestSpec `bson:"res_req_spec" json:"res_req_spec"`
	HookCtl    *ScanningHookCtl    `bson:"hook_ctl"     json:"hook_ctl"`
}

type ScanningHook added in v1.12.0

type ScanningHook struct {
	CodehostID   int                    `bson:"codehost_id"   json:"codehost_id"`
	Source       string                 `bson:"source"        json:"source"`
	RepoOwner    string                 `bson:"repo_owner"    json:"repo_owner"`
	RepoName     string                 `bson:"repo_name"     json:"repo_name"`
	Branch       string                 `bson:"branch"        json:"branch"`
	Events       []config.HookEventType `bson:"events"        json:"events"`
	MatchFolders []string               `bson:"match_folders" json:"match_folders"`
}

type ScanningHookCtl added in v1.12.0

type ScanningHookCtl struct {
	Enabled bool            `bson:"enabled" json:"enabled"`
	Items   []*ScanningHook `bson:"items"   json:"items"`
}

type ShareStorage added in v1.9.9

type ShareStorage struct {
	MediumType    MediumType    `json:"medium_type"       bson:"medium_type"           yaml:"medium_type"`
	NFSProperties NFSProperties `json:"nfs_properties"    bson:"nfs_properties"        yaml:"nfs_properties"`
}

type SonarInfo added in v1.12.0

type SonarInfo struct {
	ServerAddress string `bson:"server_address" json:"server_address"`
	Token         string `bson:"token"          json:"token"`
}

type StartDevmodeInfo added in v1.9.9

type StartDevmodeInfo struct {
	DevImage string `json:"dev_image"`
}

type StorageClassType added in v1.9.9

type StorageClassType string
const (
	StorageClassAll StorageClassType = "all"
)

type UserCountByType added in v1.9.9

type UserCountByType struct {
	IdentityType string `gorm:"default:'unknown'" json:"identity_type" gorm:"identity_type"`
	Count        int64  `json:"count" gorm:"count"`
}

type UserInfo added in v1.9.9

type UserInfo struct {
	LastLoginTime      int64          `json:"last_login_time"`
	Uid                string         `json:"uid"`
	Name               string         `json:"name"`
	IdentityType       string         `gorm:"default:'unknown'" json:"identity_type"`
	Email              string         `json:"email"`
	Phone              string         `json:"phone"`
	Account            string         `json:"account"`
	APIToken           string         `json:"token"`
	SystemRoleBindings []*RoleBinding `json:"system_role_bindings"`
	Admin              bool           `json:"admin"`
}

type UserSetting added in v1.9.9

type UserSetting struct {
	Uid          string `json:"uid"`
	Theme        string `json:"theme"`
	LogBgColor   string `json:"log_bg_color"`
	LogFontColor string `json:"log_font_color"`
}

type UserStatistics added in v1.9.9

type UserStatistics struct {
	UserByType []*UserCountByType `json:"user_info"`
	ActiveUser int64              `json:"active_user"`
}

type UsersResp added in v1.9.9

type UsersResp struct {
	Users      []UserInfo `json:"users"`
	TotalCount int64      `json:"total_count"`
}

type WorkloadInfo added in v1.9.9

type WorkloadInfo struct {
	PodName      string `json:"pod_name"`
	PodNamespace string `json:"pod_namespace"`
}

type WorkloadType added in v1.9.9

type WorkloadType string
const (
	DeploymentWorkload  WorkloadType = "deployment"
	StatefulSetWorkload WorkloadType = "statefulset"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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