service

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: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VerbUpdateName      = "update_name"
	VerbUpdateDesc      = "update_description"
	VerbUpdateTimeRange = "update_time_range"
	VerbUpdateManager   = "update_manager"

	VerbCreateReleaseJob = "create_release_job"
	VerbUpdateReleaseJob = "update_release_job"
	VerbDeleteReleaseJob = "delete_release_job"

	VerbUpdateApproval = "update_approval"
	VerbDeleteApproval = "delete_approval"

	TargetTypeReleasePlan       = "发布计划"
	TargetTypeReleasePlanStatus = "发布计划状态"
	TargetTypeMetadata          = "元数据"
	TargetTypeReleaseJob        = "发布内容"
	TargetTypeApproval          = "审批"
	TargetTypeDescription       = "需求关联"

	VerbCreate  = "新建"
	VerbUpdate  = "更新"
	VerbDelete  = "删除"
	VerbExecute = "执行"
	VerbSkip    = "跳过"
)

Variables

View Source
var (
	ErrPermissionDenied = errors.New("permission denied")
)

Functions

func ApproveReleasePlan

func ApproveReleasePlan(c *handler.Context, planID string, req *ApproveRequest) error

func CreateReleasePlan

func CreateReleasePlan(c *handler.Context, args *models.ReleasePlan) error

func DeleteReleasePlan

func DeleteReleasePlan(c *gin.Context, username, id string) error

func ExecuteReleaseJob

func ExecuteReleaseJob(c *handler.Context, planID string, args *ExecuteReleaseJobArgs) error

func GetReleasePlan

func GetReleasePlan(id string) (*models.ReleasePlan, error)

func GetReleasePlanLogs

func GetReleasePlanLogs(id string) ([]*models.ReleasePlanLog, error)

func OpenAPICreateReleasePlan

func OpenAPICreateReleasePlan(c *handler.Context, rawArgs *OpenAPICreateReleasePlanArgs) error

func OpenAPIGetReleasePlan

func OpenAPIGetReleasePlan(id string) (*models.ReleasePlan, error)

func SkipReleaseJob added in v2.3.0

func SkipReleaseJob(c *handler.Context, planID string, args *SkipReleaseJobArgs) error

func UpdateReleasePlan

func UpdateReleasePlan(c *handler.Context, planID string, args *UpdateReleasePlanArgs) error

func UpdateReleasePlanStatus

func UpdateReleasePlanStatus(c *handler.Context, planID, status string) error

func WatchApproval

func WatchApproval()

func WatchExecutingWorkflow

func WatchExecutingWorkflow()

Types

type ApproveRequest

type ApproveRequest struct {
	Approve bool   `json:"approve"`
	Comment string `json:"comment"`
}

type CreateReleaseJobUpdater

type CreateReleaseJobUpdater struct {
	Name string                    `json:"name"`
	Type config.ReleasePlanJobType `json:"type"`
	Spec interface{}               `json:"spec"`
}

func NewCreateReleaseJobUpdater

func NewCreateReleaseJobUpdater(args *UpdateReleasePlanArgs) (*CreateReleaseJobUpdater, error)

func (*CreateReleaseJobUpdater) Lint

func (u *CreateReleaseJobUpdater) Lint() error

func (*CreateReleaseJobUpdater) TargetName

func (u *CreateReleaseJobUpdater) TargetName() string

func (*CreateReleaseJobUpdater) TargetType

func (u *CreateReleaseJobUpdater) TargetType() string

func (*CreateReleaseJobUpdater) Update

func (u *CreateReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*CreateReleaseJobUpdater) Verb

func (u *CreateReleaseJobUpdater) Verb() string

type DeleteApprovalUpdater

type DeleteApprovalUpdater struct {
}

func NewDeleteApprovalUpdater

func NewDeleteApprovalUpdater(args *UpdateReleasePlanArgs) (*DeleteApprovalUpdater, error)

func (*DeleteApprovalUpdater) Lint

func (u *DeleteApprovalUpdater) Lint() error

func (*DeleteApprovalUpdater) TargetName

func (u *DeleteApprovalUpdater) TargetName() string

func (*DeleteApprovalUpdater) TargetType

func (u *DeleteApprovalUpdater) TargetType() string

func (*DeleteApprovalUpdater) Update

func (u *DeleteApprovalUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*DeleteApprovalUpdater) Verb

func (u *DeleteApprovalUpdater) Verb() string

type DeleteReleaseJobUpdater

type DeleteReleaseJobUpdater struct {
	ID string `json:"id"`
	// contains filtered or unexported fields
}

func NewDeleteReleaseJobUpdater

func NewDeleteReleaseJobUpdater(args *UpdateReleasePlanArgs) (*DeleteReleaseJobUpdater, error)

func (*DeleteReleaseJobUpdater) Lint

func (u *DeleteReleaseJobUpdater) Lint() error

func (*DeleteReleaseJobUpdater) TargetName

func (u *DeleteReleaseJobUpdater) TargetName() string

func (*DeleteReleaseJobUpdater) TargetType

