Skip to content

Commit 74fae2a

Browse files
Vishal TakGitLab
authored andcommitted
Merge branch 'vtak/update_json_library' into 'main'
Update github.com/santhosh-tekuri/jsonschema to v6 See merge request https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/6499 Merged-by: Vishal Tak <[email protected]> Approved-by: Mikhail Mazurskiy <[email protected]>
2 parents 7011571 + 0313826 commit 74fae2a

3 files changed

Lines changed: 42 additions & 32 deletions

File tree

commands/internal/configfile/validation.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package configfile
22

33
import (
4+
"bytes"
45
"encoding/json"
56

67
jsonschema_generator "github.com/invopop/jsonschema"
7-
jsonschema_validator "github.com/santhosh-tekuri/jsonschema/v5"
8+
jsonschema_validator "github.com/santhosh-tekuri/jsonschema/v6"
89
"github.com/sirupsen/logrus"
910
"gitlab.com/gitlab-org/gitlab-runner/common"
1011
)
@@ -27,7 +28,15 @@ func init() {
2728
if err != nil {
2829
panic(err)
2930
}
30-
configSchema = jsonschema_validator.MustCompileString("config_schema.json", string(schema))
31+
doc, err := jsonschema_validator.UnmarshalJSON(bytes.NewReader(schema))
32+
if err != nil {
33+
panic(err)
34+
}
35+
c := jsonschema_validator.NewCompiler()
36+
if err := c.AddResource("config_schema.json", doc); err != nil {
37+
panic(err)
38+
}
39+
configSchema = c.MustCompile("config_schema.json")
3140
}
3241

3342
func validate(config *common.Config) error {
@@ -38,13 +47,12 @@ func validate(config *common.Config) error {
3847
}
3948
}()
4049

