workflow

package
v2.3.1 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 105 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NameSpaceRegexString = "[^a-z0-9.-]"

	InterceptCommitID = 8
)
View Source
const (
	OfficalRepoOwner = "koderover"
	OfficalRepoName  = "zadig"
	OfficalRepoURL   = "https://github.com/" + OfficalRepoOwner + "/" + OfficalRepoName
	OfficalBranch    = "main"
)
View Source
const (
	ClusterStorageEP = "nfs-server"
)
View Source
const SplitSymbol = "&"

Variables

View Source
var SubtaskOrder = map[config.TaskType]int{
	config.TaskType("jira"):            1,
	config.TaskType("pipeline"):        2,
	config.TaskType("buildv2"):         3,
	config.TaskType("buildv3"):         4,
	config.TaskType("jenkins_build"):   5,
	config.TaskType("docker_build"):    6,
	config.TaskType("archive"):         7,
	config.TaskType("artifact"):        8,
	config.TaskType("artifact_deploy"): 9,
	config.TaskType("deploy"):          10,
	config.TaskType("testingv2"):       11,
	config.TaskType("security"):        12,
	config.TaskType("distribute2kodo"): 13,
	config.TaskType("release_image"):   14,
	config.TaskType("reset_image"):     15,
	config.TaskType("trigger"):         16,
	config.TaskType("extension"):       17,
	config.TaskType("scanning"):        18,
}

Functions

func AddJiraSubTask

func AddJiraSubTask(moduleName, target, serviceName, productName, buildName string, log *zap.SugaredLogger) (map[string]interface{}, error)

func AddPipelineJiraSubTask

func AddPipelineJiraSubTask(pipeline *commonmodels.Pipeline, log *zap.SugaredLogger) (map[string]interface{}, error)

func AddSubtaskToStage

func AddSubtaskToStage(stages *[]*commonmodels.Stage, subTask map[string]interface{}, target string)

func AddWorkflowToView

func AddWorkflowToView(projectName, viewName string, workflowList []*commonmodels.WorkflowViewDetail, logger *zap.SugaredLogger) error

func ApproveStage

func ApproveStage(workflowName, stageName, userName, userID, comment string, taskID int64, approve bool, logger *zap.SugaredLogger) error

func BlockedTaskQueue

func BlockedTaskQueue() ([]*task.Task, error)

func BuildInstallCtx

func BuildInstallCtx(installItems []*commonmodels.Item) ([]*commonmodels.Install, error)

根据用户的配置和BuildStep中步骤的依赖,从系统配置的InstallItems中获取配置项,构建Install Context

func BuildModuleToSubTasks

func BuildModuleToSubTasks(args *commonmodels.BuildModuleArgs, log *zap.SugaredLogger) ([]map[string]interface{}, error)

func BulkCopyWorkflow

func BulkCopyWorkflow(args BulkCopyWorkflowArgs, username string, log *zap.SugaredLogger) error

func BulkCopyWorkflowV4

func BulkCopyWorkflowV4(args BulkCopyWorkflowArgs, username string, log *zap.SugaredLogger) error

func CancelWorkflowTaskV4

func CancelWorkflowTaskV4(userName, workflowName string, taskID int64, logger *zap.SugaredLogger) error

func CheckFixedMarkReturnNoFixedEnv

func CheckFixedMarkReturnNoFixedEnv(envName string) (string, bool)

func CheckShareStorageEnabled

func CheckShareStorageEnabled(clusterID, jobType, identifyName, project string, logger *zap.SugaredLogger) (bool, error)

func CheckWorkflowV4ApprovalInitiator

func CheckWorkflowV4ApprovalInitiator(workflowName, uid string, log *zap.SugaredLogger) error

CheckWorkflowV4ApprovalInitiator check if the workflow contains lark or dingtalk approval if so, check whether the IM information can be queried by the user's mobile phone number

func Clean

func Clean(task *task.Task)

func CleanWorkflow3

func CleanWorkflow3(task *task.Task)

func CloneWorkflowTaskV4

func CloneWorkflowTaskV4(workflowName string, taskID int64, logger *zap.SugaredLogger) (*commonmodels.WorkflowV4, error)

func ConvertQueueToTask

func ConvertQueueToTask(queueTask *commonmodels.Queue) *task.Task

func ConvertTaskToQueue

func ConvertTaskToQueue(task *task.Task) *commonmodels.Queue

func CopyPipeline

func CopyPipeline(oldPipelineName, newPipelineName, username string, log *zap.SugaredLogger) error

func CopyWorkflow

func CopyWorkflow(oldWorkflowName, newWorkflowName, newWorkflowDisplayName, username string, log *zap.SugaredLogger) error

func CreateArtifactPackageTask

func CreateArtifactPackageTask(args *commonmodels.ArtifactPackageTaskArgs, taskCreator string, log *zap.SugaredLogger) (int64, error)

get global config payload

func CreateCronForWorkflowV4

func CreateCronForWorkflowV4(workflowName string, input *commonmodels.Cronjob, logger *zap.SugaredLogger) error

func CreateFavoritePipeline

func CreateFavoritePipeline(args *commonmodels.Favorite, log *zap.SugaredLogger) error

func CreateGeneralHookForWorkflowV4

func CreateGeneralHookForWorkflowV4(workflowName string, arg *models.GeneralHook, logger *zap.SugaredLogger) error

func CreateGerritWebhook

func CreateGerritWebhook(workflow *commonmodels.Workflow, log *zap.SugaredLogger) error

func CreateJiraHookForWorkflowV4

func CreateJiraHookForWorkflowV4(workflowName string, arg *models.JiraHook, logger *zap.SugaredLogger) error

func CreateMeegoHookForWorkflowV4

func CreateMeegoHookForWorkflowV4(workflowName string, arg *models.MeegoHook, logger *zap.SugaredLogger) error

func CreateTask

func CreateTask(t *task.Task) error

CreateTask 接受create task请求, 保存task到数据库, 发送task到queue

func CreateWebhookForWorkflowV4

func CreateWebhookForWorkflowV4(workflowName string, input *commonmodels.WorkflowV4Hook, logger *zap.SugaredLogger) error

func CreateWorkflow

func CreateWorkflow(workflow *commonmodels.Workflow, log *zap.SugaredLogger) error

func CreateWorkflowV3

func CreateWorkflowV3(user string, workflowModel *commonmodels.WorkflowV3, logger *zap.SugaredLogger) (string, error)

func CreateWorkflowV4

func CreateWorkflowV4(user string, workflow *commonmodels.WorkflowV4, logger *zap.SugaredLogger) error

func CreateWorkflowView

func CreateWorkflowView(name, projectName string, workflowList []*commonmodels.WorkflowViewDetail, username string, logger *zap.SugaredLogger) error

func CreateWorkflowViewOpenAPI

func CreateWorkflowViewOpenAPI(name, projectName string, workflowList []*OpenAPIWorkflowViewDetail, username string, logger *zap.SugaredLogger) error

func DeleteCronForWorkflowV4

func DeleteCronForWorkflowV4(workflowName, cronID string, logger *zap.SugaredLogger) error

func DeleteCronjob

func DeleteCronjob(parentName, parentType string) error

func DeleteFavoritePipeline

func DeleteFavoritePipeline(args *commonrepo.FavoriteArgs) error

func DeleteGeneralHookForWorkflowV4

func DeleteGeneralHookForWorkflowV4(workflowName, hookName string, logger *zap.SugaredLogger) error

func DeleteGerritWebhook

func DeleteGerritWebhook(workflow *commonmodels.Workflow, log *zap.SugaredLogger) error

DeleteGerritWebhook 删除gerrit webhook

func DeleteJiraHookForWorkflowV4

func DeleteJiraHookForWorkflowV4(workflowName, hookName string, logger *zap.SugaredLogger) error

func DeleteMeegoHookForWorkflowV4

func DeleteMeegoHookForWorkflowV4(workflowName, hookName string, logger *zap.SugaredLogger) error

func DeletePluginRepo

func DeletePluginRepo(id string, log *zap.SugaredLogger) error

func DeleteWebhookForWorkflowV4

func DeleteWebhookForWorkflowV4(workflowName, triggerName string, logger *zap.SugaredLogger) error

func DeleteWorkflowV3

func DeleteWorkflowV3(id string, logger *zap.SugaredLogger) error

func DeleteWorkflowV4

func DeleteWorkflowV4(name string, logger *zap.SugaredLogger) error

func DeleteWorkflowView

func DeleteWorkflowView(projectName, viewName string, logger *zap.SugaredLogger) error

func EnableDebugWorkflowTaskV4

func EnableDebugWorkflowTaskV4(workflowName string, taskID int64, logger *zap.SugaredLogger) error

func EnsureBuildResp

func EnsureBuildResp(mb *commonmodels.Build)

func EnsureSubTasksResp