func (u *DeleteReleaseJobUpdater) TargetType() string

func (*DeleteReleaseJobUpdater) Update

func (u *DeleteReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*DeleteReleaseJobUpdater) Verb

func (u *DeleteReleaseJobUpdater) Verb() string

type DescUpdater

type DescUpdater struct {
	Description string `json:"description"`
}

func NewDescUpdater

func NewDescUpdater(args *UpdateReleasePlanArgs) (*DescUpdater, error)

func (*DescUpdater) Lint

func (u *DescUpdater) Lint() error

func (*DescUpdater) TargetName

func (u *DescUpdater) TargetName() string

func (*DescUpdater) TargetType

func (u *DescUpdater) TargetType() string

func (*DescUpdater) Update

func (u *DescUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*DescUpdater) Verb

func (u *DescUpdater) Verb() string

type ExecuteReleaseJobArgs

type ExecuteReleaseJobArgs struct {
	ID   string      `json:"id"`
	Name string      `json:"name"`
	Type string      `json:"type"`
	Spec interface{} `json:"spec"`
}

type ExecuteReleaseJobContext

type ExecuteReleaseJobContext struct {
	AuthResources *user.AuthorizedResources
	UserID        string
	Account       string
	UserName      string
}

type ListReleasePlanResp

type ListReleasePlanResp struct {
	List  []*models.ReleasePlan `json:"list"`
	Total int64                 `json:"total"`
}

func ListReleasePlans

func ListReleasePlans(pageNum, pageSize int64) (*ListReleasePlanResp, error)

type ManagerUpdater

type ManagerUpdater struct {
	ManagerID string `json:"manager_id"`
	Manager   string `json:"manager"`
}

func NewManagerUpdater

func NewManagerUpdater(args *UpdateReleasePlanArgs) (*ManagerUpdater, error)

func (*ManagerUpdater) Lint

func (u *ManagerUpdater) Lint() error

func (*ManagerUpdater) TargetName

func (u *ManagerUpdater) TargetName() string

func (*ManagerUpdater) TargetType

func (u *ManagerUpdater) TargetType() string

func (*ManagerUpdater) Update

func (u *ManagerUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*ManagerUpdater) Verb

func (u *ManagerUpdater) Verb() string

type NameUpdater

type NameUpdater struct {
	Name string `json:"name"`
}

func NewNameUpdater

func NewNameUpdater(args *UpdateReleasePlanArgs) (*NameUpdater, error)

func (*NameUpdater) Lint

func (u *NameUpdater) Lint() error

func (*NameUpdater) TargetName

func (u *NameUpdater) TargetName() string

func (*NameUpdater) TargetType

func (u *NameUpdater) TargetType() string

func (*NameUpdater) Update

func (u *NameUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*NameUpdater) Verb

func (u *NameUpdater) Verb() string

type OpenAPICreateReleasePlanArgs

type OpenAPICreateReleasePlanArgs struct {
	Name                string           `bson:"name"       yaml:"name"                   json:"name"`
	Manager             string           `bson:"manager"       yaml:"manager"                   json:"manager"`
	ManagerIdentityType string           `bson:"manager_identity_type"       yaml:"manager_identity_type"                   json:"manager_identity_type"`
	StartTime           int64            `bson:"start_time"       yaml:"start_time"                   json:"start_time"`
	EndTime             int64            `bson:"end_time"       yaml:"end_time"                   json:"end_time"`
	Description         string           `bson:"description"       yaml:"description"                   json:"description"`
	Approval            *models.Approval `bson:"approval"       yaml:"approval"                   json:"approval,omitempty"`
}

type OpenAPIListReleasePlanInfo

type OpenAPIListReleasePlanInfo struct {
	ID          primitive.ObjectID `bson:"_id,omitempty"       yaml:"-"                   json:"id"`
	Index       int64              `bson:"index"       yaml:"index"                   json:"index"`
	Name        string             `bson:"name"       yaml:"name"                   json:"name"`
	Manager     string             `bson:"manager"       yaml:"manager"                   json:"manager"`
	Description string             `bson:"description"       yaml:"description"                   json:"description"`
	CreatedBy   string             `bson:"created_by"       yaml:"created_by"                   json:"created_by"`
	CreateTime  int64              `bson:"create_time"       yaml:"create_time"                   json:"create_time"`
}

type OpenAPIListReleasePlanResp

type OpenAPIListReleasePlanResp struct {
	List  []*OpenAPIListReleasePlanInfo `json:"list"`
	Total int64                         `json:"total"`
}

func OpenAPIListReleasePlans

func OpenAPIListReleasePlans(pageNum, pageSize int64) (*OpenAPIListReleasePlanResp, error)

type PlanUpdater

type PlanUpdater interface {
	// Update returns the old data and the updated data
	Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
	Verb() string
	TargetName() string
	TargetType() string
	Lint() error
}

func NewPlanUpdater

func NewPlanUpdater(args *UpdateReleasePlanArgs) (PlanUpdater, error)

type ReleaseJobExecutor

type ReleaseJobExecutor interface {
	Execute(plan *models.ReleasePlan) error
}

