未验证 提交 eb87d004 编写于 作者: M M-Cosmosss 提交者: GitHub

feat: add workflow param creator.id (#2973)

Signed-off-by: NM-Cosmosss <yuzhou@koderover.com>
上级 663a22a8
......@@ -25,6 +25,7 @@ import (
"strings"
"github.com/gin-gonic/gin"
"github.com/koderover/zadig/pkg/types"
commonmodels "github.com/koderover/zadig/pkg/microservice/aslan/core/common/repository/models"
......@@ -94,8 +95,9 @@ func CreateWorkflowTaskV4(c *gin.Context) {
}
ctx.Resp, ctx.Err = workflow.CreateWorkflowTaskV4(&workflow.CreateWorkflowTaskV4Args{
Name: ctx.UserName,
UserID: ctx.UserID,
Name: ctx.UserName,
Account: ctx.Account,
UserID: ctx.UserID,
}, args, ctx.Logger)
}
......
......@@ -442,12 +442,12 @@ func RemoveFixedValueMarks(workflow *commonmodels.WorkflowV4) error {
return json.Unmarshal([]byte(replacedString), &workflow)
}
func RenderGlobalVariables(workflow *commonmodels.WorkflowV4, taskID int64, creator string) error {
func RenderGlobalVariables(workflow *commonmodels.WorkflowV4, taskID int64, creator, account string) error {
b, err := json.Marshal(workflow)
if err != nil {
return fmt.Errorf("marshal workflow error: %v", err)
}
params, err := getWorkflowDefaultParams(workflow, taskID, creator)
params, err := getWorkflowDefaultParams(workflow, taskID, creator, account)
if err != nil {
return fmt.Errorf("get workflow default params error: %v", err)
}
......@@ -483,12 +483,13 @@ func renderMultiLineString(value, template string, inputs []*commonmodels.Param)
return value
}
func getWorkflowDefaultParams(workflow *commonmodels.WorkflowV4, taskID int64, creator string) ([]*commonmodels.Param, error) {
func getWorkflowDefaultParams(workflow *commonmodels.WorkflowV4, taskID int64, creator, account string) ([]*commonmodels.Param, error) {
resp := []*commonmodels.Param{}
resp = append(resp, &commonmodels.Param{Name: "project", Value: workflow.Project, ParamsType: "string", IsCredential: false})
resp = append(resp, &commonmodels.Param{Name: "workflow.name", Value: workflow.Name, ParamsType: "string", IsCredential: false})
resp = append(resp, &commonmodels.Param{Name: "workflow.task.id", Value: fmt.Sprintf("%d", taskID), ParamsType: "string", IsCredential: false})
resp = append(resp, &commonmodels.Param{Name: "workflow.task.creator", Value: creator, ParamsType: "string", IsCredential: false})
resp = append(resp, &commonmodels.Param{Name: "workflow.task.creator.id", Value: account, ParamsType: "string", IsCredential: false})
resp = append(resp, &commonmodels.Param{Name: "workflow.task.timestamp", Value: fmt.Sprintf("%d", time.Now().Unix()), ParamsType: "string", IsCredential: false})
for _, param := range workflow.Params {
paramsKey := strings.Join([]string{"workflow", "params", param.Name}, ".")
......
......@@ -24,13 +24,14 @@ import (
"strings"
"time"
"github.com/koderover/zadig/pkg/shared/client/user"
"github.com/pkg/errors"
"go.uber.org/zap"
"gorm.io/gorm/utils"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
"github.com/koderover/zadig/pkg/shared/client/user"
"github.com/koderover/zadig/pkg/microservice/aslan/config"
commonmodels "github.com/koderover/zadig/pkg/microservice/aslan/core/common/repository/models"
"github.com/koderover/zadig/pkg/microservice/aslan/core/common/repository/mongodb"
......@@ -300,8 +301,9 @@ func CheckWorkflowV4ApprovalInitiator(workflowName, uid string, log *zap.Sugared
}
type CreateWorkflowTaskV4Args struct {
Name string
UserID string
Name string
Account string
UserID string
}
func CreateWorkflowTaskV4ByBuildInTrigger(triggerName string, args *commonmodels.WorkflowV4, log *zap.SugaredLogger) (*CreateTaskV4Resp, error) {
......@@ -332,6 +334,11 @@ func CreateWorkflowTaskV4(args *CreateWorkflowTaskV4Args, workflow *commonmodels
return resp, err
}
// if account is not set, use name as account
if args.Account == "" {
args.Account = args.Name
}
dbWorkflow, err := commonrepo.NewWorkflowV4Coll().Find(workflow.Name)
if err != nil {
log.Errorf("cannot find workflow %s, the error is: %v", workflow.Name, err)
......@@ -378,7 +385,7 @@ func CreateWorkflowTaskV4(args *CreateWorkflowTaskV4Args, workflow *commonmodels
return resp, e.ErrCreateTask.AddDesc(err.Error())
}
if err := jobctl.RenderGlobalVariables(workflow, nextTaskID, args.Name); err != nil {
if err := jobctl.RenderGlobalVariables(workflow, nextTaskID, args.Name, args.Account); err != nil {
log.Errorf("RenderGlobalVariables error: %v", err)
return resp, e.ErrCreateTask.AddDesc(err.Error())
}
......
......@@ -1858,6 +1858,7 @@ func getDefaultVars(workflow *commonmodels.WorkflowV4, currentJobName string) []
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "project"))
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "workflow.name"))
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "workflow.task.creator"))
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "workflow.task.creator.id"))
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "workflow.task.timestamp"))
vars = append(vars, fmt.Sprintf(setting.RenderValueTemplate, "workflow.task.id"))
for _, param := range workflow.Params {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册