Documentation
¶
Index ¶
- Constants
- Variables
- func ApproveReleasePlan(c *handler.Context, planID string, req *ApproveRequest) error
- func CreateReleasePlan(c *handler.Context, args *models.ReleasePlan) error
- func DeleteReleasePlan(c *gin.Context, username, id string) error
- func ExecuteReleaseJob(c *handler.Context, planID string, args *ExecuteReleaseJobArgs) error
- func GetReleasePlan(id string) (*models.ReleasePlan, error)
- func GetReleasePlanLogs(id string) ([]*models.ReleasePlanLog, error)
- func OpenAPICreateReleasePlan(c *handler.Context, rawArgs *OpenAPICreateReleasePlanArgs) error
- func OpenAPIGetReleasePlan(id string) (*models.ReleasePlan, error)
- func SkipReleaseJob(c *handler.Context, planID string, args *SkipReleaseJobArgs) error
- func UpdateReleasePlan(c *handler.Context, planID string, args *UpdateReleasePlanArgs) error
- func UpdateReleasePlanStatus(c *handler.Context, planID, status string) error
- func WatchApproval()
- func WatchExecutingWorkflow()
- type ApproveRequest
- type CreateReleaseJobUpdater
- func (u *CreateReleaseJobUpdater) Lint() error
- func (u *CreateReleaseJobUpdater) TargetName() string
- func (u *CreateReleaseJobUpdater) TargetType() string
- func (u *CreateReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
- func (u *CreateReleaseJobUpdater) Verb() string
- type DeleteApprovalUpdater
- func (u *DeleteApprovalUpdater) Lint() error
- func (u *DeleteApprovalUpdater) TargetName() string
- func (u *DeleteApprovalUpdater) TargetType() string
- func (u *DeleteApprovalUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
- func (u *DeleteApprovalUpdater) Verb() string
- type DeleteReleaseJobUpdater
- func (u *DeleteReleaseJobUpdater) Lint() error
- func (u *DeleteReleaseJobUpdater) TargetName() string
- func (u *DeleteReleaseJobUpdater) TargetType() string
- func (u *DeleteReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
- func (u *DeleteReleaseJobUpdater) Verb() string
- type DescUpdater
- type ExecuteReleaseJobArgs
- type ExecuteReleaseJobContext
- type ListReleasePlanResp
- type ManagerUpdater
- type NameUpdater
- type OpenAPICreateReleasePlanArgs
- type OpenAPIListReleasePlanInfo
- type OpenAPIListReleasePlanResp
- type PlanUpdater
- type ReleaseJobExecutor
- func NewReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, error)
- func NewTextReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, error)
- func NewWorkflowReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, error)
- type ReleaseJobSkipper
- func NewReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)
- func NewTextReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)
- func NewWorkflowReleaseJobSkipper(c *SkipReleaseJobContext, args *SkipReleaseJobArgs) (ReleaseJobSkipper, error)
- type SkipReleaseJobArgs
- type SkipReleaseJobContext
- type TextReleaseJobExecutor
- type TextReleaseJobSkipper
- type TextReleaseJobSpec
- type TimeRangeUpdater
- type UpdateApprovalUpdater
- func (u *UpdateApprovalUpdater) Lint() error
- func (u *UpdateApprovalUpdater) TargetName() string
- func (u *UpdateApprovalUpdater) TargetType() string
- func (u *UpdateApprovalUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
- func (u *UpdateApprovalUpdater) Verb() string
- type UpdateReleaseJobUpdater
- func (u *UpdateReleaseJobUpdater) Lint() error
- func (u *UpdateReleaseJobUpdater) TargetName() string
- func (u *UpdateReleaseJobUpdater) TargetType() string
- func (u *UpdateReleaseJobUpdater) Update(plan *models.ReleasePlan) (before interface{}, after interface{}, err error)
- func (u *UpdateReleaseJobUpdater) Verb() string
- type UpdateReleasePlanArgs
- type WorkflowReleaseJobExecutor
- type WorkflowReleaseJobSkipper
- type WorkflowReleaseJobSpec
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 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 WatchApproval ¶
func WatchApproval()
func WatchExecutingWorkflow ¶
func WatchExecutingWorkflow()
Types ¶
type ApproveRequest ¶
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 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 ¶
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
}
func NewReleaseJobExecutor ¶
func NewReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, error)
func NewTextReleaseJobExecutor ¶
func NewTextReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, error)
func NewWorkflowReleaseJobExecutor ¶
func NewWorkflowReleaseJobExecutor(c *ExecuteReleaseJobContext, args *ExecuteReleaseJobArgs) (ReleaseJobExecutor, 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 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
func (e *TextReleaseJobSkipper) Skip(plan *models.ReleasePlan) error
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 ¶
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 ¶
func (e *WorkflowReleaseJobExecutor) Execute(plan *models.ReleasePlan) error
type WorkflowReleaseJobSkipper ¶ added in v2.3.0
type WorkflowReleaseJobSkipper struct {
ID string
Ctx *SkipReleaseJobContext
Spec WorkflowReleaseJobSpec
}
func (*WorkflowReleaseJobSkipper) Skip ¶ added in v2.3.0
func (e *WorkflowReleaseJobSkipper) Skip(plan *models.ReleasePlan) error
type WorkflowReleaseJobSpec ¶
type WorkflowReleaseJobSpec struct {
}
Click to show internal directories.
Click to hide internal directories.