• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / workflows / 1354855011

01 Jul 2024 12:34AM UTC coverage: 81.632% (-0.3%) from 81.882%
1354855011

Pull #327

gitlab-ci

web-flow
chore: bump golang in the docker-dependencies group

Bumps the docker-dependencies group with 1 update: golang.


Updates `golang` from 1.22.3-alpine3.19 to 1.22.4-alpine3.19

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: docker-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Pull Request #327: chore: bump golang from 1.22.3-alpine3.19 to 1.22.4-alpine3.19 in the docker-dependencies group

1631 of 1998 relevant lines covered (81.63%)

14.39 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

58.49
/app/processor/job.go
1
// Copyright 2023 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14

15
package processor
16

17
import (
18
        "strings"
19

20
        "go.mongodb.org/mongo-driver/bson"
21
        "go.mongodb.org/mongo-driver/bson/primitive"
22

23
        "github.com/mendersoftware/workflows/model"
24
)
25

26
type JobProcessor struct {
27
        job *model.Job
28
}
29

30
type JsonOptions struct {
31
}
32

33
func NewJobProcessor(job *model.Job) *JobProcessor {
34✔
34
        return &JobProcessor{
34✔
35
                job: job,
34✔
36
        }
34✔
37
}
34✔
38

39
func (j JobProcessor) ProcessJSON(
40
        data interface{},
41
        ps *JobStringProcessor,
42
        options ...*JsonOptions,
43
) interface{} {
88✔
44
        switch value := data.(type) {
88✔
45
        case []interface{}:
4✔
46
                result := make([]interface{}, len(value))
4✔
47
                for i, item := range value {
12✔
48
                        result[i] = j.ProcessJSON(item, ps)
8✔
49
                }
8✔
50
                return result
4✔
51
        case map[string]interface{}:
19✔
52
                result := make(map[string]interface{})
19✔
53
                for key, item := range value {
62✔
54
                        result[key] = j.ProcessJSON(item, ps)
43✔
55
                }
43✔
56
                return result
19✔
57
        case string:
58✔
58
                if len(value) > 3 && value[0:2] == "${" && value[len(value)-1:] == "}" {
82✔
59
                        key := value[2 : len(value)-1]
24✔
60
                        if strings.HasPrefix(key, workflowInputVariable) &&
24✔
61
                                len(key) > len(workflowInputVariable) {
48✔
62
                                key = key[len(workflowInputVariable):]
24✔
63
                                for _, param := range j.job.InputParameters {
100✔
64
                                        if param.Name == key && param.Raw != nil {
100✔
65
                                                return j.ProcessJSON(param.Raw, ps)
24✔
66
                                        }
24✔
67
                                }
68
                                return nil
×
69
                        }
70
                }
71
                return ps.ProcessJobString(value)
34✔
72
        case primitive.D:
×
73
                result := make(map[string]interface{})
×
74
                var mapValue bson.M
×
75
                bsonValue, err := bson.Marshal(value)
×
76
                if err != nil {
×
77
                        return nil
×
78
                }
×
79
                err = bson.Unmarshal(bsonValue, &mapValue)
×
80
                if err != nil {
×
81
                        return nil
×
82
                }
×
83
                for key, item := range mapValue {
×
84
                        result[key] = j.ProcessJSON(item, ps)
×
85
                }
×
86
                return result
×
87
        case []primitive.D:
×
88
                result := make([]interface{}, len(value))
×
89
                for i, item := range value {
×
90
                        result[i] = j.ProcessJSON(item, ps)
×
91
                }
×
92
                return result
×
93
        }
94
        return data
7✔
95
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc