Skip to content

Commit 00fd2e7

Browse files
authored
Merge pull request #5 from mach-composer/RD-167-Update-Sentry-provider-to-use-v2
Rd 167 update sentry provider to use v2
2 parents 07fb37e + ef0756b commit 00fd2e7

21 files changed

+629
-264
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kind: Added
2+
body: Updated to v2 version of sdk
3+
time: 2024-01-02T13:44:40.362133119+01:00
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kind: Added
2+
body: Added support for sentry_release_deployment
3+
time: 2024-01-02T13:44:59.530753237+01:00

.github/workflows/pull-request.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737

3838
- name: Run tests
3939
run: |
40-
task cover
40+
go test -race -coverprofile=coverage.out -covermode=atomic ./...
4141
mkdir -p output
4242
cp coverage.out output/coverage.out
4343

.github/workflows/release.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
uses: actions/checkout@v3
1212

1313
- name: Set up Go
14-
uses: actions/setup-go@v3
14+
uses: actions/setup-go@v4
1515
with:
1616
go-version-file: go.mod
1717

Taskfile.yaml

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ tasks:
55
cmd: golangci-lint run
66

77
build:
8-
cmd: goreleaser build --snapshot --single-target --rm-dist --clean
8+
env:
9+
GORELEASER_CURRENT_TAG: v0.0.0
10+
cmd: goreleaser build --snapshot --single-target --clean
911

1012
test:
1113
cmd: go test -race ./...
12-
13-
cover:
14-
cmd: go test -race -coverprofile=coverage.out -covermode=atomic ./...

go.mod

+16-10
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,46 @@ module github.com/mach-composer/mach-composer-plugin-sentry
33
go 1.21
44

55
require (
6+
dario.cat/mergo v1.0.0
7+
github.com/hashicorp/go-hclog v1.6.3
68
github.com/mach-composer/mach-composer-plugin-helpers v0.0.4
7-
github.com/mach-composer/mach-composer-plugin-sdk v1.0.0
9+
github.com/mach-composer/mach-composer-plugin-sdk/v2 v2.0.0
810
github.com/mitchellh/mapstructure v1.5.0
11+
github.com/stretchr/testify v1.9.0
12+
github.com/xeipuuv/gojsonschema v1.2.0
913
)
1014

1115
require (
1216
github.com/agext/levenshtein v1.2.3 // indirect
1317
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
18+
github.com/davecgh/go-spew v1.1.1 // indirect
1419
github.com/fatih/color v1.16.0 // indirect
1520
github.com/flosch/pongo2/v5 v5.0.0 // indirect
1621
github.com/golang/protobuf v1.5.4 // indirect
1722
github.com/google/go-cmp v0.6.0 // indirect
1823
github.com/gosimple/unidecode v1.0.1 // indirect
19-
github.com/hashicorp/go-hclog v1.6.2 // indirect
2024
github.com/hashicorp/go-plugin v1.6.0 // indirect
21-
github.com/hashicorp/hcl/v2 v2.20.0 // indirect
25+
github.com/hashicorp/hcl/v2 v2.20.1 // indirect
2226
github.com/hashicorp/yamux v0.1.1 // indirect
2327
github.com/kr/text v0.2.0 // indirect
2428
github.com/mattn/go-colorable v0.1.13 // indirect
2529
github.com/mattn/go-isatty v0.0.20 // indirect
2630
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
2731
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
2832
github.com/oklog/run v1.1.0 // indirect
33+
github.com/pmezard/go-difflib v1.0.0 // indirect
2934
github.com/rogpeppe/go-internal v1.12.0 // indirect
3035
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
3136
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
32-
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
33-
github.com/zclconf/go-cty v1.14.3 // indirect
34-
golang.org/x/mod v0.16.0 // indirect
35-
golang.org/x/net v0.22.0 // indirect
36-
golang.org/x/sys v0.18.0 // indirect
37+
github.com/zclconf/go-cty v1.14.4 // indirect
38+
golang.org/x/mod v0.17.0 // indirect
39+
golang.org/x/net v0.24.0 // indirect
40+
golang.org/x/sync v0.7.0 // indirect
41+
golang.org/x/sys v0.19.0 // indirect
3742
golang.org/x/text v0.14.0 // indirect
38-
golang.org/x/tools v0.19.0 // indirect
39-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
43+
golang.org/x/tools v0.20.0 // indirect
44+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect
4045
google.golang.org/grpc v1.62.1 // indirect
4146
google.golang.org/protobuf v1.33.0 // indirect
47+
gopkg.in/yaml.v3 v3.0.1 // indirect
4248
)