41-
// Validation must be done on generic types so we re-unmarshal the config into an interface{}
50+
// Validation must be done on generic types so we re-unmarshal the config into a JSON value
4251
configString, err := json.Marshal(config)
4352
if err != nil {
4453
panic(err)
4554
}
46-
var jsonValue interface{}
47-
err = json.Unmarshal(configString, &jsonValue)
55+
jsonValue, err := jsonschema_validator.UnmarshalJSON(bytes.NewReader(configString))
4856
if err != nil {
4957
panic(err)
5058
}

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ require (
6363
github.com/prometheus/common v0.67.5
6464
github.com/prometheus/procfs v0.19.2
6565
github.com/samber/lo v1.52.0
66-
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
66+
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2
6767
github.com/saracen/fastzip v0.2.0
6868
github.com/sirupsen/logrus v1.9.4
6969
github.com/sourcegraph/conc v0.3.0
@@ -81,7 +81,7 @@ require (
8181
gitlab.com/gitlab-org/golang-cli-helpers v0.0.0-20220124161940-198f30295e7e
8282
gitlab.com/gitlab-org/labkit v1.43.0
8383
gitlab.com/gitlab-org/moa v0.0.0-20251209091627-66342f721c88
84-
gitlab.com/gitlab-org/step-runner v0.30.0
84+
gitlab.com/gitlab-org/step-runner v0.31.0
8585
go.mozilla.org/pkcs7 v0.9.0
8686
go.yaml.in/yaml/v3 v3.0.4
8787
gocloud.dev v0.44.0
@@ -160,8 +160,8 @@ require (
160160
github.com/felixge/httpsnoop v1.0.4 // indirect
161161
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
162162
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
163-
github.com/go-git/go-billy/v5 v5.7.0 // indirect
164-
github.com/go-git/go-git/v5 v5.16.5 // indirect
163+
github.com/go-git/go-billy/v5 v5.8.0 // indirect
164+
github.com/go-git/go-git/v5 v5.17.0 // indirect
165165
github.com/go-ini/ini v1.67.0 // indirect
166166
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
167167
github.com/go-logr/logr v1.4.3 // indirect
@@ -269,12 +269,12 @@ require (
269269
go.opentelemetry.io/contrib/detectors/gcp v1.39.0 // indirect
270270
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.64.0 // indirect
271271
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0 // indirect
272-
go.opentelemetry.io/otel v1.40.0 // indirect
272+
go.opentelemetry.io/otel v1.41.0 // indirect
273273
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
274-
go.opentelemetry.io/otel/metric v1.40.0 // indirect
275-
go.opentelemetry.io/otel/sdk v1.40.0 // indirect
276-
go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect
277-
go.opentelemetry.io/otel/trace v1.40.0 // indirect
274+
go.opentelemetry.io/otel/metric v1.41.0 // indirect
275+
go.opentelemetry.io/otel/sdk v1.41.0 // indirect
276+
go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect
277+
go.opentelemetry.io/otel/trace v1.41.0 // indirect
278278
go.opentelemetry.io/proto/otlp v1.8.0 // indirect
279279
go.shabbyrobe.org/gocovmerge v0.0.0-20230507111327-fa4f82cfbf4d // indirect
280280
go.uber.org/multierr v1.11.0 // indirect

go.sum

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMS
170170
github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI=
171171
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
172172
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
173+
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
174+
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
173175
github.com/docker/cli v28.5.2+incompatible h1:XmG99IHcBmIAoC1PPg9eLBZPlTrNUAijsHLm8PjhBlg=
174176
github.com/docker/cli v28.5.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
175177
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
@@ -215,12 +217,12 @@ github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxI
215217
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
216218
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
217219
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
218-
github.com/go-git/go-billy/v5 v5.7.0 h1:83lBUJhGWhYp0ngzCMSgllhUSuoHP1iEWYjsPl9nwqM=
219-
github.com/go-git/go-billy/v5 v5.7.0/go.mod h1:/1IUejTKH8xipsAcdfcSAlUlo2J7lkYV8GTKxAT/L3E=
220+
github.com/go-git/go-billy/v5 v5.8.0 h1:I8hjc3LbBlXTtVuFNJuwYuMiHvQJDq1AT6u4DwDzZG0=
221+
github.com/go-git/go-billy/v5 v5.8.0/go.mod h1:RpvI/rw4Vr5QA+Z60c6d6LXH0rYJo0uD5SqfmrrheCY=
220222
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
221223
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
222-
github.com/go-git/go-git/v5 v5.16.5 h1:mdkuqblwr57kVfXri5TTH+nMFLNUxIj9Z7F5ykFbw5s=
223-
github.com/go-git/go-git/v5 v5.16.5/go.mod h1:QOMLpNf1qxuSY4StA/ArOdfFR2TrKEjJiye2kel2m+M=
224+
github.com/go-git/go-git/v5 v5.17.0 h1:AbyI4xf+7DsjINHMu35quAh4wJygKBKBuXVjV/pxesM=
225+
github.com/go-git/go-git/v5 v5.17.0/go.mod h1:f82C4YiLx+Lhi8eHxltLeGC5uBTXSFa6PC5WW9o4SjI=
224226
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno=
225227
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw=
226228
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
@@ -518,8 +520,8 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a
518520
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
519521
github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw=
520522
github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0=
521-
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
522-
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
523+
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
524+
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
523525
github.com/saracen/fastzip v0.2.0 h1:896eirt4TCjUQj/mMKIvh/HoJkUXDRljMmv1SYeuUNE=
524526
github.com/saracen/fastzip v0.2.0/go.mod h1:s0X80kMEaqaZsYrsT4aUz7fTHBTVyS9lU8AzLJ/yC3U=
525527
github.com/saracen/zipextra v0.0.0-20250129175152-f1aa42d25216 h1:8zyjtFyKi5NJySVOJRiHmSN1vl6qugQ5n9C4X7WyY3U=
@@ -602,8 +604,8 @@ gitlab.com/gitlab-org/labkit v1.43.0 h1:h3A+e566y2GSCBFmwYXVjeP2n4tEtvClpykfL/e1
602604
gitlab.com/gitlab-org/labkit v1.43.0/go.mod h1:k5GgyA8G63z65Yc52rb3ArOHUdHfdaYAWbt+H4pyJAY=
603605
gitlab.com/gitlab-org/moa v0.0.0-20251209091627-66342f721c88 h1:GVlo8Pr4wfXI/6UF+Rmi0Yv2l7lwVgFiNBeImgWVeko=
604606
gitlab.com/gitlab-org/moa v0.0.0-20251209091627-66342f721c88/go.mod h1:024490ksS75/Bi9UoJTu59qY44JuFBAfi5bzGsLIhtY=
605-
gitlab.com/gitlab-org/step-runner v0.30.0 h1:fEUw/Q8+oz5jj/eni/FLIJgSSQM+toD17y4yYOUAl60=
606-
gitlab.com/gitlab-org/step-runner v0.30.0/go.mod h1:zv9HKJaKDYUfS8CGEgI9oKXofCg22YvWBJRtteapzSk=
607+
gitlab.com/gitlab-org/step-runner v0.31.0 h1:c+nP58486UNX56I2GCVAVXJuPvFhHwJkB6/ahU81crs=
608+
gitlab.com/gitlab-org/step-runner v0.31.0/go.mod h1:05jTcUPyouT+qDUUa742sJl6E3A6ZOMxmyzYpS7xzH4=
607609
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
608610
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
609611
go.mozilla.org/pkcs7 v0.9.0 h1:yM4/HS9dYv7ri2biPtxt8ikvB37a980dg69/pKmS+eI=
@@ -616,22 +618,22 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6
616618
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.64.0/go.mod h1:habDz3tEWiFANTo6oUE99EmaFUrCNYAAg3wiVmusm70=
617619
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0 h1:ssfIgGNANqpVFCndZvcuyKbl0g+UAVcbBcqGkG28H0Y=
618620
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.64.0/go.mod h1:GQ/474YrbE4Jx8gZ4q5I4hrhUzM6UPzyrqJYV2AqPoQ=
619-
go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
620-
go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g=
621+
go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c=
622+
go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE=
621623
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
622624
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
623625
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 h1:wpMfgF8E1rkrT1Z6meFh1NDtownE9Ii3n3X2GJYjsaU=
624626
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0/go.mod h1:wAy0T/dUbs468uOlkT31xjvqQgEVXv58BRFWEgn5v/0=
625627
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0 h1:5gn2urDL/FBnK8OkCfD1j3/ER79rUuTYmCvlXBKeYL8=
626628
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0/go.mod h1:0fBG6ZJxhqByfFZDwSwpZGzJU671HkwpWaNe2t4VUPI=
627-
go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g=
628-
go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc=
629-
go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
630-
go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
631-
go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw=
632-
go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg=
633-
go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw=
634-
go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
629+
go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ=
630+
go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps=
631+
go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8=
632+
go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90=
633+
go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8=
634+
go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y=
635+
go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0=
636+
go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis=
635637
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
636638
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
637639
go.shabbyrobe.org/gocovmerge v0.0.0-20230507111327-fa4f82cfbf4d h1:Ns9kd1Rwzw7t0BR8XMphenji4SmIoNZPn8zhYmaVKP8=

0 commit comments

Comments
 (0)