func EnsureSubTasksResp(subTasks []map[string]interface{})

EnsureSubTasksResp 确保SubTask中敏感信息和其他不必要信息不返回给前端

func EnsureSubTasksV3Resp

func EnsureSubTasksV3Resp(subTasks []map[string]interface{})

EnsureSubTasksResp 确保SubTask中敏感信息和其他不必要信息不返回给前端

func EnsureTaskResp

func EnsureTaskResp(mt *commonmodels.Testing)

func EnsureTestingResp

func EnsureTestingResp(mt *commonmodels.Testing)

func FindWorkflow

func FindWorkflow(workflowName string, log *zap.SugaredLogger) (*commonmodels.Workflow, error)

func FindWorkflowRaw

func FindWorkflowRaw(name string, logger *zap.SugaredLogger) (*commonmodels.Workflow, error)

func FindWorkflowV4

func FindWorkflowV4(encryptedKey, name string, logger *zap.SugaredLogger) (*commonmodels.WorkflowV4, error)

func FindWorkflowV4Raw

func FindWorkflowV4Raw(name string, logger *zap.SugaredLogger) (*commonmodels.WorkflowV4, error)

func FmtBuilds

func FmtBuilds(builds []*types.Repository, log *zap.SugaredLogger)

replace gitInfo with codehostID

func GePackageFileContent

func GePackageFileContent(pipelineName string, taskID int64, log *zap.SugaredLogger) ([]byte, string, error)

func GeneralHookEventHandler

func GeneralHookEventHandler(workflowName, hookName string, logger *zap.SugaredLogger) error

func GetArtifactAndS3Info

func GetArtifactAndS3Info(pipelineName, dir string, taskID int64, notHistoryFileFlag bool, log *zap.SugaredLogger) (*s3.S3, *s3tool.Client, []string, []byte, error)

func GetArtifactFileContent

func GetArtifactFileContent(pipelineName string, taskID int64, notHistoryFileFlag bool, log *zap.SugaredLogger) ([]byte, error)

func GetBlueGreenServiceK8sServiceYaml

func GetBlueGreenServiceK8sServiceYaml(projectName, envName, serviceName string) (string, error)

func GetBundleResources

func GetBundleResources(logger *zap.SugaredLogger) ([]*resourceSpec, error)

func GetCronForWorkflowV4Preset

func GetCronForWorkflowV4Preset(workflowName, cronID string, logger *zap.SugaredLogger) (*commonmodels.Cronjob, error)

func GetFilteredEnvServices

func GetFilteredEnvServices(workflowName, jobName, envName string, serviceNames []string, log *zap.SugaredLogger) ([]*commonmodels.DeployServiceInfo, error)

func GetFiltersPipelineTaskV2

func GetFiltersPipelineTaskV2(projectName, pipelineName, querytype string, typeString config.PipelineType, log *zap.SugaredLogger) ([]interface{}, error)

func GetGeneralHookForWorkflowV4Preset

func GetGeneralHookForWorkflowV4Preset(workflowName, hookName string, logger *zap.SugaredLogger) (*commonmodels.GeneralHook, error)

func GetImage

func GetImage(registry *commonmodels.RegistryNamespace, suffix string) string

GetImage suffix 可以是 branch name 或者 pr number

func GetJiraHookForWorkflowV4Preset

func GetJiraHookForWorkflowV4Preset(workflowName, hookName string, logger *zap.SugaredLogger) (*commonmodels.JiraHook, error)

func GetLatestTaskInfo

func GetLatestTaskInfo(workflowInfo *Workflow) (startTime int64, creator, status string)
func GetLink(p *task.Task, baseURI string, taskType config.PipelineType) string

func GetMeegoHookForWorkflowV4Preset

func GetMeegoHookForWorkflowV4Preset(workflowName, hookName string, logger *zap.SugaredLogger) (*commonmodels.MeegoHook, error)

func GetMseOfflineResources

func GetMseOfflineResources(grayTag, envName, projectName string) ([]string, error)

func GetMseOriginalServiceYaml

func GetMseOriginalServiceYaml(project, envName, serviceName, grayTag string) (string, error)

func GetMseTagsInEnv

func GetMseTagsInEnv(envName, projectName string) ([]string, error)

func GetPackageFile

func GetPackageFile(suffix string) string

GetPackageFile suffix 可以是 branch name 或者 pr number

func GetPatchParams

func GetPatchParams(patchItem *commonmodels.PatchItem, logger *zap.SugaredLogger) ([]*commonmodels.Param, error)

func GetPipeline

func GetPipeline(userID, pipelineName string, log *zap.SugaredLogger) (*commonmodels.Pipeline, error)

func GetPipelineTaskV2

func GetPipelineTaskV2(taskID int64, pipelineName string, typeString config.PipelineType, log *zap.SugaredLogger) (*task.Task, error)

func GetRaw

func GetRaw(name, productName string, log *zap.SugaredLogger) (*commonmodels.Testing, error)

GetRaw find the testing module with secret env not masked

func GetS3RelStorage

func GetS3RelStorage(logger *zap.SugaredLogger) (*commonmodels.S3Storage, error)

GetS3RelStorage find the default s3storage

func GetS3Storage

func GetS3Storage(id string, logger *zap.SugaredLogger) (*commonmodels.S3Storage, error)

func GetServiceNames

func GetServiceNames(p *commonmodels.Product) []string

func GetTesting

func GetTesting(name, productName string, log *zap.SugaredLogger) (*commonmodels.Testing, error)

func GetWebhookForWorkflowV4Preset

func GetWebhookForWorkflowV4Preset(workflowName, triggerName string, logger *zap.SugaredLogger) (*commonmodels.WorkflowV4Hook, error)

func GetWorkflowGlabalVars

func GetWorkflowGlabalVars(workflow *commonmodels.WorkflowV4, currentJobName string, log *zap.SugaredLogger) []string

func GetWorkflowRepoIndex

func GetWorkflowRepoIndex(workflow *commonmodels.WorkflowV4, currentJobName string, log *zap.SugaredLogger) []*jobctl.RepoIndex

func GetWorkflowTaskV3

func GetWorkflowTaskV3(taskID int64, pipelineName string, typeString config.PipelineType, log *zap.SugaredLogger) (*task.Task, error)

func GetWorkflowTaskV3Callback

func GetWorkflowTaskV3Callback(taskID int64, pipelineName string, logger *zap.SugaredLogger) (*commonmodels.CallbackRequest, error)

func GetWorkflowTasksCustomFields

func GetWorkflowTasksCustomFields(projectName, workflowName string, logger *zap.SugaredLogger) (*models.CustomField, error)

func GetWorkflowV4ArtifactFileContent

func GetWorkflowV4ArtifactFileContent(workflowName, jobName string, taskID int64, log *zap.SugaredLogger) ([]byte, error)

func GetWorkflowViewPreset

func GetWorkflowViewPreset(projectName, viewName string, logger *zap.SugaredLogger) (*commonmodels.WorkflowView, error)

func GetWorkflowv4Preset

func GetWorkflowv4Preset(encryptedKey, workflowName, uid, username string, log *zap.SugaredLogger) (*commonmodels.WorkflowV4, error)

func HandleCronjob

func HandleCronjob(workflow *commonmodels.Workflow, log *zap.SugaredLogger) error

func InitMongodbMsgQueueHandler

func InitMongodbMsgQueueHandler() error

func InitPipelineController

func InitPipelineController()

func InitQueue

func InitQueue() error

func JenkinsBuildModuleToSubTasks

func JenkinsBuildModuleToSubTasks(jenkinsBuildOption *JenkinsBuildOption, log *zap.SugaredLogger) ([]map[string]interface{}, error)

func LintWorkflowV4

func LintWorkflowV4(workflow *commonmodels.WorkflowV4, logger *zap.SugaredLogger) error

func ListBuildDetail

func ListBuildDetail(name, targets string, log *zap.SugaredLogger) ([]*commonmodels.Build, error)

func ListCronForWorkflowV4

func ListCronForWorkflowV4(workflowName string, logger *zap.SugaredLogger) ([]*commonmodels.Cronjob, error)

func ListFavoritePipelines

func ListFavoritePipelines(args *commonrepo.FavoriteArgs) ([]*commonmodels.Favorite, error)

func ListGeneralHookForWorkflowV4

func ListGeneralHookForWorkflowV4(workflowName string, logger *zap.SugaredLogger) ([]*models.GeneralHook, error)

func ListJiraHookForWorkflowV4

func ListJiraHookForWorkflowV4(workflowName string, logger *zap.SugaredLogger) ([]*models.JiraHook, error)

func ListMeegoHookForWorkflowV4

func ListMeegoHookForWorkflowV4(workflowName string, logger *zap.SugaredLogger) ([]*models.MeegoHook, error)

func ListPipelines

func ListPipelines(log *zap.SugaredLogger) ([]*commonmodels.Pipeline, error)