type ReleaseJobSkipper added in v2.3.0

type ReleaseJobSkipper interface {
	Skip(plan *models.ReleasePlan) error
}

func NewReleaseJobSkipper added in v2.3.0

func NewReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)

func NewTextReleaseJobSkipper added in v2.3.0

func NewTextReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)

func NewWorkflowReleaseJobSkipper added in v2.3.0

func NewWorkflowReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)

type SkipReleaseJobArgs added in v2.3.0

type SkipReleaseJobArgs struct {
	ID   string      `json:"id"`
	Name string      `json:"name"`
	Type string      `json:"type"`
	Spec interface{} `json:"spec"`
}

type SkipReleaseJobContext added in v2.3.0

type SkipReleaseJobContext struct {
	AuthResources *user.AuthorizedResources
	UserID        string
	Account       string
	UserName      string
}

type TextReleaseJobExecutor

type TextReleaseJobExecutor struct {
	ID         string
	ExecutedBy string
	Spec       TextReleaseJobSpec
}

func (*TextReleaseJobExecutor) Execute

func (e *TextReleaseJobExecutor) Execute(plan *models.ReleasePlan) error

type TextReleaseJobSkipper added in v2.3.0

type TextReleaseJobSkipper struct {
	ID        string
	SkippedBy string
	Spec      TextReleaseJobSpec
}

func (*TextReleaseJobSkipper) Skip added in v2.3.0

type TextReleaseJobSpec

type TextReleaseJobSpec struct {
	Remark string `json:"remark"`
}

type TimeRangeUpdater

type TimeRangeUpdater struct {
	StartTime int64 `json:"start_time"`
	EndTime   int64 `json:"end_time"`
}

func NewTimeRangeUpdater

func NewTimeRangeUpdater(args *UpdateReleasePlanArgs) (*TimeRangeUpdater, error)

func (*TimeRangeUpdater) Lint

func (u *TimeRangeUpdater) Lint() error

func (*TimeRangeUpdater) TargetName

func (u *TimeRangeUpdater) TargetName() string

func (*TimeRangeUpdater) TargetType

func (u *TimeRangeUpdater) TargetType() string

func (*TimeRangeUpdater) Update

func (u *TimeRangeUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*TimeRangeUpdater) Verb

func (u *TimeRangeUpdater) Verb() string

type UpdateApprovalUpdater

type UpdateApprovalUpdater struct {
	Approval *models.Approval `json:"approval"`
}

func NewUpdateApprovalUpdater

func NewUpdateApprovalUpdater(args *UpdateReleasePlanArgs) (*UpdateApprovalUpdater, error)

func (*UpdateApprovalUpdater) Lint

func (u *UpdateApprovalUpdater) Lint() error

func (*UpdateApprovalUpdater) TargetName

func (u *UpdateApprovalUpdater) TargetName() string

func (*UpdateApprovalUpdater) TargetType

func (u *UpdateApprovalUpdater) TargetType() string

func (*UpdateApprovalUpdater) Update

func (u *UpdateApprovalUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*UpdateApprovalUpdater) Verb

func (u *UpdateApprovalUpdater) Verb() string

type UpdateReleaseJobUpdater

type UpdateReleaseJobUpdater struct {
	ID   string                    `json:"id"`
	Name string                    `json:"name"`
	Type config.ReleasePlanJobType `json:"type"`
	Spec interface{}               `json:"spec"`
}

func NewUpdateReleaseJobUpdater

func NewUpdateReleaseJobUpdater(args *UpdateReleasePlanArgs) (*UpdateReleaseJobUpdater, error)

func (*UpdateReleaseJobUpdater) Lint

func (u *UpdateReleaseJobUpdater) Lint() error

func (*UpdateReleaseJobUpdater) TargetName

func (u *UpdateReleaseJobUpdater) TargetName() string

func (*UpdateReleaseJobUpdater) TargetType

func (u *UpdateReleaseJobUpdater) TargetType() string

func (*UpdateReleaseJobUpdater) Update

func (u *UpdateReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)

func (*UpdateReleaseJobUpdater) Verb

func (u *UpdateReleaseJobUpdater) Verb() string

type UpdateReleasePlanArgs

type UpdateReleasePlanArgs struct {
	Verb string      `json:"verb"`
	Spec interface{} `json:"spec"`
}

type WorkflowReleaseJobExecutor

type WorkflowReleaseJobExecutor struct {
	ID   string
	Ctx  *ExecuteReleaseJobContext
	Spec WorkflowReleaseJobSpec
}

func (*WorkflowReleaseJobExecutor) Execute

type WorkflowReleaseJobSkipper added in v2.3.0

type WorkflowReleaseJobSkipper struct {
	ID   string
	Ctx  *SkipReleaseJobContext
	Spec WorkflowReleaseJobSpec
}

func (*WorkflowReleaseJobSkipper) Skip added in v2.3.0

type WorkflowReleaseJobSpec

type WorkflowReleaseJobSpec struct {
}

Jump to

Keyboard shortcuts

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