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

mendersoftware / mender-server / 1961830404

01 Aug 2025 06:29PM UTC coverage: 65.815% (+0.3%) from 65.555%
1961830404

Pull #849

gitlab-ci

web-flow
chore: bump the backend-docker-dependencies group across 10 directories with 2 updates

Bumps the backend-docker-dependencies group with 2 updates in the /backend/services/create-artifact-worker directory: golang and alpine.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/deployments directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/deviceauth directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/deviceconfig directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/deviceconnect directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/inventory directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/iot-manager directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/reporting directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/useradm directory: golang.
Bumps the backend-docker-dependencies group with 1 update in the /backend/services/workflows directory: golang.


Updates `golang` from 1.24.4 to 1.24.5

Updates `alpine` from 3.22.0 to 3.22.1

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

Updates `golang` from 1.24.4 to 1.24.5

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.24.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend-docker-dependencies
- dependency-name: alpine
  dependency-version: 3.22.1
  dependency-type: direct:production... (continued)
Pull Request #849: chore: bump the backend-docker-dependencies group across 10 directories with 2 updates

29335 of 44572 relevant lines covered (65.81%)

1.44 hits per line

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

0.0
/backend/pkg/config/unmarshal.go
1
// Copyright 2025 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 config
16

17
import (
18
        "encoding/json"
19
        "fmt"
20
        "io"
21
        "strings"
22
        "time"
23

24
        "github.com/go-viper/mapstructure/v2"
25
        "github.com/pkg/errors"
26
)
27

28
type Duration time.Duration
29

30
func (duration *Duration) UnmarshalText(b []byte) error {
×
31
        d, err := time.ParseDuration(string(b))
×
32
        if err != nil {
×
33
                return err
×
34
        }
×
35
        *duration = Duration(d)
×
36
        return nil
×
37
}
38

39
// UnmarshalSliceSetting will unmarshal an array of objects into the result T
40
// using either newline separated json objects for strings (from env) or
41
// an array of objects (using json struct tag) for any configuration source
42
// that is able to express a slice of objects.
43
func UnmarshalSliceSetting[T any](c Reader, path string, result *[]T) error {
×
44
        if result == nil {
×
45
                return errors.New("cannot unmarshal setting to nil result")
×
46
        }
×
47
        value := c.Get(path)
×
48
        var err error
×
49
        switch cfg := value.(type) {
×
50
        case string:
×
51
                decoder := json.NewDecoder(strings.NewReader(cfg))
×
52
                for {
×
53
                        var elem T
×
54
                        err = decoder.Decode(&elem)
×
55
                        if err != nil {
×
56
                                break
×
57
                        }
58
                        *result = append(*result, elem)
×
59
                }
60
                if errors.Is(err, io.EOF) {
×
61
                        err = nil
×
62
                }
×
63
        case []any:
×
64
                var decoder *mapstructure.Decoder
×
65
                decoder, err = mapstructure.NewDecoder(
×
66
                        &mapstructure.DecoderConfig{
×
67
                                TagName: "json",
×
68
                                Result:  &result,
×
69
                                Squash:  true,
×
70
                                DecodeHook: mapstructure.ComposeDecodeHookFunc(
×
71
                                        mapstructure.TextUnmarshallerHookFunc(),
×
72
                                        mapstructure.StringToTimeDurationHookFunc(),
×
73
                                ),
×
74
                        },
×
75
                )
×
76
                if err != nil {
×
77
                        return err
×
78
                }
×
79
                err = decoder.Decode(value)
×
80
        case nil:
×
81
                // pass (empty config)
82
        default:
×
83
                err = fmt.Errorf("invalid config type %T", cfg)
×
84
        }
85
        return err
×
86
}
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