func ListPluginTemplates

func ListPluginTemplates(log *zap.SugaredLogger) ([]*commonmodels.PluginTemplate, error)

func ListTasks

func ListTasks() []*task.Task

func ListTestWorkflows

func ListTestWorkflows(testName string, projects []string, log *zap.SugaredLogger) (workflows []*commonmodels.Workflow, err error)

func ListUnofficalPluginRepositories

func ListUnofficalPluginRepositories(log *zap.SugaredLogger) ([]*commonmodels.PluginRepo, error)

func ListWebhookForWorkflowV4

func ListWebhookForWorkflowV4(workflowName string, logger *zap.SugaredLogger) ([]*commonmodels.WorkflowV4Hook, error)

func ListWorkflowFilterInfo

func ListWorkflowFilterInfo(project, workflow, typeName string, jobName string, logger *zap.SugaredLogger) ([]string, error)

func ListWorkflowTaskV4ByFilter

func ListWorkflowTaskV4ByFilter(filter *TaskHistoryFilter, filterList []string, logger *zap.SugaredLogger) ([]*commonmodels.WorkflowTaskPreview, int64, error)

func ListWorkflowViewNames

func ListWorkflowViewNames(projectName string, logger *zap.SugaredLogger) ([]string, error)

func NextWaitingTask

func NextWaitingTask() (*task.Task, error)

NextWaitingTask 查询下一个等待的task

func OpenAPIDeleteCustomWorkflowV4

func OpenAPIDeleteCustomWorkflowV4(workflowName, projectName string, logger *zap.SugaredLogger) error

func OpenAPIDeleteProductWorkflowV4

func OpenAPIDeleteProductWorkflowV4(workflowName, projectName string, requestID string, logger *zap.SugaredLogger) error

func OpenAPIRetryCustomWorkflowTaskV4

func OpenAPIRetryCustomWorkflowTaskV4(name, projectName string, taskID int64, logger *zap.SugaredLogger) error

func ParallelRunningAndQueuedTasks

func ParallelRunningAndQueuedTasks(currentTask *task.Task) bool

func PendingPipelineTasks

func PendingPipelineTasks() []*task.Task

func PendingTasks

func PendingTasks() []*task.Task

func PipelineTaskSender

func PipelineTaskSender()

PipelineTaskSender 监控warpdrive空闲情况, 如果有空闲, 则发现下一个waiting task给warpdrive 并将task状态设置为queued

func PresetWorkflowArgs

func PresetWorkflowArgs(namespace, workflowName string, log *zap.SugaredLogger) (*commonmodels.WorkflowTaskArgs, error)

PresetWorkflowArgs 返回工作流详细信息

func Push

func Push(pt *task.Task) error

func RenamePipeline

func RenamePipeline(oldName, newName string, log *zap.SugaredLogger) error

func RenderMseServiceYaml

func RenderMseServiceYaml(productName, envName, lastGrayTag, grayTag string, service *commonmodels.MseGrayReleaseService) (string, error)

func RestartPipelineTaskV2

func RestartPipelineTaskV2(userName string, taskID int64, pipelineName string, typeString config.PipelineType, log *zap.SugaredLogger) error

func RestartWorkflowTaskV3

func RestartWorkflowTaskV3(userName string, taskID int64, workflowName string, typeString config.PipelineType, log *zap.SugaredLogger) error

func RetryWorkflowTaskV4

func RetryWorkflowTaskV4(workflowName string, taskID int64, logger *zap.SugaredLogger) error

func RunningAndQueuedTasks

func RunningAndQueuedTasks() []*task.Task

func RunningPipelineTasks

func RunningPipelineTasks() []*task.Task

func RunningTasks

func RunningTasks() []*task.Task

func SetCandidateRegistry

func SetCandidateRegistry(payload *commonmodels.ConfigPayload, log *zap.SugaredLogger) error

func SetRepoInfo

func SetRepoInfo(build *types.Repository, buildArgs []*types.Repository, log *zap.SugaredLogger)

SetRepoInfo set the information of the build param into the buildArgs, meanwhile add commit ID information into it

func SetTriggerBuilds

func SetTriggerBuilds(builds []*types.Repository, buildArgs []*types.Repository, log *zap.SugaredLogger) error

外部触发任务设置build参数

func SetWorkflowTaskV4Breakpoint

func SetWorkflowTaskV4Breakpoint(workflowName, jobName string, taskID int64, set bool, position string, logger *zap.SugaredLogger) error

func SetWorkflowTasksCustomFields

func SetWorkflowTasksCustomFields(projectName, workflowName string, args *models.CustomField, logger *zap.SugaredLogger) error

func StopDebugWorkflowTaskJobV4

func StopDebugWorkflowTaskJobV4(workflowName, jobName string, taskID int64, position string, logger *zap.SugaredLogger) error

func TestArgsToTestSubtask

func TestArgsToTestSubtask(args *commonmodels.TestTaskArgs, pt *task.Task, log *zap.SugaredLogger) (*task.Testing, error)

func UIType

func UIType(pipelineType config.PipelineType) string

func UpdateCronForWorkflowV4

func UpdateCronForWorkflowV4(input *commonmodels.Cronjob, logger *zap.SugaredLogger) error

func UpdateCronjob

func UpdateCronjob(parentName, parentType, productName string, schedule *commonmodels.ScheduleCtrl, log *zap.SugaredLogger) (deleteList []string, err error)

func UpdateGeneralHookForWorkflowV4

func UpdateGeneralHookForWorkflowV4(workflowName string, arg *models.GeneralHook, logger *zap.SugaredLogger) error

func UpdateGerritWebhook

func UpdateGerritWebhook(currentWorkflow *commonmodels.Workflow, log *zap.SugaredLogger) error

UpdateGerritWebhook 更新gerrit webhook

func UpdateJiraHookForWorkflowV4

func UpdateJiraHookForWorkflowV4(workflowName string, arg *models.JiraHook, logger *zap.SugaredLogger) error

func UpdateMeegoHookForWorkflowV4

func UpdateMeegoHookForWorkflowV4(workflowName string, arg *models.MeegoHook, logger *zap.SugaredLogger) error

func UpdateOfficalPluginRepository

func UpdateOfficalPluginRepository(log *zap.SugaredLogger)

func UpdateQueue

func UpdateQueue(task *task.Task) bool

func UpdateTask

func UpdateTask(t *task.Task) error

func UpdateTaskAgent

func UpdateTaskAgent(taskID int64, pipelineName string, createTime int64, agentID string) error

func UpdateWebhookForWorkflowV4

func UpdateWebhookForWorkflowV4(workflowName string, input *commonmodels.WorkflowV4Hook, logger *zap.SugaredLogger) error

func UpdateWorkflow

func UpdateWorkflow(workflow *commonmodels.Workflow, log *zap.SugaredLogger) error

func UpdateWorkflowV3

func UpdateWorkflowV3(id, user string, workflowModel *commonmodels.WorkflowV3, logger *zap.SugaredLogger) error

func UpdateWorkflowV4

func UpdateWorkflowV4(name, user string, inputWorkflow *commonmodels.WorkflowV4, logger *zap.SugaredLogger) error

func UpdateWorkflowView

func UpdateWorkflowView(input *commonmodels.WorkflowView, userName string, logger *zap.SugaredLogger) error

func UpdateWorkflowViewOpenAPI

func UpdateWorkflowViewOpenAPI(name, projectName string, workflowList []*commonmodels.WorkflowViewDetail, username string, logger *zap.SugaredLogger) error

func UpsertEnterprisePluginRepository

func UpsertEnterprisePluginRepository(args *commonmodels.PluginRepo, log *zap.SugaredLogger) error

func UpsertPipeline

func UpsertPipeline(args *commonmodels.Pipeline, log *zap.SugaredLogger) error

func UpsertUserPluginRepository

func UpsertUserPluginRepository(args *commonmodels.PluginRepo, log *zap.SugaredLogger) error

func ValidateMySQL

func ValidateMySQL(sql string) error

func ValidateSQL

func ValidateSQL(_type config.DBInstanceType, sql string) error

Types

type ApproveUser

type ApproveUser struct {
	UserName string `json:"user_name"`
	UserID   string `json:"user_id"`
}

type BlueGreenDeployArgs

type BlueGreenDeployArgs struct {
	ServiceName string `json:"service_name"`
	ImageName   string `json:"image_name"`
}

type BlueGreenDeployJobInput

type BlueGreenDeployJobInput struct {
	ServiceList []*BlueGreenDeployArgs `json:"service_list"`
}

func (*BlueGreenDeployJobInput) UpdateJobSpec

