From 462c6f238fef0919655514ee5dcb0a6cf2ea123e Mon Sep 17 00:00:00 2001 From: Coenen Benjamin Date: Tue, 4 Sep 2018 09:38:32 +0200 Subject: [PATCH] fix(api): in ascode with workflow importe default_tags are correctly imported (#3283) close #3189 Signed-off-by: Benjamin Coenen --- engine/api/workflow/dao.go | 11 ++++++++++- engine/api/workflow_import_test.go | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/engine/api/workflow/dao.go b/engine/api/workflow/dao.go index 7910d0ef7b..ee61652c9c 100644 --- a/engine/api/workflow/dao.go +++ b/engine/api/workflow/dao.go @@ -527,7 +527,16 @@ func Insert(db gorp.SqlExecutor, store cache.Store, w *sdk.Workflow, p *sdk.Proj if w.Metadata == nil { w.Metadata = sdk.Metadata{} } - w.Metadata["default_tags"] = "git.branch,git.author" + if w.Metadata["default_tags"] == "" { + w.Metadata["default_tags"] = "git.branch,git.author" + } else { + if !strings.Contains(w.Metadata["default_tags"], "git.branch") { + w.Metadata["default_tags"] = "git.branch," + w.Metadata["default_tags"] + } + if !strings.Contains(w.Metadata["default_tags"], "git.author") { + w.Metadata["default_tags"] = "git.author," + w.Metadata["default_tags"] + } + } if err := UpdateMetadata(db, w.ID, w.Metadata); err != nil { return sdk.WrapError(err, "Insert> Unable to insert workflow metadata (%#v, %d)", w.Root, w.ID) diff --git a/engine/api/workflow_import_test.go b/engine/api/workflow_import_test.go index 931f7b9a62..784cc27dc3 100644 --- a/engine/api/workflow_import_test.go +++ b/engine/api/workflow_import_test.go @@ -54,7 +54,9 @@ workflow: pip1_2: depends_on: - pip1 - pipeline: pip1` + pipeline: pip1 +metadata: + default_tags: git.branch,git.author,git.hash` req.Body = ioutil.NopCloser(strings.NewReader(body)) req.Header.Set("Content-Type", "application/x-yaml") @@ -79,6 +81,7 @@ workflow: assert.Equal(t, "value", m["Workflow.Root.Context.DefaultPipelineParameters.DefaultPipelineParameters0.Value"]) assert.Equal(t, "pip1_2", m["Workflow.Root.Triggers.Triggers0.WorkflowDestNode.Name"]) assert.Equal(t, "pip1", m["Workflow.Root.Triggers.Triggers0.WorkflowDestNode.PipelineName"]) + assert.Equal(t, "git.branch,git.author,git.hash", m["Workflow.Metadata.default_tags"]) }