go.sum

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
2+
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
13
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
24
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
35
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
@@ -21,29 +23,27 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
2123
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
2224
github.com/gosimple/unidecode v1.0.1 h1:hZzFTMMqSswvf0LBJZCZgThIZrpDHFXux9KeGmn6T/o=
2325
github.com/gosimple/unidecode v1.0.1/go.mod h1:CP0Cr1Y1kogOtx0bJblKzsVWrqYaqfNOnHzpgWw4Awc=
24-
github.com/hashicorp/go-hclog v1.6.2 h1:NOtoftovWkDheyUM/8JW3QMiXyxJK3uHRK7wV04nD2I=
25-
github.com/hashicorp/go-hclog v1.6.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
26+
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
27+
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
2628
github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A=
2729
github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI=
28-
github.com/hashicorp/hcl/v2 v2.20.0 h1:l++cRs/5jQOiKVvqXZm/P1ZEfVXJmvLS9WSVxkaeTb4=
29-
github.com/hashicorp/hcl/v2 v2.20.0/go.mod h1:WmcD/Ym72MDOOx5F62Ly+leloeu6H7m0pG7VBiU6pQk=
30+
github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc=
31+
github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4=
3032
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
3133
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
3234
github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
3335
github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
3436
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
35-
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
36-
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
37+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
38+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
3739
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
3840
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
3941
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
4042
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
41-
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
42-
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
4343
github.com/mach-composer/mach-composer-plugin-helpers v0.0.4 h1:n5jVGw4hE6ydXsfAZp0Cvi6qKK5CcASvtOn8mb3VEM8=
4444
github.com/mach-composer/mach-composer-plugin-helpers v0.0.4/go.mod h1:Ir2OV7RNUZgss0iVPPH0P4j7t2NaNzjtvFOd4bhKvLI=
45-
github.com/mach-composer/mach-composer-plugin-sdk v1.0.0 h1:JC2CexXB03VxxyfNUdlBPdT5zEnB6o0hnR7Q69wOYPA=
46-
github.com/mach-composer/mach-composer-plugin-sdk v1.0.0/go.mod h1:qfmnfIOp8k4RYlOEbV0UVOQZ8g3mJPKsUopZCOW2qDU=
45+
github.com/mach-composer/mach-composer-plugin-sdk/v2 v2.0.0 h1:rz5PgtCAEtbCIiiQF9VbsggSvjXvmz2orKvgpWtcIuc=
46+
github.com/mach-composer/mach-composer-plugin-sdk/v2 v2.0.0/go.mod h1:xzxcSqyvZpOa3j5MbSOQFfeBt5Anv9zsXI/pHcfSQx0=
4747
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
4848
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
4949
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
@@ -65,43 +65,43 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
6565
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
6666
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
6767
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
68-
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
69-
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
7068
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
7169
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
7270
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
73-
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
74-
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
71+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
72+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
7573
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
7674
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
7775
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
7876
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
7977
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
8078
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
8179
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
82-
github.com/zclconf/go-cty v1.14.3 h1:1JXy1XroaGrzZuG6X9dt7HL6s9AwbY+l4UNL8o5B6ho=
83-
github.com/zclconf/go-cty v1.14.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
84-
golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
85-
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
86-
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
87-
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
88-
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
89-
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
80+
github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8=
81+
github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
82+
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI=
83+
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
84+
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
85+
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
86+
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
87+
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
88+
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
89+
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
9090
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9191
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9292
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9393
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9494
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9595
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9696
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
97-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
98-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
97+
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
98+
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
9999
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
100100
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
101-
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
102-
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
103-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s=
104-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
101+
golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
102+
golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
103+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4=
104+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
105105
google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
106106
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
107107
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=

internal/config.go

+40-21
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,53 @@
11
package internal
22

3-
// SentryConfigBase is the base sentry config.
3+
// BaseConfig is the base sentry config.
44
type BaseConfig struct {
5-
DSN string `mapstructure:"dsn"`
6-
RateLimitWindow *int `mapstructure:"rate_limit_window"`
7-
RateLimitCount *int `mapstructure:"rate_limit_count"`
5+
DSN string `mapstructure:"dsn"`
6+
RateLimitWindow *int `mapstructure:"rate_limit_window"`
7+
RateLimitCount *int `mapstructure:"rate_limit_count"`
8+
Project string `mapstructure:"project"`
9+
TrackDeployments *bool `mapstructure:"track_deployments"`
810
}
911

1012
// GlobalConfig global Sentry configuration.
1113
type GlobalConfig struct {
1214
BaseConfig `mapstructure:",squash"`
1315
AuthToken string `mapstructure:"auth_token"`
1416
BaseURL string `mapstructure:"base_url"`
15-
Project string `mapstructure:"project"`
1617
Organization string `mapstructure:"organization"`
1718
}
1819