func (p *BlueGreenDeployJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type BulkCopyWorkflowArgs

type BulkCopyWorkflowArgs struct {
	Items []WorkflowCopyItem `json:"items"`
}

type ByStageKind

type ByStageKind []*commonmodels.Stage

func (ByStageKind) Len

func (a ByStageKind) Len() int

func (ByStageKind) Less

func (a ByStageKind) Less(i, j int) bool

func (ByStageKind) Swap

func (a ByStageKind) Swap(i, j int)

type ByTaskKind

type ByTaskKind []map[string]interface{}

func (ByTaskKind) Len

func (a ByTaskKind) Len() int

func (ByTaskKind) Less

func (a ByTaskKind) Less(i, j int) bool

func (ByTaskKind) Swap

func (a ByTaskKind) Swap(i, j int)

type CanaryDeployArgs

type CanaryDeployArgs struct {
	ServiceName string `json:"service_name"`
	ImageName   string `json:"image_name"`
}

type CanaryDeployJobInput

type CanaryDeployJobInput struct {
	ServiceList []*BlueGreenDeployArgs `json:"service_list"`
}

func (*CanaryDeployJobInput) UpdateJobSpec

func (p *CanaryDeployJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type CancelMessage

type CancelMessage struct {
	Revoker      string `json:"revoker"`
	PipelineName string `json:"pipeline_name"`
	TaskID       int64  `json:"task_id"`
	ReqID        string `json:"req_id"`
}

type ContainerNotFound

type ContainerNotFound struct {
	ServiceName string
	Container   string
	EnvName     string
	ProductName string
}

func (*ContainerNotFound) Error

func (c *ContainerNotFound) Error() string

type CreateCustomTaskJobInput

type CreateCustomTaskJobInput struct {
	JobName    string         `json:"job_name"`
	JobType    config.JobType `json:"job_type"`
	Parameters interface{}    `json:"parameters"`
}

type CreateProductTaskJobInput

type CreateProductTaskJobInput struct {
	TargetEnv  string            `json:"target_env"`
	BuildArgs  WorkflowBuildArg  `json:"build"`
	DeployArgs WorkflowDeployArg `json:"deploy"`
}

type CreateTaskResp

type CreateTaskResp struct {
	ProjectName  string `json:"project_name"`
	PipelineName string `json:"pipeline_name"`
	TaskID       int64  `json:"task_id"`
}

func AddDataToArgsOrCreateReleaseImageTask

func AddDataToArgsOrCreateReleaseImageTask(args *commonmodels.WorkflowTaskArgs, log *zap.SugaredLogger) (*CreateTaskResp, error)

add data to workflow args or create release image task

func CreateArtifactWorkflowTask

func CreateArtifactWorkflowTask(args *commonmodels.WorkflowTaskArgs, taskCreator string, log *zap.SugaredLogger) (*CreateTaskResp, error)

func CreatePipelineTask

func CreatePipelineTask(args *commonmodels.TaskArgs, log *zap.SugaredLogger) (*CreateTaskResp, error)

func CreateServiceTask

func CreateServiceTask(args *commonmodels.ServiceTaskArgs, log *zap.SugaredLogger) ([]*CreateTaskResp, error)

func CreateWorkflowTask

func CreateWorkflowTask(args *commonmodels.WorkflowTaskArgs, taskCreator string, log *zap.SugaredLogger) (*CreateTaskResp, error)

func OpenAPICreateProductWorkflowTask

func OpenAPICreateProductWorkflowTask(username string, args *OpenAPICreateProductWorkflowTaskArgs, logger *zap.SugaredLogger) (*CreateTaskResp, error)

type CreateTaskV4Resp

type CreateTaskV4Resp struct {
	ProjectName  string `json:"project_name"`
	WorkflowName string `json:"workflow_name"`
	TaskID       int64  `json:"task_id"`
}

func CreateCustomWorkflowTask

func CreateCustomWorkflowTask(username string, args *OpenAPICreateCustomWorkflowTaskArgs, log *zap.SugaredLogger) (*CreateTaskV4Resp, error)

CreateCustomWorkflowTask creates a task for custom workflow with user-friendly inputs, this is currently used for openAPI

func CreateWorkflowTaskV4ByBuildInTrigger

func CreateWorkflowTaskV4ByBuildInTrigger(triggerName string, args *commonmodels.WorkflowV4, log *zap.SugaredLogger) (*CreateTaskV4Resp, error)

type CreateWorkflowTaskV4Args

type CreateWorkflowTaskV4Args struct {
	Name    string
	Account string
	UserID  string
	Type    config.CustomWorkflowTaskType
}

type CronjobWorkflowArgs

type CronjobWorkflowArgs struct {
	Target []*commonmodels.TargetArgs `bson:"targets"                      json:"targets"`
}

func GetWorkflowArgs

func GetWorkflowArgs(productName, namespace string, serviceBuildInfos []*ServiceBuildInfo, log *zap.SugaredLogger) (*CronjobWorkflowArgs, error)

GetWorkflowArgs 返回工作流详细信息

type CustomDeployJobInput

type CustomDeployJobInput struct {
	TargetList []*CustomDeployTarget `json:"target_list"`
}

func (*CustomDeployJobInput) UpdateJobSpec

func (p *CustomDeployJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type CustomDeployJobSpec

type CustomDeployJobSpec struct {
	Image              string `bson:"image"                        json:"image"`
	Target             string `bson:"target"                       json:"target"`
	ClusterName        string `bson:"cluster_name"                 json:"cluster_name"`
	Namespace          string `bson:"namespace"                    json:"namespace"`
	SkipCheckRunStatus bool   `bson:"skip_check_run_status"        json:"skip_check_run_status"`
}

type CustomDeployTarget

type CustomDeployTarget struct {
	WorkloadType  string `json:"workload_type"`
	WorkloadName  string `json:"workload_name"`
	ContainerName string `json:"container_name"`
	ImageName     string `json:"image_name"`
}

type CustomJobInput

type CustomJobInput interface {
	UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)
}

type DeployEnv

type DeployEnv struct {
	Env         string `json:"env"`
	Type        string `json:"type"`
	ProductName string `json:"product_name,omitempty"`
}

type DingTalkApproval

type DingTalkApproval struct {
	Timeout int64 `bson:"timeout"`
}

type DistributeImageJobSpec

type DistributeImageJobSpec struct {
	SourceRegistryID string                       `bson:"source_registry_id"           json:"source_registry_id"`
	TargetRegistryID string                       `bson:"target_registry_id"           json:"target_registry_id"`
	DistributeTarget []*step.DistributeTaskTarget `bson:"distribute_target"            json:"distribute_target"`
}

type EmptyInput

type EmptyInput struct{}

func (*EmptyInput) UpdateJobSpec

func (p *EmptyInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type EnvStatus

type EnvStatus struct {
	EnvName    string `json:"env_name,omitempty"`
	Status     string `json:"status"`
	ErrMessage string `json:"err_message"`
}

func AutoCreateWorkflow

func AutoCreateWorkflow(productName string, log *zap.SugaredLogger) *EnvStatus

type FreestyleJobInput

type FreestyleJobInput struct {
	KVs      []*types.KV               `json:"kv"`
	RepoInfo []*types.OpenAPIRepoInput `json:"repo_info"`
}

func (*FreestyleJobInput) UpdateJobSpec

func (p *FreestyleJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type GetHelmValuesDifferenceResp

type GetHelmValuesDifferenceResp struct {
	Current string `json:"current"`
	Latest  string `json:"latest"`
}

func CompareHelmServiceYamlInEnv

func CompareHelmServiceYamlInEnv(serviceName, variableYaml, envName, projectName string, images []string, isProduction, updateServiceRevision, isHelmChartDeploy bool, log *zap.SugaredLogger) (*GetHelmValuesDifferenceResp, error)

type GoCacheManager

type GoCacheManager struct{}

GoCacheManager is deprecated

func NewGoCacheManager

func NewGoCacheManager() *GoCacheManager

func (*GoCacheManager) Archive

func (gcm *GoCacheManager) Archive(source, dest string) error

type GrayReleaseJobInput

type GrayReleaseJobInput struct {
	TargetList []*GrayReleaseTarget `json:"target_list"`
}

func (*GrayReleaseJobInput) UpdateJobSpec

func (p *GrayReleaseJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type GrayReleaseTarget

type GrayReleaseTarget struct {
	WorkloadType  string `json:"workload_type"`
	WorkloadName  string `json:"workload_name"`
	ContainerName string `json:"container_name"`
	ImageName     string `json:"image_name"`
}

type GrayRollbackJobInput

type GrayRollbackJobInput struct {
	TargetList []*GrayReleaseTarget `json:"target_list"`
}

func (*GrayRollbackJobInput) UpdateJobSpec

func (p *GrayRollbackJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type GrayRollbackTarget

type GrayRollbackTarget struct {
	WorkloadType string `json:"workload_type"`
	WorkloadName string `json:"workload_name"`
}

type ImageIllegal

type ImageIllegal struct {
}

func (*ImageIllegal) Error

func (c *ImageIllegal) Error() string

type JenkinsBuildOption

type JenkinsBuildOption struct {
	BuildName        string
	Version          string
	Target           string
	ServiceName      string
	ProductName      string
	JenkinsBuildArgs *commonmodels.JenkinsBuildArgs
}

type JenkinsJobParams

type JenkinsJobParams struct {
	Name    string           `json:"name"`
	Default string           `json:"default"`
	Type    config.ParamType `json:"type"`
	Choices []string         `json:"choices"`
}

func GetJenkinsJobParams

func GetJenkinsJobParams(id, jobName string) ([]*JenkinsJobParams, error)

type JobTaskPreview

type JobTaskPreview struct {
	Name             string        `bson:"name"           json:"name"`
	JobType          string        `bson:"type"           json:"type"`
	Status           config.Status `bson:"status"         json:"status"`
	StartTime        int64         `bson:"start_time"     json:"start_time,omitempty"`
	EndTime          int64         `bson:"end_time"       json:"end_time,omitempty"`
	CostSeconds      int64         `bson:"cost_seconds"   json:"cost_seconds"`
	Error            string        `bson:"error"          json:"error"`
	BreakpointBefore bool          `bson:"breakpoint_before" json:"breakpoint_before"`
	BreakpointAfter  bool          `bson:"breakpoint_after"  json:"breakpoint_after"`
	Spec             interface{}   `bson:"spec"           json:"spec"`
	// JobInfo contains the fields that make up the job task name, for frontend display
	JobInfo interface{} `bson:"job_info" json:"job_info"`
}

type K8sBlueGreenDeployJobSpec

type K8sBlueGreenDeployJobSpec struct {
	Image          string               `bson:"image"                        json:"image"`
	K8sServiceName string               `bson:"k8s_service_name"             json:"k8s_service_name"`
	ClusterName    string               `bson:"cluster_name"                 json:"cluster_name"`
	Namespace      string               `bson:"namespace"                    json:"namespace"`
	ContainerName  string               `bson:"container_name"               json:"container_name"`
	Events         *commonmodels.Events `bson:"events"                       json:"events"`
}

type K8sBlueGreenReleaseJobSpec

type K8sBlueGreenReleaseJobSpec struct {
	Image          string               `bson:"image"                        json:"image"`
	K8sServiceName string               `bson:"k8s_service_name"             json:"k8s_service_name"`
	ClusterName    string               `bson:"cluster_name"                 json:"cluster_name"`
	Namespace      string               `bson:"namespace"                    json:"namespace"`
	ContainerName  string               `bson:"container_name"               json:"container_name"`
	Events         *commonmodels.Events `bson:"events"                       json:"events"`
}

type K8sCanaryDeployJobSpec

type K8sCanaryDeployJobSpec struct {
	Image          string               `bson:"image"                        json:"image"`
	K8sServiceName string               `bson:"k8s_service_name"             json:"k8s_service_name"`
	ClusterName    string               `bson:"cluster_name"                 json:"cluster_name"`
	Namespace      string               `bson:"namespace"                    json:"namespace"`
	ContainerName  string               `bson:"container_name"               json:"container_name"`
	CanaryReplica  int                  `bson:"canary_replica"               json:"canary_replica"`
	Events         *commonmodels.Events `bson:"events"                       json:"events"`
}

type K8sCanaryReleaseJobSpec

type K8sCanaryReleaseJobSpec struct {
	Image          string               `bson:"image"                        json:"image"`
	K8sServiceName string               `bson:"k8s_service_name"             json:"k8s_service_name"`
	ClusterName    string               `bson:"cluster_name"                 json:"cluster_name"`
	Namespace      string               `bson:"namespace"                    json:"namespace"`
	ContainerName  string               `bson:"container_name"               json:"container_name"`
	Events         *commonmodels.Events `bson:"events"                       json:"events"`
}

type K8sPatchJobInput

type K8sPatchJobInput struct {
	TargetList []*K8sPatchTarget `json:"target_list"`
}

func (*K8sPatchJobInput) UpdateJobSpec

func (p *K8sPatchJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type K8sPatchTarget

type K8sPatchTarget struct {
	ResourceName    string      `json:"resource_name"`
	ResourceKind    string      `json:"resource_kind"`
	ResourceGroup   string      `json:"resource_group"`
	ResourceVersion string      `json:"resource_version"`
	Inputs          []*types.KV `json:"inputs"`
}

type LarkApproval

type LarkApproval struct {
	Timeout      int64          `bson:"timeout"`
	ApproveUsers []*ApproveUser `json:"approve_users"`
}

type NameWithParams

type NameWithParams struct {
	Name        string                `json:"name"`
	DisplayName string                `json:"display_name"`
	ProjectName string                `json:"project_name"`
	Params      []*commonmodels.Param `json:"params"`
}

func ListWorkflowV4CanTrigger

func ListWorkflowV4CanTrigger(ctx *internalhandler.Context) ([]*NameWithParams, error)

type NativeApproval

type NativeApproval struct {
	Timeout         int64          `bson:"timeout"`
	ApproveUsers    []*ApproveUser `json:"approve_users"`
	NeededApprovers int            `bson:"needed_approvers"`
}

type OpenAPIApproveRequest

type OpenAPIApproveRequest struct {
	StageName    string `json:"stage_name"`
	WorkflowName string `json:"workflow_key"`
	TaskID       int64  `json:"task_id"`
	Approve      bool   `json:"approve"`
	Comment      string `json:"comment"`
}

type OpenAPICreateCustomWorkflowTaskArgs

type OpenAPICreateCustomWorkflowTaskArgs struct {
	WorkflowName string                      `json:"workflow_key"`
	ProjectName  string                      `json:"project_key"`
	Inputs       []*CreateCustomTaskJobInput `json:"inputs"`
}

type OpenAPICreateProductWorkflowTaskArgs

type OpenAPICreateProductWorkflowTaskArgs struct {
	WorkflowName string                     `json:"workflow_key"`
	ProjectName  string                     `json:"project_key"`
	Input        *CreateProductTaskJobInput `json:"input"`
}

func (*OpenAPICreateProductWorkflowTaskArgs) Validate

type OpenAPICreateWorkflowViewReq

type OpenAPICreateWorkflowViewReq struct {
	ProjectName  string                       `json:"project_key"`
	Name         string                       `json:"name"`
	WorkflowList []*OpenAPIWorkflowViewDetail `json:"workflow_list"`
}

func (*OpenAPICreateWorkflowViewReq) Validate

func (req *OpenAPICreateWorkflowViewReq) Validate() (bool, error)

type OpenAPIPageParamsFromReq

type OpenAPIPageParamsFromReq struct {
	ProjectKey string `form:"projectKey"`
	PageNum    int64  `form:"pageNum,default=1"`
	PageSize   int64  `form:"pageSize,default=10"`
}

type OpenAPIProductWorkflowTaskBrief

type OpenAPIProductWorkflowTaskBrief struct {
	WorkflowName string        `json:"workflow_key"`
	ProjectName  string        `json:"project_key"`
	TaskID       int64         `json:"task_id"`
	CreateTime   int64         `json:"create_time"`
	TaskCreator  string        `json:"task_creator"`
	StartTime    int64         `json:"start_time"`
	EndTime      int64         `json:"end_time"`
	Status       config.Status `json:"status"`
}

func OpenAPIGetProductWorkflowTasksV4

func OpenAPIGetProductWorkflowTasksV4(projectName, workflowName string, pageNum, pageSize int64, logger *zap.SugaredLogger) ([]*OpenAPIProductWorkflowTaskBrief, error)

type OpenAPIProductWorkflowTaskDetail

type OpenAPIProductWorkflowTaskDetail struct {
	WorkflowName string        `json:"workflow_key"`
	DisplayName  string        `json:"workflow_name,omitempty"`
	ProjectName  string        `json:"project_key"`
	TaskID       int64         `json:"task_id"`
	CreateTime   int64         `json:"create_time"`
	TaskCreator  string        `json:"task_creator"`
	StartTime    int64         `json:"start_time"`
	EndTime      int64         `json:"end_time"`
	Status       config.Status `json:"status"`
}

func OpenAPIGetProductWorkflowTaskV4

func OpenAPIGetProductWorkflowTaskV4(projectName, workflowName string, taskID int64, logger *zap.SugaredLogger) (*OpenAPIProductWorkflowTaskDetail, error)

type OpenAPIServiceModule

type OpenAPIServiceModule struct {
	ServiceModule string `json:"service_module"`
	ServiceName   string `json:"service_name"`
}

type OpenAPIStage

type OpenAPIStage struct {
	Name     string                   `json:"name"`
	Parallel bool                     `json:"parallel,omitempty"`
	Approval *OpenAPIWorkflowApproval `json:"approval,omitempty"`
	Jobs     []*commonmodels.Job      `json:"jobs,omitempty"`
}

type OpenAPIWorkflowApproval

type OpenAPIWorkflowApproval struct {
	Enabled          bool                `json:"enabled"`
	Type             config.ApprovalType `json:"type"`
	Description      string              `json:"description"`
	NativeApproval   *NativeApproval     `json:"native_approval,omitempty"`
	LarkApproval     *LarkApproval       `json:"lark_approval,omitempty"`
	DingTalkApproval *DingTalkApproval   `json:"dingtalk_approval,omitempty"`
}

type OpenAPIWorkflowListResp

type OpenAPIWorkflowListResp struct {
	Workflows []*WorkflowBrief `json:"workflows"`
}

func OpenAPIGetCustomWorkflowV4List

func OpenAPIGetCustomWorkflowV4List(args *OpenAPIWorkflowV4ListReq, logger *zap.SugaredLogger) (*OpenAPIWorkflowListResp, error)

type OpenAPIWorkflowTaskJob

type OpenAPIWorkflowTaskJob struct {
	Name           string                  `json:"name"`
	JobType        config.JobType          `json:"job_type"`
	Skipped        bool                    `json:"skipped"`
	RunPolicy      config.JobRunPolicy     `json:"run_policy"`
	ServiceModules []*OpenAPIServiceModule `json:"service_modules"`
	Status         config.Status           `json:"status"`
	Error          string                  `json:"error"`
	StartTime      int64                   `json:"start_time"`
	EndTime        int64                   `json:"end_time"`
}

type OpenAPIWorkflowTaskStage

type OpenAPIWorkflowTaskStage struct {
	Name      string                    `json:"name"`
	Parallel  bool                      `json:"parallel"`
	Approval  *OpenAPIWorkflowApproval  `json:"approval,omitempty"`
	Jobs      []*OpenAPIWorkflowTaskJob `json:"jobs,omitempty"`
	Status    config.Status             `json:"status"`
	Error     string                    `json:"error"`
	StartTime int64                     `json:"start_time"`
	EndTime   int64                     `json:"end_time"`
}

type OpenAPIWorkflowV4Detail

type OpenAPIWorkflowV4Detail struct {
	Name             string                       `json:"workflow_key"`
	DisplayName      string                       `json:"workflow_name"`
	ProjectName      string                       `json:"project_key"`
	Description      string                       `json:"description"`
	CreatedBy        string                       `json:"created_by"`
	CreateTime       int64                        `json:"create_time"`
	UpdatedBy        string                       `json:"updated_by"`
	UpdateTime       int64                        `json:"update_time"`
	Params           []*commonmodels.Param        `json:"params"`
	Stages           []*OpenAPIStage              `json:"stages"`
	NotifyCtls       []*commonmodels.NotifyCtl    `json:"notify_ctls"`
	ShareStorages    []*commonmodels.ShareStorage `json:"share_storages"`
	ConcurrencyLimit int                          `json:"concurrency_limit"`
}

func OpenAPIGetCustomWorkflowV4

func OpenAPIGetCustomWorkflowV4(workflowName, projectName string, logger *zap.SugaredLogger) (*OpenAPIWorkflowV4Detail, error)

type OpenAPIWorkflowV4ListReq

type OpenAPIWorkflowV4ListReq struct {
	ProjectKey string `form:"projectKey"`
	ViewName   string `form:"viewName"`
}

type OpenAPIWorkflowV4Task

type OpenAPIWorkflowV4Task struct {
	WorkflowName string          `json:"workflow_key"`
	DisplayName  string          `json:"workflow_name"`
	ProjectName  string          `json:"project_key"`
	TaskID       int64           `json:"task_id"`
	CreateTime   int64           `json:"create_time"`
	TaskCreator  string          `json:"task_creator"`
	StartTime    int64           `json:"start_time"`
	EndTime      int64           `json:"end_time"`
	Stages       []*OpenAPIStage `json:"stages,omitempty"`
	Status       config.Status   `json:"status"`
}

type OpenAPIWorkflowV4TaskListResp

type OpenAPIWorkflowV4TaskListResp struct {
	Total         int64                    `json:"total"`
	WorkflowTasks []*OpenAPIWorkflowV4Task `json:"workflow_tasks"`
}

func OpenAPIGetCustomWorkflowTaskV4

func OpenAPIGetCustomWorkflowTaskV4(name, projectName string, pageNum, pageSize int64, logger *zap.SugaredLogger) (*OpenAPIWorkflowV4TaskListResp, error)

type OpenAPIWorkflowViewBrief

type OpenAPIWorkflowViewBrief struct {
	Name        string          `json:"name"`
	ProjectName string          `json:"project_key"`
	UpdateTime  int64           `json:"update_time"`
	UpdateBy    string          `json:"update_by"`
	Workflows   []*ViewWorkflow `json:"workflows"`
}

func OpenAPIGetWorkflowViews

func OpenAPIGetWorkflowViews(projectName string, logger *zap.SugaredLogger) ([]*OpenAPIWorkflowViewBrief, error)

type OpenAPIWorkflowViewDetail

type OpenAPIWorkflowViewDetail struct {
	WorkflowName        string `json:"workflow_key"`
	WorkflowDisplayName string `json:"workflow_name"`
	WorkflowType        string `json:"workflow_type"`
	Enabled             bool   `json:"enabled"`
}

type PRCommit

type PRCommit struct {
	ID          string     `json:"id"`
	Title       string     `json:"title"`
	AuthorName  string     `json:"author_name"`
	CreatedAt   *time.Time `json:"created_at"`
	CheckoutRef string     `json:"checkout_ref"`
}

func GetLatestPRCommitList

func GetLatestPRCommitList(cli *gitlab.Client, projectID string, pr int) (*PRCommit, error)

func GetLatestPrCommit

func GetLatestPrCommit(codehostID, pr int, namespace, projectName string, log *zap.SugaredLogger) (*PRCommit, error)

type Param

type Param struct {
	Name        string `bson:"name"             json:"name"             yaml:"name"`
	Description string `bson:"description"      json:"description"      yaml:"description"`
	// support string/text/choice/repo type
	ParamsType   string                 `bson:"type"                      json:"type"                        yaml:"type"`
	Value        string                 `bson:"value"                     json:"value"                       yaml:"value,omitempty"`
	Repo         *types.Repository      `bson:"repo"                     json:"repo"                         yaml:"repo,omitempty"`
	ChoiceOption []string               `bson:"choice_option,omitempty"   json:"choice_option,omitempty"     yaml:"choice_option,omitempty"`
	Default      string                 `bson:"default"                   json:"default"                     yaml:"default"`
	IsCredential bool                   `bson:"is_credential"             json:"is_credential"               yaml:"is_credential"`
	Source       config.ParamSourceType `bson:"source,omitempty" json:"source,omitempty" yaml:"source,omitempty"`
}

type PipelinePreview

type PipelinePreview struct {
	ProductName     string                   `bson:"product_name"               json:"product_name"`
	Name            string                   `bson:"name"                       json:"name"`
	TeamName        string                   `bson:"team_name"                  json:"team_name"`
	SubTasks        []map[string]interface{} `bson:"sub_tasks"                  json:"sub_tasks"`
	Types           []string                 `bson:"-"                          json:"types"`
	UpdateBy        string                   `bson:"update_by"                  json:"update_by,omitempty"`
	UpdateTime      int64                    `bson:"update_time"                json:"update_time,omitempty"`
	IsFavorite      bool                     `bson:"is_favorite"                json:"is_favorite"`
	LastestTask     *commonmodels.TaskInfo   `bson:"-"                          json:"lastest_task"`
	LastSucessTask  *commonmodels.TaskInfo   `bson:"-"                          json:"last_task_success"`
	LastFailureTask *commonmodels.TaskInfo   `bson:"-"                          json:"last_task_failure"`
	TotalDuration   int64                    `bson:"-"                          json:"total_duration"`
	TotalNum        int                      `bson:"-"                          json:"total_num"`
	TotalSuccess    int                      `bson:"-"                          json:"total_success"`
}

func ListPipelinesPreview

func ListPipelinesPreview(userID string, log *zap.SugaredLogger) ([]*PipelinePreview, error)

type PluginJobInput

type PluginJobInput struct {
	KVs []*types.KV `json:"kv"`
}

func (*PluginJobInput) UpdateJobSpec

func (p *PluginJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type PreSetResp

type PreSetResp struct {
	Target          *commonmodels.ServiceModuleTarget `json:"target"`
	BuildModuleVers []string                          `json:"build_module_vers"`
	Deploy          []DeployEnv                       `json:"deploy"`
	Repos           []*types.Repository               `json:"repos"`
}

func PreSetWorkflow

func PreSetWorkflow(productName string, log *zap.SugaredLogger) ([]*PreSetResp, error)

type Preview

type Preview struct {
	Name         string              `json:"name"`
	DisplayName  string              `json:"display_name"`
	WorkflowType config.PipelineType `json:"workflow_type"`
}

type ProductNameWithType

type ProductNameWithType struct {
	Name      string `json:"name"`
	Type      string `json:"type"`
	Namespace string `json:"namespace"`
}

func ListOldEnvsByServiceName

func ListOldEnvsByServiceName(serviceName string, log *zap.SugaredLogger) []ProductNameWithType

func ListPipelineUpdatableProductNames

func ListPipelineUpdatableProductNames(userName, pipelineName string, log *zap.SugaredLogger) ([]ProductNameWithType, error)

type Queue

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

func NewPipelineQueue

func NewPipelineQueue(log *zap.SugaredLogger) *Queue

func (*Queue) BlockedTaskQueue

func (q *Queue) BlockedTaskQueue() ([]*task.Task, error)

BlockedTaskQueue ...

func (*Queue) List

func (q *Queue) List() []*task.Task

func (*Queue) NextWaitingTask

func (q *Queue) NextWaitingTask() (*task.Task, error)

NextWaitingTask 查询下一个等待的task

func (*Queue) Push

func (q *Queue) Push(pt *task.Task) error

Push task queue, 如果已经存在相同的 pipeline 并且 multi=false情况 设置新的 pipeline 为 blocked 默认task状态为 created

func (*Queue) Remove

func (q *Queue) Remove(task *task.Task) error

Remove ...

func (*Queue) Update

func (q *Queue) Update(task *task.Task) bool

Update ...

func (*Queue) UpdateAgent

func (q *Queue) UpdateAgent(taskID int64, pipelineName string, createTime int64, agentID string) error

UpdateAgent ...

type RepoCommit

type RepoCommit struct {
	ID         string     `json:"id"`
	Title      string     `json:"title"`
	AuthorName string     `json:"author_name"`
	CreatedAt  *time.Time `json:"created_at"`
	Message    string     `json:"message"`
}

RepoCommit : Repository commit struct

func QueryByBranch

func QueryByBranch(id int, owner, name, branch string, log *zap.SugaredLogger) (*RepoCommit, error)

func QueryByTag

func QueryByTag(id int, owner, name, tag string, log *zap.SugaredLogger) (*RepoCommit, error)

type ScanningArg

type ScanningArg struct {
	ScanningName string                    `json:"scanning_name"`
	RepoInfo     []*types.OpenAPIRepoInput `json:"repo_info"`
}

type ServiceAndImage

type ServiceAndImage struct {
	ServiceName   string `bson:"service_name"           json:"service_name"`
	ServiceModule string `bson:"service_module"         json:"service_module"`
	Image         string `bson:"image"                  json:"image"`
}

type ServiceBuildInfo

type ServiceBuildInfo struct {
	ServiceName   string `json:"service_name"`
	ServiceModule string `json:"service_module"`
	BuildName     string `json:"build_name"`
}

type ServiceDeployArgs

type ServiceDeployArgs struct {
	ServiceModule string `json:"service_module"`
	ServiceName   string `json:"service_name"`
	ImageName     string `json:"image_name"`
}

type ServiceTaskPreview

type ServiceTaskPreview struct {
	Workflows []*Preview                         `json:"workflows"`
	Targets   []commonmodels.ServiceModuleTarget `json:"targets"`
}

func ListServiceWorkflows

func ListServiceWorkflows(productName, envName, serviceName, serviceType string, log *zap.SugaredLogger) (*ServiceTaskPreview, error)

type StageTaskPreview

type StageTaskPreview struct {
	Name      string                 `bson:"name"          json:"name"`
	Status    config.Status          `bson:"status"        json:"status"`
	StartTime int64                  `bson:"start_time"    json:"start_time,omitempty"`
	EndTime   int64                  `bson:"end_time"      json:"end_time,omitempty"`
	Parallel  bool                   `bson:"parallel"      json:"parallel"`
	Approval  *commonmodels.Approval `bson:"approval"      json:"approval"`
	Jobs      []*JobTaskPreview      `bson:"jobs"          json:"jobs"`
	Error     string                 `bson:"error" json:"error""`
}

type TaskAckHandler

type TaskAckHandler struct {
	TestTaskStatColl *commonrepo.TestTaskStatColl
	// contains filtered or unexported fields
}

func NewTaskAckHandler

func NewTaskAckHandler(maxInFlight int, log *zap.SugaredLogger) *TaskAckHandler

func (*TaskAckHandler) HandleMessage

func (h *TaskAckHandler) HandleMessage(message *task.Task) error

HandleMessage 接收 warpdrive 回传 pipeline task 消息 1. 更新 queue pipeline task 2. 更新 数据库 pipeline task 3. 如果 pipeline task 完成, 检查是否有 blocked pipeline task, 检查是否可以unblock, 从queue中移除task pipeline 完成状态包括:passed, failed, timeout 4. 更新 数据库 proudct 5. 更新历史piplinetask的状态为archived(默认只留下最近的一百个task)

type TaskHistoryFilter

type TaskHistoryFilter struct {
	PageSize     int64  `json:"page_size"    form:"page_size,default=20"`
	PageNum      int64  `json:"page_num"     form:"page_num,default=1"`
	WorkflowName string `json:"workflow_name" form:"workflow_name"`
	ProjectName  string `json:"projectName"  form:"projectName"`
	QueryType    string `json:"queryType"    form:"queryType"`
	Filters      string `json:"filters" form:"filters"`
	JobName      string `json:"jobName" form:"jobName"`
}

type TaskInfo

type TaskInfo struct {
	TaskID       int64  `json:"taskID"`
	PipelineName string `json:"pipelineName,omitempty"`
	Status       string `json:"status"`
	TaskCreator  string `json:"task_creator"`
	CreateTime   int64  `json:"create_time"`
	StartTime    int64  `json:"start_time,omitempty"`
	EndTime      int64  `json:"end_time,omitempty"`
}

type TaskNotificationHandler

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

TaskNotificationHandler ...

func (*TaskNotificationHandler) HandleMessage

func (h *TaskNotificationHandler) HandleMessage(n *commonmodels.Notify) error

HandleMessage ...

type TaskResp

type TaskResp struct {
	Name   string `json:"name"`
	TaskID int64  `json:"task_id"`
}

func CreateWorkflowTaskV3

func CreateWorkflowTaskV3(args *commonmodels.WorkflowV3Args, username, reqID string, log *zap.SugaredLogger) (*TaskResp, error)

type TaskResult

type TaskResult struct {
	Data      []*commonrepo.TaskPreview `bson:"data"             json:"data"`
	StartAt   int                       `bson:"start_at"         json:"start_at"`
	MaxResult int                       `bson:"max_result"       json:"max_result"`
	Total     int                       `bson:"total"            json:"total"`
}

TaskResult ...

func ListPipelineTasksV2Result

func ListPipelineTasksV2Result(name string, typeString config.PipelineType, queryType string, filters []string, maxResult, startAt int, log *zap.SugaredLogger) (*TaskResult, error)

ListPipelineTasksV2Result 工作流任务分页信息

func ListWorkflowTasksV3Result

func ListWorkflowTasksV3Result(name string, typeString config.PipelineType, maxResult, startAt int, log *zap.SugaredLogger) (*TaskResult, error)

ListWorkflowTasksV3Result 工作流任务分页信息

type TaskV2Info

type TaskV2Info struct {
	TaskID     int64  `json:"task_id"`
	Status     string `json:"status"`
	CreateTime int64  `json:"create_time"`
	StartTime  int64  `json:"start_time"`
	EndTime    int64  `json:"end_time"`
	URL        string `json:"url"`
}

func FindTasks

func FindTasks(commitID string, log *zap.SugaredLogger) ([]*TaskV2Info, error)

type TestingArgs

type TestingArgs struct {
	TestingName string                    `json:"testing_name"`
	RepoInfo    []*types.OpenAPIRepoInput `json:"repo_info"`
	Inputs      []*types.KV               `json:"inputs"`
}

type ViewWorkflow

type ViewWorkflow struct {
	WorkflowName string `json:"workflow_key"`
	WorkflowType string `json:"workflow_type"`
}

type Workflow

type Workflow struct {
	Name                 string                     `json:"name"`
	DisplayName          string                     `json:"display_name"`
	ProjectName          string                     `json:"projectName"`
	UpdateTime           int64                      `json:"updateTime"`
	CreateTime           int64                      `json:"createTime"`
	UpdateBy             string                     `json:"updateBy,omitempty"`
	Schedules            *commonmodels.ScheduleCtrl `json:"schedules,omitempty"`
	SchedulerEnabled     bool                       `json:"schedulerEnabled"`
	EnabledStages        []string                   `json:"enabledStages"`
	IsFavorite           bool                       `json:"isFavorite"`
	WorkflowType         string                     `json:"workflow_type"`
	RecentTask           *TaskInfo                  `json:"recentTask"`
	RecentTasks          []*TaskInfo                `json:"recentTasks"`
	RecentSuccessfulTask *TaskInfo                  `json:"recentSuccessfulTask"`
	RecentFailedTask     *TaskInfo                  `json:"recentFailedTask"`
	AverageExecutionTime float64                    `json:"averageExecutionTime"`
	SuccessRate          float64                    `json:"successRate"`
	Description          string                     `json:"description,omitempty"`
	BaseName             string                     `json:"base_name"`
	BaseRefs             []string                   `json:"base_refs"`
	NeverRun             bool                       `json:"never_run"`
}

func ListAllAvailableWorkflows

func ListAllAvailableWorkflows(projects []string, log *zap.SugaredLogger) ([]*Workflow, error)

func ListWorkflowV4

func ListWorkflowV4(projectName, viewName, userID string, names, v4Names []string, policyFound bool, logger *zap.SugaredLogger) ([]*Workflow, error)

func ListWorkflows

func ListWorkflows(projects []string, userID string, names []string, log *zap.SugaredLogger) ([]*Workflow, error)

type WorkflowBrief

type WorkflowBrief struct {
	WorkflowName string `json:"workflow_key"`
	DisplayName  string `json:"workflow_name"`
	UpdateBy     string `json:"update_by"`
	UpdateTime   int64  `json:"update_time"`
	Type         string `json:"type"`
}

type WorkflowBuildArg

type WorkflowBuildArg struct {
	Enabled     bool                             `json:"enabled"`
	ServiceList []*types.OpenAPIServiceBuildArgs `json:"service_list"`
}

type WorkflowCopyItem

type WorkflowCopyItem struct {
	ProjectName    string `json:"project_name"`
	Old            string `json:"old"`
	New            string `json:"new"`
	NewDisplayName string `json:"new_display_name"`
	BaseName       string `json:"base_name"`
}

type WorkflowDeployArg

type WorkflowDeployArg struct {
	Enabled     bool                 `json:"enabled"`
	Source      string               `json:"source"`
	ServiceList []*ServiceDeployArgs `json:"service_list"`
}

type WorkflowTaskPreview

type WorkflowTaskPreview struct {
	TaskID              int64                 `bson:"task_id"                   json:"task_id"`
	WorkflowName        string                `bson:"workflow_name"             json:"workflow_key"`
	WorkflowDisplayName string                `bson:"workflow_display_name"     json:"workflow_name"`
	Params              []*commonmodels.Param `bson:"params"                    json:"params"`
	Status              config.Status         `bson:"status"                    json:"status,omitempty"`
	TaskCreator         string                `bson:"task_creator"              json:"task_creator,omitempty"`
	TaskRevoker         string                `bson:"task_revoker,omitempty"    json:"task_revoker,omitempty"`
	CreateTime          int64                 `bson:"create_time"               json:"create_time,omitempty"`
	StartTime           int64                 `bson:"start_time"                json:"start_time,omitempty"`
	EndTime             int64                 `bson:"end_time"                  json:"end_time,omitempty"`
	Stages              []*StageTaskPreview   `bson:"stages"                    json:"stages"`
	ProjectName         string                `bson:"project_name"              json:"project_key"`
	Error               string                `bson:"error,omitempty"           json:"error,omitempty"`
	IsRestart           bool                  `bson:"is_restart"                json:"is_restart"`
	Debug               bool                  `bson:"debug"                     json:"debug"`
}

func GetWorkflowTaskV4

func GetWorkflowTaskV4(workflowName string, taskID int64, logger *zap.SugaredLogger) (*WorkflowTaskPreview, error)

type WorkflowV3

type WorkflowV3 struct {
	ID          string                    `json:"id"`
	Name        string                    `json:"name"`
	ProjectName string                    `json:"project_name"`
	Description string                    `json:"description"`
	Parameters  []*types.ParameterSetting `json:"parameters"`
	SubTasks    []map[string]interface{}  `json:"sub_tasks"`
}

func GetWorkflowV3Detail

func GetWorkflowV3Detail(id string, logger *zap.SugaredLogger) (*WorkflowV3, error)

type WorkflowV3Brief

type WorkflowV3Brief struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	ProjectName string `json:"project_name"`
}

func ListWorkflowsV3

func ListWorkflowsV3(projectName string, pageNum, pageSize int64, logger *zap.SugaredLogger) ([]*WorkflowV3Brief, int64, error)

type WorkflowV3TaskArgs

type WorkflowV3TaskArgs struct {
	Type    string                   `json:"type"`
	Key     string                   `json:"key,omitempty"`
	Value   string                   `json:"value,omitempty"`
	Choice  []string                 `json:"choice,omitempty"`
	Options []map[string]interface{} `json:"options,omitempty"`
}

func GetWorkflowV3Args

func GetWorkflowV3Args(id string, logger *zap.SugaredLogger) ([]*WorkflowV3TaskArgs, error)

type ZadigBuildJobInput

type ZadigBuildJobInput struct {
	Registry    string                           `json:"registry"`
	ServiceList []*types.OpenAPIServiceBuildArgs `json:"service_list"`
}

func (*ZadigBuildJobInput) UpdateJobSpec

func (p *ZadigBuildJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type ZadigBuildJobSpec

type ZadigBuildJobSpec struct {
	Repos         []*types.Repository    `bson:"repos"           json:"repos"`
	Image         string                 `bson:"image"           json:"image"`
	Package       string                 `bson:"package"         json:"package"`
	ServiceName   string                 `bson:"service_name"    json:"service_name"`
	ServiceModule string                 `bson:"service_module"  json:"service_module"`
	Envs          []*commonmodels.KeyVal `bson:"envs"            json:"envs"`
}

type ZadigDeployJobInput

type ZadigDeployJobInput struct {
	EnvName     string               `json:"env_name"` // required
	ServiceList []*ServiceDeployArgs `json:"service_list"`
}

func (*ZadigDeployJobInput) UpdateJobSpec

func (p *ZadigDeployJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type ZadigDeployJobPreviewSpec

type ZadigDeployJobPreviewSpec struct {
	Env                string             `bson:"env"                          json:"env"`
	Production         bool               `bson:"-"                            json:"production"`
	SkipCheckRunStatus bool               `bson:"skip_check_run_status"        json:"skip_check_run_status"`
	ServiceAndImages   []*ServiceAndImage `bson:"service_and_images"           json:"service_and_images"`
	YamlContent        string             `bson:"yaml_content"                 json:"yaml_content"`
	// UserSuppliedValue added since 1.18, the values that users gives.
	UserSuppliedValue string `bson:"user_supplied_value" json:"user_supplied_value" yaml:"user_supplied_value"`
	// VariableConfigs new since 1.18, only used for k8s
	VariableConfigs []*commonmodels.DeployVariableConfig `bson:"variable_configs"                 json:"variable_configs"                    yaml:"variable_configs"`
	// VariableKVs new since 1.18, only used for k8s
	VariableKVs []*commontypes.RenderVariableKV `bson:"variable_kvs"                 json:"variable_kvs"                    yaml:"variable_kvs"`
}

type ZadigScanningJobInput

type ZadigScanningJobInput struct {
	ScanningList []*ScanningArg `json:"scanning_list"`
}

func (*ZadigScanningJobInput) UpdateJobSpec

func (p *ZadigScanningJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type ZadigScanningJobSpec

type ZadigScanningJobSpec struct {
	Repos        []*types.Repository `bson:"repos"           json:"repos"`
	LinkURL      string              `bson:"link_url"        json:"link_url"`
	ScanningName string              `bson:"scanning_name"   json:"scanning_name"`
}

type ZadigTestingJobInput

type ZadigTestingJobInput struct {
	TestingList []*TestingArgs `json:"testing_list"`
}

func (*ZadigTestingJobInput) UpdateJobSpec

func (p *ZadigTestingJobInput) UpdateJobSpec(job *commonmodels.Job) (*commonmodels.Job, error)

type ZadigTestingJobSpec

type ZadigTestingJobSpec struct {
	Repos         []*types.Repository    `bson:"repos"           json:"repos"`
	JunitReport   bool                   `bson:"junit_report"    json:"junit_report"`
	Archive       bool                   `bson:"archive"         json:"archive"`
	HtmlReport    bool                   `bson:"html_report"     json:"html_report"`
	ProjectName   string                 `bson:"project_name"    json:"project_name"`
	TestName      string                 `bson:"test_name"       json:"test_name"`
	TestType      string                 `bson:"test_type"       json:"test_type"`
	ServiceName   string                 `bson:"service_name"    json:"service_name"`
	ServiceModule string                 `bson:"service_module"  json:"service_module"`
	Envs          []*commonmodels.KeyVal `bson:"envs"            json:"envs"`
}

Directories

Path Synopsis
plugins

Jump to

Keyboard shortcuts

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