19-
// SentryConfig is for site specific sentry DSN settings
20+
var defaultGlobalConfig = GlobalConfig{
21+
BaseConfig: BaseConfig{
22+
TrackDeployments: boolPtr(true),
23+
},
24+
}
25+
26+
// SiteConfig is for site specific sentry DSN settings
2027
type SiteConfig struct {
2128
BaseConfig `mapstructure:",squash"`
22-
Project string `mapstructure:"project"`
23-
Components map[string]ComponentConfig `mapstructure:"-"`
29+
Components map[string]SiteComponentConfig `mapstructure:"-"`
30+
}
31+
32+
var defaultSiteConfig = SiteConfig{
33+
Components: map[string]SiteComponentConfig{},
34+
}
35+
36+
// SiteComponentConfig is for component specific sentry DSN settings
37+
type SiteComponentConfig struct {
38+
BaseConfig `mapstructure:",squash"`
2439
}
2540

26-
// SentryConfig is for site specific sentry DSN settings
41+
var defaultSiteComponentConfig = SiteComponentConfig{}
42+
43+
// ComponentConfig is for general component information
2744
type ComponentConfig struct {
28-
BaseConfig `mapstructure:",squash"`
29-
Environment string `mapstructure:"-"`
30-
Project string `mapstructure:"project"`
45+
Version string `mapstructure:"-"`
3146
}
3247

33-
func (c *SiteConfig) extendGlobalConfig(g *GlobalConfig) *SiteConfig {
34-
cfg := &SiteConfig{
48+
func (c *SiteConfig) extendGlobalConfig(g GlobalConfig) SiteConfig {
49+
cfg := SiteConfig{
3550
BaseConfig: g.BaseConfig,
36-
Project: g.Project,
3751
Components: c.Components,
3852
}
3953
if c.DSN != "" {
@@ -48,13 +62,15 @@ func (c *SiteConfig) extendGlobalConfig(g *GlobalConfig) *SiteConfig {
4862
if c.Project != "" {
4963
cfg.Project = c.Project
5064
}
65+
if c.TrackDeployments != nil {
66+
cfg.TrackDeployments = c.TrackDeployments
67+
}
5168
return cfg
5269
}
5370

54-
func (c *ComponentConfig) extendSiteConfig(s *SiteConfig) *ComponentConfig {
55-
cfg := &ComponentConfig{
71+
func (c *SiteComponentConfig) extendSiteConfig(s SiteConfig) SiteComponentConfig {
72+
cfg := SiteComponentConfig{
5673
BaseConfig: s.BaseConfig,
57-
Project: s.Project,
5874
}
5975

6076
if c.DSN != "" {
@@ -69,13 +85,16 @@ func (c *ComponentConfig) extendSiteConfig(s *SiteConfig) *ComponentConfig {
6985
if c.Project != "" {
7086
cfg.Project = c.Project
7187
}
88+
if c.TrackDeployments != nil {
89+
cfg.TrackDeployments = c.TrackDeployments
90+
}
7291
return cfg
7392
}
7493

75-
func (c *SiteConfig) getComponentSiteConfig(name string) *ComponentConfig {
94+
func (c *SiteConfig) getSiteComponentConfig(name string) SiteComponentConfig {
7695
compConfig, ok := c.Components[name]
7796
if !ok {
78-
compConfig = ComponentConfig{}
97+
compConfig = defaultSiteComponentConfig
7998
}
80-
return compConfig.extendSiteConfig(c)
99+
return compConfig.extendSiteConfig(*c)
81100
}

internal/config_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package internal
2+
3+
import (
4+
"github.com/stretchr/testify/assert"
5+
"testing"
6+
)
7+
8+
func TestExtendGlobalConfig(t *testing.T) {
9+
globalConfig := GlobalConfig{
10+
BaseConfig: BaseConfig{
11+
TrackDeployments: boolPtr(true),
12+
},
13+
}
14+
15+
siteConfig := SiteConfig{
16+
BaseConfig: BaseConfig{
17+
TrackDeployments: boolPtr(false),
18+
},
19+
}
20+
21+
extendedCfg := siteConfig.extendGlobalConfig(globalConfig)
22+
assert.Equal(t, false, *extendedCfg.TrackDeployments)
23+
}
24+
25+
func TestExtendSiteConfig(t *testing.T) {
26+
siteCfg := SiteConfig{
27+
BaseConfig: BaseConfig{
28+
TrackDeployments: boolPtr(true),
29+
},
30+
}
31+
32+
siteComponentConfig := SiteComponentConfig{
33+
BaseConfig: BaseConfig{
34+
TrackDeployments: boolPtr(false),
35+
},
36+
}
37+
38+
extendedCfg := siteComponentConfig.extendSiteConfig(siteCfg)
39+
assert.Equal(t, false, *extendedCfg.TrackDeployments)
40+
}

internal/main.go

-10
This file was deleted.

0 commit comments

Comments
 (0)