Vendor Update (#14496)
* update code.gitea.io/sdk/gitea v0.13.1 -> v0.13.2 * update github.com/go-swagger/go-swagger v0.25.0 -> v0.26.0 * update github.com/google/uuid v1.1.2 -> v1.2.0 * update github.com/klauspost/compress v1.11.3 -> v1.11.7 * update github.com/lib/pq 083382b7e6fc -> v1.9.0 * update github.com/markbates/goth v1.65.0 -> v1.66.1 * update github.com/mattn/go-sqlite3 v1.14.4 -> v1.14.6 * update github.com/mgechev/revive 246eac737dc7 -> v1.0.3 * update github.com/minio/minio-go/v7 v7.0.6 -> v7.0.7 * update github.com/niklasfasching/go-org v1.3.2 -> v1.4.0 * update github.com/olivere/elastic/v7 v7.0.21 -> v7.0.22 * update github.com/pquerna/otp v1.2.0 -> v1.3.0 * update github.com/xanzy/go-gitlab v0.39.0 -> v0.42.0 * update github.com/yuin/goldmark v1.2.1 -> v1.3.1
This commit is contained in:
		
					parent
					
						
							
								e45bf12a34
							
						
					
				
			
			
				commit
				
					
						d1353e1f7c
					
				
			
		
					 403 changed files with 29737 additions and 14357 deletions
				
			
		
							
								
								
									
										51
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										51
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -4,7 +4,7 @@ go 1.14 | |||
| 
 | ||||
| require ( | ||||
| 	code.gitea.io/gitea-vet v0.2.1 | ||||
| 	code.gitea.io/sdk/gitea v0.13.1 | ||||
| 	code.gitea.io/sdk/gitea v0.13.2 | ||||
| 	gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c | ||||
| 	gitea.com/go-chi/cache v0.0.0-20210110083709-82c4c9ce2d5e | ||||
| 	gitea.com/go-chi/captcha v0.0.0-20210110083842-e7696c336a1e | ||||
|  | @ -17,6 +17,7 @@ require ( | |||
| 	github.com/andybalholm/brotli v1.0.1 // indirect | ||||
| 	github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect | ||||
| 	github.com/blevesearch/bleve/v2 v2.0.1 | ||||
| 	github.com/boombuler/barcode v1.0.1 // indirect | ||||
| 	github.com/caddyserver/certmagic v0.12.0 | ||||
| 	github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect | ||||
| 	github.com/denisenkom/go-mssqldb v0.9.0 | ||||
|  | @ -36,14 +37,14 @@ require ( | |||
| 	github.com/go-ldap/ldap/v3 v3.2.4 | ||||
| 	github.com/go-redis/redis/v7 v7.4.0 | ||||
| 	github.com/go-sql-driver/mysql v1.5.0 | ||||
| 	github.com/go-swagger/go-swagger v0.25.0 | ||||
| 	github.com/go-swagger/go-swagger v0.26.0 | ||||
| 	github.com/go-testfixtures/testfixtures/v3 v3.4.1 | ||||
| 	github.com/gobwas/glob v0.2.3 | ||||
| 	github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28 | ||||
| 	github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 | ||||
| 	github.com/gogs/go-gogs-client v0.0.0-20200905025246-8bb8a50cb355 | ||||
| 	github.com/google/go-github/v32 v32.1.0 | ||||
| 	github.com/google/uuid v1.1.2 | ||||
| 	github.com/google/uuid v1.2.0 | ||||
| 	github.com/gorilla/context v1.1.1 | ||||
| 	github.com/hashicorp/go-retryablehttp v0.6.8 // indirect | ||||
| 	github.com/hashicorp/go-version v1.2.1 | ||||
|  | @ -54,37 +55,37 @@ require ( | |||
| 	github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7 | ||||
| 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 | ||||
| 	github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 | ||||
| 	github.com/klauspost/compress v1.11.3 | ||||
| 	github.com/klauspost/compress v1.11.7 | ||||
| 	github.com/klauspost/pgzip v1.2.5 // indirect | ||||
| 	github.com/lafriks/xormstore v1.3.2 | ||||
| 	github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc | ||||
| 	github.com/lib/pq v1.9.0 | ||||
| 	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 | ||||
| 	github.com/markbates/goth v1.65.0 | ||||
| 	github.com/mattn/go-colorable v0.1.7 // indirect | ||||
| 	github.com/markbates/goth v1.66.1 | ||||
| 	github.com/mattn/go-isatty v0.0.12 | ||||
| 	github.com/mattn/go-runewidth v0.0.9 // indirect | ||||
| 	github.com/mattn/go-sqlite3 v1.14.4 | ||||
| 	github.com/mattn/go-runewidth v0.0.10 // indirect | ||||
| 	github.com/mattn/go-sqlite3 v1.14.6 | ||||
| 	github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 | ||||
| 	github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7 | ||||
| 	github.com/mgechev/revive v1.0.3 | ||||
| 	github.com/mholt/archiver/v3 v3.5.0 | ||||
| 	github.com/microcosm-cc/bluemonday v1.0.4 | ||||
| 	github.com/minio/minio-go/v7 v7.0.6 | ||||
| 	github.com/minio/md5-simd v1.1.1 // indirect | ||||
| 	github.com/minio/minio-go/v7 v7.0.7 | ||||
| 	github.com/mitchellh/go-homedir v1.1.0 | ||||
| 	github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b | ||||
| 	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 | ||||
| 	github.com/niklasfasching/go-org v1.3.2 | ||||
| 	github.com/niklasfasching/go-org v1.4.0 | ||||
| 	github.com/oliamb/cutter v0.2.2 | ||||
| 	github.com/olivere/elastic/v7 v7.0.21 | ||||
| 	github.com/olivere/elastic/v7 v7.0.22 | ||||
| 	github.com/pelletier/go-toml v1.8.1 | ||||
| 	github.com/pierrec/lz4/v4 v4.1.1 // indirect | ||||
| 	github.com/pkg/errors v0.9.1 | ||||
| 	github.com/pquerna/otp v1.2.0 | ||||
| 	github.com/pquerna/otp v1.3.0 | ||||
| 	github.com/prometheus/client_golang v1.8.0 | ||||
| 	github.com/quasoft/websspi v1.0.0 | ||||
| 	github.com/rivo/uniseg v0.2.0 // indirect | ||||
| 	github.com/sergi/go-diff v1.1.0 | ||||
| 	github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect | ||||
| 	github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 | ||||
| 	github.com/spf13/viper v1.7.1 // indirect | ||||
| 	github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect | ||||
| 	github.com/stretchr/testify v1.7.0 | ||||
| 	github.com/syndtr/goleveldb v1.0.0 | ||||
|  | @ -97,24 +98,24 @@ require ( | |||
| 	github.com/unrolled/render v1.0.3 | ||||
| 	github.com/urfave/cli v1.22.5 | ||||
| 	github.com/willf/bitset v1.1.11 // indirect | ||||
| 	github.com/xanzy/go-gitlab v0.39.0 | ||||
| 	github.com/xanzy/go-gitlab v0.42.0 | ||||
| 	github.com/yohcop/openid-go v1.0.0 | ||||
| 	github.com/yuin/goldmark v1.2.1 | ||||
| 	github.com/yuin/goldmark v1.3.1 | ||||
| 	github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 | ||||
| 	github.com/yuin/goldmark-meta v1.0.0 | ||||
| 	go.jolheiser.com/hcaptcha v0.0.4 | ||||
| 	go.jolheiser.com/pwn v0.0.3 | ||||
| 	golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 | ||||
| 	golang.org/x/net v0.0.0-20201031054903-ff519b6c9102 | ||||
| 	golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 | ||||
| 	golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78 | ||||
| 	golang.org/x/text v0.3.4 | ||||
| 	golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect | ||||
| 	golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9 | ||||
| 	golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad | ||||
| 	golang.org/x/net v0.0.0-20210119194325-5f4716e94777 | ||||
| 	golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013 | ||||
| 	golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c | ||||
| 	golang.org/x/text v0.3.5 | ||||
| 	golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect | ||||
| 	golang.org/x/tools v0.1.0 | ||||
| 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | ||||
| 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df | ||||
| 	gopkg.in/ini.v1 v1.62.0 | ||||
| 	gopkg.in/yaml.v2 v2.3.0 | ||||
| 	gopkg.in/yaml.v2 v2.4.0 | ||||
| 	mvdan.cc/xurls/v2 v2.2.0 | ||||
| 	strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 | ||||
| 	xorm.io/builder v0.3.7 | ||||
|  |  | |||
							
								
								
									
										194
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										194
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -37,8 +37,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX | |||
| cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= | ||||
| code.gitea.io/gitea-vet v0.2.1 h1:b30by7+3SkmiftK0RjuXqFvZg2q4p68uoPGuxhzBN0s= | ||||
| code.gitea.io/gitea-vet v0.2.1/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE= | ||||
| code.gitea.io/sdk/gitea v0.13.1 h1:Y7bpH2iO6Q0KhhMJfjP/LZ0AmiYITeRQlCD8b0oYqhk= | ||||
| code.gitea.io/sdk/gitea v0.13.1/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= | ||||
| code.gitea.io/sdk/gitea v0.13.2 h1:wAnT/J7Z62q3fJXbgnecoaOBh8CM1Qq0/DakWxiv4yA= | ||||
| code.gitea.io/sdk/gitea v0.13.2/go.mod h1:lee2y8LeV3kQb2iK+hHlMqoadL4bp27QOkOV/hawLKg= | ||||
| dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | ||||
| gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c h1:NTtrGYjR40WUdkCdn26Y5LGFT52rIkFPkjmtgCAyiTs= | ||||
| gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c/go.mod h1:9bGA9dIsrz+wVQKH1DzvxuAvrudHaQ8Wx8hLme/GVGQ= | ||||
|  | @ -82,6 +82,7 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX | |||
| github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= | ||||
| github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= | ||||
| github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= | ||||
| github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= | ||||
| github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= | ||||
| github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= | ||||
| github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= | ||||
|  | @ -103,6 +104,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy | |||
| github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||
| github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||
| github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= | ||||
| github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= | ||||
| github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= | ||||
| github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc= | ||||
| github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= | ||||
|  | @ -126,9 +128,12 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l | |||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | ||||
| github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= | ||||
| github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= | ||||
| github.com/aws/aws-sdk-go v1.34.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= | ||||
| github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= | ||||
| github.com/aws/aws-sdk-go v1.35.20/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= | ||||
| github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= | ||||
| github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= | ||||
| github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= | ||||
|  | @ -167,6 +172,8 @@ github.com/blevesearch/zapx/v15 v15.1.10 h1:kZR3b9jO9l6s2B5UHI+1N1llLzJ4nYikkXQT | |||
| github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM= | ||||
| github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= | ||||
| github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | ||||
| github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= | ||||
| github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | ||||
| github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668 h1:U/lr3Dgy4WK+hNk4tyD+nuGjpVLPEHuJSFXMw11/HPA= | ||||
| github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | ||||
| github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug= | ||||
|  | @ -270,8 +277,12 @@ github.com/ethantkoenig/rupture v1.0.0/go.mod h1:GyE9QabHfxA6ch0NZgwsHopRbOLcYjU | |||
| github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= | ||||
| github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= | ||||
| github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= | ||||
| github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= | ||||
| github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= | ||||
| github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= | ||||
| github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= | ||||
| github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= | ||||
| github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= | ||||
| github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= | ||||
| github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= | ||||
| github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= | ||||
|  | @ -331,12 +342,18 @@ github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9sn | |||
| github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | ||||
| github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE= | ||||
| github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= | ||||
| github.com/go-openapi/analysis v0.19.16 h1:Ub9e++M8sDwtHD+S587TYi+6ANBG1NRYGZDihqk0SaY= | ||||
| github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= | ||||
| github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys= | ||||
| github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= | ||||
| github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4= | ||||
| github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= | ||||
| github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||
|  | @ -344,12 +361,14 @@ github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwds | |||
| github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= | ||||
| github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= | ||||
| github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= | ||||
| github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= | ||||
| github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||
| github.com/go-openapi/jsonreference v0.19.4 h1:3Vw+rh13uq2JFNxgnMTGE1rnoieU9FmyE1gvnyylsYg= | ||||
| github.com/go-openapi/jsonreference v0.19.4/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= | ||||
| github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= | ||||
| github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= | ||||
| github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
|  | @ -357,12 +376,18 @@ github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix | |||
| github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= | ||||
| github.com/go-openapi/loads v0.19.5 h1:jZVYWawIQiA1NBnHla28ktg6hrcfTHsCE+3QLVRBIls= | ||||
| github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||
| github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||
| github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||
| github.com/go-openapi/loads v0.20.0 h1:Pymw1O8zDmWeNv4kVsHd0W3cvgdp8juRa4U/U/8D/Pk= | ||||
| github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= | ||||
| github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= | ||||
| github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | ||||
| github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= | ||||
| github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= | ||||
| github.com/go-openapi/runtime v0.19.20 h1:J/t+QIjbcoq8WJvjGxRKiFBhqUE8slS9SbmD0Oi/raQ= | ||||
| github.com/go-openapi/runtime v0.19.20/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= | ||||
| github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= | ||||
| github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= | ||||
| github.com/go-openapi/runtime v0.19.26 h1:K/6PoVNj5WJXUnMk+VEbELeXjtBkCS1UxTDa04tdXE0= | ||||
| github.com/go-openapi/runtime v0.19.26/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M= | ||||
| github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= | ||||
|  | @ -370,6 +395,10 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8 | |||
| github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.8 h1:qAdZLh1r6QF/hI/gTq+TJTvsQUodZsM7KLqkAJdiJNg= | ||||
| github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||
| github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||
| github.com/go-openapi/spec v0.20.1 h1:5WNKTzPguDN+79wbJw2UE2q+eX+gUmEFsIKSvnSQJlc= | ||||
| github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= | ||||
| github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= | ||||
|  | @ -378,6 +407,9 @@ github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6 | |||
| github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM= | ||||
| github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= | ||||
| github.com/go-openapi/strfmt v0.20.0 h1:l2omNtmNbMc39IGptl9BuXBEKcZfS8zjrTsPKTiJiDM= | ||||
| github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= | ||||
| github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
|  | @ -385,11 +417,18 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh | |||
| github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE= | ||||
| github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | ||||
| github.com/go-openapi/swag v0.19.13 h1:233UVgMy1DlmCYYfOiFpta6e2urloh+sEs5id6lyzog= | ||||
| github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= | ||||
| github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= | ||||
| github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= | ||||
| github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= | ||||
| github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk= | ||||
| github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||
| github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= | ||||
| github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= | ||||
| github.com/go-openapi/validate v0.20.1 h1:QGQ5CvK74E28t3DkegGweKR+auemUi5IdpMc4x3UW6s= | ||||
| github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= | ||||
| github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4= | ||||
| github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= | ||||
| github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4= | ||||
|  | @ -401,8 +440,8 @@ github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gG | |||
| github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | ||||
| github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= | ||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||
| github.com/go-swagger/go-swagger v0.25.0 h1:FxhyrWWV8V/A9P6GtI5szWordAdbb6Y0nqdY/y9So2w= | ||||
| github.com/go-swagger/go-swagger v0.25.0/go.mod h1:9639ioXrPX9E6BbnbaDklGXjNz7upAXoNBwL4Ok11Vk= | ||||
| github.com/go-swagger/go-swagger v0.26.0 h1:LM5XTbeRbDdjHRqdA0jchK5Qs3DB2F0R5QmXs1pd/L0= | ||||
| github.com/go-swagger/go-swagger v0.26.0/go.mod h1:kSAA+pziAr5x68on6TxcxWoIl9GOo1mLsHmfMV2rrCo= | ||||
| github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0= | ||||
| github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.mod h1:b65mBPzqzZWxOZGxSWrqs4GInLIn+u99Q9q7p+GKni0= | ||||
| github.com/go-testfixtures/testfixtures/v3 v3.4.1 h1:Qz9y0wUOXPHzKhK6C79A/menChtEu/xd0Dn5ngVyMD0= | ||||
|  | @ -511,8 +550,8 @@ github.com/google/pprof v0.0.0-20200905233945-acf8798be1f7/go.mod h1:ZgVRPoUq/hf | |||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= | ||||
| github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= | ||||
| github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | ||||
| github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= | ||||
| github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | ||||
|  | @ -525,8 +564,8 @@ github.com/gorilla/csrf v1.6.0/go.mod h1:7tSf8kmjNYr7IWDCYhd3U8Ck34iQ/Yw5CJu7bAk | |||
| github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= | ||||
| github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= | ||||
| github.com/gorilla/handlers v1.4.1/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= | ||||
| github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= | ||||
| github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= | ||||
| github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= | ||||
| github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= | ||||
| github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | ||||
| github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= | ||||
| github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | ||||
|  | @ -637,7 +676,8 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i | |||
| github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= | ||||
| github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | ||||
| github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | ||||
| github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= | ||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= | ||||
| github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= | ||||
| github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||
| github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= | ||||
|  | @ -670,8 +710,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o | |||
| github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||
| github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||
| github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||
| github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc= | ||||
| github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||
| github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg= | ||||
| github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||
| github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||
| github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||
| github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | ||||
|  | @ -687,8 +727,8 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv | |||
| github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= | ||||
| github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | ||||
| github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | ||||
| github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= | ||||
| github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= | ||||
| github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= | ||||
| github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= | ||||
| github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | ||||
| github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= | ||||
| github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= | ||||
|  | @ -703,8 +743,8 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||
| github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | ||||
| github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | ||||
| github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | ||||
| github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc h1:ERSU1OvZ6MdWhHieo2oT7xwR/HCksqKdgK6iYPU5pHI= | ||||
| github.com/lib/pq v1.8.1-0.20200908161135-083382b7e6fc/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | ||||
| github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8= | ||||
| github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | ||||
| github.com/libdns/libdns v0.1.0 h1:0ctCOrVJsVzj53mop1angHp/pE3hmAhP7KiHvR0HD04= | ||||
| github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= | ||||
| github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= | ||||
|  | @ -719,6 +759,8 @@ github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0Q | |||
| github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= | ||||
| github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= | ||||
| github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= | ||||
| github.com/magiconair/properties v1.8.4 h1:8KGKTcQQGm0Kv7vEbKFErAoAOFyyacLStRtQSeYtvkY= | ||||
| github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= | ||||
| github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
|  | @ -727,8 +769,8 @@ github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7 | |||
| github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= | ||||
| github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||
| github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA= | ||||
| github.com/markbates/goth v1.65.0 h1:IbXpMneUhqbxgJ8JP1Ghl8ghlAaVX66jWDAapU1KxqU= | ||||
| github.com/markbates/goth v1.65.0/go.mod h1:65frybxoeSCfORin51KOKqAKbIh7wREIDvdCkdWj//4= | ||||
| github.com/markbates/goth v1.66.1 h1:8YIkRxRxiUxhYhHdvriKiJ+mk2itt2ezjf/ABR8U+JI= | ||||
| github.com/markbates/goth v1.66.1/go.mod h1:57wf4mNb/fy/Cizm8xe4komsQRKPuelTMrm/wGcw3v8= | ||||
| github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= | ||||
| github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= | ||||
| github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= | ||||
|  | @ -736,8 +778,8 @@ github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcncea | |||
| github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | ||||
| github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | ||||
| github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= | ||||
| github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= | ||||
| github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= | ||||
| github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= | ||||
| github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= | ||||
| github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= | ||||
| github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= | ||||
| github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | ||||
|  | @ -750,19 +792,19 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky | |||
| github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | ||||
| github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | ||||
| github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | ||||
| github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= | ||||
| github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | ||||
| github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= | ||||
| github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||
| github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= | ||||
| github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= | ||||
| github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= | ||||
| github.com/mattn/go-sqlite3 v1.14.4 h1:4rQjbDxdu9fSgI/r3KN72G3c2goxknAqHHgPWWs8UlI= | ||||
| github.com/mattn/go-sqlite3 v1.14.4/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= | ||||
| github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg= | ||||
| github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= | ||||
| github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc86qNFvby9AqkLDibfChMtAg5QM= | ||||
| github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= | ||||
| github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7 h1:ydVkpU/M4/c45yT3e5lzMeguKJm9GxGgsawx4/XlwK0= | ||||
| github.com/mgechev/revive v1.0.3-0.20200921231451-246eac737dc7/go.mod h1:no/hfevHbndpXR5CaJahkYCfM/FFpmM/dSOwFGU7Z1o= | ||||
| github.com/mgechev/revive v1.0.3 h1:z3FL6IFFN3JKzHYHD8O1ExH9g/4lAGJ5x1+9rPZgsFg= | ||||
| github.com/mgechev/revive v1.0.3/go.mod h1:POGGZagSo/0frdr7VeAifzS5Uka0d0GPiM35MsTO8nE= | ||||
| github.com/mholt/acmez v0.1.1 h1:KQODCqk+hBn3O7qfCRPj6L96uG65T5BSS95FKNEqtdA= | ||||
| github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM= | ||||
| github.com/mholt/archiver/v3 v3.5.0 h1:nE8gZIrw66cu4osS/U7UW7YDuGMHssxKutU8IfWxwWE= | ||||
|  | @ -772,10 +814,13 @@ github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo= | |||
| github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= | ||||
| github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4= | ||||
| github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | ||||
| github.com/minio/minio-go/v7 v7.0.6 h1:9czXaG0LEZ9s74smSqy0rm034MxngQoP6HTTuSc5GEs= | ||||
| github.com/minio/minio-go/v7 v7.0.6/go.mod h1:HcIuq+11d/3MfavIPZiswSzfQ1VJ2Lwxp/XLtW46IWQ= | ||||
| github.com/minio/md5-simd v1.1.1 h1:9ojcLbuZ4gXbB2sX53MKn8JUZ0sB/2wfwsEcRw+I08U= | ||||
| github.com/minio/md5-simd v1.1.1/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | ||||
| github.com/minio/minio-go/v7 v7.0.7 h1:Qld/xb8C1Pwbu0jU46xAceyn9xXKCMW+3XfNbpmTB70= | ||||
| github.com/minio/minio-go/v7 v7.0.7/go.mod h1:pEZBUa+L2m9oECoIA6IcSK8bv/qggtQVLovjeKK5jYc= | ||||
| github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= | ||||
| github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= | ||||
| github.com/minio/sio v0.2.1/go.mod h1:8b0yPp2avGThviy/+OCJBI6OMpvxoUuiLvE6F1lebhw= | ||||
| github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | ||||
| github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||
| github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | ||||
|  | @ -787,6 +832,10 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F | |||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||
| github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= | ||||
| github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= | ||||
| github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||
| github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | ||||
| github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||
|  | @ -814,8 +863,8 @@ github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6 | |||
| github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= | ||||
| github.com/niklasfasching/go-org v1.3.2 h1:ZKTSd+GdJYkoZl1pBXLR/k7DRiRXnmB96TRiHmHdzwI= | ||||
| github.com/niklasfasching/go-org v1.3.2/go.mod h1:AsLD6X7djzRIz4/RFZu8vwRL0VGjUvGZCCH1Nz0VdrU= | ||||
| github.com/niklasfasching/go-org v1.4.0 h1:qPy4VEdX55f5QcLiaD3X7N/tY5XOgk4y2uEyQa02i7A= | ||||
| github.com/niklasfasching/go-org v1.4.0/go.mod h1:4FWT4U/Anir9ewjwNpbZIzMjG5RaXFafkyWZNEPRdk8= | ||||
| github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= | ||||
| github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ= | ||||
| github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= | ||||
|  | @ -829,8 +878,8 @@ github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn | |||
| github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= | ||||
| github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k= | ||||
| github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= | ||||
| github.com/olivere/elastic/v7 v7.0.21 h1:58a2pMlLketCsLyKg8kJNJG+OZIFKrSQXX6gJBpqqlg= | ||||
| github.com/olivere/elastic/v7 v7.0.21/go.mod h1:Kh7iIsXIBl5qRQOBFoylCsXVTtye3keQU2Y/YbR7HD8= | ||||
| github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s= | ||||
| github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zUA3ickqu5Pc8= | ||||
| github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||
| github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||
| github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||
|  | @ -860,7 +909,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI | |||
| github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | ||||
| github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= | ||||
| github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= | ||||
| github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= | ||||
| github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= | ||||
| github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM= | ||||
| github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= | ||||
| github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= | ||||
|  | @ -882,9 +931,9 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ | |||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= | ||||
| github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= | ||||
| github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= | ||||
| github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= | ||||
| github.com/pquerna/cachecontrol v0.0.0-20200921180117-858c6e7e6b7e/go.mod h1:hoLfEwdY11HjRfKFH6KqnPsfxlo3BP6bJehpDv8t6sQ= | ||||
| github.com/pquerna/otp v1.3.0 h1:oJV/SkzR33anKXwQU3Of42rL4wbrffP4uvUf1SvS5Xs= | ||||
| github.com/pquerna/otp v1.3.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= | ||||
| github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= | ||||
| github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= | ||||
| github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= | ||||
|  | @ -921,6 +970,10 @@ github.com/quasoft/websspi v1.0.0 h1:5nDgdM5xSur9s+B5w2xQ5kxf5nUGqgFgU4W0aDLZ8Mw | |||
| github.com/quasoft/websspi v1.0.0/go.mod h1:HmVdl939dQ0WIXZhyik+ARdI03M6bQzaSEKcgpFmewk= | ||||
| github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= | ||||
| github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= | ||||
| github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= | ||||
| github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= | ||||
| github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= | ||||
| github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
|  | @ -975,8 +1028,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k | |||
| github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= | ||||
| github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= | ||||
| github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= | ||||
| github.com/spf13/afero v1.3.2 h1:GDarE4TJQI52kYSbSAmLiId1Elfj+xgSDqrUZxFhxlU= | ||||
| github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= | ||||
| github.com/spf13/afero v1.4.1 h1:asw9sl74539yqavKaglDM5hFpdJVK0Y5Dr/JOgQ89nQ= | ||||
| github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= | ||||
| github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||
| github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= | ||||
| github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||
|  | @ -990,7 +1043,6 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn | |||
| github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||||
| github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||||
| github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= | ||||
| github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= | ||||
| github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= | ||||
| github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= | ||||
| github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo= | ||||
|  | @ -1046,11 +1098,12 @@ github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU= | |||
| github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= | ||||
| github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | ||||
| github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= | ||||
| github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= | ||||
| github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= | ||||
| github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= | ||||
| github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= | ||||
| github.com/xanzy/go-gitlab v0.39.0 h1:7aiZ03fJfCdqoHFhsZq/SoVYp2lR91hfYWmiXLOU5Qo= | ||||
| github.com/xanzy/go-gitlab v0.39.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= | ||||
| github.com/xanzy/go-gitlab v0.42.0 h1:daNdMFnw2FG+lDRBcX+YLnKbqIKMdefVyVztMHwsFhk= | ||||
| github.com/xanzy/go-gitlab v0.42.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= | ||||
| github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= | ||||
| github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= | ||||
| github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | ||||
|  | @ -1067,6 +1120,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de | |||
| github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| github.com/yuin/goldmark v1.2.1 h1:ruQGxdhGHe7FWOJPT0mKs5+pD2Xs1Bm/kdGlHO04FmM= | ||||
| github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| github.com/yuin/goldmark v1.3.1 h1:eVwehsLsZlCJCwXyGLgg+Q4iFWE/eTIMG0e8waCmm/I= | ||||
| github.com/yuin/goldmark v1.3.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= | ||||
| github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 h1:VWSxtAiQNh3zgHJpdpkpVYjTPqRE3P6UZCOPa1nRDio= | ||||
| github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691/go.mod h1:YLF3kDffRfUH/bTxOxHhV6lxwIB3Vfj91rEwNMS9MXo= | ||||
| github.com/yuin/goldmark-meta v1.0.0 h1:ScsatUIT2gFS6azqzLGUjgOnELsBOxMXerM3ogdJhAM= | ||||
|  | @ -1086,8 +1141,9 @@ go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL | |||
| go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= | ||||
| go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.3.5 h1:S0ZOruh4YGHjD7JoN7mIsTrNjnQbOjrmgrx6l6pZN7I= | ||||
| go.mongodb.org/mongo-driver v1.3.5/go.mod h1:Ual6Gkco7ZGQw8wE1t4tLnvBsf6yVSM60qW6TgOeJ5c= | ||||
| go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||
| go.mongodb.org/mongo-driver v1.4.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs= | ||||
| go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||
| go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | ||||
| go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | ||||
| go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= | ||||
|  | @ -1095,6 +1151,7 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= | |||
| go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= | ||||
| go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw= | ||||
| go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||
| go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||
|  | @ -1122,6 +1179,7 @@ golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACk | |||
| golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | ||||
| golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | ||||
| golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
|  | @ -1136,8 +1194,9 @@ golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPh | |||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 h1:3wPMTskHO3+O6jqTEXyFcsnuxMQOqYSaHsDxcbUXpqA= | ||||
| golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||
| golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= | ||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | ||||
|  | @ -1217,8 +1276,12 @@ golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81R | |||
| golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||
| golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201031054903-ff519b6c9102 h1:42cLlJJdEh+ySyeUUbEQ5bsTiq8voBeTuweGVkY6Puw= | ||||
| golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw= | ||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||
| golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= | ||||
| golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||
|  | @ -1227,6 +1290,10 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr | |||
| golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||
| golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 h1:ld7aEMNHoBnnDAX15v1T6z31v8HwR2A9FYOuAhWqkwc= | ||||
| golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58 h1:Mj83v+wSRNEar42a/MQgxk9X42TdEmrOl9i+y8WbxLo= | ||||
| golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013 h1:55H5j7lotzuFCEOKDsMch+fRNUQ9DgtyHOUP31FNqKc= | ||||
| golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
|  | @ -1300,10 +1367,16 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w | |||
| golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78 h1:nVuTkr9L6Bq62qpUqKo/RnZCFfzDBL0bYo6w9OJUqZY= | ||||
| golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= | ||||
| golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= | ||||
| golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= | ||||
| golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
|  | @ -1311,17 +1384,20 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | |||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= | ||||
| golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= | ||||
| golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= | ||||
| golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE= | ||||
| golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= | ||||
| golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
|  | @ -1372,16 +1448,18 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY | |||
| golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||
| golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||
| golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||
| golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||
| golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||
| golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||
| golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||
| golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= | ||||
| golang.org/x/tools v0.0.0-20200921210052-fa0125251cc4/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | ||||
| golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | ||||
| golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | ||||
| golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9 h1:sEvmEcJVKBNUvgCUClbUQeHOAa9U0I2Ce1BooMvVCY4= | ||||
| golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b h1:Lq5JUTFhiybGVf28jB6QRpqd13/JPOaCnET17PVzYJE= | ||||
| golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= | ||||
| golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | ||||
| golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
|  | @ -1518,6 +1596,8 @@ gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= | ||||
| gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/admin_cron.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/admin_cron.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,7 @@ type ListCronTaskOptions struct { | |||
| 
 | ||||
| // ListCronTasks list available cron tasks | ||||
| func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	opt.setDefaults() | ||||
|  | @ -36,7 +36,7 @@ func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, | |||
| 
 | ||||
| // RunCronTasks run a cron task | ||||
| func (c *Client) RunCronTasks(task string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	_, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -56,7 +56,7 @@ func NewClient(url string, options ...func(*Client)) (*Client, error) { | |||
| 	for _, opt := range options { | ||||
| 		opt(client) | ||||
| 	} | ||||
| 	if err := client.CheckServerVersionConstraint(">=1.10"); err != nil { | ||||
| 	if err := client.checkServerVersionGreaterThanOrEqual(version1_10_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return client, nil | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,6 +3,6 @@ module code.gitea.io/sdk/gitea | |||
| go 1.12 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/hashicorp/go-version v1.2.0 | ||||
| 	github.com/hashicorp/go-version v1.2.1 | ||||
| 	github.com/stretchr/testify v1.4.0 | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										6
									
								
								vendor/code.gitea.io/sdk/gitea/issue.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/code.gitea.io/sdk/gitea/issue.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -121,7 +121,7 @@ func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, *Response, error) { | |||
| 	link, _ := url.Parse("/repos/issues/search") | ||||
| 	link.RawQuery = opt.QueryEncode() | ||||
| 	resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues) | ||||
| 	if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil { | ||||
| 	if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil { | ||||
| 		for i := 0; i < len(issues); i++ { | ||||
| 			if issues[i].Repository != nil { | ||||
| 				issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0] | ||||
|  | @ -139,7 +139,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss | |||
| 	link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/issues", owner, repo)) | ||||
| 	link.RawQuery = opt.QueryEncode() | ||||
| 	resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues) | ||||
| 	if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil { | ||||
| 	if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil { | ||||
| 		for i := 0; i < len(issues); i++ { | ||||
| 			if issues[i].Repository != nil { | ||||
| 				issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0] | ||||
|  | @ -153,7 +153,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss | |||
| func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, *Response, error) { | ||||
| 	issue := new(Issue) | ||||
| 	resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue) | ||||
| 	if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil && issue.Repository != nil { | ||||
| 	if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil && issue.Repository != nil { | ||||
| 		issue.Repository.Owner = strings.Split(issue.Repository.FullName, "/")[0] | ||||
| 	} | ||||
| 	return issue, resp, err | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/issue_comment.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/issue_comment.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -68,7 +68,7 @@ func (c *Client) ListRepoIssueComments(owner, repo string, opt ListIssueCommentO | |||
| // GetIssueComment get a comment for a given repo by id. | ||||
| func (c *Client) GetIssueComment(owner, repo string, id int64) (*Comment, *Response, error) { | ||||
| 	comment := new(Comment) | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return comment, nil, err | ||||
| 	} | ||||
| 	resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments/%d", owner, repo, id), nil, nil, &comment) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/issue_label.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/issue_label.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -71,7 +71,7 @@ func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label, | |||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if len(opt.Color) == 6 { | ||||
| 		if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 		if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 			opt.Color = "#" + opt.Color | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										12
									
								
								vendor/code.gitea.io/sdk/gitea/issue_reaction.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/code.gitea.io/sdk/gitea/issue_reaction.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,7 +20,7 @@ type Reaction struct { | |||
| 
 | ||||
| // GetIssueReactions get a list reactions of an issue | ||||
| func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	reactions := make([]*Reaction, 0, 10) | ||||
|  | @ -30,7 +30,7 @@ func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction | |||
| 
 | ||||
| // GetIssueCommentReactions get a list of reactions from a comment of an issue | ||||
| func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	reactions := make([]*Reaction, 0, 10) | ||||
|  | @ -45,7 +45,7 @@ type editReactionOption struct { | |||
| 
 | ||||
| // PostIssueReaction add a reaction to an issue | ||||
| func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction string) (*Reaction, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	reactionResponse := new(Reaction) | ||||
|  | @ -61,7 +61,7 @@ func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction str | |||
| 
 | ||||
| // DeleteIssueReaction remove a reaction from an issue | ||||
| func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&editReactionOption{Reaction: reaction}) | ||||
|  | @ -74,7 +74,7 @@ func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction s | |||
| 
 | ||||
| // PostIssueCommentReaction add a reaction to a comment of an issue | ||||
| func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	reactionResponse := new(Reaction) | ||||
|  | @ -90,7 +90,7 @@ func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, r | |||
| 
 | ||||
| // DeleteIssueCommentReaction remove a reaction from a comment of an issue | ||||
| func (c *Client) DeleteIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&editReactionOption{Reaction: reaction}) | ||||
|  |  | |||
							
								
								
									
										8
									
								
								vendor/code.gitea.io/sdk/gitea/issue_subscription.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/code.gitea.io/sdk/gitea/issue_subscription.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -11,7 +11,7 @@ import ( | |||
| 
 | ||||
| // GetIssueSubscribers get list of users who subscribed on an issue | ||||
| func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	subscribers := make([]*User, 0, 10) | ||||
|  | @ -21,7 +21,7 @@ func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, | |||
| 
 | ||||
| // AddIssueSubscription Subscribe user to issue | ||||
| func (c *Client) AddIssueSubscription(owner, repo string, index int64, user string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	status, resp, err := c.getStatusCode("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil) | ||||
|  | @ -39,7 +39,7 @@ func (c *Client) AddIssueSubscription(owner, repo string, index int64, user stri | |||
| 
 | ||||
| // DeleteIssueSubscription unsubscribe user from issue | ||||
| func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil) | ||||
|  | @ -57,7 +57,7 @@ func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user s | |||
| 
 | ||||
| // CheckIssueSubscription check if current user is subscribed to an issue | ||||
| func (c *Client) CheckIssueSubscription(owner, repo string, index int64) (*WatchInfo, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	wi := new(WatchInfo) | ||||
|  |  | |||
							
								
								
									
										14
									
								
								vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -27,7 +27,7 @@ type TrackedTime struct { | |||
| 
 | ||||
| // GetUserTrackedTimes list tracked times of a user | ||||
| func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	times := make([]*TrackedTime, 0, 10) | ||||
|  | @ -37,7 +37,7 @@ func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, | |||
| 
 | ||||
| // GetRepoTrackedTimes list tracked times of a repository | ||||
| func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	times := make([]*TrackedTime, 0, 10) | ||||
|  | @ -47,7 +47,7 @@ func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Respo | |||
| 
 | ||||
| // GetMyTrackedTimes list tracked times of the current user | ||||
| func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	times := make([]*TrackedTime, 0, 10) | ||||
|  | @ -75,7 +75,7 @@ func (opt AddTimeOption) Validate() error { | |||
| 
 | ||||
| // AddTime adds time to issue with the given index | ||||
| func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(); err != nil { | ||||
|  | @ -99,7 +99,7 @@ type ListTrackedTimesOptions struct { | |||
| 
 | ||||
| // ListTrackedTimes list tracked times of a single issue for a given repository | ||||
| func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	opt.setDefaults() | ||||
|  | @ -110,7 +110,7 @@ func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrack | |||
| 
 | ||||
| // ResetIssueTime reset tracked time of a single issue for a given repository | ||||
| func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil) | ||||
|  | @ -119,7 +119,7 @@ func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, err | |||
| 
 | ||||
| // DeleteTime delete a specific tracked time by id of a single issue for a given repository | ||||
| func (c *Client) DeleteTime(owner, repo string, index, timeID int64) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), nil, nil) | ||||
|  |  | |||
							
								
								
									
										24
									
								
								vendor/code.gitea.io/sdk/gitea/notifications.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/code.gitea.io/sdk/gitea/notifications.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -8,6 +8,12 @@ import ( | |||
| 	"fmt" | ||||
| 	"net/url" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/hashicorp/go-version" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	version1_12_3, _ = version.NewVersion("1.12.3") | ||||
| ) | ||||
| 
 | ||||
| // NotificationThread expose Notification on API | ||||
|  | @ -75,7 +81,7 @@ func (opt *ListNotificationOptions) QueryEncode() string { | |||
| // Validate the CreateUserOption struct | ||||
| func (opt ListNotificationOptions) Validate(c *Client) error { | ||||
| 	if len(opt.Status) != 0 { | ||||
| 		return c.CheckServerVersionConstraint(">=1.12.3") | ||||
| 		return c.checkServerVersionGreaterThanOrEqual(version1_12_3) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | @ -98,14 +104,14 @@ func (opt *MarkNotificationOptions) QueryEncode() string { | |||
| // Validate the CreateUserOption struct | ||||
| func (opt MarkNotificationOptions) Validate(c *Client) error { | ||||
| 	if len(opt.Status) != 0 || len(opt.ToStatus) != 0 { | ||||
| 		return c.CheckServerVersionConstraint(">=1.12.3") | ||||
| 		return c.checkServerVersionGreaterThanOrEqual(version1_12_3) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // CheckNotifications list users's notification threads | ||||
| func (c *Client) CheckNotifications() (int64, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return 0, nil, err | ||||
| 	} | ||||
| 	new := struct { | ||||
|  | @ -118,7 +124,7 @@ func (c *Client) CheckNotifications() (int64, *Response, error) { | |||
| 
 | ||||
| // GetNotification get notification thread by ID | ||||
| func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	thread := new(NotificationThread) | ||||
|  | @ -129,7 +135,7 @@ func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, erro | |||
| // ReadNotification mark notification thread as read by ID | ||||
| // It optionally takes a second argument if status has to be set other than 'read' | ||||
| func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	link := fmt.Sprintf("/notifications/threads/%d", id) | ||||
|  | @ -142,7 +148,7 @@ func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response, | |||
| 
 | ||||
| // ListNotifications list users's notification threads | ||||
| func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*NotificationThread, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
|  | @ -157,7 +163,7 @@ func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*Notification | |||
| 
 | ||||
| // ReadNotifications mark notification threads as read | ||||
| func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
|  | @ -171,7 +177,7 @@ func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, erro | |||
| 
 | ||||
| // ListRepoNotifications list users's notification threads on a specific repo | ||||
| func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificationOptions) ([]*NotificationThread, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
|  | @ -186,7 +192,7 @@ func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificat | |||
| 
 | ||||
| // ReadRepoNotifications mark notification threads as read on a specific repo | ||||
| func (c *Client) ReadRepoNotifications(owner, reponame string, opt MarkNotificationOptions) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
|  |  | |||
							
								
								
									
										10
									
								
								vendor/code.gitea.io/sdk/gitea/oauth2.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/code.gitea.io/sdk/gitea/oauth2.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -34,7 +34,7 @@ type CreateOauth2Option struct { | |||
| 
 | ||||
| // CreateOauth2 create an Oauth2 Application and returns a completed Oauth2 object. | ||||
| func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&opt) | ||||
|  | @ -48,7 +48,7 @@ func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error | |||
| 
 | ||||
| // UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object. | ||||
| func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&opt) | ||||
|  | @ -62,7 +62,7 @@ func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, | |||
| 
 | ||||
| // GetOauth2 a specific Oauth2 Application by ID. | ||||
| func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	oauth2s := &Oauth2{} | ||||
|  | @ -72,7 +72,7 @@ func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) { | |||
| 
 | ||||
| // ListOauth2 all of your Oauth2 Applications. | ||||
| func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	opt.setDefaults() | ||||
|  | @ -83,7 +83,7 @@ func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error) | |||
| 
 | ||||
| // DeleteOauth2 delete an Oauth2 application by ID | ||||
| func (c *Client) DeleteOauth2(oauth2id int64) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil) | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/pull.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/pull.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -160,7 +160,7 @@ func (opt EditPullRequestOption) Validate(c *Client) error { | |||
| 		return fmt.Errorf("title is empty") | ||||
| 	} | ||||
| 	if len(opt.Base) != 0 { | ||||
| 		if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 		if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 			return fmt.Errorf("can not change base gitea to old") | ||||
| 		} | ||||
| 	} | ||||
|  | @ -229,7 +229,7 @@ func (c *Client) IsPullRequestMerged(owner, repo string, index int64) (bool, *Re | |||
| 
 | ||||
| // getPullRequestDiffOrPatch gets the patch or diff file as bytes for a PR | ||||
| func (c *Client) getPullRequestDiffOrPatch(owner, repo, kind string, index int64) ([]byte, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		r, _, err2 := c.GetRepo(owner, repo) | ||||
| 		if err2 != nil { | ||||
| 			return nil, nil, err | ||||
|  |  | |||
							
								
								
									
										12
									
								
								vendor/code.gitea.io/sdk/gitea/pull_review.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/code.gitea.io/sdk/gitea/pull_review.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -132,7 +132,7 @@ func (opt CreatePullReviewComment) Validate() error { | |||
| 
 | ||||
| // ListPullReviews lists all reviews of a pull request | ||||
| func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullReviewsOptions) ([]*PullReview, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	opt.setDefaults() | ||||
|  | @ -147,7 +147,7 @@ func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullRe | |||
| 
 | ||||
| // GetPullReview gets a specific review of a pull request | ||||
| func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 
 | ||||
|  | @ -158,7 +158,7 @@ func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview | |||
| 
 | ||||
| // ListPullReviewComments lists all comments of a pull request review | ||||
| func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]*PullReviewComment, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	rcl := make([]*PullReviewComment, 0, 4) | ||||
|  | @ -170,7 +170,7 @@ func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([] | |||
| 
 | ||||
| // DeletePullReview delete a specific review from a pull request | ||||
| func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
|  | @ -180,7 +180,7 @@ func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Respons | |||
| 
 | ||||
| // CreatePullReview create a review to an pull request | ||||
| func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePullReviewOptions) (*PullReview, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(); err != nil { | ||||
|  | @ -200,7 +200,7 @@ func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePul | |||
| 
 | ||||
| // SubmitPullReview submit a pending review to an pull request | ||||
| func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt SubmitPullReviewOptions) (*PullReview, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(); err != nil { | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/release.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/release.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -57,7 +57,7 @@ func (c *Client) GetRelease(user, repo string, id int64) (*Release, *Response, e | |||
| 
 | ||||
| // GetReleaseByTag get a release of a repository by tag | ||||
| func (c *Client) GetReleaseByTag(user, repo string, tag string) (*Release, *Response, error) { | ||||
| 	if c.CheckServerVersionConstraint(">=1.13.0") != nil { | ||||
| 	if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil { | ||||
| 		return c.fallbackGetReleaseByTag(user, repo, tag) | ||||
| 	} | ||||
| 	r := new(Release) | ||||
|  |  | |||
							
								
								
									
										40
									
								
								vendor/code.gitea.io/sdk/gitea/repo.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/code.gitea.io/sdk/gitea/repo.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -73,6 +73,20 @@ const ( | |||
| 	RepoTypeMirror RepoType = "mirror" | ||||
| ) | ||||
| 
 | ||||
| // TrustModel represent how git signatures are handled in a repository | ||||
| type TrustModel string | ||||
| 
 | ||||
| const ( | ||||
| 	// TrustModelDefault use TM set by global config | ||||
| 	TrustModelDefault TrustModel = "default" | ||||
| 	// TrustModelCollaborator gpg signature has to be owned by a repo collaborator | ||||
| 	TrustModelCollaborator TrustModel = "collaborator" | ||||
| 	// TrustModelCommitter gpg signature has to match committer | ||||
| 	TrustModelCommitter TrustModel = "committer" | ||||
| 	// TrustModelCollaboratorCommitter gpg signature has to match committer and owned by a repo collaborator | ||||
| 	TrustModelCollaboratorCommitter TrustModel = "collaboratorcommitter" | ||||
| ) | ||||
| 
 | ||||
| // ListReposOptions options for listing repositories | ||||
| type ListReposOptions struct { | ||||
| 	ListOptions | ||||
|  | @ -224,7 +238,7 @@ func (c *Client) SearchRepos(opt SearchRepoOptions) ([]*Repository, *Response, e | |||
| 	} else { | ||||
| 		link.RawQuery = opt.QueryEncode() | ||||
| 		// IsPrivate only works on gitea >= 1.12.0 | ||||
| 		if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil && opt.IsPrivate != nil { | ||||
| 		if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil && opt.IsPrivate != nil { | ||||
| 			if *opt.IsPrivate { | ||||
| 				// private repos only not supported on gitea <= 1.11.x | ||||
| 				return nil, nil, err | ||||
|  | @ -249,6 +263,8 @@ type CreateRepoOption struct { | |||
| 	IssueLabels string `json:"issue_labels"` | ||||
| 	// Whether the repository should be auto-intialized? | ||||
| 	AutoInit bool `json:"auto_init"` | ||||
| 	// Whether the repository is template | ||||
| 	Template bool `json:"template"` | ||||
| 	// Gitignores to use | ||||
| 	Gitignores string `json:"gitignores"` | ||||
| 	// License to use | ||||
|  | @ -257,19 +273,35 @@ type CreateRepoOption struct { | |||
| 	Readme string `json:"readme"` | ||||
| 	// DefaultBranch of the repository (used when initializes and in template) | ||||
| 	DefaultBranch string `json:"default_branch"` | ||||
| 	// TrustModel of the repository | ||||
| 	TrustModel TrustModel `json:"trust_model"` | ||||
| } | ||||
| 
 | ||||
| // Validate the CreateRepoOption struct | ||||
| func (opt CreateRepoOption) Validate() error { | ||||
| func (opt CreateRepoOption) Validate(c *Client) error { | ||||
| 	if len(strings.TrimSpace(opt.Name)) == 0 { | ||||
| 		return fmt.Errorf("name is empty") | ||||
| 	} | ||||
| 	if len(opt.Name) > 100 { | ||||
| 		return fmt.Errorf("name has more than 100 chars") | ||||
| 	} | ||||
| 	if len(opt.Description) > 255 { | ||||
| 		return fmt.Errorf("name has more than 255 chars") | ||||
| 	} | ||||
| 	if len(opt.DefaultBranch) > 100 { | ||||
| 		return fmt.Errorf("name has more than 100 chars") | ||||
| 	} | ||||
| 	if len(opt.TrustModel) != 0 { | ||||
| 		if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // CreateRepo creates a repository for authenticated user. | ||||
| func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error) { | ||||
| 	if err := opt.Validate(); err != nil { | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&opt) | ||||
|  | @ -283,7 +315,7 @@ func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error | |||
| 
 | ||||
| // CreateOrgRepo creates an organization repository for authenticated user. | ||||
| func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, *Response, error) { | ||||
| 	if err := opt.Validate(); err != nil { | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&opt) | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/repo_branch.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/code.gitea.io/sdk/gitea/repo_branch.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -84,7 +84,7 @@ func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, *Response, e | |||
| 
 | ||||
| // DeleteRepoBranch delete a branch in a repository | ||||
| func (c *Client) DeleteRepoBranch(user, repo, branch string) (bool, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return false, nil, err | ||||
| 	} | ||||
| 	status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil) | ||||
|  | @ -118,7 +118,7 @@ func (opt CreateBranchOption) Validate() error { | |||
| 
 | ||||
| // CreateBranch creates a branch for a user's repository | ||||
| func (c *Client) CreateBranch(owner, repo string, opt CreateBranchOption) (*Branch, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	if err := opt.Validate(); err != nil { | ||||
|  |  | |||
							
								
								
									
										10
									
								
								vendor/code.gitea.io/sdk/gitea/repo_branch_protection.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/code.gitea.io/sdk/gitea/repo_branch_protection.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -92,7 +92,7 @@ type ListBranchProtectionsOptions struct { | |||
| 
 | ||||
| // ListBranchProtections list branch protections for a repo | ||||
| func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtectionsOptions) ([]*BranchProtection, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	bps := make([]*BranchProtection, 0, opt.PageSize) | ||||
|  | @ -104,7 +104,7 @@ func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtect | |||
| 
 | ||||
| // GetBranchProtection gets a branch protection | ||||
| func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtection, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	bp := new(BranchProtection) | ||||
|  | @ -114,7 +114,7 @@ func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtectio | |||
| 
 | ||||
| // CreateBranchProtection creates a branch protection for a repo | ||||
| func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProtectionOption) (*BranchProtection, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	bp := new(BranchProtection) | ||||
|  | @ -128,7 +128,7 @@ func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProt | |||
| 
 | ||||
| // EditBranchProtection edits a branch protection for a repo | ||||
| func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchProtectionOption) (*BranchProtection, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	bp := new(BranchProtection) | ||||
|  | @ -142,7 +142,7 @@ func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchPr | |||
| 
 | ||||
| // DeleteBranchProtection deletes a branch protection for a repo | ||||
| func (c *Client) DeleteBranchProtection(owner, repo, name string) (*Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/branch_protections/%s", owner, repo, name), jsonHeader, nil) | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/code.gitea.io/sdk/gitea/repo_commit.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/code.gitea.io/sdk/gitea/repo_commit.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -21,6 +21,7 @@ type Identity struct { | |||
| type CommitMeta struct { | ||||
| 	URL     string    `json:"url"` | ||||
| 	SHA     string    `json:"sha"` | ||||
| 	Created time.Time `json:"created"` | ||||
| } | ||||
| 
 | ||||
| // CommitUser contains information of a user in the context of a commit. | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/repo_file.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/repo_file.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -182,7 +182,7 @@ func (c *Client) DeleteFile(owner, repo, filepath string, opt DeleteFileOptions) | |||
| func (c *Client) setDefaultBranchForOldVersions(owner, repo, branch string) (string, error) { | ||||
| 	if len(branch) == 0 { | ||||
| 		// Gitea >= 1.12.0 Use DefaultBranch on "", mimic this for older versions | ||||
| 		if c.CheckServerVersionConstraint(">=1.12.0") != nil { | ||||
| 		if c.checkServerVersionGreaterThanOrEqual(version1_12_0) != nil { | ||||
| 			r, _, err := c.GetRepo(owner, repo) | ||||
| 			if err != nil { | ||||
| 				return "", err | ||||
|  |  | |||
							
								
								
									
										19
									
								
								vendor/code.gitea.io/sdk/gitea/repo_migrate.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/code.gitea.io/sdk/gitea/repo_migrate.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,10 +20,10 @@ const ( | |||
| 	GitServiceGithub GitServiceType = "github" | ||||
| 	// GitServiceGitlab represents a gitlab service | ||||
| 	GitServiceGitlab GitServiceType = "gitlab" | ||||
| 	// GitServiceGitea represents a gitea service | ||||
| 	GitServiceGitea GitServiceType = "gitea" | ||||
| 
 | ||||
| 	// Not supported jet | ||||
| 	// // GitServiceGitea represents a gitea service | ||||
| 	// GitServiceGitea GitServiceType = "gitea" | ||||
| 	// // GitServiceGogs represents a gogs service | ||||
| 	// GitServiceGogs GitServiceType = "gogs" | ||||
| ) | ||||
|  | @ -51,7 +51,7 @@ type MigrateRepoOption struct { | |||
| } | ||||
| 
 | ||||
| // Validate the MigrateRepoOption struct | ||||
| func (opt *MigrateRepoOption) Validate() error { | ||||
| func (opt *MigrateRepoOption) Validate(c *Client) error { | ||||
| 	// check user options | ||||
| 	if len(opt.CloneAddr) == 0 { | ||||
| 		return fmt.Errorf("CloneAddr required") | ||||
|  | @ -69,6 +69,15 @@ func (opt *MigrateRepoOption) Validate() error { | |||
| 		if len(opt.AuthToken) == 0 { | ||||
| 			return fmt.Errorf("github require token authentication") | ||||
| 		} | ||||
| 	case GitServiceGitlab, GitServiceGitea: | ||||
| 		if len(opt.AuthToken) == 0 { | ||||
| 			return fmt.Errorf("%s require token authentication", opt.Service) | ||||
| 		} | ||||
| 		// Gitlab is supported since 1.12.0 but api cant handle it until 1.13.0 | ||||
| 		// https://github.com/go-gitea/gitea/pull/12672 | ||||
| 		if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil { | ||||
| 			return fmt.Errorf("migrate from service %s need gitea >= 1.13.0", opt.Service) | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | @ -78,11 +87,11 @@ func (opt *MigrateRepoOption) Validate() error { | |||
| // To migrate a repository for a organization, the authenticated user must be a | ||||
| // owner of the specified organization. | ||||
| func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, error) { | ||||
| 	if err := opt.Validate(); err != nil { | ||||
| 	if err := opt.Validate(c); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		if len(opt.AuthToken) != 0 { | ||||
| 			// gitea <= 1.12 dont understand AuthToken | ||||
| 			opt.AuthUsername = opt.AuthToken | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/repo_transfer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/code.gitea.io/sdk/gitea/repo_transfer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,7 +20,7 @@ type TransferRepoOption struct { | |||
| 
 | ||||
| // TransferRepo transfers the ownership of a repository | ||||
| func (c *Client) TransferRepo(owner, reponame string, opt TransferRepoOption) (*Repository, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	body, err := json.Marshal(&opt) | ||||
|  |  | |||
							
								
								
									
										8
									
								
								vendor/code.gitea.io/sdk/gitea/settings.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/code.gitea.io/sdk/gitea/settings.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -33,7 +33,7 @@ type GlobalAttachmentSettings struct { | |||
| 
 | ||||
| // GetGlobalUISettings get global ui settings witch are exposed by API | ||||
| func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	conf := new(GlobalUISettings) | ||||
|  | @ -43,7 +43,7 @@ func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) { | |||
| 
 | ||||
| // GetGlobalRepoSettings get global repository settings witch are exposed by API | ||||
| func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	conf := new(GlobalRepoSettings) | ||||
|  | @ -53,7 +53,7 @@ func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error) | |||
| 
 | ||||
| // GetGlobalAPISettings get global api settings witch are exposed by it | ||||
| func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	conf := new(GlobalAPISettings) | ||||
|  | @ -63,7 +63,7 @@ func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) { | |||
| 
 | ||||
| // GetGlobalAttachmentSettings get global repository settings witch are exposed by API | ||||
| func (c *Client) GetGlobalAttachmentSettings() (*GlobalAttachmentSettings, *Response, error) { | ||||
| 	if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { | ||||
| 	if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	conf := new(GlobalAttachmentSettings) | ||||
|  |  | |||
							
								
								
									
										26
									
								
								vendor/code.gitea.io/sdk/gitea/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/code.gitea.io/sdk/gitea/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -42,6 +42,32 @@ func (c *Client) CheckServerVersionConstraint(constraint string) error { | |||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // predefined versions only have to be parsed by library once | ||||
| var ( | ||||
| 	version1_10_0, _ = version.NewVersion("1.10.0") | ||||
| 	version1_11_0, _ = version.NewVersion("1.11.0") | ||||
| 	version1_12_0, _ = version.NewVersion("1.12.0") | ||||
| 	version1_13_0, _ = version.NewVersion("1.13.0") | ||||
| ) | ||||
| 
 | ||||
| // checkServerVersionGreaterThanOrEqual is internally used to speed up things and ignore issues with prerelease | ||||
| func (c *Client) checkServerVersionGreaterThanOrEqual(v *version.Version) error { | ||||
| 	c.versionLock.RLock() | ||||
| 	if c.serverVersion == nil { | ||||
| 		c.versionLock.RUnlock() | ||||
| 		if err := c.loadClientServerVersion(); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} else { | ||||
| 		c.versionLock.RUnlock() | ||||
| 	} | ||||
| 
 | ||||
| 	if !c.serverVersion.GreaterThanOrEqual(v) { | ||||
| 		return fmt.Errorf("gitea server at %s is older than %s", c.url, v.Original()) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // loadClientServerVersion init the serverVersion variable | ||||
| func (c *Client) loadClientServerVersion() error { | ||||
| 	c.versionLock.Lock() | ||||
|  |  | |||
							
								
								
									
										22
									
								
								vendor/github.com/asaskevich/govalidator/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/asaskevich/govalidator/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,18 +1,12 @@ | |||
| dist: bionic | ||||
| language: go | ||||
| env: GO111MODULE=on GOFLAGS='-mod vendor' | ||||
| install: true | ||||
| email: false | ||||
| 
 | ||||
| dist: xenial | ||||
| go: | ||||
|   - 1.10 | ||||
|   - 1.11 | ||||
|   - 1.12 | ||||
|   - 1.13 | ||||
|   - tip | ||||
|   - '1.10' | ||||
|   - '1.11' | ||||
|   - '1.12' | ||||
|   - '1.13' | ||||
|   - 'tip' | ||||
| 
 | ||||
| before_script: | ||||
|   - go install github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
| script: | ||||
|   - golangci-lint run       # run a bunch of code checkers/linters in parallel | ||||
|   - go test -v -race ./...  # Run all the tests with the race detector enabled | ||||
|      - go test -coverpkg=./... -coverprofile=coverage.info -timeout=5s | ||||
|      - bash <(curl -s https://codecov.io/bash) | ||||
|  |  | |||
							
								
								
									
										43
									
								
								vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| # Contributor Code of Conduct | ||||
| 
 | ||||
| This project adheres to [The Code Manifesto](http://codemanifesto.com) | ||||
| as its guidelines for contributor interactions. | ||||
| 
 | ||||
| ## The Code Manifesto | ||||
| 
 | ||||
| We want to work in an ecosystem that empowers developers to reach their | ||||
| potential — one that encourages growth and effective collaboration. A space | ||||
| that is safe for all. | ||||
| 
 | ||||
| A space such as this benefits everyone that participates in it. It encourages | ||||
| new developers to enter our field. It is through discussion and collaboration | ||||
| that we grow, and through growth that we improve. | ||||
| 
 | ||||
| In the effort to create such a place, we hold to these values: | ||||
| 
 | ||||
| 1. **Discrimination limits us.** This includes discrimination on the basis of | ||||
|    race, gender, sexual orientation, gender identity, age, nationality, | ||||
|    technology and any other arbitrary exclusion of a group of people. | ||||
| 2. **Boundaries honor us.** Your comfort levels are not everyone’s comfort | ||||
|    levels. Remember that, and if brought to your attention, heed it. | ||||
| 3. **We are our biggest assets.** None of us were born masters of our trade. | ||||
|    Each of us has been helped along the way. Return that favor, when and where | ||||
|    you can. | ||||
| 4. **We are resources for the future.** As an extension of #3, share what you | ||||
|    know. Make yourself a resource to help those that come after you. | ||||
| 5. **Respect defines us.** Treat others as you wish to be treated. Make your | ||||
|    discussions, criticisms and debates from a position of respectfulness. Ask | ||||
|    yourself, is it true? Is it necessary? Is it constructive? Anything less is | ||||
|    unacceptable. | ||||
| 6. **Reactions require grace.** Angry responses are valid, but abusive language | ||||
|    and vindictive actions are toxic. When something happens that offends you, | ||||
|    handle it assertively, but be respectful. Escalate reasonably, and try to | ||||
|    allow the offender an opportunity to explain themselves, and possibly | ||||
|    correct the issue. | ||||
| 7. **Opinions are just that: opinions.** Each and every one of us, due to our | ||||
|    background and upbringing, have varying opinions. That is perfectly | ||||
|    acceptable. Remember this: if you respect your own opinions, you should | ||||
|    respect the opinions of others. | ||||
| 8. **To err is human.** You might not intend it, but mistakes do happen and | ||||
|    contribute to build experience. Tolerate honest mistakes, and don't | ||||
|    hesitate to apologize if you make one yourself. | ||||
							
								
								
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,6 @@ | |||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2014 Alex Saskevich | ||||
| Copyright (c) 2014-2020 Alex Saskevich | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
|  |  | |||
							
								
								
									
										9
									
								
								vendor/github.com/asaskevich/govalidator/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/asaskevich/govalidator/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,7 +1,8 @@ | |||
| govalidator | ||||
| =========== | ||||
| [](https://gitter.im/asaskevich/govalidator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [](https://godoc.org/github.com/asaskevich/govalidator) [](https://coveralls.io/r/asaskevich/govalidator?branch=master) [](https://app.wercker.com/project/bykey/1ec990b09ea86c910d5f08b0e02c6043) | ||||
| [](https://travis-ci.org/asaskevich/govalidator) [](https://goreportcard.com/report/github.com/asaskevich/govalidator) [](http://go-search.org/view?id=github.com%2Fasaskevich%2Fgovalidator) [](#backers) [](#sponsors) [](https://app.fossa.io/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator?ref=badge_shield) | ||||
| [](https://gitter.im/asaskevich/govalidator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [](https://godoc.org/github.com/asaskevich/govalidator) | ||||
| [](https://travis-ci.org/asaskevich/govalidator) | ||||
| [](https://codecov.io/gh/asaskevich/govalidator) [](https://goreportcard.com/report/github.com/asaskevich/govalidator) [](http://go-search.org/view?id=github.com%2Fasaskevich%2Fgovalidator) [](#backers) [](#sponsors) [](https://app.fossa.io/projects/git%2Bgithub.com%2Fasaskevich%2Fgovalidator?ref=badge_shield) | ||||
| 
 | ||||
| A package of validators and sanitizers for strings, structs and collections. Based on [validator.js](https://github.com/chriso/validator.js). | ||||
| 
 | ||||
|  | @ -279,7 +280,7 @@ type User	struct { | |||
|   Age  int         `valid:"type(int)"` | ||||
|   Meta interface{} `valid:"type(string)"` | ||||
| } | ||||
| result, err := govalidator.ValidateStruct(user{"Bob", 20, "meta"}) | ||||
| result, err := govalidator.ValidateStruct(User{"Bob", 20, "meta"}) | ||||
| if err != nil { | ||||
| 	println("error: " + err.Error()) | ||||
| } | ||||
|  | @ -392,6 +393,8 @@ Validators with parameters | |||
| "matches(pattern)": StringMatches, | ||||
| "in(string1|string2|...|stringN)": IsIn, | ||||
| "rsapub(keylength)" : IsRsaPub, | ||||
| "minstringlength(int): MinStringLength, | ||||
| "maxstringlength(int): MaxStringLength, | ||||
| ``` | ||||
| Validators with parameters for any type | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										29
									
								
								vendor/github.com/asaskevich/govalidator/arrays.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/asaskevich/govalidator/arrays.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -9,6 +9,35 @@ type ResultIterator func(interface{}, int) interface{} | |||
| // ConditionIterator is the function that accepts element of slice/array and its index and returns boolean | ||||
| type ConditionIterator func(interface{}, int) bool | ||||
| 
 | ||||
| // ReduceIterator is the function that accepts two element of slice/array and returns result of merging those values | ||||
| type ReduceIterator func(interface{}, interface{}) interface{} | ||||
| 
 | ||||
| // Some validates that any item of array corresponds to ConditionIterator. Returns boolean. | ||||
| func Some(array []interface{}, iterator ConditionIterator) bool { | ||||
| 	res := false | ||||
| 	for index, data := range array { | ||||
| 		res = res || iterator(data, index) | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| // Every validates that every item of array corresponds to ConditionIterator. Returns boolean. | ||||
| func Every(array []interface{}, iterator ConditionIterator) bool { | ||||
| 	res := true | ||||
| 	for index, data := range array { | ||||
| 		res = res && iterator(data, index) | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| // Reduce boils down a list of values into a single value by ReduceIterator | ||||
| func Reduce(array []interface{}, iterator ReduceIterator, initialValue interface{}) interface{} { | ||||
| 	for _, data := range array { | ||||
| 		initialValue = iterator(initialValue, data) | ||||
| 	} | ||||
| 	return initialValue | ||||
| } | ||||
| 
 | ||||
| // Each iterates over the slice and apply Iterator to every item | ||||
| func Each(array []interface{}, iterator Iterator) { | ||||
| 	for index, data := range array { | ||||
|  |  | |||
							
								
								
									
										31
									
								
								vendor/github.com/asaskevich/govalidator/converter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/asaskevich/govalidator/converter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -10,7 +10,7 @@ import ( | |||
| // ToString convert the input to a string. | ||||
| func ToString(obj interface{}) string { | ||||
| 	res := fmt.Sprintf("%v", obj) | ||||
| 	return string(res) | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| // ToJSON convert the input to a valid JSON string | ||||
|  | @ -23,12 +23,27 @@ func ToJSON(obj interface{}) (string, error) { | |||
| } | ||||
| 
 | ||||
| // ToFloat convert the input string to a float, or 0.0 if the input is not a float. | ||||
| func ToFloat(str string) (float64, error) { | ||||
| 	res, err := strconv.ParseFloat(str, 64) | ||||
| func ToFloat(value interface{}) (res float64, err error) { | ||||
| 	val := reflect.ValueOf(value) | ||||
| 
 | ||||
| 	switch value.(type) { | ||||
| 	case int, int8, int16, int32, int64: | ||||
| 		res = float64(val.Int()) | ||||
| 	case uint, uint8, uint16, uint32, uint64: | ||||
| 		res = float64(val.Uint()) | ||||
| 	case float32, float64: | ||||
| 		res = val.Float() | ||||
| 	case string: | ||||
| 		res, err = strconv.ParseFloat(val.String(), 64) | ||||
| 		if err != nil { | ||||
| 		res = 0.0 | ||||
| 			res = 0 | ||||
| 		} | ||||
| 	return res, err | ||||
| 	default: | ||||
| 		err = fmt.Errorf("ToInt: unknown interface type %T", value) | ||||
| 		res = 0 | ||||
| 	} | ||||
| 
 | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer. | ||||
|  | @ -40,6 +55,8 @@ func ToInt(value interface{}) (res int64, err error) { | |||
| 		res = val.Int() | ||||
| 	case uint, uint8, uint16, uint32, uint64: | ||||
| 		res = int64(val.Uint()) | ||||
| 	case float32, float64: | ||||
| 		res = int64(val.Float()) | ||||
| 	case string: | ||||
| 		if IsInt(val.String()) { | ||||
| 			res, err = strconv.ParseInt(val.String(), 0, 64) | ||||
|  | @ -47,11 +64,11 @@ func ToInt(value interface{}) (res int64, err error) { | |||
| 				res = 0 | ||||
| 			} | ||||
| 		} else { | ||||
| 			err = fmt.Errorf("math: square root of negative number %g", value) | ||||
| 			err = fmt.Errorf("ToInt: invalid numeric format %g", value) | ||||
| 			res = 0 | ||||
| 		} | ||||
| 	default: | ||||
| 		err = fmt.Errorf("math: square root of negative number %g", value) | ||||
| 		err = fmt.Errorf("ToInt: unknown interface type %T", value) | ||||
| 		res = 0 | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/asaskevich/govalidator/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,3 @@ | |||
| module github.com/asaskevich/govalidator | ||||
| 
 | ||||
| go 1.12 | ||||
| go 1.13 | ||||
|  |  | |||
							
								
								
									
										37
									
								
								vendor/github.com/asaskevich/govalidator/numerics.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								vendor/github.com/asaskevich/govalidator/numerics.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -2,7 +2,6 @@ package govalidator | |||
| 
 | ||||
| import ( | ||||
| 	"math" | ||||
| 	"reflect" | ||||
| ) | ||||
| 
 | ||||
| // Abs returns absolute value of number | ||||
|  | @ -41,7 +40,7 @@ func IsNonPositive(value float64) bool { | |||
| 	return value <= 0 | ||||
| } | ||||
| 
 | ||||
| // InRange returns true if value lies between left and right border | ||||
| // InRangeInt returns true if value lies between left and right border | ||||
| func InRangeInt(value, left, right interface{}) bool { | ||||
| 	value64, _ := ToInt(value) | ||||
| 	left64, _ := ToInt(left) | ||||
|  | @ -52,7 +51,7 @@ func InRangeInt(value, left, right interface{}) bool { | |||
| 	return value64 >= left64 && value64 <= right64 | ||||
| } | ||||
| 
 | ||||
| // InRange returns true if value lies between left and right border | ||||
| // InRangeFloat32 returns true if value lies between left and right border | ||||
| func InRangeFloat32(value, left, right float32) bool { | ||||
| 	if left > right { | ||||
| 		left, right = right, left | ||||
|  | @ -60,7 +59,7 @@ func InRangeFloat32(value, left, right float32) bool { | |||
| 	return value >= left && value <= right | ||||
| } | ||||
| 
 | ||||
| // InRange returns true if value lies between left and right border | ||||
| // InRangeFloat64 returns true if value lies between left and right border | ||||
| func InRangeFloat64(value, left, right float64) bool { | ||||
| 	if left > right { | ||||
| 		left, right = right, left | ||||
|  | @ -68,20 +67,24 @@ func InRangeFloat64(value, left, right float64) bool { | |||
| 	return value >= left && value <= right | ||||
| } | ||||
| 
 | ||||
| // InRange returns true if value lies between left and right border, generic type to handle int, float32 or float64, all types must the same type | ||||
| // InRange returns true if value lies between left and right border, generic type to handle int, float32, float64 and string. | ||||
| // All types must the same type. | ||||
| // False if value doesn't lie in range or if it incompatible or not comparable | ||||
| func InRange(value interface{}, left interface{}, right interface{}) bool { | ||||
| 
 | ||||
| 	reflectValue := reflect.TypeOf(value).Kind() | ||||
| 	reflectLeft := reflect.TypeOf(left).Kind() | ||||
| 	reflectRight := reflect.TypeOf(right).Kind() | ||||
| 
 | ||||
| 	if reflectValue == reflect.Int && reflectLeft == reflect.Int && reflectRight == reflect.Int { | ||||
| 		return InRangeInt(value.(int), left.(int), right.(int)) | ||||
| 	} else if reflectValue == reflect.Float32 && reflectLeft == reflect.Float32 && reflectRight == reflect.Float32 { | ||||
| 		return InRangeFloat32(value.(float32), left.(float32), right.(float32)) | ||||
| 	} else if reflectValue == reflect.Float64 && reflectLeft == reflect.Float64 && reflectRight == reflect.Float64 { | ||||
| 		return InRangeFloat64(value.(float64), left.(float64), right.(float64)) | ||||
| 	} else { | ||||
| 	switch value.(type) { | ||||
| 	case int: | ||||
| 		intValue, _ := ToInt(value) | ||||
| 		intLeft, _ := ToInt(left) | ||||
| 		intRight, _ := ToInt(right) | ||||
| 		return InRangeInt(intValue, intLeft, intRight) | ||||
| 	case float32, float64: | ||||
| 		intValue, _ := ToFloat(value) | ||||
| 		intLeft, _ := ToFloat(left) | ||||
| 		intRight, _ := ToFloat(right) | ||||
| 		return InRangeFloat64(intValue, intLeft, intRight) | ||||
| 	case string: | ||||
| 		return value.(string) >= left.(string) && value.(string) <= right.(string) | ||||
| 	default: | ||||
| 		return false | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/asaskevich/govalidator/patterns.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/asaskevich/govalidator/patterns.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -38,7 +38,7 @@ const ( | |||
| 	URLPort           string = `(:(\d{1,5}))` | ||||
| 	URLIP             string = `([1-9]\d?|1\d\d|2[01]\d|22[0-3]|24\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){2}(?:\.([0-9]\d?|1\d\d|2[0-4]\d|25[0-5]))` | ||||
| 	URLSubdomain      string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))` | ||||
| 	URL               string = `^` + URLSchema + `?` + URLUsername + `?` + `((` + URLIP + `|(\[` + IP + `\])|(([a-zA-Z0-9]([a-zA-Z0-9-_]+)?[a-zA-Z0-9]([-\.][a-zA-Z0-9]+)*)|(` + URLSubdomain + `?))?(([a-zA-Z\x{00a1}-\x{ffff}0-9]+-?-?)*[a-zA-Z\x{00a1}-\x{ffff}0-9]+)(?:\.([a-zA-Z\x{00a1}-\x{ffff}]{1,}))?))\.?` + URLPort + `?` + URLPath + `?$` | ||||
| 	URL                      = `^` + URLSchema + `?` + URLUsername + `?` + `((` + URLIP + `|(\[` + IP + `\])|(([a-zA-Z0-9]([a-zA-Z0-9-_]+)?[a-zA-Z0-9]([-\.][a-zA-Z0-9]+)*)|(` + URLSubdomain + `?))?(([a-zA-Z\x{00a1}-\x{ffff}0-9]+-?-?)*[a-zA-Z\x{00a1}-\x{ffff}0-9]+)(?:\.([a-zA-Z\x{00a1}-\x{ffff}]{1,}))?))\.?` + URLPort + `?` + URLPath + `?$` | ||||
| 	SSN               string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$` | ||||
| 	WinPath           string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$` | ||||
| 	UnixPath          string = `^(/[^/\x00]*)+/?$` | ||||
|  | @ -49,6 +49,7 @@ const ( | |||
| 	hasWhitespace     string = ".*[[:space:]]" | ||||
| 	hasWhitespaceOnly string = "^[[:space:]]+$" | ||||
| 	IMEI              string = "^[0-9a-f]{14}$|^\\d{15}$|^\\d{18}$" | ||||
| 	IMSI              string = "^\\d{14,15}$" | ||||
| ) | ||||
| 
 | ||||
| // Used by IsFilePath func | ||||
|  | @ -102,4 +103,5 @@ var ( | |||
| 	rxHasWhitespace     = regexp.MustCompile(hasWhitespace) | ||||
| 	rxHasWhitespaceOnly = regexp.MustCompile(hasWhitespaceOnly) | ||||
| 	rxIMEI              = regexp.MustCompile(IMEI) | ||||
| 	rxIMSI              = regexp.MustCompile(IMSI) | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										10
									
								
								vendor/github.com/asaskevich/govalidator/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/asaskevich/govalidator/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,8 +14,10 @@ type Validator func(str string) bool | |||
| // The second parameter should be the context (in the case of validating a struct: the whole object being validated). | ||||
| type CustomTypeValidator func(i interface{}, o interface{}) bool | ||||
| 
 | ||||
| // ParamValidator is a wrapper for validator functions that accepts additional parameters. | ||||
| // ParamValidator is a wrapper for validator functions that accept additional parameters. | ||||
| type ParamValidator func(str string, params ...string) bool | ||||
| 
 | ||||
| // InterfaceParamValidator is a wrapper for functions that accept variants parameters for an interface value | ||||
| type InterfaceParamValidator func(in interface{}, params ...string) bool | ||||
| type tagOptionsMap map[string]tagOption | ||||
| 
 | ||||
|  | @ -447,10 +449,10 @@ var ISO4217List = []string{ | |||
| 	"PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", | ||||
| 	"QAR", | ||||
| 	"RON", "RSD", "RUB", "RWF", | ||||
| 	"SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "SVC", "SYP", "SZL", | ||||
| 	"SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "STN", "SVC", "SYP", "SZL", | ||||
| 	"THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", | ||||
| 	"UAH", "UGX", "USD", "USN", "UYI", "UYU", "UZS", | ||||
| 	"VEF", "VND", "VUV", | ||||
| 	"UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", | ||||
| 	"VEF", "VES", "VND", "VUV", | ||||
| 	"WST", | ||||
| 	"XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", | ||||
| 	"YER", | ||||
|  |  | |||
							
								
								
									
										293
									
								
								vendor/github.com/asaskevich/govalidator/validator.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										293
									
								
								vendor/github.com/asaskevich/govalidator/validator.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -32,7 +32,7 @@ var ( | |||
| 
 | ||||
| const maxURLRuneCount = 2083 | ||||
| const minURLRuneCount = 3 | ||||
| const RF3339WithoutZone = "2006-01-02T15:04:05" | ||||
| const rfc3339WithoutZone = "2006-01-02T15:04:05" | ||||
| 
 | ||||
| // SetFieldsRequiredByDefault causes validation to fail when struct fields | ||||
| // do not include validations or are not explicitly marked as exempt (using `valid:"-"` or `valid:"email,optional"`). | ||||
|  | @ -63,13 +63,13 @@ func SetNilPtrAllowedByRequired(value bool) { | |||
| 	nilPtrAllowedByRequired = value | ||||
| } | ||||
| 
 | ||||
| // IsEmail check if the string is an email. | ||||
| // IsEmail checks if the string is an email. | ||||
| func IsEmail(str string) bool { | ||||
| 	// TODO uppercase letters are not supported | ||||
| 	return rxEmail.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsExistingEmail check if the string is an email of existing domain | ||||
| // IsExistingEmail checks if the string is an email of existing domain | ||||
| func IsExistingEmail(email string) bool { | ||||
| 
 | ||||
| 	if len(email) < 6 || len(email) > 254 { | ||||
|  | @ -84,13 +84,13 @@ func IsExistingEmail(email string) bool { | |||
| 	if len(user) > 64 { | ||||
| 		return false | ||||
| 	} | ||||
| 	if userDotRegexp.MatchString(user) || !userRegexp.MatchString(user) || !hostRegexp.MatchString(host) { | ||||
| 		return false | ||||
| 	} | ||||
| 	switch host { | ||||
| 	case "localhost", "example.com": | ||||
| 		return true | ||||
| 	} | ||||
| 	if userDotRegexp.MatchString(user) || !userRegexp.MatchString(user) || !hostRegexp.MatchString(host) { | ||||
| 		return false | ||||
| 	} | ||||
| 	if _, err := net.LookupMX(host); err != nil { | ||||
| 		if _, err := net.LookupIP(host); err != nil { | ||||
| 			return false | ||||
|  | @ -100,7 +100,7 @@ func IsExistingEmail(email string) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsURL check if the string is an URL. | ||||
| // IsURL checks if the string is an URL. | ||||
| func IsURL(str string) bool { | ||||
| 	if str == "" || utf8.RuneCountInString(str) >= maxURLRuneCount || len(str) <= minURLRuneCount || strings.HasPrefix(str, ".") { | ||||
| 		return false | ||||
|  | @ -124,7 +124,7 @@ func IsURL(str string) bool { | |||
| 	return rxURL.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsRequestURL check if the string rawurl, assuming | ||||
| // IsRequestURL checks if the string rawurl, assuming | ||||
| // it was received in an HTTP request, is a valid | ||||
| // URL confirm to RFC 3986 | ||||
| func IsRequestURL(rawurl string) bool { | ||||
|  | @ -138,7 +138,7 @@ func IsRequestURL(rawurl string) bool { | |||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsRequestURI check if the string rawurl, assuming | ||||
| // IsRequestURI checks if the string rawurl, assuming | ||||
| // it was received in an HTTP request, is an | ||||
| // absolute URI or an absolute path. | ||||
| func IsRequestURI(rawurl string) bool { | ||||
|  | @ -146,7 +146,7 @@ func IsRequestURI(rawurl string) bool { | |||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsAlpha check if the string contains only letters (a-zA-Z). Empty string is valid. | ||||
| // IsAlpha checks if the string contains only letters (a-zA-Z). Empty string is valid. | ||||
| func IsAlpha(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -154,7 +154,7 @@ func IsAlpha(str string) bool { | |||
| 	return rxAlpha.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| //IsUTFLetter check if the string contains only unicode letter characters. | ||||
| //IsUTFLetter checks if the string contains only unicode letter characters. | ||||
| //Similar to IsAlpha but for all languages. Empty string is valid. | ||||
| func IsUTFLetter(str string) bool { | ||||
| 	if IsNull(str) { | ||||
|  | @ -170,7 +170,7 @@ func IsUTFLetter(str string) bool { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| // IsAlphanumeric check if the string contains only letters and numbers. Empty string is valid. | ||||
| // IsAlphanumeric checks if the string contains only letters and numbers. Empty string is valid. | ||||
| func IsAlphanumeric(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -178,7 +178,7 @@ func IsAlphanumeric(str string) bool { | |||
| 	return rxAlphanumeric.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsUTFLetterNumeric check if the string contains only unicode letters and numbers. Empty string is valid. | ||||
| // IsUTFLetterNumeric checks if the string contains only unicode letters and numbers. Empty string is valid. | ||||
| func IsUTFLetterNumeric(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -192,7 +192,7 @@ func IsUTFLetterNumeric(str string) bool { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| // IsNumeric check if the string contains only numbers. Empty string is valid. | ||||
| // IsNumeric checks if the string contains only numbers. Empty string is valid. | ||||
| func IsNumeric(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -200,7 +200,7 @@ func IsNumeric(str string) bool { | |||
| 	return rxNumeric.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsUTFNumeric check if the string contains only unicode numbers of any kind. | ||||
| // IsUTFNumeric checks if the string contains only unicode numbers of any kind. | ||||
| // Numbers can be 0-9 but also Fractions ¾,Roman Ⅸ and Hangzhou 〩. Empty string is valid. | ||||
| func IsUTFNumeric(str string) bool { | ||||
| 	if IsNull(str) { | ||||
|  | @ -222,7 +222,7 @@ func IsUTFNumeric(str string) bool { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| // IsUTFDigit check if the string contains only unicode radix-10 decimal digits. Empty string is valid. | ||||
| // IsUTFDigit checks if the string contains only unicode radix-10 decimal digits. Empty string is valid. | ||||
| func IsUTFDigit(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -243,22 +243,22 @@ func IsUTFDigit(str string) bool { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| // IsHexadecimal check if the string is a hexadecimal number. | ||||
| // IsHexadecimal checks if the string is a hexadecimal number. | ||||
| func IsHexadecimal(str string) bool { | ||||
| 	return rxHexadecimal.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsHexcolor check if the string is a hexadecimal color. | ||||
| // IsHexcolor checks if the string is a hexadecimal color. | ||||
| func IsHexcolor(str string) bool { | ||||
| 	return rxHexcolor.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsRGBcolor check if the string is a valid RGB color in form rgb(RRR, GGG, BBB). | ||||
| // IsRGBcolor checks if the string is a valid RGB color in form rgb(RRR, GGG, BBB). | ||||
| func IsRGBcolor(str string) bool { | ||||
| 	return rxRGBcolor.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsLowerCase check if the string is lowercase. Empty string is valid. | ||||
| // IsLowerCase checks if the string is lowercase. Empty string is valid. | ||||
| func IsLowerCase(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -266,7 +266,7 @@ func IsLowerCase(str string) bool { | |||
| 	return str == strings.ToLower(str) | ||||
| } | ||||
| 
 | ||||
| // IsUpperCase check if the string is uppercase. Empty string is valid. | ||||
| // IsUpperCase checks if the string is uppercase. Empty string is valid. | ||||
| func IsUpperCase(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -274,7 +274,7 @@ func IsUpperCase(str string) bool { | |||
| 	return str == strings.ToUpper(str) | ||||
| } | ||||
| 
 | ||||
| // HasLowerCase check if the string contains at least 1 lowercase. Empty string is valid. | ||||
| // HasLowerCase checks if the string contains at least 1 lowercase. Empty string is valid. | ||||
| func HasLowerCase(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -282,7 +282,7 @@ func HasLowerCase(str string) bool { | |||
| 	return rxHasLowerCase.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // HasUpperCase check if the string contains as least 1 uppercase. Empty string is valid. | ||||
| // HasUpperCase checks if the string contains as least 1 uppercase. Empty string is valid. | ||||
| func HasUpperCase(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -290,7 +290,7 @@ func HasUpperCase(str string) bool { | |||
| 	return rxHasUpperCase.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsInt check if the string is an integer. Empty string is valid. | ||||
| // IsInt checks if the string is an integer. Empty string is valid. | ||||
| func IsInt(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -298,12 +298,12 @@ func IsInt(str string) bool { | |||
| 	return rxInt.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsFloat check if the string is a float. | ||||
| // IsFloat checks if the string is a float. | ||||
| func IsFloat(str string) bool { | ||||
| 	return str != "" && rxFloat.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsDivisibleBy check if the string is a number that's divisible by another. | ||||
| // IsDivisibleBy checks if the string is a number that's divisible by another. | ||||
| // If second argument is not valid integer or zero, it's return false. | ||||
| // Otherwise, if first argument is not valid integer or zero, it's return true (Invalid string converts to zero). | ||||
| func IsDivisibleBy(str, num string) bool { | ||||
|  | @ -316,12 +316,12 @@ func IsDivisibleBy(str, num string) bool { | |||
| 	return (p == 0) || (p%q == 0) | ||||
| } | ||||
| 
 | ||||
| // IsNull check if the string is null. | ||||
| // IsNull checks if the string is null. | ||||
| func IsNull(str string) bool { | ||||
| 	return len(str) == 0 | ||||
| } | ||||
| 
 | ||||
| // IsNotNull check if the string is not null. | ||||
| // IsNotNull checks if the string is not null. | ||||
| func IsNotNull(str string) bool { | ||||
| 	return !IsNull(str) | ||||
| } | ||||
|  | @ -336,32 +336,32 @@ func HasWhitespace(str string) bool { | |||
| 	return len(str) > 0 && rxHasWhitespace.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsByteLength check if the string's length (in bytes) falls in a range. | ||||
| // IsByteLength checks if the string's length (in bytes) falls in a range. | ||||
| func IsByteLength(str string, min, max int) bool { | ||||
| 	return len(str) >= min && len(str) <= max | ||||
| } | ||||
| 
 | ||||
| // IsUUIDv3 check if the string is a UUID version 3. | ||||
| // IsUUIDv3 checks if the string is a UUID version 3. | ||||
| func IsUUIDv3(str string) bool { | ||||
| 	return rxUUID3.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsUUIDv4 check if the string is a UUID version 4. | ||||
| // IsUUIDv4 checks if the string is a UUID version 4. | ||||
| func IsUUIDv4(str string) bool { | ||||
| 	return rxUUID4.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsUUIDv5 check if the string is a UUID version 5. | ||||
| // IsUUIDv5 checks if the string is a UUID version 5. | ||||
| func IsUUIDv5(str string) bool { | ||||
| 	return rxUUID5.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsUUID check if the string is a UUID (version 3, 4 or 5). | ||||
| // IsUUID checks if the string is a UUID (version 3, 4 or 5). | ||||
| func IsUUID(str string) bool { | ||||
| 	return rxUUID.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsCreditCard check if the string is a credit card. | ||||
| // IsCreditCard checks if the string is a credit card. | ||||
| func IsCreditCard(str string) bool { | ||||
| 	sanitized := notNumberRegexp.ReplaceAllString(str, "") | ||||
| 	if !rxCreditCard.MatchString(sanitized) { | ||||
|  | @ -377,7 +377,7 @@ func IsCreditCard(str string) bool { | |||
| 		if shouldDouble { | ||||
| 			tmpNum *= 2 | ||||
| 			if tmpNum >= 10 { | ||||
| 				sum += ((tmpNum % 10) + 1) | ||||
| 				sum += (tmpNum % 10) + 1 | ||||
| 			} else { | ||||
| 				sum += tmpNum | ||||
| 			} | ||||
|  | @ -390,18 +390,18 @@ func IsCreditCard(str string) bool { | |||
| 	return sum%10 == 0 | ||||
| } | ||||
| 
 | ||||
| // IsISBN10 check if the string is an ISBN version 10. | ||||
| // IsISBN10 checks if the string is an ISBN version 10. | ||||
| func IsISBN10(str string) bool { | ||||
| 	return IsISBN(str, 10) | ||||
| } | ||||
| 
 | ||||
| // IsISBN13 check if the string is an ISBN version 13. | ||||
| // IsISBN13 checks if the string is an ISBN version 13. | ||||
| func IsISBN13(str string) bool { | ||||
| 	return IsISBN(str, 13) | ||||
| } | ||||
| 
 | ||||
| // IsISBN check if the string is an ISBN (version 10 or 13). | ||||
| // If version value is not equal to 10 or 13, it will be check both variants. | ||||
| // IsISBN checks if the string is an ISBN (version 10 or 13). | ||||
| // If version value is not equal to 10 or 13, it will be checks both variants. | ||||
| func IsISBN(str string, version int) bool { | ||||
| 	sanitized := whiteSpacesAndMinus.ReplaceAllString(str, "") | ||||
| 	var checksum int32 | ||||
|  | @ -435,13 +435,13 @@ func IsISBN(str string, version int) bool { | |||
| 	return IsISBN(str, 10) || IsISBN(str, 13) | ||||
| } | ||||
| 
 | ||||
| // IsJSON check if the string is valid JSON (note: uses json.Unmarshal). | ||||
| // IsJSON checks if the string is valid JSON (note: uses json.Unmarshal). | ||||
| func IsJSON(str string) bool { | ||||
| 	var js json.RawMessage | ||||
| 	return json.Unmarshal([]byte(str), &js) == nil | ||||
| } | ||||
| 
 | ||||
| // IsMultibyte check if the string contains one or more multibyte chars. Empty string is valid. | ||||
| // IsMultibyte checks if the string contains one or more multibyte chars. Empty string is valid. | ||||
| func IsMultibyte(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -449,7 +449,7 @@ func IsMultibyte(str string) bool { | |||
| 	return rxMultibyte.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsASCII check if the string contains ASCII chars only. Empty string is valid. | ||||
| // IsASCII checks if the string contains ASCII chars only. Empty string is valid. | ||||
| func IsASCII(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -457,7 +457,7 @@ func IsASCII(str string) bool { | |||
| 	return rxASCII.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsPrintableASCII check if the string contains printable ASCII chars only. Empty string is valid. | ||||
| // IsPrintableASCII checks if the string contains printable ASCII chars only. Empty string is valid. | ||||
| func IsPrintableASCII(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -465,7 +465,7 @@ func IsPrintableASCII(str string) bool { | |||
| 	return rxPrintableASCII.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsFullWidth check if the string contains any full-width chars. Empty string is valid. | ||||
| // IsFullWidth checks if the string contains any full-width chars. Empty string is valid. | ||||
| func IsFullWidth(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -473,7 +473,7 @@ func IsFullWidth(str string) bool { | |||
| 	return rxFullWidth.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsHalfWidth check if the string contains any half-width chars. Empty string is valid. | ||||
| // IsHalfWidth checks if the string contains any half-width chars. Empty string is valid. | ||||
| func IsHalfWidth(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -481,7 +481,7 @@ func IsHalfWidth(str string) bool { | |||
| 	return rxHalfWidth.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsVariableWidth check if the string contains a mixture of full and half-width chars. Empty string is valid. | ||||
| // IsVariableWidth checks if the string contains a mixture of full and half-width chars. Empty string is valid. | ||||
| func IsVariableWidth(str string) bool { | ||||
| 	if IsNull(str) { | ||||
| 		return true | ||||
|  | @ -489,12 +489,12 @@ func IsVariableWidth(str string) bool { | |||
| 	return rxHalfWidth.MatchString(str) && rxFullWidth.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsBase64 check if a string is base64 encoded. | ||||
| // IsBase64 checks if a string is base64 encoded. | ||||
| func IsBase64(str string) bool { | ||||
| 	return rxBase64.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsFilePath check is a string is Win or Unix file path and returns it's type. | ||||
| // IsFilePath checks is a string is Win or Unix file path and returns it's type. | ||||
| func IsFilePath(str string) (bool, int) { | ||||
| 	if rxWinPath.MatchString(str) { | ||||
| 		//check windows path limit see: | ||||
|  | @ -686,25 +686,25 @@ func IsPort(str string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsIPv4 check if the string is an IP version 4. | ||||
| // IsIPv4 checks if the string is an IP version 4. | ||||
| func IsIPv4(str string) bool { | ||||
| 	ip := net.ParseIP(str) | ||||
| 	return ip != nil && strings.Contains(str, ".") | ||||
| } | ||||
| 
 | ||||
| // IsIPv6 check if the string is an IP version 6. | ||||
| // IsIPv6 checks if the string is an IP version 6. | ||||
| func IsIPv6(str string) bool { | ||||
| 	ip := net.ParseIP(str) | ||||
| 	return ip != nil && strings.Contains(str, ":") | ||||
| } | ||||
| 
 | ||||
| // IsCIDR check if the string is an valid CIDR notiation (IPV4 & IPV6) | ||||
| // IsCIDR checks if the string is an valid CIDR notiation (IPV4 & IPV6) | ||||
| func IsCIDR(str string) bool { | ||||
| 	_, _, err := net.ParseCIDR(str) | ||||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsMAC check if a string is valid MAC address. | ||||
| // IsMAC checks if a string is valid MAC address. | ||||
| // Possible MAC formats: | ||||
| // 01:23:45:67:89:ab | ||||
| // 01:23:45:67:89:ab:cd:ef | ||||
|  | @ -722,27 +722,70 @@ func IsHost(str string) bool { | |||
| 	return IsIP(str) || IsDNSName(str) | ||||
| } | ||||
| 
 | ||||
| // IsMongoID check if the string is a valid hex-encoded representation of a MongoDB ObjectId. | ||||
| // IsMongoID checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. | ||||
| func IsMongoID(str string) bool { | ||||
| 	return rxHexadecimal.MatchString(str) && (len(str) == 24) | ||||
| } | ||||
| 
 | ||||
| // IsLatitude check if a string is valid latitude. | ||||
| // IsLatitude checks if a string is valid latitude. | ||||
| func IsLatitude(str string) bool { | ||||
| 	return rxLatitude.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsLongitude check if a string is valid longitude. | ||||
| // IsLongitude checks if a string is valid longitude. | ||||
| func IsLongitude(str string) bool { | ||||
| 	return rxLongitude.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsIMEI check if a string is valid IMEI | ||||
| // IsIMEI checks if a string is valid IMEI | ||||
| func IsIMEI(str string) bool { | ||||
| 	return rxIMEI.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsRsaPublicKey check if a string is valid public key with provided length | ||||
| // IsIMSI checks if a string is valid IMSI | ||||
| func IsIMSI(str string) bool { | ||||
| 	if !rxIMSI.MatchString(str) { | ||||
| 		return false | ||||
| 	} | ||||
| 
 | ||||
| 	mcc, err := strconv.ParseInt(str[0:3], 10, 32) | ||||
| 	if err != nil { | ||||
| 		return false | ||||
| 	} | ||||
| 
 | ||||
| 	switch mcc { | ||||
| 	case 202, 204, 206, 208, 212, 213, 214, 216, 218, 219: | ||||
| 	case 220, 221, 222, 226, 228, 230, 231, 232, 234, 235: | ||||
| 	case 238, 240, 242, 244, 246, 247, 248, 250, 255, 257: | ||||
| 	case 259, 260, 262, 266, 268, 270, 272, 274, 276, 278: | ||||
| 	case 280, 282, 283, 284, 286, 288, 289, 290, 292, 293: | ||||
| 	case 294, 295, 297, 302, 308, 310, 311, 312, 313, 314: | ||||
| 	case 315, 316, 330, 332, 334, 338, 340, 342, 344, 346: | ||||
| 	case 348, 350, 352, 354, 356, 358, 360, 362, 363, 364: | ||||
| 	case 365, 366, 368, 370, 372, 374, 376, 400, 401, 402: | ||||
| 	case 404, 405, 406, 410, 412, 413, 414, 415, 416, 417: | ||||
| 	case 418, 419, 420, 421, 422, 424, 425, 426, 427, 428: | ||||
| 	case 429, 430, 431, 432, 434, 436, 437, 438, 440, 441: | ||||
| 	case 450, 452, 454, 455, 456, 457, 460, 461, 466, 467: | ||||
| 	case 470, 472, 502, 505, 510, 514, 515, 520, 525, 528: | ||||
| 	case 530, 536, 537, 539, 540, 541, 542, 543, 544, 545: | ||||
| 	case 546, 547, 548, 549, 550, 551, 552, 553, 554, 555: | ||||
| 	case 602, 603, 604, 605, 606, 607, 608, 609, 610, 611: | ||||
| 	case 612, 613, 614, 615, 616, 617, 618, 619, 620, 621: | ||||
| 	case 622, 623, 624, 625, 626, 627, 628, 629, 630, 631: | ||||
| 	case 632, 633, 634, 635, 636, 637, 638, 639, 640, 641: | ||||
| 	case 642, 643, 645, 646, 647, 648, 649, 650, 651, 652: | ||||
| 	case 653, 654, 655, 657, 658, 659, 702, 704, 706, 708: | ||||
| 	case 710, 712, 714, 716, 722, 724, 730, 732, 734, 736: | ||||
| 	case 738, 740, 742, 744, 746, 748, 750, 995: | ||||
| 		return true | ||||
| 	default: | ||||
| 		return false | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsRsaPublicKey checks if a string is valid public key with provided length | ||||
| func IsRsaPublicKey(str string, keylen int) bool { | ||||
| 	bb := bytes.NewBufferString(str) | ||||
| 	pemBytes, err := ioutil.ReadAll(bb) | ||||
|  | @ -796,7 +839,7 @@ func toJSONName(tag string) string { | |||
| 	return name | ||||
| } | ||||
| 
 | ||||
| func PrependPathToErrors(err error, path string) error { | ||||
| func prependPathToErrors(err error, path string) error { | ||||
| 	switch err2 := err.(type) { | ||||
| 	case Error: | ||||
| 		err2.Path = append([]string{path}, err2.Path...) | ||||
|  | @ -804,13 +847,18 @@ func PrependPathToErrors(err error, path string) error { | |||
| 	case Errors: | ||||
| 		errors := err2.Errors() | ||||
| 		for i, err3 := range errors { | ||||
| 			errors[i] = PrependPathToErrors(err3, path) | ||||
| 			errors[i] = prependPathToErrors(err3, path) | ||||
| 		} | ||||
| 		return err2 | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| // ValidateArray performs validation according to condition iterator that validates every element of the array | ||||
| func ValidateArray(array []interface{}, iterator ConditionIterator) bool { | ||||
| 	return Every(array, iterator) | ||||
| } | ||||
| 
 | ||||
| // ValidateMap use validation map for fields. | ||||
| // result will be equal to `false` if there are any errors. | ||||
| // s is the map containing the data to be validated. | ||||
|  | @ -832,7 +880,7 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro | |||
| 			presentResult = false | ||||
| 			var err error | ||||
| 			err = fmt.Errorf("all map keys has to be present in the validation map; got %s", key) | ||||
| 			err = PrependPathToErrors(err, key) | ||||
| 			err = prependPathToErrors(err, key) | ||||
| 			errs = append(errs, err) | ||||
| 		} | ||||
| 		valueField := reflect.ValueOf(value) | ||||
|  | @ -846,13 +894,13 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro | |||
| 			if v, ok := value.(map[string]interface{}); !ok { | ||||
| 				mapResult = false | ||||
| 				err = fmt.Errorf("map validator has to be for the map type only; got %s", valueField.Type().String()) | ||||
| 				err = PrependPathToErrors(err, key) | ||||
| 				err = prependPathToErrors(err, key) | ||||
| 				errs = append(errs, err) | ||||
| 			} else { | ||||
| 				mapResult, err = ValidateMap(v, subValidator) | ||||
| 				if err != nil { | ||||
| 					mapResult = false | ||||
| 					err = PrependPathToErrors(err, key) | ||||
| 					err = prependPathToErrors(err, key) | ||||
| 					errs = append(errs, err) | ||||
| 				} | ||||
| 			} | ||||
|  | @ -863,7 +911,7 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro | |||
| 				var err error | ||||
| 				structResult, err = ValidateStruct(valueField.Interface()) | ||||
| 				if err != nil { | ||||
| 					err = PrependPathToErrors(err, key) | ||||
| 					err = prependPathToErrors(err, key) | ||||
| 					errs = append(errs, err) | ||||
| 				} | ||||
| 			} | ||||
|  | @ -884,13 +932,13 @@ func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, erro | |||
| 		default: | ||||
| 			typeResult = false | ||||
| 			err = fmt.Errorf("map validator has to be either map[string]interface{} or string; got %s", valueField.Type().String()) | ||||
| 			err = PrependPathToErrors(err, key) | ||||
| 			err = prependPathToErrors(err, key) | ||||
| 			errs = append(errs, err) | ||||
| 		} | ||||
| 		result = result && presentResult && typeResult && resultField && structResult && mapResult | ||||
| 		index++ | ||||
| 	} | ||||
| 	// check required keys | ||||
| 	// checks required keys | ||||
| 	requiredResult := true | ||||
| 	for key, value := range m { | ||||
| 		if schema, ok := value.(string); ok { | ||||
|  | @ -949,7 +997,7 @@ func ValidateStruct(s interface{}) (bool, error) { | |||
| 			var err error | ||||
| 			structResult, err = ValidateStruct(valueField.Interface()) | ||||
| 			if err != nil { | ||||
| 				err = PrependPathToErrors(err, typeField.Name) | ||||
| 				err = prependPathToErrors(err, typeField.Name) | ||||
| 				errs = append(errs, err) | ||||
| 			} | ||||
| 		} | ||||
|  | @ -986,6 +1034,42 @@ func ValidateStruct(s interface{}) (bool, error) { | |||
| 	return result, err | ||||
| } | ||||
| 
 | ||||
| // ValidateStructAsync performs async validation of the struct and returns results through the channels | ||||
| func ValidateStructAsync(s interface{}) (<-chan bool, <-chan error) { | ||||
| 	res := make(chan bool) | ||||
| 	errors := make(chan error) | ||||
| 
 | ||||
| 	go func() { | ||||
| 		defer close(res) | ||||
| 		defer close(errors) | ||||
| 
 | ||||
| 		isValid, isFailed := ValidateStruct(s) | ||||
| 
 | ||||
| 		res <- isValid | ||||
| 		errors <- isFailed | ||||
| 	}() | ||||
| 
 | ||||
| 	return res, errors | ||||
| } | ||||
| 
 | ||||
| // ValidateMapAsync performs async validation of the map and returns results through the channels | ||||
| func ValidateMapAsync(s map[string]interface{}, m map[string]interface{}) (<-chan bool, <-chan error) { | ||||
| 	res := make(chan bool) | ||||
| 	errors := make(chan error) | ||||
| 
 | ||||
| 	go func() { | ||||
| 		defer close(res) | ||||
| 		defer close(errors) | ||||
| 
 | ||||
| 		isValid, isFailed := ValidateMap(s, m) | ||||
| 
 | ||||
| 		res <- isValid | ||||
| 		errors <- isFailed | ||||
| 	}() | ||||
| 
 | ||||
| 	return res, errors | ||||
| } | ||||
| 
 | ||||
| // parseTagIntoMap parses a struct tag `valid:required~Some error message,length(2|3)` into map[string]string{"required": "Some error message", "length(2|3)": ""} | ||||
| func parseTagIntoMap(tag string) tagOptionsMap { | ||||
| 	optionsMap := make(tagOptionsMap) | ||||
|  | @ -1034,12 +1118,12 @@ func IsSSN(str string) bool { | |||
| 	return rxSSN.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsSemver check if string is valid semantic version | ||||
| // IsSemver checks if string is valid semantic version | ||||
| func IsSemver(str string) bool { | ||||
| 	return rxSemver.MatchString(str) | ||||
| } | ||||
| 
 | ||||
| // IsType check if interface is of some type | ||||
| // IsType checks if interface is of some type | ||||
| func IsType(v interface{}, params ...string) bool { | ||||
| 	if len(params) == 1 { | ||||
| 		typ := params[0] | ||||
|  | @ -1048,13 +1132,13 @@ func IsType(v interface{}, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsTime check if string is valid according to given format | ||||
| // IsTime checks if string is valid according to given format | ||||
| func IsTime(str string, format string) bool { | ||||
| 	_, err := time.Parse(format, str) | ||||
| 	return err == nil | ||||
| } | ||||
| 
 | ||||
| // IsUnixTime check if string is valid unix timestamp value | ||||
| // IsUnixTime checks if string is valid unix timestamp value | ||||
| func IsUnixTime(str string) bool { | ||||
| 	if _, err := strconv.Atoi(str); err == nil { | ||||
| 		return true | ||||
|  | @ -1062,17 +1146,17 @@ func IsUnixTime(str string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsRFC3339 check if string is valid timestamp value according to RFC3339 | ||||
| // IsRFC3339 checks if string is valid timestamp value according to RFC3339 | ||||
| func IsRFC3339(str string) bool { | ||||
| 	return IsTime(str, time.RFC3339) | ||||
| } | ||||
| 
 | ||||
| // IsRFC3339WithoutZone check if string is valid timestamp value according to RFC3339 which excludes the timezone. | ||||
| // IsRFC3339WithoutZone checks if string is valid timestamp value according to RFC3339 which excludes the timezone. | ||||
| func IsRFC3339WithoutZone(str string) bool { | ||||
| 	return IsTime(str, RF3339WithoutZone) | ||||
| 	return IsTime(str, rfc3339WithoutZone) | ||||
| } | ||||
| 
 | ||||
| // IsISO4217 check if string is valid ISO currency code | ||||
| // IsISO4217 checks if string is valid ISO currency code | ||||
| func IsISO4217(str string) bool { | ||||
| 	for _, currency := range ISO4217List { | ||||
| 		if str == currency { | ||||
|  | @ -1083,7 +1167,7 @@ func IsISO4217(str string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // ByteLength check string's length | ||||
| // ByteLength checks string's length | ||||
| func ByteLength(str string, params ...string) bool { | ||||
| 	if len(params) == 2 { | ||||
| 		min, _ := ToInt(params[0]) | ||||
|  | @ -1094,13 +1178,13 @@ func ByteLength(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // RuneLength check string's length | ||||
| // RuneLength checks string's length | ||||
| // Alias for StringLength | ||||
| func RuneLength(str string, params ...string) bool { | ||||
| 	return StringLength(str, params...) | ||||
| } | ||||
| 
 | ||||
| // IsRsaPub check whether string is valid RSA key | ||||
| // IsRsaPub checks whether string is valid RSA key | ||||
| // Alias for IsRsaPublicKey | ||||
| func IsRsaPub(str string, params ...string) bool { | ||||
| 	if len(params) == 1 { | ||||
|  | @ -1120,7 +1204,7 @@ func StringMatches(s string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // StringLength check string's length (including multi byte strings) | ||||
| // StringLength checks string's length (including multi byte strings) | ||||
| func StringLength(str string, params ...string) bool { | ||||
| 
 | ||||
| 	if len(params) == 2 { | ||||
|  | @ -1133,7 +1217,7 @@ func StringLength(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // MinStringLength check string's minimum length (including multi byte strings) | ||||
| // MinStringLength checks string's minimum length (including multi byte strings) | ||||
| func MinStringLength(str string, params ...string) bool { | ||||
| 
 | ||||
| 	if len(params) == 1 { | ||||
|  | @ -1145,7 +1229,7 @@ func MinStringLength(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // MaxStringLength check string's maximum length (including multi byte strings) | ||||
| // MaxStringLength checks string's maximum length (including multi byte strings) | ||||
| func MaxStringLength(str string, params ...string) bool { | ||||
| 
 | ||||
| 	if len(params) == 1 { | ||||
|  | @ -1157,7 +1241,7 @@ func MaxStringLength(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // Range check string's length | ||||
| // Range checks string's length | ||||
| func Range(str string, params ...string) bool { | ||||
| 	if len(params) == 2 { | ||||
| 		value, _ := ToFloat(str) | ||||
|  | @ -1169,6 +1253,7 @@ func Range(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsInRaw checks if string is in list of allowed values | ||||
| func IsInRaw(str string, params ...string) bool { | ||||
| 	if len(params) == 1 { | ||||
| 		rawParams := params[0] | ||||
|  | @ -1181,7 +1266,7 @@ func IsInRaw(str string, params ...string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // IsIn check if string str is a member of the set of strings params | ||||
| // IsIn checks if string str is a member of the set of strings params | ||||
| func IsIn(str string, params ...string) bool { | ||||
| 	for _, param := range params { | ||||
| 		if str == param { | ||||
|  | @ -1219,7 +1304,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 
 | ||||
| 	tag := t.Tag.Get(tagName) | ||||
| 
 | ||||
| 	// Check if the field should be ignored | ||||
| 	// checks if the field should be ignored | ||||
| 	switch tag { | ||||
| 	case "": | ||||
| 		if v.Kind() != reflect.Slice && v.Kind() != reflect.Map { | ||||
|  | @ -1238,8 +1323,8 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 		options = parseTagIntoMap(tag) | ||||
| 	} | ||||
| 
 | ||||
| 	if !isFieldSet(v) { | ||||
| 		// an empty value is not validated, check only required | ||||
| 	if isEmptyValue(v) { | ||||
| 		// an empty value is not validated, checks only required | ||||
| 		isValid, resultErr = checkRequired(v, t, options) | ||||
| 		for key := range options { | ||||
| 			delete(options, key) | ||||
|  | @ -1292,13 +1377,13 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 		validator := validatorSpec | ||||
| 		customMsgExists := len(validatorStruct.customErrorMessage) > 0 | ||||
| 
 | ||||
| 		// Check whether the tag looks like '!something' or 'something' | ||||
| 		// checks whether the tag looks like '!something' or 'something' | ||||
| 		if validator[0] == '!' { | ||||
| 			validator = validator[1:] | ||||
| 			negate = true | ||||
| 		} | ||||
| 
 | ||||
| 		// Check for interface param validators | ||||
| 		// checks for interface param validators | ||||
| 		for key, value := range InterfaceParamTagRegexMap { | ||||
| 			ps := value.FindStringSubmatch(validator) | ||||
| 			if len(ps) == 0 { | ||||
|  | @ -1331,20 +1416,20 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 		reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, | ||||
| 		reflect.Float32, reflect.Float64, | ||||
| 		reflect.String: | ||||
| 		// for each tag option check the map of validator functions | ||||
| 		// for each tag option checks the map of validator functions | ||||
| 		for _, validatorSpec := range optionsOrder { | ||||
| 			validatorStruct := options[validatorSpec] | ||||
| 			var negate bool | ||||
| 			validator := validatorSpec | ||||
| 			customMsgExists := len(validatorStruct.customErrorMessage) > 0 | ||||
| 
 | ||||
| 			// Check whether the tag looks like '!something' or 'something' | ||||
| 			// checks whether the tag looks like '!something' or 'something' | ||||
| 			if validator[0] == '!' { | ||||
| 				validator = validator[1:] | ||||
| 				negate = true | ||||
| 			} | ||||
| 
 | ||||
| 			// Check for param validators | ||||
| 			// checks for param validators | ||||
| 			for key, value := range ParamTagRegexMap { | ||||
| 				ps := value.FindStringSubmatch(validator) | ||||
| 				if len(ps) == 0 { | ||||
|  | @ -1425,7 +1510,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 			} else { | ||||
| 				resultItem, err = ValidateStruct(v.MapIndex(k).Interface()) | ||||
| 				if err != nil { | ||||
| 					err = PrependPathToErrors(err, t.Name+"."+sv[i].Interface().(string)) | ||||
| 					err = prependPathToErrors(err, t.Name+"."+sv[i].Interface().(string)) | ||||
| 					return false, err | ||||
| 				} | ||||
| 			} | ||||
|  | @ -1445,7 +1530,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 			} else { | ||||
| 				resultItem, err = ValidateStruct(v.Index(i).Interface()) | ||||
| 				if err != nil { | ||||
| 					err = PrependPathToErrors(err, t.Name+"."+strconv.Itoa(i)) | ||||
| 					err = prependPathToErrors(err, t.Name+"."+strconv.Itoa(i)) | ||||
| 					return false, err | ||||
| 				} | ||||
| 			} | ||||
|  | @ -1459,7 +1544,7 @@ func typeCheck(v reflect.Value, t reflect.StructField, o reflect.Value, options | |||
| 		} | ||||
| 		return ValidateStruct(v.Interface()) | ||||
| 	case reflect.Ptr: | ||||
| 		// If the value is a pointer then check its element | ||||
| 		// If the value is a pointer then checks its element | ||||
| 		if v.IsNil() { | ||||
| 			return true, nil | ||||
| 		} | ||||
|  | @ -1475,14 +1560,26 @@ func stripParams(validatorString string) string { | |||
| 	return paramsRegexp.ReplaceAllString(validatorString, "") | ||||
| } | ||||
| 
 | ||||
| // isFieldSet returns false for nil pointers, interfaces, maps, and slices. For all other values, it returns true. | ||||
| func isFieldSet(v reflect.Value) bool { | ||||
| // isEmptyValue checks whether value empty or not | ||||
| func isEmptyValue(v reflect.Value) bool { | ||||
| 	switch v.Kind() { | ||||
| 	case reflect.Map, reflect.Slice, reflect.Interface, reflect.Ptr: | ||||
| 		return !v.IsNil() | ||||
| 	case reflect.String, reflect.Array: | ||||
| 		return v.Len() == 0 | ||||
| 	case reflect.Map, reflect.Slice: | ||||
| 		return v.Len() == 0 || v.IsNil() | ||||
| 	case reflect.Bool: | ||||
| 		return !v.Bool() | ||||
| 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: | ||||
| 		return v.Int() == 0 | ||||
| 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: | ||||
| 		return v.Uint() == 0 | ||||
| 	case reflect.Float32, reflect.Float64: | ||||
| 		return v.Float() == 0 | ||||
| 	case reflect.Interface, reflect.Ptr: | ||||
| 		return v.IsNil() | ||||
| 	} | ||||
| 
 | ||||
| 	return true | ||||
| 	return reflect.DeepEqual(v.Interface(), reflect.Zero(v.Type()).Interface()) | ||||
| } | ||||
| 
 | ||||
| // ErrorByField returns error for specified field of the struct | ||||
|  |  | |||
							
								
								
									
										13
									
								
								vendor/github.com/fatih/color/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/fatih/color/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,20 +1,11 @@ | |||
| # Archived project. No maintenance.  | ||||
| 
 | ||||
| This project is not maintained anymore and is archived. Feel free to fork and | ||||
| make your own changes if needed. For more detail read my blog post: [Taking an indefinite sabbatical from my projects](https://arslan.io/2018/10/09/taking-an-indefinite-sabbatical-from-my-projects/) | ||||
| 
 | ||||
| Thanks to everyone for their valuable feedback and contributions. | ||||
| 
 | ||||
| 
 | ||||
| # Color [](https://godoc.org/github.com/fatih/color)  | ||||
| # color [](https://github.com/fatih/color/actions) [](https://pkg.go.dev/github.com/fatih/color) | ||||
| 
 | ||||
| Color lets you use colorized outputs in terms of [ANSI Escape | ||||
| Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It | ||||
| has support for Windows too! The API can be used in several ways, pick one that | ||||
| suits you. | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ## Install | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/fatih/color/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/fatih/color/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,6 +3,6 @@ module github.com/fatih/color | |||
| go 1.13 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/mattn/go-colorable v0.1.4 | ||||
| 	github.com/mattn/go-isatty v0.0.11 | ||||
| 	github.com/mattn/go-colorable v0.1.8 | ||||
| 	github.com/mattn/go-isatty v0.0.12 | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										15
									
								
								vendor/github.com/fatih/color/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/fatih/color/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,8 +1,7 @@ | |||
| github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= | ||||
| github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | ||||
| github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | ||||
| github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM= | ||||
| github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= | ||||
| golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= | ||||
| golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= | ||||
| github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= | ||||
| github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= | ||||
| github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | ||||
| golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= | ||||
| golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
|  |  | |||
							
								
								
									
										0
									
								
								vendor/github.com/felixge/httpsnoop/.gitignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								vendor/github.com/felixge/httpsnoop/.gitignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										6
									
								
								vendor/github.com/felixge/httpsnoop/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/felixge/httpsnoop/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| language: go | ||||
| 
 | ||||
| go: | ||||
|   - 1.6 | ||||
|   - 1.7 | ||||
|   - 1.8 | ||||
							
								
								
									
										19
									
								
								vendor/github.com/felixge/httpsnoop/LICENSE.txt
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/felixge/httpsnoop/LICENSE.txt
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| Copyright (c) 2016 Felix Geisendörfer (felix@debuggable.com) | ||||
| 
 | ||||
|  Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  of this software and associated documentation files (the "Software"), to deal | ||||
|  in the Software without restriction, including without limitation the rights | ||||
|  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  copies of the Software, and to permit persons to whom the Software is | ||||
|  furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
|  The above copyright notice and this permission notice shall be included in | ||||
|  all copies or substantial portions of the Software. | ||||
| 
 | ||||
|  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  THE SOFTWARE. | ||||
							
								
								
									
										10
									
								
								vendor/github.com/felixge/httpsnoop/Makefile
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/felixge/httpsnoop/Makefile
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| .PHONY: ci generate clean | ||||
| 
 | ||||
| ci: clean generate | ||||
| 	go test -v ./... | ||||
| 
 | ||||
| generate: | ||||
| 	go generate . | ||||
| 
 | ||||
| clean: | ||||
| 	rm -rf *_generated*.go | ||||
							
								
								
									
										94
									
								
								vendor/github.com/felixge/httpsnoop/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								vendor/github.com/felixge/httpsnoop/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,94 @@ | |||
| # httpsnoop | ||||
| 
 | ||||
| Package httpsnoop provides an easy way to capture http related metrics (i.e. | ||||
| response time, bytes written, and http status code) from your application's | ||||
| http.Handlers. | ||||
| 
 | ||||
| Doing this requires non-trivial wrapping of the http.ResponseWriter interface, | ||||
| which is also exposed for users interested in a more low-level API. | ||||
| 
 | ||||
| [](https://godoc.org/github.com/felixge/httpsnoop) | ||||
| [](https://travis-ci.org/felixge/httpsnoop) | ||||
| 
 | ||||
| ## Usage Example | ||||
| 
 | ||||
| ```go | ||||
| // myH is your app's http handler, perhaps a http.ServeMux or similar. | ||||
| var myH http.Handler | ||||
| // wrappedH wraps myH in order to log every request. | ||||
| wrappedH := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 	m := httpsnoop.CaptureMetrics(myH, w, r) | ||||
| 	log.Printf( | ||||
| 		"%s %s (code=%d dt=%s written=%d)", | ||||
| 		r.Method, | ||||
| 		r.URL, | ||||
| 		m.Code, | ||||
| 		m.Duration, | ||||
| 		m.Written, | ||||
| 	) | ||||
| }) | ||||
| http.ListenAndServe(":8080", wrappedH) | ||||
| ``` | ||||
| 
 | ||||
| ## Why this package exists | ||||
| 
 | ||||
| Instrumenting an application's http.Handler is surprisingly difficult. | ||||
| 
 | ||||
| However if you google for e.g. "capture ResponseWriter status code" you'll find | ||||
| lots of advise and code examples that suggest it to be a fairly trivial | ||||
| undertaking. Unfortunately everything I've seen so far has a high chance of | ||||
| breaking your application. | ||||
| 
 | ||||
| The main problem is that a `http.ResponseWriter` often implements additional | ||||
| interfaces such as `http.Flusher`, `http.CloseNotifier`, `http.Hijacker`, `http.Pusher`, and | ||||
| `io.ReaderFrom`. So the naive approach of just wrapping `http.ResponseWriter` | ||||
| in your own struct that also implements the `http.ResponseWriter` interface | ||||
| will hide the additional interfaces mentioned above. This has a high change of | ||||
| introducing subtle bugs into any non-trivial application. | ||||
| 
 | ||||
| Another approach I've seen people take is to return a struct that implements | ||||
| all of the interfaces above. However, that's also problematic, because it's | ||||
| difficult to fake some of these interfaces behaviors when the underlying | ||||
| `http.ResponseWriter` doesn't have an implementation. It's also dangerous, | ||||
| because an application may choose to operate differently, merely because it | ||||
| detects the presence of these additional interfaces. | ||||
| 
 | ||||
| This package solves this problem by checking which additional interfaces a | ||||
| `http.ResponseWriter` implements, returning a wrapped version implementing the | ||||
| exact same set of interfaces. | ||||
| 
 | ||||
| Additionally this package properly handles edge cases such as `WriteHeader` not | ||||
| being called, or called more than once, as well as concurrent calls to | ||||
| `http.ResponseWriter` methods, and even calls happening after the wrapped | ||||
| `ServeHTTP` has already returned. | ||||
| 
 | ||||
| Unfortunately this package is not perfect either. It's possible that it is | ||||
| still missing some interfaces provided by the go core (let me know if you find | ||||
| one), and it won't work for applications adding their own interfaces into the | ||||
| mix. | ||||
| 
 | ||||
| However, hopefully the explanation above has sufficiently scared you of rolling | ||||
| your own solution to this problem. httpsnoop may still break your application, | ||||
| but at least it tries to avoid it as much as possible. | ||||
| 
 | ||||
| Anyway, the real problem here is that smuggling additional interfaces inside | ||||
| `http.ResponseWriter` is a problematic design choice, but it probably goes as | ||||
| deep as the Go language specification itself. But that's okay, I still prefer | ||||
| Go over the alternatives ;). | ||||
| 
 | ||||
| ## Performance | ||||
| 
 | ||||
| ``` | ||||
| BenchmarkBaseline-8      	   20000	     94912 ns/op | ||||
| BenchmarkCaptureMetrics-8	   20000	     95461 ns/op | ||||
| ``` | ||||
| 
 | ||||
| As you can see, using `CaptureMetrics` on a vanilla http.Handler introduces an | ||||
| overhead of ~500 ns per http request on my machine. However, the margin of | ||||
| error appears to be larger than that, therefor it should be reasonable to | ||||
| assume that the overhead introduced by `CaptureMetrics` is absolutely | ||||
| negligible. | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
| MIT | ||||
							
								
								
									
										84
									
								
								vendor/github.com/felixge/httpsnoop/capture_metrics.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								vendor/github.com/felixge/httpsnoop/capture_metrics.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,84 @@ | |||
| package httpsnoop | ||||
| 
 | ||||
| import ( | ||||
| 	"io" | ||||
| 	"net/http" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| // Metrics holds metrics captured from CaptureMetrics. | ||||
| type Metrics struct { | ||||
| 	// Code is the first http response code passed to the WriteHeader func of | ||||
| 	// the ResponseWriter. If no such call is made, a default code of 200 is | ||||
| 	// assumed instead. | ||||
| 	Code int | ||||
| 	// Duration is the time it took to execute the handler. | ||||
| 	Duration time.Duration | ||||
| 	// Written is the number of bytes successfully written by the Write or | ||||
| 	// ReadFrom function of the ResponseWriter. ResponseWriters may also write | ||||
| 	// data to their underlaying connection directly (e.g. headers), but those | ||||
| 	// are not tracked. Therefor the number of Written bytes will usually match | ||||
| 	// the size of the response body. | ||||
| 	Written int64 | ||||
| } | ||||
| 
 | ||||
| // CaptureMetrics wraps the given hnd, executes it with the given w and r, and | ||||
| // returns the metrics it captured from it. | ||||
| func CaptureMetrics(hnd http.Handler, w http.ResponseWriter, r *http.Request) Metrics { | ||||
| 	return CaptureMetricsFn(w, func(ww http.ResponseWriter) { | ||||
| 		hnd.ServeHTTP(ww, r) | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| // CaptureMetricsFn wraps w and calls fn with the wrapped w and returns the | ||||
| // resulting metrics. This is very similar to CaptureMetrics (which is just | ||||
| // sugar on top of this func), but is a more usable interface if your | ||||
| // application doesn't use the Go http.Handler interface. | ||||
| func CaptureMetricsFn(w http.ResponseWriter, fn func(http.ResponseWriter)) Metrics { | ||||
| 	var ( | ||||
| 		start         = time.Now() | ||||
| 		m             = Metrics{Code: http.StatusOK} | ||||
| 		headerWritten bool | ||||
| 		lock          sync.Mutex | ||||
| 		hooks         = Hooks{ | ||||
| 			WriteHeader: func(next WriteHeaderFunc) WriteHeaderFunc { | ||||
| 				return func(code int) { | ||||
| 					next(code) | ||||
| 					lock.Lock() | ||||
| 					defer lock.Unlock() | ||||
| 					if !headerWritten { | ||||
| 						m.Code = code | ||||
| 						headerWritten = true | ||||
| 					} | ||||
| 				} | ||||
| 			}, | ||||
| 
 | ||||
| 			Write: func(next WriteFunc) WriteFunc { | ||||
| 				return func(p []byte) (int, error) { | ||||
| 					n, err := next(p) | ||||
| 					lock.Lock() | ||||
| 					defer lock.Unlock() | ||||
| 					m.Written += int64(n) | ||||
| 					headerWritten = true | ||||
| 					return n, err | ||||
| 				} | ||||
| 			}, | ||||
| 
 | ||||
| 			ReadFrom: func(next ReadFromFunc) ReadFromFunc { | ||||
| 				return func(src io.Reader) (int64, error) { | ||||
| 					n, err := next(src) | ||||
| 					lock.Lock() | ||||
| 					defer lock.Unlock() | ||||
| 					headerWritten = true | ||||
| 					m.Written += n | ||||
| 					return n, err | ||||
| 				} | ||||
| 			}, | ||||
| 		} | ||||
| 	) | ||||
| 
 | ||||
| 	fn(Wrap(w, hooks)) | ||||
| 	m.Duration = time.Since(start) | ||||
| 	return m | ||||
| } | ||||
							
								
								
									
										10
									
								
								vendor/github.com/felixge/httpsnoop/docs.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/felixge/httpsnoop/docs.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| // Package httpsnoop provides an easy way to capture http related metrics (i.e. | ||||
| // response time, bytes written, and http status code) from your application's | ||||
| // http.Handlers. | ||||
| // | ||||
| // Doing this requires non-trivial wrapping of the http.ResponseWriter | ||||
| // interface, which is also exposed for users interested in a more low-level | ||||
| // API. | ||||
| package httpsnoop | ||||
| 
 | ||||
| //go:generate go run codegen/main.go | ||||
							
								
								
									
										3
									
								
								vendor/github.com/felixge/httpsnoop/go.mod
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/felixge/httpsnoop/go.mod
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| module github.com/felixge/httpsnoop | ||||
| 
 | ||||
| go 1.13 | ||||
							
								
								
									
										385
									
								
								vendor/github.com/felixge/httpsnoop/wrap_generated_gteq_1.8.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										385
									
								
								vendor/github.com/felixge/httpsnoop/wrap_generated_gteq_1.8.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,385 @@ | |||
| // +build go1.8 | ||||
| // Code generated by "httpsnoop/codegen"; DO NOT EDIT | ||||
| 
 | ||||
| package httpsnoop | ||||
| 
 | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"io" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| ) | ||||
| 
 | ||||
| // HeaderFunc is part of the http.ResponseWriter interface. | ||||
| type HeaderFunc func() http.Header | ||||
| 
 | ||||
| // WriteHeaderFunc is part of the http.ResponseWriter interface. | ||||
| type WriteHeaderFunc func(code int) | ||||
| 
 | ||||
| // WriteFunc is part of the http.ResponseWriter interface. | ||||
| type WriteFunc func(b []byte) (int, error) | ||||
| 
 | ||||
| // FlushFunc is part of the http.Flusher interface. | ||||
| type FlushFunc func() | ||||
| 
 | ||||
| // CloseNotifyFunc is part of the http.CloseNotifier interface. | ||||
| type CloseNotifyFunc func() <-chan bool | ||||
| 
 | ||||
| // HijackFunc is part of the http.Hijacker interface. | ||||
| type HijackFunc func() (net.Conn, *bufio.ReadWriter, error) | ||||
| 
 | ||||
| // ReadFromFunc is part of the io.ReaderFrom interface. | ||||
| type ReadFromFunc func(src io.Reader) (int64, error) | ||||
| 
 | ||||
| // PushFunc is part of the http.Pusher interface. | ||||
| type PushFunc func(target string, opts *http.PushOptions) error | ||||
| 
 | ||||
| // Hooks defines a set of method interceptors for methods included in | ||||
| // http.ResponseWriter as well as some others. You can think of them as | ||||
| // middleware for the function calls they target. See Wrap for more details. | ||||
| type Hooks struct { | ||||
| 	Header      func(HeaderFunc) HeaderFunc | ||||
| 	WriteHeader func(WriteHeaderFunc) WriteHeaderFunc | ||||
| 	Write       func(WriteFunc) WriteFunc | ||||
| 	Flush       func(FlushFunc) FlushFunc | ||||
| 	CloseNotify func(CloseNotifyFunc) CloseNotifyFunc | ||||
| 	Hijack      func(HijackFunc) HijackFunc | ||||
| 	ReadFrom    func(ReadFromFunc) ReadFromFunc | ||||
| 	Push        func(PushFunc) PushFunc | ||||
| } | ||||
| 
 | ||||
| // Wrap returns a wrapped version of w that provides the exact same interface | ||||
| // as w. Specifically if w implements any combination of: | ||||
| // | ||||
| // - http.Flusher | ||||
| // - http.CloseNotifier | ||||
| // - http.Hijacker | ||||
| // - io.ReaderFrom | ||||
| // - http.Pusher | ||||
| // | ||||
| // The wrapped version will implement the exact same combination. If no hooks | ||||
| // are set, the wrapped version also behaves exactly as w. Hooks targeting | ||||
| // methods not supported by w are ignored. Any other hooks will intercept the | ||||
| // method they target and may modify the call's arguments and/or return values. | ||||
| // The CaptureMetrics implementation serves as a working example for how the | ||||
| // hooks can be used. | ||||
| func Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter { | ||||
| 	rw := &rw{w: w, h: hooks} | ||||
| 	_, i0 := w.(http.Flusher) | ||||
| 	_, i1 := w.(http.CloseNotifier) | ||||
| 	_, i2 := w.(http.Hijacker) | ||||
| 	_, i3 := w.(io.ReaderFrom) | ||||
| 	_, i4 := w.(http.Pusher) | ||||
| 	switch { | ||||
| 	// combination 1/32 | ||||
| 	case !i0 && !i1 && !i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 		}{rw} | ||||
| 	// combination 2/32 | ||||
| 	case !i0 && !i1 && !i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Pusher | ||||
| 		}{rw, rw} | ||||
| 	// combination 3/32 | ||||
| 	case !i0 && !i1 && !i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw} | ||||
| 	// combination 4/32 | ||||
| 	case !i0 && !i1 && !i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 5/32 | ||||
| 	case !i0 && !i1 && i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw} | ||||
| 	// combination 6/32 | ||||
| 	case !i0 && !i1 && i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 7/32 | ||||
| 	case !i0 && !i1 && i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 8/32 | ||||
| 	case !i0 && !i1 && i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 9/32 | ||||
| 	case !i0 && i1 && !i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 		}{rw, rw} | ||||
| 	// combination 10/32 | ||||
| 	case !i0 && i1 && !i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 11/32 | ||||
| 	case !i0 && i1 && !i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 12/32 | ||||
| 	case !i0 && i1 && !i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 13/32 | ||||
| 	case !i0 && i1 && i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 14/32 | ||||
| 	case !i0 && i1 && i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 15/32 | ||||
| 	case !i0 && i1 && i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 16/32 | ||||
| 	case !i0 && i1 && i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	// combination 17/32 | ||||
| 	case i0 && !i1 && !i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 		}{rw, rw} | ||||
| 	// combination 18/32 | ||||
| 	case i0 && !i1 && !i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 19/32 | ||||
| 	case i0 && !i1 && !i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 20/32 | ||||
| 	case i0 && !i1 && !i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 21/32 | ||||
| 	case i0 && !i1 && i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 22/32 | ||||
| 	case i0 && !i1 && i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 23/32 | ||||
| 	case i0 && !i1 && i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 24/32 | ||||
| 	case i0 && !i1 && i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	// combination 25/32 | ||||
| 	case i0 && i1 && !i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 26/32 | ||||
| 	case i0 && i1 && !i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 27/32 | ||||
| 	case i0 && i1 && !i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 28/32 | ||||
| 	case i0 && i1 && !i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	// combination 29/32 | ||||
| 	case i0 && i1 && i2 && !i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 30/32 | ||||
| 	case i0 && i1 && i2 && !i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	// combination 31/32 | ||||
| 	case i0 && i1 && i2 && i3 && !i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	// combination 32/32 | ||||
| 	case i0 && i1 && i2 && i3 && i4: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 			http.Pusher | ||||
| 		}{rw, rw, rw, rw, rw, rw} | ||||
| 	} | ||||
| 	panic("unreachable") | ||||
| } | ||||
| 
 | ||||
| type rw struct { | ||||
| 	w http.ResponseWriter | ||||
| 	h Hooks | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Header() http.Header { | ||||
| 	f := w.w.(http.ResponseWriter).Header | ||||
| 	if w.h.Header != nil { | ||||
| 		f = w.h.Header(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) WriteHeader(code int) { | ||||
| 	f := w.w.(http.ResponseWriter).WriteHeader | ||||
| 	if w.h.WriteHeader != nil { | ||||
| 		f = w.h.WriteHeader(f) | ||||
| 	} | ||||
| 	f(code) | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Write(b []byte) (int, error) { | ||||
| 	f := w.w.(http.ResponseWriter).Write | ||||
| 	if w.h.Write != nil { | ||||
| 		f = w.h.Write(f) | ||||
| 	} | ||||
| 	return f(b) | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Flush() { | ||||
| 	f := w.w.(http.Flusher).Flush | ||||
| 	if w.h.Flush != nil { | ||||
| 		f = w.h.Flush(f) | ||||
| 	} | ||||
| 	f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) CloseNotify() <-chan bool { | ||||
| 	f := w.w.(http.CloseNotifier).CloseNotify | ||||
| 	if w.h.CloseNotify != nil { | ||||
| 		f = w.h.CloseNotify(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) { | ||||
| 	f := w.w.(http.Hijacker).Hijack | ||||
| 	if w.h.Hijack != nil { | ||||
| 		f = w.h.Hijack(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) ReadFrom(src io.Reader) (int64, error) { | ||||
| 	f := w.w.(io.ReaderFrom).ReadFrom | ||||
| 	if w.h.ReadFrom != nil { | ||||
| 		f = w.h.ReadFrom(f) | ||||
| 	} | ||||
| 	return f(src) | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Push(target string, opts *http.PushOptions) error { | ||||
| 	f := w.w.(http.Pusher).Push | ||||
| 	if w.h.Push != nil { | ||||
| 		f = w.h.Push(f) | ||||
| 	} | ||||
| 	return f(target, opts) | ||||
| } | ||||
							
								
								
									
										243
									
								
								vendor/github.com/felixge/httpsnoop/wrap_generated_lt_1.8.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								vendor/github.com/felixge/httpsnoop/wrap_generated_lt_1.8.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,243 @@ | |||
| // +build !go1.8 | ||||
| // Code generated by "httpsnoop/codegen"; DO NOT EDIT | ||||
| 
 | ||||
| package httpsnoop | ||||
| 
 | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"io" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| ) | ||||
| 
 | ||||
| // HeaderFunc is part of the http.ResponseWriter interface. | ||||
| type HeaderFunc func() http.Header | ||||
| 
 | ||||
| // WriteHeaderFunc is part of the http.ResponseWriter interface. | ||||
| type WriteHeaderFunc func(code int) | ||||
| 
 | ||||
| // WriteFunc is part of the http.ResponseWriter interface. | ||||
| type WriteFunc func(b []byte) (int, error) | ||||
| 
 | ||||
| // FlushFunc is part of the http.Flusher interface. | ||||
| type FlushFunc func() | ||||
| 
 | ||||
| // CloseNotifyFunc is part of the http.CloseNotifier interface. | ||||
| type CloseNotifyFunc func() <-chan bool | ||||
| 
 | ||||
| // HijackFunc is part of the http.Hijacker interface. | ||||
| type HijackFunc func() (net.Conn, *bufio.ReadWriter, error) | ||||
| 
 | ||||
| // ReadFromFunc is part of the io.ReaderFrom interface. | ||||
| type ReadFromFunc func(src io.Reader) (int64, error) | ||||
| 
 | ||||
| // Hooks defines a set of method interceptors for methods included in | ||||
| // http.ResponseWriter as well as some others. You can think of them as | ||||
| // middleware for the function calls they target. See Wrap for more details. | ||||
| type Hooks struct { | ||||
| 	Header      func(HeaderFunc) HeaderFunc | ||||
| 	WriteHeader func(WriteHeaderFunc) WriteHeaderFunc | ||||
| 	Write       func(WriteFunc) WriteFunc | ||||
| 	Flush       func(FlushFunc) FlushFunc | ||||
| 	CloseNotify func(CloseNotifyFunc) CloseNotifyFunc | ||||
| 	Hijack      func(HijackFunc) HijackFunc | ||||
| 	ReadFrom    func(ReadFromFunc) ReadFromFunc | ||||
| } | ||||
| 
 | ||||
| // Wrap returns a wrapped version of w that provides the exact same interface | ||||
| // as w. Specifically if w implements any combination of: | ||||
| // | ||||
| // - http.Flusher | ||||
| // - http.CloseNotifier | ||||
| // - http.Hijacker | ||||
| // - io.ReaderFrom | ||||
| // | ||||
| // The wrapped version will implement the exact same combination. If no hooks | ||||
| // are set, the wrapped version also behaves exactly as w. Hooks targeting | ||||
| // methods not supported by w are ignored. Any other hooks will intercept the | ||||
| // method they target and may modify the call's arguments and/or return values. | ||||
| // The CaptureMetrics implementation serves as a working example for how the | ||||
| // hooks can be used. | ||||
| func Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter { | ||||
| 	rw := &rw{w: w, h: hooks} | ||||
| 	_, i0 := w.(http.Flusher) | ||||
| 	_, i1 := w.(http.CloseNotifier) | ||||
| 	_, i2 := w.(http.Hijacker) | ||||
| 	_, i3 := w.(io.ReaderFrom) | ||||
| 	switch { | ||||
| 	// combination 1/16 | ||||
| 	case !i0 && !i1 && !i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 		}{rw} | ||||
| 	// combination 2/16 | ||||
| 	case !i0 && !i1 && !i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw} | ||||
| 	// combination 3/16 | ||||
| 	case !i0 && !i1 && i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw} | ||||
| 	// combination 4/16 | ||||
| 	case !i0 && !i1 && i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 5/16 | ||||
| 	case !i0 && i1 && !i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 		}{rw, rw} | ||||
| 	// combination 6/16 | ||||
| 	case !i0 && i1 && !i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 7/16 | ||||
| 	case !i0 && i1 && i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 8/16 | ||||
| 	case !i0 && i1 && i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 9/16 | ||||
| 	case i0 && !i1 && !i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 		}{rw, rw} | ||||
| 	// combination 10/16 | ||||
| 	case i0 && !i1 && !i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 11/16 | ||||
| 	case i0 && !i1 && i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 12/16 | ||||
| 	case i0 && !i1 && i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 13/16 | ||||
| 	case i0 && i1 && !i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 		}{rw, rw, rw} | ||||
| 	// combination 14/16 | ||||
| 	case i0 && i1 && !i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 15/16 | ||||
| 	case i0 && i1 && i2 && !i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 		}{rw, rw, rw, rw} | ||||
| 	// combination 16/16 | ||||
| 	case i0 && i1 && i2 && i3: | ||||
| 		return struct { | ||||
| 			http.ResponseWriter | ||||
| 			http.Flusher | ||||
| 			http.CloseNotifier | ||||
| 			http.Hijacker | ||||
| 			io.ReaderFrom | ||||
| 		}{rw, rw, rw, rw, rw} | ||||
| 	} | ||||
| 	panic("unreachable") | ||||
| } | ||||
| 
 | ||||
| type rw struct { | ||||
| 	w http.ResponseWriter | ||||
| 	h Hooks | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Header() http.Header { | ||||
| 	f := w.w.(http.ResponseWriter).Header | ||||
| 	if w.h.Header != nil { | ||||
| 		f = w.h.Header(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) WriteHeader(code int) { | ||||
| 	f := w.w.(http.ResponseWriter).WriteHeader | ||||
| 	if w.h.WriteHeader != nil { | ||||
| 		f = w.h.WriteHeader(f) | ||||
| 	} | ||||
| 	f(code) | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Write(b []byte) (int, error) { | ||||
| 	f := w.w.(http.ResponseWriter).Write | ||||
| 	if w.h.Write != nil { | ||||
| 		f = w.h.Write(f) | ||||
| 	} | ||||
| 	return f(b) | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Flush() { | ||||
| 	f := w.w.(http.Flusher).Flush | ||||
| 	if w.h.Flush != nil { | ||||
| 		f = w.h.Flush(f) | ||||
| 	} | ||||
| 	f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) CloseNotify() <-chan bool { | ||||
| 	f := w.w.(http.CloseNotifier).CloseNotify | ||||
| 	if w.h.CloseNotify != nil { | ||||
| 		f = w.h.CloseNotify(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) { | ||||
| 	f := w.w.(http.Hijacker).Hijack | ||||
| 	if w.h.Hijack != nil { | ||||
| 		f = w.h.Hijack(f) | ||||
| 	} | ||||
| 	return f() | ||||
| } | ||||
| 
 | ||||
| func (w *rw) ReadFrom(src io.Reader) (int64, error) { | ||||
| 	f := w.w.(io.ReaderFrom).ReadFrom | ||||
| 	if w.h.ReadFrom != nil { | ||||
| 		f = w.h.ReadFrom(f) | ||||
| 	} | ||||
| 	return f(src) | ||||
| } | ||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -8,7 +8,7 @@ linters-settings: | |||
|   maligned: | ||||
|     suggest-new: true | ||||
|   dupl: | ||||
|     threshold: 100 | ||||
|     threshold: 150 | ||||
|   goconst: | ||||
|     min-len: 2 | ||||
|     min-occurrences: 4 | ||||
|  | @ -30,3 +30,16 @@ linters: | |||
|     - whitespace | ||||
|     - wsl | ||||
|     - funlen | ||||
|     - testpackage | ||||
|     - wrapcheck | ||||
|     - nlreturn | ||||
|     - gomnd | ||||
|     - goerr113 | ||||
|     - exhaustivestruct | ||||
|     - errorlint | ||||
|     - nestif | ||||
|     - gofumpt | ||||
|     - godot | ||||
|     - gci | ||||
|     - dogsled | ||||
|     - paralleltest | ||||
|  |  | |||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,8 +1,11 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.13.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| arch: | ||||
|   - amd64 | ||||
|   - ppc64le | ||||
| install: | ||||
| - go get -u gotest.tools/gotestsum | ||||
| language: go | ||||
|  |  | |||
							
								
								
									
										22
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -212,7 +212,7 @@ func (s *Spec) initialize() { | |||
| 		} | ||||
| 	} | ||||
| 	for path, pathItem := range s.AllPaths() { | ||||
| 		s.analyzeOperations(path, &pathItem) | ||||
| 		s.analyzeOperations(path, &pathItem) //#nosec | ||||
| 	} | ||||
| 
 | ||||
| 	for name, parameter := range s.spec.Parameters { | ||||
|  | @ -277,7 +277,7 @@ func (s *Spec) analyzeOperations(path string, pi *spec.PathItem) { | |||
| 	for i, param := range op.Parameters { | ||||
| 		refPref := slashpath.Join("/paths", jsonpointer.Escape(path), "parameters", strconv.Itoa(i)) | ||||
| 		if param.Ref.String() != "" { | ||||
| 			s.references.addParamRef(refPref, ¶m) | ||||
| 			s.references.addParamRef(refPref, ¶m) //#nosec | ||||
| 		} | ||||
| 		if param.Pattern != "" { | ||||
| 			s.patterns.addParameterPattern(refPref, param.Pattern) | ||||
|  | @ -335,7 +335,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) { | |||
| 	for i, param := range op.Parameters { | ||||
| 		refPref := slashpath.Join(prefix, "parameters", strconv.Itoa(i)) | ||||
| 		if param.Ref.String() != "" { | ||||
| 			s.references.addParamRef(refPref, ¶m) | ||||
| 			s.references.addParamRef(refPref, ¶m) //#nosec | ||||
| 		} | ||||
| 		if param.Pattern != "" { | ||||
| 			s.patterns.addParameterPattern(refPref, param.Pattern) | ||||
|  | @ -368,7 +368,7 @@ func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) { | |||
| 		for k, res := range op.Responses.StatusCodeResponses { | ||||
| 			refPref := slashpath.Join(prefix, "responses", strconv.Itoa(k)) | ||||
| 			if res.Ref.String() != "" { | ||||
| 				s.references.addResponseRef(refPref, &res) | ||||
| 				s.references.addResponseRef(refPref, &res) //#nosec | ||||
| 			} | ||||
| 			for k, v := range res.Headers { | ||||
| 				hRefPref := slashpath.Join(refPref, "headers", k) | ||||
|  | @ -665,25 +665,25 @@ func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamF | |||
| 	} | ||||
| 	for _, pi := range s.spec.Paths.Paths { | ||||
| 		if pi.Get != nil && pi.Get.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Get) | ||||
| 			return gatherParams(&pi, pi.Get) //#nosec | ||||
| 		} | ||||
| 		if pi.Head != nil && pi.Head.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Head) | ||||
| 			return gatherParams(&pi, pi.Head) //#nosec | ||||
| 		} | ||||
| 		if pi.Options != nil && pi.Options.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Options) | ||||
| 			return gatherParams(&pi, pi.Options) //#nosec | ||||
| 		} | ||||
| 		if pi.Post != nil && pi.Post.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Post) | ||||
| 			return gatherParams(&pi, pi.Post) //#nosec | ||||
| 		} | ||||
| 		if pi.Patch != nil && pi.Patch.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Patch) | ||||
| 			return gatherParams(&pi, pi.Patch) //#nosec | ||||
| 		} | ||||
| 		if pi.Put != nil && pi.Put.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Put) | ||||
| 			return gatherParams(&pi, pi.Put) //#nosec | ||||
| 		} | ||||
| 		if pi.Delete != nil && pi.Delete.ID == operationID { | ||||
| 			return gatherParams(&pi, pi.Delete) | ||||
| 			return gatherParams(&pi, pi.Delete) //#nosec | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
|  |  | |||
							
								
								
									
										3
									
								
								vendor/github.com/go-openapi/analysis/appveyor.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/go-openapi/analysis/appveyor.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -17,7 +17,8 @@ environment: | |||
| stack: go 1.12 | ||||
| 
 | ||||
| test_script: | ||||
|   - go test -v -timeout 20m ./... | ||||
|   - echo "test disabled for now" | ||||
|   #- go test -v -timeout 20m ./... | ||||
| #artifacts: | ||||
| #  - path: '%GOPATH%\bin\*.exe' | ||||
| deploy: off | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/analysis/fixer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/analysis/fixer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -50,7 +50,7 @@ func FixEmptyResponseDescriptions(s *spec.Swagger) { | |||
| 		} | ||||
| 	} | ||||
| 	for k, v := range s.Responses { | ||||
| 		FixEmptyDesc(&v) | ||||
| 		FixEmptyDesc(&v) //#nosec | ||||
| 		s.Responses[k] = v | ||||
| 	} | ||||
| } | ||||
|  | @ -60,7 +60,7 @@ func FixEmptyResponseDescriptions(s *spec.Swagger) { | |||
| func FixEmptyDescs(rs *spec.Responses) { | ||||
| 	FixEmptyDesc(rs.Default) | ||||
| 	for k, v := range rs.StatusCodeResponses { | ||||
| 		FixEmptyDesc(&v) | ||||
| 		FixEmptyDesc(&v) //#nosec | ||||
| 		rs.StatusCodeResponses[k] = v | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										23
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -156,6 +156,8 @@ func Flatten(opts FlattenOpts) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	opts.Spec.reload() // re-analyze | ||||
| 
 | ||||
| 	// strip current file from $ref's, so we can recognize them as proper definitions | ||||
| 	// In particular, this works around for issue go-openapi/spec#76: leading absolute file in $ref is stripped | ||||
| 	if err := normalizeRef(&opts); err != nil { | ||||
|  | @ -778,6 +780,9 @@ func rewriteParentRef(spec *swspec.Swagger, key string, ref swspec.Ref) error { | |||
| 		} | ||||
| 		container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}} | ||||
| 
 | ||||
| 	case swspec.SchemaProperties: | ||||
| 		container[entry] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}} | ||||
| 
 | ||||
| 	// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema | ||||
| 
 | ||||
| 	default: | ||||
|  | @ -1038,7 +1043,7 @@ func nameFromRef(ref swspec.Ref) string { | |||
| 			return swag.ToJSONName(bn) | ||||
| 		} | ||||
| 	} | ||||
| 	return swag.ToJSONName(strings.Replace(u.Host, ".", " ", -1)) | ||||
| 	return swag.ToJSONName(strings.ReplaceAll(u.Host, ".", " ")) | ||||
| } | ||||
| 
 | ||||
| func saveSchema(spec *swspec.Swagger, name string, schema *swspec.Schema) { | ||||
|  | @ -1155,6 +1160,9 @@ func updateRef(spec interface{}, key string, ref swspec.Ref) error { | |||
| 			} | ||||
| 			container.Schemas[idx] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}} | ||||
| 
 | ||||
| 		case swspec.SchemaProperties: | ||||
| 			container[entry] = swspec.Schema{SchemaProps: swspec.SchemaProps{Ref: ref}} | ||||
| 
 | ||||
| 		// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema | ||||
| 
 | ||||
| 		default: | ||||
|  | @ -1206,6 +1214,9 @@ func updateRefWithSchema(spec *swspec.Swagger, key string, sch *swspec.Schema) e | |||
| 			} | ||||
| 			container.Schemas[idx] = *sch | ||||
| 
 | ||||
| 		case swspec.SchemaProperties: | ||||
| 			container[entry] = *sch | ||||
| 
 | ||||
| 		// NOTE: can't have case *swspec.SchemaOrBool = parent in this case is *Schema | ||||
| 
 | ||||
| 		default: | ||||
|  | @ -1741,9 +1752,12 @@ DOWNREF: | |||
| // leading absolute file in $ref is stripped | ||||
| func normalizeRef(opts *FlattenOpts) error { | ||||
| 	debugLog("normalizeRef") | ||||
| 	opts.Spec.reload() // re-analyze | ||||
| 	altered := false | ||||
| 	for k, w := range opts.Spec.references.allRefs { | ||||
| 		if strings.HasPrefix(w.String(), opts.BasePath+definitionsPath) { // may be a mix of / and \, depending on OS | ||||
| 		if !strings.HasPrefix(w.String(), opts.BasePath+definitionsPath) { // may be a mix of / and \, depending on OS | ||||
| 			continue | ||||
| 		} | ||||
| 		altered = true | ||||
| 		// strip base path from definition | ||||
| 		debugLog("stripping absolute path for: %s", w.String()) | ||||
| 		if err := updateRef(opts.Swagger(), k, | ||||
|  | @ -1751,7 +1765,8 @@ func normalizeRef(opts *FlattenOpts) error { | |||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	} | ||||
| 	if altered { | ||||
| 		opts.Spec.reload() // re-analyze | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  |  | |||
							
								
								
									
										25
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,23 +1,14 @@ | |||
| module github.com/go-openapi/analysis | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 // indirect | ||||
| 	github.com/go-openapi/errors v0.19.3 // indirect | ||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | ||||
| 	github.com/go-openapi/jsonreference v0.19.3 // indirect | ||||
| 	github.com/go-openapi/loads v0.19.0 | ||||
| 	github.com/go-openapi/spec v0.19.6 | ||||
| 	github.com/go-openapi/strfmt v0.19.4 | ||||
| 	github.com/go-openapi/swag v0.19.7 | ||||
| 	github.com/kr/pty v1.1.5 // indirect | ||||
| 	github.com/mailru/easyjson v0.7.1 // indirect | ||||
| 	github.com/stretchr/testify v1.3.0 | ||||
| 	go.mongodb.org/mongo-driver v1.3.0 // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect | ||||
| 	golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect | ||||
| 	golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect | ||||
| 	golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59 // indirect | ||||
| 	gopkg.in/yaml.v2 v2.2.8 // indirect | ||||
| 	github.com/go-openapi/errors v0.19.9 // indirect | ||||
| 	github.com/go-openapi/jsonpointer v0.19.5 | ||||
| 	github.com/go-openapi/loads v0.19.6 | ||||
| 	github.com/go-openapi/spec v0.19.15 | ||||
| 	github.com/go-openapi/strfmt v0.19.11 | ||||
| 	github.com/go-openapi/swag v0.19.12 | ||||
| 	github.com/mitchellh/mapstructure v1.4.0 // indirect | ||||
| 	github.com/stretchr/testify v1.6.1 | ||||
| ) | ||||
| 
 | ||||
| go 1.13 | ||||
|  |  | |||
							
								
								
									
										130
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										130
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -4,52 +4,114 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN | |||
| github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | ||||
| github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= | ||||
| github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= | ||||
| github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= | ||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | ||||
| github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= | ||||
| github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= | ||||
| github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= | ||||
| github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||
| github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||
| github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= | ||||
| github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= | ||||
| github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= | ||||
| github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||
| github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||
| github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | ||||
| github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= | ||||
| github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= | ||||
| github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc= | ||||
| github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc= | ||||
| github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= | ||||
| github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||
| github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||
| github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= | ||||
| github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= | ||||
| github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= | ||||
| github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= | ||||
| github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||
| github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= | ||||
| github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= | ||||
| github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||
| github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= | ||||
| github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= | ||||
| github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.19.0 h1:wCOBNscACI8L93tt5tvB2zOMkJ098XCw3fP0BY2ybDA= | ||||
| github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | ||||
| github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= | ||||
| github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||
| github.com/go-openapi/loads v0.19.6 h1:6IAtnx22MNSjPocZZ2sV7EjgF6wW5rDC9r6ZkNxjiN8= | ||||
| github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||
| github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= | ||||
| github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | ||||
| github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= | ||||
| github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= | ||||
| github.com/go-openapi/runtime v0.19.16 h1:tQMAY5s5BfmmCC31+ufDCsGrr8iO1A8UIdYfDo5ADvs= | ||||
| github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= | ||||
| github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= | ||||
| github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= | ||||
| github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= | ||||
| github.com/go-openapi/spec v0.19.6 h1:rMMMj8cV38KVXK7SFc+I2MWClbEfbK705+j+dyqun5g= | ||||
| github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.15 h1:uxh8miNJEfMm8l8ekpY7i39LcORm1xSRtoipEGl1JPk= | ||||
| github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||
| github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= | ||||
| github.com/go-openapi/strfmt v0.19.2 h1:clPGfBnJohokno0e+d7hs6Yocrzjlgz6EsQSDncCRnE= | ||||
| github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | ||||
| github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA= | ||||
| github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | ||||
| github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g= | ||||
| github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM= | ||||
| github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.11 h1:0+YvbNh05rmBkgztd6zHp4OCFn7Mtu30bn46NQo2ZRw= | ||||
| github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= | ||||
| github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= | ||||
| github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= | ||||
| github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s= | ||||
| github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI= | ||||
| github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | ||||
| github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= | ||||
| github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= | ||||
| github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= | ||||
| github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||
| github.com/go-openapi/validate v0.19.12 h1:mPLM/bfbd00PGOCJlU0yJL7IulkZ+q9VjPv7U11RMQQ= | ||||
| github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= | ||||
| github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | ||||
| github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= | ||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||
| github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= | ||||
|  | @ -80,11 +142,17 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW | |||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||
| github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= | ||||
| github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||
| github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= | ||||
| github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= | ||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= | ||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= | ||||
| github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||
| github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= | ||||
| github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= | ||||
| github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= | ||||
| github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= | ||||
| github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||
|  | @ -97,27 +165,43 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | |||
| github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= | ||||
| github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= | ||||
| github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||
| github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||
| github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||
| github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= | ||||
| github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||
| github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= | ||||
| github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||
| github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= | ||||
| github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= | ||||
| github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= | ||||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||
| github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= | ||||
| github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= | ||||
| github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.4.0 h1:7ks8ZkOP5/ujthUsT07rNv+nkLXCQWKNHuwzOAesEks= | ||||
| github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= | ||||
| github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | ||||
| github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= | ||||
| github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= | ||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= | ||||
| github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= | ||||
| github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= | ||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||
|  | @ -129,8 +213,12 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH | |||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||
| github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= | ||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||
| github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= | ||||
| github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= | ||||
| github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= | ||||
| github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | ||||
| github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | ||||
| go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= | ||||
|  | @ -139,44 +227,69 @@ go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOc | |||
| go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= | ||||
| go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E= | ||||
| go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= | ||||
| go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.4.3 h1:moga+uhicpVshTyaqY9L23E6QqwcHRUv1sqyOsoyOO8= | ||||
| go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||
| golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | ||||
| golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | ||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= | ||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= | ||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||
| golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= | ||||
| golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= | ||||
| gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||
|  | @ -184,3 +297,12 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
| gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= | ||||
| gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/analysis/schema.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/analysis/schema.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -218,7 +218,7 @@ func (a *AnalyzedSchema) initializeFlags() { | |||
| 		(a.schema.Items.Schema != nil || len(a.schema.Items.Schemas) > 0) | ||||
| 
 | ||||
| 	a.hasAdditionalProps = a.schema.AdditionalProperties != nil && | ||||
| 		(a.schema.AdditionalProperties != nil || a.schema.AdditionalProperties.Allows) | ||||
| 		(a.schema.AdditionalProperties.Schema != nil || a.schema.AdditionalProperties.Allows) | ||||
| 
 | ||||
| 	a.hasAdditionalItems = a.schema.AdditionalItems != nil && | ||||
| 		(a.schema.AdditionalItems.Schema != nil || a.schema.AdditionalItems.Allows) | ||||
|  |  | |||
							
								
								
									
										21
									
								
								vendor/github.com/go-openapi/errors/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/go-openapi/errors/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -18,3 +18,24 @@ linters: | |||
|     - maligned | ||||
|     - lll | ||||
|     - gochecknoglobals | ||||
|     - godox | ||||
|     - gocognit | ||||
|     - whitespace | ||||
|     - wsl | ||||
|     - funlen | ||||
|     - gochecknoglobals | ||||
|     - gochecknoinits | ||||
|     - scopelint | ||||
|     - wrapcheck | ||||
|     - exhaustivestruct | ||||
|     - exhaustive | ||||
|     - nlreturn | ||||
|     - testpackage | ||||
|     - gci | ||||
|     - gofumpt | ||||
|     - goerr113 | ||||
|     - gomnd | ||||
|     - tparallel | ||||
|     - nestif | ||||
|     - godot | ||||
|     - errorlint | ||||
|  |  | |||
							
								
								
									
										19
									
								
								vendor/github.com/go-openapi/errors/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/go-openapi/errors/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,8 +1,25 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.13.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| arch: | ||||
|   - amd64 | ||||
| jobs: | ||||
|   include: | ||||
|   # only run fast tests on ppc64le | ||||
|   - go: 1.x | ||||
|     arch: ppc64le | ||||
|     script: | ||||
|     - gotestsum -f short-verbose -- ./... | ||||
| 
 | ||||
|   # include linting job, but only for latest go version and amd64 arch | ||||
|   - go: 1.x | ||||
|     arch: amd64 | ||||
|     install: | ||||
|       go get github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
|     script: | ||||
|     - golangci-lint run --new-from-rev master | ||||
| install: | ||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||
| language: go | ||||
|  |  | |||
							
								
								
									
										20
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -25,6 +25,7 @@ const ( | |||
| 	typeFailWithData          = "%s in %s must be of type %s: %q" | ||||
| 	typeFailWithError         = "%s in %s must be of type %s, because: %s" | ||||
| 	requiredFail              = "%s in %s is required" | ||||
| 	readOnlyFail              = "%s in %s is readOnly" | ||||
| 	tooLongMessage            = "%s in %s should be at most %d chars long" | ||||
| 	tooShortMessage           = "%s in %s should be at least %d chars long" | ||||
| 	patternFail               = "%s in %s should match '%s'" | ||||
|  | @ -41,6 +42,7 @@ const ( | |||
| 	typeFailWithDataNoIn      = "%s must be of type %s: %q" | ||||
| 	typeFailWithErrorNoIn     = "%s must be of type %s, because: %s" | ||||
| 	requiredFailNoIn          = "%s is required" | ||||
| 	readOnlyFailNoIn          = "%s is readOnly" | ||||
| 	tooLongMessageNoIn        = "%s should be at most %d chars long" | ||||
| 	tooShortMessageNoIn       = "%s should be at least %d chars long" | ||||
| 	patternFailNoIn           = "%s should match '%s'" | ||||
|  | @ -91,6 +93,7 @@ const ( | |||
| 	UnallowedPropertyCode | ||||
| 	FailedAllPatternPropsCode | ||||
| 	MultipleOfMustBePositiveCode | ||||
| 	ReadOnlyFailCode | ||||
| ) | ||||
| 
 | ||||
| // CompositeError is an error that groups several errors together | ||||
|  | @ -501,6 +504,23 @@ func Required(name, in string, value interface{}) *Validation { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| // ReadOnly error for when a value is present in request | ||||
| func ReadOnly(name, in string, value interface{}) *Validation { | ||||
| 	var msg string | ||||
| 	if in == "" { | ||||
| 		msg = fmt.Sprintf(readOnlyFailNoIn, name) | ||||
| 	} else { | ||||
| 		msg = fmt.Sprintf(readOnlyFail, name, in) | ||||
| 	} | ||||
| 	return &Validation{ | ||||
| 		code:    ReadOnlyFailCode, | ||||
| 		Name:    name, | ||||
| 		In:      in, | ||||
| 		Value:   value, | ||||
| 		message: msg, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // TooLong error for when a string is too long | ||||
| func TooLong(name, in string, max int64, value interface{}) *Validation { | ||||
| 	var msg string | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/jsonpointer/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/jsonpointer/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,8 +1,8 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.11.x | ||||
| - 1.12.x | ||||
| - 1.14.x | ||||
| - 1.15.x | ||||
| install: | ||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||
| env: | ||||
|  |  | |||
							
								
								
									
										16
									
								
								vendor/github.com/go-openapi/jsonpointer/pointer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-openapi/jsonpointer/pointer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -114,9 +114,6 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam | |||
| 	rValue := reflect.Indirect(reflect.ValueOf(node)) | ||||
| 	kind := rValue.Kind() | ||||
| 
 | ||||
| 	switch kind { | ||||
| 
 | ||||
| 	case reflect.Struct: | ||||
| 	if rValue.Type().Implements(jsonPointableType) { | ||||
| 		r, err := node.(JSONPointable).JSONLookup(decodedToken) | ||||
| 		if err != nil { | ||||
|  | @ -124,6 +121,9 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam | |||
| 		} | ||||
| 		return r, kind, nil | ||||
| 	} | ||||
| 
 | ||||
| 	switch kind { | ||||
| 	case reflect.Struct: | ||||
| 		nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken) | ||||
| 		if !ok { | ||||
| 			return nil, kind, fmt.Errorf("object has no field %q", decodedToken) | ||||
|  | @ -161,9 +161,7 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam | |||
| 
 | ||||
| func setSingleImpl(node, data interface{}, decodedToken string, nameProvider *swag.NameProvider) error { | ||||
| 	rValue := reflect.Indirect(reflect.ValueOf(node)) | ||||
| 	switch rValue.Kind() { | ||||
| 
 | ||||
| 	case reflect.Struct: | ||||
| 	if ns, ok := node.(JSONSetable); ok { // pointer impl | ||||
| 		return ns.JSONSet(decodedToken, data) | ||||
| 	} | ||||
|  | @ -172,6 +170,8 @@ func setSingleImpl(node, data interface{}, decodedToken string, nameProvider *sw | |||
| 		return node.(JSONSetable).JSONSet(decodedToken, data) | ||||
| 	} | ||||
| 
 | ||||
| 	switch rValue.Kind() { | ||||
| 	case reflect.Struct: | ||||
| 		nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken) | ||||
| 		if !ok { | ||||
| 			return fmt.Errorf("object has no field %q", decodedToken) | ||||
|  | @ -270,9 +270,6 @@ func (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) e | |||
| 		rValue := reflect.Indirect(reflect.ValueOf(node)) | ||||
| 		kind := rValue.Kind() | ||||
| 
 | ||||
| 		switch kind { | ||||
| 
 | ||||
| 		case reflect.Struct: | ||||
| 		if rValue.Type().Implements(jsonPointableType) { | ||||
| 			r, err := node.(JSONPointable).JSONLookup(decodedToken) | ||||
| 			if err != nil { | ||||
|  | @ -286,6 +283,9 @@ func (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) e | |||
| 			node = r | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		switch kind { | ||||
| 		case reflect.Struct: | ||||
| 			nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken) | ||||
| 			if !ok { | ||||
| 				return fmt.Errorf("object has no field %q", decodedToken) | ||||
|  |  | |||
							
								
								
									
										41
									
								
								vendor/github.com/go-openapi/jsonreference/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/go-openapi/jsonreference/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | |||
| linters-settings: | ||||
|   govet: | ||||
|     check-shadowing: true | ||||
|   golint: | ||||
|     min-confidence: 0 | ||||
|   gocyclo: | ||||
|     min-complexity: 30 | ||||
|   maligned: | ||||
|     suggest-new: true | ||||
|   dupl: | ||||
|     threshold: 100 | ||||
|   goconst: | ||||
|     min-len: 2 | ||||
|     min-occurrences: 4 | ||||
| linters: | ||||
|   enable-all: true | ||||
|   disable: | ||||
|     - maligned | ||||
|     - lll | ||||
|     - gochecknoglobals | ||||
|     - godox | ||||
|     - gocognit | ||||
|     - whitespace | ||||
|     - wsl | ||||
|     - funlen | ||||
|     - gochecknoglobals | ||||
|     - gochecknoinits | ||||
|     - scopelint | ||||
|     - wrapcheck | ||||
|     - exhaustivestruct | ||||
|     - exhaustive | ||||
|     - nlreturn | ||||
|     - testpackage | ||||
|     - gci | ||||
|     - gofumpt | ||||
|     - goerr113 | ||||
|     - gomnd | ||||
|     - tparallel | ||||
|     - nestif | ||||
|     - godot | ||||
|     - errorlint | ||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/jsonreference/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/jsonreference/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,10 +1,19 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.11.x | ||||
| - 1.12.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| install: | ||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||
| - go get gotest.tools/gotestsum | ||||
| jobs: | ||||
|   include: | ||||
|   # include linting job, but only for latest go version and amd64 arch | ||||
|   - go: 1.x | ||||
|     arch: amd64 | ||||
|     install: | ||||
|       go get github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
|     script: | ||||
|     - golangci-lint run --new-from-rev master | ||||
| env: | ||||
| - GO111MODULE=on | ||||
| language: go | ||||
|  |  | |||
							
								
								
									
										22
									
								
								vendor/github.com/go-openapi/loads/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/go-openapi/loads/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,3 +20,25 @@ linters: | |||
|     - lll | ||||
|     - gochecknoglobals | ||||
|     - gochecknoinits | ||||
|     - godox | ||||
|     - gocognit | ||||
|     - whitespace | ||||
|     - wsl | ||||
|     - funlen | ||||
|     - gochecknoglobals | ||||
|     - gochecknoinits | ||||
|     - scopelint | ||||
|     - wrapcheck | ||||
|     - exhaustivestruct | ||||
|     - exhaustive | ||||
|     - nlreturn | ||||
|     - testpackage | ||||
|     - gci | ||||
|     - gofumpt | ||||
|     - goerr113 | ||||
|     - gomnd | ||||
|     - tparallel | ||||
|     - nestif | ||||
|     - godot | ||||
|     - errorlint | ||||
|     - paralleltest | ||||
|  |  | |||
							
								
								
									
										13
									
								
								vendor/github.com/go-openapi/loads/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-openapi/loads/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,11 +1,20 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.13.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| install: | ||||
| - go get -u gotest.tools/gotestsum | ||||
| - go get gotest.tools/gotestsum | ||||
| language: go | ||||
| jobs: | ||||
|   include: | ||||
|   # include linting job, but only for latest go version and amd64 arch | ||||
|   - go: 1.x | ||||
|     arch: amd64 | ||||
|     install: | ||||
|       go get github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
|     script: | ||||
|     - golangci-lint run --new-from-rev master | ||||
| notifications: | ||||
|   slack: | ||||
|     secure: OxkPwVp35qBTUilgWC8xykSj+sGMcj0h8IIOKD+Rflx2schZVlFfdYdyVBM+s9OqeOfvtuvnR9v1Ye2rPKAvcjWdC4LpRGUsgmItZaI6Um8Aj6+K9udCw5qrtZVfOVmRu8LieH//XznWWKdOultUuniW0MLqw5+II87Gd00RWbCGi0hk0PykHe7uK+PDA2BEbqyZ2WKKYCvfB3j+0nrFOHScXqnh0V05l2E83J4+Sgy1fsPy+1WdX58ZlNBG333ibaC1FS79XvKSmTgKRkx3+YBo97u6ZtUmJa5WZjf2OdLG3KIckGWAv6R5xgxeU31N0Ng8L332w/Edpp2O/M2bZwdnKJ8hJQikXIAQbICbr+lTDzsoNzMdEIYcHpJ5hjPbiUl3Bmd+Jnsjf5McgAZDiWIfpCKZ29tPCEkVwRsOCqkyPRMNMzHHmoja495P5jR+ODS7+J8RFg5xgcnOgpP9D4Wlhztlf5WyZMpkLxTUD+bZq2SRf50HfHFXTkfq22zPl3d1eq0yrLwh/Z/fWKkfb6SyysROL8y6s8u3dpFX1YHSg0BR6i913h4aoZw9B2BG27cafLLTwKYsp2dFo1PWl4O6u9giFJIeqwloZHLKKrwh0cBFhB7RH0I58asxkZpCH6uWjJierahmHe7iS+E6i+9oCHkOZ59hmCYNimIs3hM= | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/go-openapi/loads/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/go-openapi/loads/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,7 +1,6 @@ | |||
| # Loads OAI specs  [](https://travis-ci.org/go-openapi/loads) [](https://codecov.io/gh/go-openapi/loads) [](https://slackin.goswagger.io) | ||||
| 
 | ||||
| [](https://raw.githubusercontent.com/go-openapi/loads/master/LICENSE) [](http://godoc.org/github.com/go-openapi/loads) | ||||
| [](https://golangci.com) | ||||
| [](https://goreportcard.com/report/github.com/go-openapi/loads) | ||||
| 
 | ||||
| Loading of OAI specification documents from local or remote locations. Supports JSON and YAML documents. | ||||
|  |  | |||
							
								
								
									
										14
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,11 +1,15 @@ | |||
| module github.com/go-openapi/loads | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/go-openapi/analysis v0.19.10 | ||||
| 	github.com/go-openapi/spec v0.19.6 | ||||
| 	github.com/go-openapi/swag v0.19.7 | ||||
| 	github.com/stretchr/testify v1.3.0 | ||||
| 	gopkg.in/yaml.v2 v2.2.8 | ||||
| 	github.com/go-openapi/analysis v0.19.16 | ||||
| 	github.com/go-openapi/spec v0.20.0 | ||||
| 	github.com/go-openapi/strfmt v0.19.11 | ||||
| 	github.com/go-openapi/swag v0.19.12 | ||||
| 	github.com/go-openapi/validate v0.19.15 | ||||
| 	github.com/stretchr/testify v1.6.1 | ||||
| 	go.mongodb.org/mongo-driver v1.4.4 // indirect | ||||
| 	golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb // indirect | ||||
| 	gopkg.in/yaml.v2 v2.4.0 | ||||
| ) | ||||
| 
 | ||||
| go 1.13 | ||||
|  |  | |||
							
								
								
									
										146
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										146
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -4,47 +4,121 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN | |||
| github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | ||||
| github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= | ||||
| github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= | ||||
| github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= | ||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06GQ59hwDQAvmK1qxOQGB3WuVTRoY0okPTAv0= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | ||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | ||||
| github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= | ||||
| github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= | ||||
| github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= | ||||
| github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||
| github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||
| github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= | ||||
| github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= | ||||
| github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= | ||||
| github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||
| github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||
| github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | ||||
| github.com/go-openapi/analysis v0.19.10 h1:5BHISBAXOc/aJK25irLZnx2D3s6WyYaY9D4gmuz9fdE= | ||||
| github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= | ||||
| github.com/go-openapi/analysis v0.19.16 h1:Ub9e++M8sDwtHD+S587TYi+6ANBG1NRYGZDihqk0SaY= | ||||
| github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= | ||||
| github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= | ||||
| github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.3 h1:7MGZI1ibQDLasvAz8HuhvYk9eNJbJkCOXWsSjjMS+Zc= | ||||
| github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||
| github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.7 h1:Lcq+o0mSwCLKACMxZhreVHigB9ebghJ/lrmeaqASbjo= | ||||
| github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc= | ||||
| github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= | ||||
| github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||
| github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||
| github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||
| github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= | ||||
| github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= | ||||
| github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= | ||||
| github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= | ||||
| github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||
| github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= | ||||
| github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= | ||||
| github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= | ||||
| github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= | ||||
| github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= | ||||
| github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= | ||||
| github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= | ||||
| github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= | ||||
| github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= | ||||
| github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||
| github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||
| github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||
| github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= | ||||
| github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | ||||
| github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= | ||||
| github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= | ||||
| github.com/go-openapi/runtime v0.19.16 h1:tQMAY5s5BfmmCC31+ufDCsGrr8iO1A8UIdYfDo5ADvs= | ||||
| github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= | ||||
| github.com/go-openapi/runtime v0.19.24 h1:TqagMVlRAOTwllE/7hNKx6rQ10O6T8ZzeJdMjSTKaD4= | ||||
| github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= | ||||
| github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.19.6 h1:rMMMj8cV38KVXK7SFc+I2MWClbEfbK705+j+dyqun5g= | ||||
| github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= | ||||
| github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= | ||||
| github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= | ||||
| github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||
| github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||
| github.com/go-openapi/spec v0.20.0 h1:HGLc8AJ7ynOxwv0Lq4TsnwLsWMawHAYiJIFzbcML86I= | ||||
| github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||
| github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= | ||||
| github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | ||||
| github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= | ||||
| github.com/go-openapi/strfmt v0.19.4 h1:eRvaqAhpL0IL6Trh5fDsGnGhiXndzHFuA05w6sXH6/g= | ||||
| github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM= | ||||
| github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= | ||||
| github.com/go-openapi/strfmt v0.19.11 h1:0+YvbNh05rmBkgztd6zHp4OCFn7Mtu30bn46NQo2ZRw= | ||||
| github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= | ||||
| github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= | ||||
| github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= | ||||
| github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= | ||||
| github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/swag v0.19.7 h1:VRuXN2EnMSsZdauzdss6JBC29YotDqG59BZ+tdlIL1s= | ||||
| github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE= | ||||
| github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||
| github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI= | ||||
| github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | ||||
| github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= | ||||
| github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= | ||||
| github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= | ||||
| github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||
| github.com/go-openapi/validate v0.19.12 h1:mPLM/bfbd00PGOCJlU0yJL7IulkZ+q9VjPv7U11RMQQ= | ||||
| github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= | ||||
| github.com/go-openapi/validate v0.19.15 h1:oUHZO8jD7p5oRLANlXF0U8ic9ePBUkDQyRZdN0EhL6M= | ||||
| github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= | ||||
| github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | ||||
| github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= | ||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||
| github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= | ||||
|  | @ -75,11 +149,17 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW | |||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||
| github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= | ||||
| github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||
| github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= | ||||
| github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= | ||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= | ||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= | ||||
| github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||
| github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= | ||||
| github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= | ||||
| github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= | ||||
| github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= | ||||
| github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= | ||||
|  | @ -92,27 +172,43 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | |||
| github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= | ||||
| github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= | ||||
| github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||
| github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||
| github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||
| github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= | ||||
| github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||
| github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= | ||||
| github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||
| github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= | ||||
| github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= | ||||
| github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= | ||||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||
| github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= | ||||
| github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= | ||||
| github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/mitchellh/mapstructure v1.4.0 h1:7ks8ZkOP5/ujthUsT07rNv+nkLXCQWKNHuwzOAesEks= | ||||
| github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= | ||||
| github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | ||||
| github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= | ||||
| github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= | ||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= | ||||
| github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= | ||||
| github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= | ||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||
|  | @ -120,56 +216,91 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 | |||
| github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= | ||||
| github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= | ||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||
| github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= | ||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||
| github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= | ||||
| github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= | ||||
| github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= | ||||
| github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | ||||
| github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | ||||
| go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= | ||||
| go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= | ||||
| go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= | ||||
| go.mongodb.org/mongo-driver v1.3.0 h1:ew6uUIeJOo+qdUUv7LxFCUhtWmVv7ZV/Xuy4FAUsw2E= | ||||
| go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= | ||||
| go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||
| go.mongodb.org/mongo-driver v1.4.3 h1:moga+uhicpVshTyaqY9L23E6QqwcHRUv1sqyOsoyOO8= | ||||
| go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||
| go.mongodb.org/mongo-driver v1.4.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs= | ||||
| go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||
| golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | ||||
| golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM= | ||||
| golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | ||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= | ||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U= | ||||
| golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= | ||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= | ||||
| golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= | ||||
| gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||
|  | @ -178,3 +309,12 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= | |||
| gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= | ||||
| gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|  |  | |||
							
								
								
									
										137
									
								
								vendor/github.com/go-openapi/loads/loaders.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								vendor/github.com/go-openapi/loads/loaders.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,137 @@ | |||
| package loads | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"net/url" | ||||
| 
 | ||||
| 	"github.com/go-openapi/spec" | ||||
| 	"github.com/go-openapi/swag" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	// Default chain of loaders, defined at the package level. | ||||
| 	// | ||||
| 	// By default this matches json and yaml documents. | ||||
| 	// | ||||
| 	// May be altered with AddLoader(). | ||||
| 	loaders *loader | ||||
| 
 | ||||
| 	// Default loader. This expects json documents over local or http/https (no matching). | ||||
| 	defaultLoader *loader | ||||
| 
 | ||||
| 	defaultMatcher DocMatcher | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	defaultMatcher = func(_ string) bool { return true } | ||||
| 
 | ||||
| 	defaultLoader = &loader{ | ||||
| 		DocLoaderWithMatch: DocLoaderWithMatch{ | ||||
| 			Match: defaultMatcher, | ||||
| 			Fn:    JSONDoc, | ||||
| 		}, | ||||
| 	} | ||||
| 	loaders = defaultLoader | ||||
| 
 | ||||
| 	AddLoader(swag.YAMLMatcher, swag.YAMLDoc) | ||||
| 
 | ||||
| 	// sets the global default loader for go-openapi/spec | ||||
| 	spec.PathLoader = loaders.Load | ||||
| } | ||||
| 
 | ||||
| // DocLoader represents a doc loader type | ||||
| type DocLoader func(string) (json.RawMessage, error) | ||||
| 
 | ||||
| // DocMatcher represents a predicate to check if a loader matches | ||||
| type DocMatcher func(string) bool | ||||
| 
 | ||||
| // DocLoaderWithMatch describes a loading function for a given extension match. | ||||
| type DocLoaderWithMatch struct { | ||||
| 	Fn    DocLoader | ||||
| 	Match DocMatcher | ||||
| } | ||||
| 
 | ||||
| // NewDocLoaderWithMatch builds a DocLoaderWithMatch to be used in load options | ||||
| func NewDocLoaderWithMatch(fn DocLoader, matcher DocMatcher) DocLoaderWithMatch { | ||||
| 	return DocLoaderWithMatch{ | ||||
| 		Fn:    fn, | ||||
| 		Match: matcher, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type loader struct { | ||||
| 	DocLoaderWithMatch | ||||
| 	Next *loader | ||||
| } | ||||
| 
 | ||||
| // WithHead adds a loader at the head of the current stack | ||||
| func (l *loader) WithHead(head *loader) *loader { | ||||
| 	if head == nil { | ||||
| 		return l | ||||
| 	} | ||||
| 	head.Next = l | ||||
| 	return head | ||||
| } | ||||
| 
 | ||||
| // WithNext adds a loader at the trail of the current stack | ||||
| func (l *loader) WithNext(next *loader) *loader { | ||||
| 	l.Next = next | ||||
| 	return next | ||||
| } | ||||
| 
 | ||||
| // Load the raw document from path | ||||
| func (l *loader) Load(path string) (json.RawMessage, error) { | ||||
| 	specURL, erp := url.Parse(path) | ||||
| 	if erp != nil { | ||||
| 		return nil, erp | ||||
| 	} | ||||
| 
 | ||||
| 	var lastErr error = errors.New("no loader matched") // default error if no match was found | ||||
| 	for ldr := l; ldr != nil; ldr = ldr.Next { | ||||
| 		if ldr.Match != nil && !ldr.Match(specURL.Path) { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		// try then move to next one if there is an error | ||||
| 		b, err := ldr.Fn(path) | ||||
| 		if err == nil { | ||||
| 			return b, nil | ||||
| 		} | ||||
| 
 | ||||
| 		lastErr = err | ||||
| 	} | ||||
| 
 | ||||
| 	return nil, lastErr | ||||
| } | ||||
| 
 | ||||
| // JSONDoc loads a json document from either a file or a remote url | ||||
| func JSONDoc(path string) (json.RawMessage, error) { | ||||
| 	data, err := swag.LoadFromFileOrHTTP(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return json.RawMessage(data), nil | ||||
| } | ||||
| 
 | ||||
| // AddLoader for a document, executed before other previously set loaders. | ||||
| // | ||||
| // This sets the configuration at the package level. | ||||
| // | ||||
| // The default initial loader at the package level assumes a JSON document. | ||||
| // | ||||
| // NOTE: | ||||
| //  * this updates the default loader used by github.com/go-openapi/spec | ||||
| //  * since this sets package level globals, you shouln't call this concurrently | ||||
| // | ||||
| func AddLoader(predicate DocMatcher, load DocLoader) { | ||||
| 	loaders = loaders.WithHead(&loader{ | ||||
| 		DocLoaderWithMatch: DocLoaderWithMatch{ | ||||
| 			Match: predicate, | ||||
| 			Fn:    load, | ||||
| 		}, | ||||
| 	}) | ||||
| 
 | ||||
| 	// sets the global default loader for go-openapi/spec | ||||
| 	spec.PathLoader = loaders.Load | ||||
| } | ||||
							
								
								
									
										60
									
								
								vendor/github.com/go-openapi/loads/options.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								vendor/github.com/go-openapi/loads/options.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| package loads | ||||
| 
 | ||||
| type options struct { | ||||
| 	loader *loader | ||||
| } | ||||
| 
 | ||||
| func defaultOptions() *options { | ||||
| 	return &options{ | ||||
| 		loader: loaders, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func loaderFromOptions(options []LoaderOption) *loader { | ||||
| 	opts := defaultOptions() | ||||
| 	for _, apply := range options { | ||||
| 		apply(opts) | ||||
| 	} | ||||
| 	return opts.loader | ||||
| } | ||||
| 
 | ||||
| // LoaderOption allows to fine-tune the spec loader behavior | ||||
| type LoaderOption func(*options) | ||||
| 
 | ||||
| // WithDocLoader sets a custom loader for loading specs | ||||
| func WithDocLoader(l DocLoader) LoaderOption { | ||||
| 	return func(opt *options) { | ||||
| 		if l == nil { | ||||
| 			return | ||||
| 		} | ||||
| 		opt.loader = &loader{ | ||||
| 			DocLoaderWithMatch: DocLoaderWithMatch{ | ||||
| 				Fn: l, | ||||
| 			}, | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // WithDocLoaderMatches sets a chain of custom loaders for loading specs | ||||
| // for different extension matches. | ||||
| // | ||||
| // Loaders are executed in the order of provided DocLoaderWithMatch'es. | ||||
| func WithDocLoaderMatches(l ...DocLoaderWithMatch) LoaderOption { | ||||
| 	return func(opt *options) { | ||||
| 		var final, prev *loader | ||||
| 		for _, ldr := range l { | ||||
| 			if ldr.Fn == nil { | ||||
| 				continue | ||||
| 			} | ||||
| 
 | ||||
| 			if prev == nil { | ||||
| 				final = &loader{DocLoaderWithMatch: ldr} | ||||
| 				prev = final | ||||
| 				continue | ||||
| 			} | ||||
| 
 | ||||
| 			prev = prev.WithNext(&loader{DocLoaderWithMatch: ldr}) | ||||
| 		} | ||||
| 		opt.loader = final | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										166
									
								
								vendor/github.com/go-openapi/loads/spec.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										166
									
								
								vendor/github.com/go-openapi/loads/spec.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,69 +19,16 @@ import ( | |||
| 	"encoding/gob" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net/url" | ||||
| 
 | ||||
| 	"github.com/go-openapi/analysis" | ||||
| 	"github.com/go-openapi/spec" | ||||
| 	"github.com/go-openapi/swag" | ||||
| ) | ||||
| 
 | ||||
| // JSONDoc loads a json document from either a file or a remote url | ||||
| func JSONDoc(path string) (json.RawMessage, error) { | ||||
| 	data, err := swag.LoadFromFileOrHTTP(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return json.RawMessage(data), nil | ||||
| } | ||||
| 
 | ||||
| // DocLoader represents a doc loader type | ||||
| type DocLoader func(string) (json.RawMessage, error) | ||||
| 
 | ||||
| // DocMatcher represents a predicate to check if a loader matches | ||||
| type DocMatcher func(string) bool | ||||
| 
 | ||||
| var ( | ||||
| 	loaders       *loader | ||||
| 	defaultLoader *loader | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	defaultLoader = &loader{Match: func(_ string) bool { return true }, Fn: JSONDoc} | ||||
| 	loaders = defaultLoader | ||||
| 	spec.PathLoader = loaders.Fn | ||||
| 	AddLoader(swag.YAMLMatcher, swag.YAMLDoc) | ||||
| 
 | ||||
| 	gob.Register(map[string]interface{}{}) | ||||
| 	gob.Register([]interface{}{}) | ||||
| 	//gob.Register(spec.Refable{}) | ||||
| } | ||||
| 
 | ||||
| // AddLoader for a document | ||||
| func AddLoader(predicate DocMatcher, load DocLoader) { | ||||
| 	prev := loaders | ||||
| 	loaders = &loader{ | ||||
| 		Match: predicate, | ||||
| 		Fn:    load, | ||||
| 		Next:  prev, | ||||
| 	} | ||||
| 	spec.PathLoader = loaders.Fn | ||||
| } | ||||
| 
 | ||||
| type loader struct { | ||||
| 	Fn    DocLoader | ||||
| 	Match DocMatcher | ||||
| 	Next  *loader | ||||
| } | ||||
| 
 | ||||
| // JSONSpec loads a spec from a json document | ||||
| func JSONSpec(path string) (*Document, error) { | ||||
| 	data, err := JSONDoc(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	// convert to json | ||||
| 	return Analyzed(data, "") | ||||
| 	// gob.Register(spec.Refable{}) | ||||
| } | ||||
| 
 | ||||
| // Document represents a swagger spec document | ||||
|  | @ -93,10 +40,21 @@ type Document struct { | |||
| 	origSpec     *spec.Swagger | ||||
| 	schema       *spec.Schema | ||||
| 	raw          json.RawMessage | ||||
| 	pathLoader   *loader | ||||
| } | ||||
| 
 | ||||
| // JSONSpec loads a spec from a json document | ||||
| func JSONSpec(path string, options ...LoaderOption) (*Document, error) { | ||||
| 	data, err := JSONDoc(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	// convert to json | ||||
| 	return Analyzed(data, "", options...) | ||||
| } | ||||
| 
 | ||||
| // Embedded returns a Document based on embedded specs. No analysis is required | ||||
| func Embedded(orig, flat json.RawMessage) (*Document, error) { | ||||
| func Embedded(orig, flat json.RawMessage, options ...LoaderOption) (*Document, error) { | ||||
| 	var origSpec, flatSpec spec.Swagger | ||||
| 	if err := json.Unmarshal(orig, &origSpec); err != nil { | ||||
| 		return nil, err | ||||
|  | @ -108,42 +66,23 @@ func Embedded(orig, flat json.RawMessage) (*Document, error) { | |||
| 		raw:        orig, | ||||
| 		origSpec:   &origSpec, | ||||
| 		spec:       &flatSpec, | ||||
| 		pathLoader: loaderFromOptions(options), | ||||
| 	}, nil | ||||
| } | ||||
| 
 | ||||
| // Spec loads a new spec document | ||||
| func Spec(path string) (*Document, error) { | ||||
| 	specURL, err := url.Parse(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	var lastErr error | ||||
| 	for l := loaders.Next; l != nil; l = l.Next { | ||||
| 		if loaders.Match(specURL.Path) { | ||||
| 			b, err2 := loaders.Fn(path) | ||||
| 			if err2 != nil { | ||||
| 				lastErr = err2 | ||||
| 				continue | ||||
| 			} | ||||
| 			doc, err3 := Analyzed(b, "") | ||||
| 			if err3 != nil { | ||||
| 				return nil, err3 | ||||
| 			} | ||||
| 			if doc != nil { | ||||
| 				doc.specFilePath = path | ||||
| 			} | ||||
| 			return doc, nil | ||||
| 		} | ||||
| 	} | ||||
| 	if lastErr != nil { | ||||
| 		return nil, lastErr | ||||
| 	} | ||||
| 	b, err := defaultLoader.Fn(path) | ||||
| // Spec loads a new spec document from a local or remote path | ||||
| func Spec(path string, options ...LoaderOption) (*Document, error) { | ||||
| 
 | ||||
| 	b, err := loaderFromOptions(options).Load(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	document, err := Analyzed(b, "", options...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	document, err := Analyzed(b, "") | ||||
| 	if document != nil { | ||||
| 		document.specFilePath = path | ||||
| 	} | ||||
|  | @ -151,8 +90,8 @@ func Spec(path string) (*Document, error) { | |||
| 	return document, err | ||||
| } | ||||
| 
 | ||||
| // Analyzed creates a new analyzed spec document | ||||
| func Analyzed(data json.RawMessage, version string) (*Document, error) { | ||||
| // Analyzed creates a new analyzed spec document for a root json.RawMessage. | ||||
| func Analyzed(data json.RawMessage, version string, options ...LoaderOption) (*Document, error) { | ||||
| 	if version == "" { | ||||
| 		version = "2.0" | ||||
| 	} | ||||
|  | @ -160,24 +99,13 @@ func Analyzed(data json.RawMessage, version string) (*Document, error) { | |||
| 		return nil, fmt.Errorf("spec version %q is not supported", version) | ||||
| 	} | ||||
| 
 | ||||
| 	raw := data | ||||
| 	trimmed := bytes.TrimSpace(data) | ||||
| 	if len(trimmed) > 0 { | ||||
| 		if trimmed[0] != '{' && trimmed[0] != '[' { | ||||
| 			yml, err := swag.BytesToYAMLDoc(trimmed) | ||||
| 	raw, err := trimData(data) // trim blanks, then convert yaml docs into json | ||||
| 	if err != nil { | ||||
| 				return nil, fmt.Errorf("analyzed: %v", err) | ||||
| 			} | ||||
| 			d, err := swag.YAMLToJSON(yml) | ||||
| 			if err != nil { | ||||
| 				return nil, fmt.Errorf("analyzed: %v", err) | ||||
| 			} | ||||
| 			raw = d | ||||
| 		} | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	swspec := new(spec.Swagger) | ||||
| 	if err := json.Unmarshal(raw, swspec); err != nil { | ||||
| 	if err = json.Unmarshal(raw, swspec); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
|  | @ -192,7 +120,33 @@ func Analyzed(data json.RawMessage, version string) (*Document, error) { | |||
| 		spec:       swspec, | ||||
| 		raw:        raw, | ||||
| 		origSpec:   origsqspec, | ||||
| 		pathLoader: loaderFromOptions(options), | ||||
| 	} | ||||
| 
 | ||||
| 	return d, nil | ||||
| } | ||||
| 
 | ||||
| func trimData(in json.RawMessage) (json.RawMessage, error) { | ||||
| 	trimmed := bytes.TrimSpace(in) | ||||
| 	if len(trimmed) == 0 { | ||||
| 		return in, nil | ||||
| 	} | ||||
| 
 | ||||
| 	if trimmed[0] == '{' || trimmed[0] == '[' { | ||||
| 		return trimmed, nil | ||||
| 	} | ||||
| 
 | ||||
| 	// assume yaml doc: convert it to json | ||||
| 	yml, err := swag.BytesToYAMLDoc(trimmed) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("analyzed: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	d, err := swag.YAMLToJSON(yml) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("analyzed: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return d, nil | ||||
| } | ||||
| 
 | ||||
|  | @ -212,6 +166,16 @@ func (d *Document) Expanded(options ...*spec.ExpandOptions) (*Document, error) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if expandOptions.PathLoader == nil { | ||||
| 		if d.pathLoader != nil { | ||||
| 			// use loader from Document options | ||||
| 			expandOptions.PathLoader = d.pathLoader.Load | ||||
| 		} else { | ||||
| 			// use package level loader | ||||
| 			expandOptions.PathLoader = loaders.Load | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if err := spec.ExpandSpec(swspec, expandOptions); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | @ -262,7 +226,7 @@ func (d *Document) OrigSpec() *spec.Swagger { | |||
| 	return d.origSpec | ||||
| } | ||||
| 
 | ||||
| // ResetDefinitions gives a shallow copy with the models reset | ||||
| // ResetDefinitions gives a shallow copy with the models reset to the original spec | ||||
| func (d *Document) ResetDefinitions() *Document { | ||||
| 	defs := make(map[string]spec.Schema, len(d.origSpec.Definitions)) | ||||
| 	for k, v := range d.origSpec.Definitions { | ||||
|  |  | |||
							
								
								
									
										42
									
								
								vendor/github.com/go-openapi/runtime/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/go-openapi/runtime/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| linters-settings: | ||||
|   govet: | ||||
|     check-shadowing: true | ||||
|   golint: | ||||
|     min-confidence: 0 | ||||
|   gocyclo: | ||||
|     min-complexity: 30 | ||||
|   maligned: | ||||
|     suggest-new: true | ||||
|   dupl: | ||||
|     threshold: 100 | ||||
|   goconst: | ||||
|     min-len: 2 | ||||
|     min-occurrences: 4 | ||||
| linters: | ||||
|   enable-all: true | ||||
|   disable: | ||||
|     - maligned | ||||
|     - lll | ||||
|     - gochecknoglobals | ||||
|     - godox | ||||
|     - gocognit | ||||
|     - whitespace | ||||
|     - wsl | ||||
|     - funlen | ||||
|     - gochecknoglobals | ||||
|     - gochecknoinits | ||||
|     - scopelint | ||||
|     - wrapcheck | ||||
|     - exhaustivestruct | ||||
|     - exhaustive | ||||
|     - nlreturn | ||||
|     - testpackage | ||||
|     - gci | ||||
|     - gofumpt | ||||
|     - goerr113 | ||||
|     - gomnd | ||||
|     - tparallel | ||||
|     - nestif | ||||
|     - godot | ||||
|     - errorlint | ||||
|     - noctx | ||||
							
								
								
									
										11
									
								
								vendor/github.com/go-openapi/runtime/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-openapi/runtime/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,10 +1,19 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.13.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| install: | ||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||
| jobs: | ||||
|   include: | ||||
|   # include linting job, but only for latest go version and amd64 arch | ||||
|   - go: 1.x | ||||
|     arch: amd64 | ||||
|     install: | ||||
|       go get github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
|     script: | ||||
|     - golangci-lint run --new-from-rev master | ||||
| language: go | ||||
| notifications: | ||||
|   slack: | ||||
|  |  | |||
							
								
								
									
										50
									
								
								vendor/github.com/go-openapi/runtime/client_request.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/go-openapi/runtime/client_request.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -101,3 +101,53 @@ func (n *namedReadCloser) Read(p []byte) (int, error) { | |||
| func (n *namedReadCloser) Name() string { | ||||
| 	return n.name | ||||
| } | ||||
| 
 | ||||
| type TestClientRequest struct { | ||||
| 	Headers http.Header | ||||
| 	Body    interface{} | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetHeaderParam(name string, values ...string) error { | ||||
| 	if t.Headers == nil { | ||||
| 		t.Headers = make(http.Header) | ||||
| 	} | ||||
| 	t.Headers.Set(name, values[0]) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetQueryParam(_ string, _ ...string) error { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetFormParam(_ string, _ ...string) error { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetPathParam(_ string, _ string) error { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetFileParam(_ string, _ ...NamedReadCloser) error { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetBodyParam(body interface{}) error { | ||||
| 	t.Body = body | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) SetTimeout(time.Duration) error { | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetQueryParams() url.Values { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetMethod() string { return "" } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetPath() string { return "" } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetBody() []byte { return nil } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetBodyParam() interface{} { | ||||
| 	return t.Body | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetFileParam() map[string][]NamedReadCloser { | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (t *TestClientRequest) GetHeaderParams() http.Header { | ||||
| 	return t.Headers | ||||
| } | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -9,6 +9,7 @@ require ( | |||
| 	github.com/go-openapi/strfmt v0.19.5 | ||||
| 	github.com/go-openapi/swag v0.19.9 | ||||
| 	github.com/go-openapi/validate v0.19.10 | ||||
| 	github.com/opentracing/opentracing-go v1.2.0 | ||||
| 	github.com/stretchr/testify v1.6.1 | ||||
| 	gopkg.in/yaml.v2 v2.3.0 | ||||
| 	gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -168,6 +168,8 @@ github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR | |||
| github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= | ||||
| github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= | ||||
| github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= | ||||
| github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | ||||
| github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= | ||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
|  |  | |||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/runtime/interfaces.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/runtime/interfaces.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -15,6 +15,7 @@ | |||
| package runtime | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
| 
 | ||||
|  | @ -101,3 +102,11 @@ type Authorizer interface { | |||
| type Validatable interface { | ||||
| 	Validate(strfmt.Registry) error | ||||
| } | ||||
| 
 | ||||
| // ContextValidatable types implementing this interface allow customizing their validation | ||||
| // this will be used instead of the reflective validation based on the spec document. | ||||
| // the implementations are assumed to have been generated by the swagger tool so they should | ||||
| // contain all the context validations obtained from the spec | ||||
| type ContextValidatable interface { | ||||
| 	ContextValidate(context.Context, strfmt.Registry) error | ||||
| } | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/runtime/middleware/context.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/runtime/middleware/context.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -435,6 +435,10 @@ func (c *Context) Authorize(request *http.Request, route *MatchedRoute) (interfa | |||
| 	} | ||||
| 	if route.Authorizer != nil { | ||||
| 		if err := route.Authorizer.Authorize(request, usr); err != nil { | ||||
| 			if _, ok := err.(errors.Error); ok { | ||||
| 				return nil, nil, err | ||||
| 			} | ||||
| 
 | ||||
| 			return nil, nil, errors.New(http.StatusForbidden, err.Error()) | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/runtime/middleware/denco/router.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/runtime/middleware/denco/router.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,6 +20,9 @@ const ( | |||
| 	// SeparatorCharacter separates path segments. | ||||
| 	SeparatorCharacter = '/' | ||||
| 
 | ||||
| 	// PathParamCharacter indicates a RESTCONF path param | ||||
| 	PathParamCharacter = '=' | ||||
| 
 | ||||
| 	// MaxSize is max size of records and internal slice. | ||||
| 	MaxSize = (1 << 22) - 1 | ||||
| ) | ||||
|  | @ -426,8 +429,9 @@ func makeRecords(srcs []Record) (statics, params []*record) { | |||
| 	termChar := string(TerminationCharacter) | ||||
| 	paramPrefix := string(SeparatorCharacter) + string(ParamCharacter) | ||||
| 	wildcardPrefix := string(SeparatorCharacter) + string(WildcardCharacter) | ||||
| 	restconfPrefix := string(PathParamCharacter) + string(ParamCharacter) | ||||
| 	for _, r := range srcs { | ||||
| 		if strings.Contains(r.Key, paramPrefix) || strings.Contains(r.Key, wildcardPrefix) { | ||||
| 		if strings.Contains(r.Key, paramPrefix) || strings.Contains(r.Key, wildcardPrefix) ||strings.Contains(r.Key, restconfPrefix){ | ||||
| 			r.Key += termChar | ||||
| 			params = append(params, &record{Record: r}) | ||||
| 		} else { | ||||
|  |  | |||
							
								
								
									
										90
									
								
								vendor/github.com/go-openapi/runtime/middleware/rapidoc.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/go-openapi/runtime/middleware/rapidoc.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| package middleware | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"fmt" | ||||
| 	"html/template" | ||||
| 	"net/http" | ||||
| 	"path" | ||||
| ) | ||||
| 
 | ||||
| // RapiDocOpts configures the RapiDoc middlewares | ||||
| type RapiDocOpts struct { | ||||
| 	// BasePath for the UI path, defaults to: / | ||||
| 	BasePath string | ||||
| 	// Path combines with BasePath for the full UI path, defaults to: docs | ||||
| 	Path string | ||||
| 	// SpecURL the url to find the spec for | ||||
| 	SpecURL string | ||||
| 	// RapiDocURL for the js that generates the rapidoc site, defaults to: https://cdn.jsdelivr.net/npm/rapidoc/bundles/rapidoc.standalone.js | ||||
| 	RapiDocURL string | ||||
| 	// Title for the documentation site, default to: API documentation | ||||
| 	Title string | ||||
| } | ||||
| 
 | ||||
| // EnsureDefaults in case some options are missing | ||||
| func (r *RapiDocOpts) EnsureDefaults() { | ||||
| 	if r.BasePath == "" { | ||||
| 		r.BasePath = "/" | ||||
| 	} | ||||
| 	if r.Path == "" { | ||||
| 		r.Path = "docs" | ||||
| 	} | ||||
| 	if r.SpecURL == "" { | ||||
| 		r.SpecURL = "/swagger.json" | ||||
| 	} | ||||
| 	if r.RapiDocURL == "" { | ||||
| 		r.RapiDocURL = rapidocLatest | ||||
| 	} | ||||
| 	if r.Title == "" { | ||||
| 		r.Title = "API documentation" | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // RapiDoc creates a middleware to serve a documentation site for a swagger spec. | ||||
| // This allows for altering the spec before starting the http listener. | ||||
| // | ||||
| func RapiDoc(opts RapiDocOpts, next http.Handler) http.Handler { | ||||
| 	opts.EnsureDefaults() | ||||
| 
 | ||||
| 	pth := path.Join(opts.BasePath, opts.Path) | ||||
| 	tmpl := template.Must(template.New("rapidoc").Parse(rapidocTemplate)) | ||||
| 
 | ||||
| 	buf := bytes.NewBuffer(nil) | ||||
| 	_ = tmpl.Execute(buf, opts) | ||||
| 	b := buf.Bytes() | ||||
| 
 | ||||
| 	return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { | ||||
| 		if r.URL.Path == pth { | ||||
| 			rw.Header().Set("Content-Type", "text/html; charset=utf-8") | ||||
| 			rw.WriteHeader(http.StatusOK) | ||||
| 
 | ||||
| 			_, _ = rw.Write(b) | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		if next == nil { | ||||
| 			rw.Header().Set("Content-Type", "text/plain") | ||||
| 			rw.WriteHeader(http.StatusNotFound) | ||||
| 			_, _ = rw.Write([]byte(fmt.Sprintf("%q not found", pth))) | ||||
| 			return | ||||
| 		} | ||||
| 		next.ServeHTTP(rw, r) | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| const ( | ||||
| 	rapidocLatest   = "https://unpkg.com/rapidoc/dist/rapidoc-min.js" | ||||
| 	rapidocTemplate = `<!doctype html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>{{ .Title }}</title> | ||||
|   <meta charset="utf-8"> <!-- Important: rapi-doc uses utf8 charecters --> | ||||
|   <script type="module" src="{{ .RapiDocURL }}"></script> | ||||
| </head> | ||||
| <body> | ||||
|   <rapi-doc spec-url="{{ .SpecURL }}"></rapi-doc> | ||||
| </body> | ||||
| </html> | ||||
| ` | ||||
| ) | ||||
							
								
								
									
										10
									
								
								vendor/github.com/go-openapi/runtime/middleware/router.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-openapi/runtime/middleware/router.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -22,6 +22,7 @@ import ( | |||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/go-openapi/runtime/security" | ||||
| 	"github.com/go-openapi/swag" | ||||
| 
 | ||||
| 	"github.com/go-openapi/analysis" | ||||
| 	"github.com/go-openapi/errors" | ||||
|  | @ -418,6 +419,15 @@ func (d *defaultRouteBuilder) AddRoute(method, path string, operation *spec.Oper | |||
| 		produces := d.analyzer.ProducesFor(operation) | ||||
| 		parameters := d.analyzer.ParamsFor(method, strings.TrimPrefix(path, bp)) | ||||
| 
 | ||||
| 		// add API defaults if not part of the spec | ||||
| 		if defConsumes := d.api.DefaultConsumes(); defConsumes != "" && !swag.ContainsStringsCI(consumes, defConsumes) { | ||||
| 			consumes = append(consumes, defConsumes) | ||||
| 		} | ||||
| 
 | ||||
| 		if defProduces := d.api.DefaultProduces(); defProduces != "" && !swag.ContainsStringsCI(produces, defProduces) { | ||||
| 			produces = append(produces, defProduces) | ||||
| 		} | ||||
| 
 | ||||
| 		record := denco.NewRecord(pathConverter.ReplaceAllString(path, ":$1"), &routeEntry{ | ||||
| 			BasePath:       bp, | ||||
| 			PathPattern:    path, | ||||
|  |  | |||
							
								
								
									
										11
									
								
								vendor/github.com/go-openapi/spec/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-openapi/spec/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -26,3 +26,14 @@ linters: | |||
|     - gocognit | ||||
|     - whitespace | ||||
|     - wsl | ||||
|     - wrapcheck | ||||
|     - testpackage | ||||
|     - nlreturn | ||||
|     - gomnd | ||||
|     - exhaustivestruct | ||||
|     - goerr113 | ||||
|     - errorlint | ||||
|     - nestif | ||||
|     - godot | ||||
|     - gofumpt | ||||
|     - paralleltest | ||||
|  |  | |||
							
								
								
									
										20
									
								
								vendor/github.com/go-openapi/spec/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/go-openapi/spec/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,8 +1,26 @@ | |||
| after_success: | ||||
| - bash <(curl -s https://codecov.io/bash) | ||||
| go: | ||||
| - 1.13.x | ||||
| - 1.14.x | ||||
| - 1.x | ||||
| arch: | ||||
|   - amd64 | ||||
| jobs: | ||||
|   include: | ||||
|   # only run fast tests on ppc64le | ||||
|   - go: 1.x | ||||
|     arch: ppc64le | ||||
|     script: | ||||
|     - gotestsum -f short-verbose -- ./... | ||||
| 
 | ||||
|   # include linting job, but only for latest go version and amd64 arch | ||||
|   - go: 1.x | ||||
|     arch: amd64 | ||||
|     install: | ||||
|       go get github.com/golangci/golangci-lint/cmd/golangci-lint | ||||
|     script: | ||||
|     - golangci-lint run --new-from-rev master | ||||
| 
 | ||||
| install: | ||||
| - GO111MODULE=off go get -u gotest.tools/gotestsum | ||||
| language: go | ||||
|  |  | |||
							
								
								
									
										24
									
								
								vendor/github.com/go-openapi/spec/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/go-openapi/spec/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -2,9 +2,29 @@ | |||
| 
 | ||||
| [](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE) | ||||
| [](http://godoc.org/github.com/go-openapi/spec) | ||||
| [](https://golangci.com) | ||||
| [](https://goreportcard.com/report/github.com/go-openapi/spec) | ||||
| 
 | ||||
| The object model for OpenAPI specification documents. | ||||
| 
 | ||||
| Currently supports Swagger 2.0. | ||||
| ### FAQ | ||||
| 
 | ||||
| * What does this do? | ||||
| 
 | ||||
| > 1. This package knows how to marshal and unmarshal Swagger API specifications into a golang object model | ||||
| > 2. It knows how to resolve $ref and expand them to make a single root documment | ||||
| 
 | ||||
| * How does it play with the rest of the go-openapi packages ? | ||||
| 
 | ||||
| > 1. This package is at the core of the go-openapi suite of packages and [code generator](https://github.com/go-swagger/go-swagger) | ||||
| > 2. There is a [spec loading package](https://github.com/go-openapi/loads) to fetch specs as JSON or YAML from local or remote locations | ||||
| > 3. There is a [spec validation package](https://github.com/go-openapi/validate) built on top of it | ||||
| > 4. There is a [spec analysis package](https://github.com/go-openapi/analysis) built on top of it, to analyze, flatten, fix and merge spec documents | ||||
| 
 | ||||
| * Does this library support OpenAPI 3? | ||||
| 
 | ||||
| > No. | ||||
| > This package currently only supports OpenAPI 2.0 (aka Swagger 2.0). | ||||
| > There is no plan to make it evolve toward supporting OpenAPI 3.x. | ||||
| > This [discussion thread](https://github.com/go-openapi/spec/issues/21) relates the full story. | ||||
| > | ||||
| > An early attempt to support Swagger 3 may be found at: https://github.com/go-openapi/spec3 | ||||
|  |  | |||
							
								
								
									
										34
									
								
								vendor/github.com/go-openapi/spec/appveyor.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/go-openapi/spec/appveyor.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| version: "0.1.{build}" | ||||
| 
 | ||||
| clone_folder: C:\go-openapi\spec | ||||
| shallow_clone: true # for startup speed | ||||
| pull_requests: | ||||
|   do_not_increment_build_number: true | ||||
| 
 | ||||
| #skip_tags: true | ||||
| #skip_branch_with_pr: true | ||||
| 
 | ||||
| # appveyor.yml | ||||
| build: off | ||||
| 
 | ||||
| environment: | ||||
|   GOPATH: c:\gopath | ||||
| 
 | ||||
| stack: go 1.12 | ||||
| 
 | ||||
| test_script: | ||||
|   - echo "test disabled for now" | ||||
|   #- go test -v -timeout 20m ./... | ||||
| #artifacts: | ||||
| #  - path: '%GOPATH%\bin\*.exe' | ||||
| deploy: off | ||||
| 
 | ||||
| notifications: | ||||
|   - provider: Slack | ||||
|     incoming_webhook: https://hooks.slack.com/services/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 | ||||
|     auth_token: | ||||
|       secure: Sf7kZf7ZGbnwWUMpffHwMu5A0cHkLK2MYY32LNTPj4+/3qC3Ghl7+9v4TSLOqOlCwdRNjOGblAq7s+GDJed6/xgRQl1JtCi1klzZNrYX4q01pgTPvvGcwbBkIYgeMaPeIRcK9OZnud7sRXdttozgTOpytps2U6Js32ip7uj5mHSg2ub0FwoSJwlS6dbezZ8+eDhoha0F/guY99BEwx8Bd+zROrT2TFGsSGOFGN6wFc7moCqTHO/YkWib13a2QNXqOxCCVBy/lt76Wp+JkeFppjHlzs/2lP3EAk13RIUAaesdEUHvIHrzCyNJEd3/+KO2DzsWOYfpktd+KBCvgaYOsoo7ubdT3IROeAegZdCgo/6xgCEsmFc9ZcqCfN5yNx2A+BZ2Vwmpws+bQ1E1+B5HDzzaiLcYfG4X2O210QVGVDLWsv1jqD+uPYeHY2WRfh5ZsIUFvaqgUEnwHwrK44/8REAhQavt1QAj5uJpsRd7CkRVPWRNK+yIky+wgbVUFEchRNmS55E7QWf+W4+4QZkQi7vUTMc9nbTUu2Es9NfvfudOpM2wZbn98fjpb/qq/nRv6Bk+ca+7XD5/IgNLMbWp2ouDdzbiHLCOfDUiHiDJhLfFZx9Bwo7ZwfzeOlbrQX66bx7xRKYmOe4DLrXhNcpbsMa8qbfxlZRCmYbubB/Y8h4= | ||||
|     channel: bots | ||||
|     on_build_success: false | ||||
|     on_build_failure: true | ||||
|     on_build_status_changed: true | ||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/spec/bindata.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/spec/bindata.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -247,9 +247,9 @@ type bintree struct { | |||
| } | ||||
| 
 | ||||
| var _bintree = &bintree{nil, map[string]*bintree{ | ||||
| 	"jsonschema-draft-04.json": &bintree{jsonschemaDraft04Json, map[string]*bintree{}}, | ||||
| 	"v2": &bintree{nil, map[string]*bintree{ | ||||
| 		"schema.json": &bintree{v2SchemaJson, map[string]*bintree{}}, | ||||
| 	"jsonschema-draft-04.json": {jsonschemaDraft04Json, map[string]*bintree{}}, | ||||
| 	"v2": {nil, map[string]*bintree{ | ||||
| 		"schema.json": {v2SchemaJson, map[string]*bintree{}}, | ||||
| 	}}, | ||||
| }} | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										54
									
								
								vendor/github.com/go-openapi/spec/cache.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/github.com/go-openapi/spec/cache.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,9 @@ | |||
| 
 | ||||
| package spec | ||||
| 
 | ||||
| import "sync" | ||||
| import ( | ||||
| 	"sync" | ||||
| ) | ||||
| 
 | ||||
| // ResolutionCache a cache for resolving urls | ||||
| type ResolutionCache interface { | ||||
|  | @ -27,12 +29,23 @@ type simpleCache struct { | |||
| 	store map[string]interface{} | ||||
| } | ||||
| 
 | ||||
| func (s *simpleCache) ShallowClone() ResolutionCache { | ||||
| 	store := make(map[string]interface{}, len(s.store)) | ||||
| 	s.lock.RLock() | ||||
| 	for k, v := range s.store { | ||||
| 		store[k] = v | ||||
| 	} | ||||
| 	s.lock.RUnlock() | ||||
| 
 | ||||
| 	return &simpleCache{ | ||||
| 		store: store, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // Get retrieves a cached URI | ||||
| func (s *simpleCache) Get(uri string) (interface{}, bool) { | ||||
| 	debugLog("getting %q from resolution cache", uri) | ||||
| 	s.lock.RLock() | ||||
| 	v, ok := s.store[uri] | ||||
| 	debugLog("got %q from resolution cache: %t", uri, ok) | ||||
| 
 | ||||
| 	s.lock.RUnlock() | ||||
| 	return v, ok | ||||
|  | @ -45,16 +58,41 @@ func (s *simpleCache) Set(uri string, data interface{}) { | |||
| 	s.lock.Unlock() | ||||
| } | ||||
| 
 | ||||
| var resCache ResolutionCache | ||||
| var ( | ||||
| 	// resCache is a package level cache for $ref resolution and expansion. | ||||
| 	// It is initialized lazily by methods that have the need for it: no | ||||
| 	// memory is allocated unless some expander methods are called. | ||||
| 	// | ||||
| 	// It is initialized with JSON schema and swagger schema, | ||||
| 	// which do not mutate during normal operations. | ||||
| 	// | ||||
| 	// All subsequent utilizations of this cache are produced from a shallow | ||||
| 	// clone of this initial version. | ||||
| 	resCache  *simpleCache | ||||
| 	onceCache sync.Once | ||||
| 
 | ||||
| func init() { | ||||
| 	resCache = initResolutionCache() | ||||
| 	_ ResolutionCache = &simpleCache{} | ||||
| ) | ||||
| 
 | ||||
| // initResolutionCache initializes the URI resolution cache. To be wrapped in a sync.Once.Do call. | ||||
| func initResolutionCache() { | ||||
| 	resCache = defaultResolutionCache() | ||||
| } | ||||
| 
 | ||||
| // initResolutionCache initializes the URI resolution cache | ||||
| func initResolutionCache() ResolutionCache { | ||||
| func defaultResolutionCache() *simpleCache { | ||||
| 	return &simpleCache{store: map[string]interface{}{ | ||||
| 		"http://swagger.io/v2/schema.json":       MustLoadSwagger20Schema(), | ||||
| 		"http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(), | ||||
| 	}} | ||||
| } | ||||
| 
 | ||||
| func cacheOrDefault(cache ResolutionCache) ResolutionCache { | ||||
| 	onceCache.Do(initResolutionCache) | ||||
| 
 | ||||
| 	if cache != nil { | ||||
| 		return cache | ||||
| 	} | ||||
| 
 | ||||
| 	// get a shallow clone of the base cache with swagger and json schema | ||||
| 	return resCache.ShallowClone() | ||||
| } | ||||
|  |  | |||
							
								
								
									
										3
									
								
								vendor/github.com/go-openapi/spec/contact_info.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/go-openapi/spec/contact_info.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -28,12 +28,14 @@ type ContactInfo struct { | |||
| 	VendorExtensible | ||||
| } | ||||
| 
 | ||||
| // ContactInfoProps hold the properties of a ContactInfo object | ||||
| type ContactInfoProps struct { | ||||
| 	Name  string `json:"name,omitempty"` | ||||
| 	URL   string `json:"url,omitempty"` | ||||
| 	Email string `json:"email,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // UnmarshalJSON hydrates ContactInfo from json | ||||
| func (c *ContactInfo) UnmarshalJSON(data []byte) error { | ||||
| 	if err := json.Unmarshal(data, &c.ContactInfoProps); err != nil { | ||||
| 		return err | ||||
|  | @ -41,6 +43,7 @@ func (c *ContactInfo) UnmarshalJSON(data []byte) error { | |||
| 	return json.Unmarshal(data, &c.VendorExtensible) | ||||
| } | ||||
| 
 | ||||
| // MarshalJSON produces ContactInfo as json | ||||
| func (c ContactInfo) MarshalJSON() ([]byte, error) { | ||||
| 	b1, err := json.Marshal(c.ContactInfoProps) | ||||
| 	if err != nil { | ||||
|  |  | |||
							
								
								
									
										18
									
								
								vendor/github.com/go-openapi/spec/errors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/go-openapi/spec/errors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| package spec | ||||
| 
 | ||||
| import "errors" | ||||
| 
 | ||||
| var ( | ||||
| 	// ErrUnknownTypeForReference indicates that a resolved reference was found in an unsupported container type | ||||
| 	ErrUnknownTypeForReference = errors.New("unknown type for the resolved reference") | ||||
| 
 | ||||
| 	// ErrResolveRefNeedsAPointer indicates that a $ref target must be a valid JSON pointer | ||||
| 	ErrResolveRefNeedsAPointer = errors.New("resolve ref: target needs to be a pointer") | ||||
| 
 | ||||
| 	// ErrDerefUnsupportedType indicates that a resolved reference was found in an unsupported container type. | ||||
| 	// At the moment, $ref are supported only inside: schemas, parameters, responses, path items | ||||
| 	ErrDerefUnsupportedType = errors.New("deref: unsupported type") | ||||
| 
 | ||||
| 	// ErrExpandUnsupportedType indicates that $ref expansion is attempted on some invalid type | ||||
| 	ErrExpandUnsupportedType = errors.New("expand: unsupported type. Input should be of type *Parameter or *Response") | ||||
| ) | ||||
							
								
								
									
										450
									
								
								vendor/github.com/go-openapi/spec/expander.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										450
									
								
								vendor/github.com/go-openapi/spec/expander.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -17,140 +17,21 @@ package spec | |||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| // ExpandOptions provides options for spec expand | ||||
| // ExpandOptions provides options for the spec expander. | ||||
| type ExpandOptions struct { | ||||
| 	RelativeBase    string | ||||
| 	SkipSchemas     bool | ||||
| 	ContinueOnError bool | ||||
| 	PathLoader      func(string) (json.RawMessage, error) `json:"-"` | ||||
| 
 | ||||
| 	AbsoluteCircularRef bool | ||||
| } | ||||
| 
 | ||||
| // ResolveRefWithBase resolves a reference against a context root with preservation of base path | ||||
| func ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) { | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	specBasePath := "" | ||||
| 	if opts != nil && opts.RelativeBase != "" { | ||||
| 		specBasePath, _ = absPath(opts.RelativeBase) | ||||
| 	} | ||||
| 
 | ||||
| 	result := new(Schema) | ||||
| 	if err := resolver.Resolve(ref, result, specBasePath); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return result, nil | ||||
| } | ||||
| 
 | ||||
| // ResolveRef resolves a reference against a context root | ||||
| // ref is guaranteed to be in root (no need to go to external files) | ||||
| // ResolveRef is ONLY called from the code generation module | ||||
| func ResolveRef(root interface{}, ref *Ref) (*Schema, error) { | ||||
| 	res, _, err := ref.GetPointer().Get(root) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	switch sch := res.(type) { | ||||
| 	case Schema: | ||||
| 		return &sch, nil | ||||
| 	case *Schema: | ||||
| 		return sch, nil | ||||
| 	case map[string]interface{}: | ||||
| 		b, _ := json.Marshal(sch) | ||||
| 		newSch := new(Schema) | ||||
| 		_ = json.Unmarshal(b, newSch) | ||||
| 		return newSch, nil | ||||
| 	default: | ||||
| 		return nil, fmt.Errorf("unknown type for the resolved reference") | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // ResolveParameter resolves a parameter reference against a context root | ||||
| func ResolveParameter(root interface{}, ref Ref) (*Parameter, error) { | ||||
| 	return ResolveParameterWithBase(root, ref, nil) | ||||
| } | ||||
| 
 | ||||
| // ResolveParameterWithBase resolves a parameter reference against a context root and base path | ||||
| func ResolveParameterWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Parameter, error) { | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	result := new(Parameter) | ||||
| 	if err := resolver.Resolve(&ref, result, ""); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return result, nil | ||||
| } | ||||
| 
 | ||||
| // ResolveResponse resolves response a reference against a context root | ||||
| func ResolveResponse(root interface{}, ref Ref) (*Response, error) { | ||||
| 	return ResolveResponseWithBase(root, ref, nil) | ||||
| } | ||||
| 
 | ||||
| // ResolveResponseWithBase resolves response a reference against a context root and base path | ||||
| func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Response, error) { | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	result := new(Response) | ||||
| 	if err := resolver.Resolve(&ref, result, ""); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return result, nil | ||||
| } | ||||
| 
 | ||||
| // ResolveItems resolves parameter items reference against a context root and base path. | ||||
| // | ||||
| // NOTE: stricly speaking, this construct is not supported by Swagger 2.0. | ||||
| // Similarly, $ref are forbidden in response headers. | ||||
| func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) { | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	basePath := "" | ||||
| 	if opts.RelativeBase != "" { | ||||
| 		basePath = opts.RelativeBase | ||||
| 	} | ||||
| 	result := new(Items) | ||||
| 	if err := resolver.Resolve(&ref, result, basePath); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return result, nil | ||||
| } | ||||
| 
 | ||||
| // ResolvePathItem resolves response a path item against a context root and base path | ||||
| func ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem, error) { | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	basePath := "" | ||||
| 	if opts.RelativeBase != "" { | ||||
| 		basePath = opts.RelativeBase | ||||
| 	} | ||||
| 	result := new(PathItem) | ||||
| 	if err := resolver.Resolve(&ref, result, basePath); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return result, nil | ||||
| } | ||||
| 
 | ||||
| // ExpandSpec expands the references in a swagger spec | ||||
| func ExpandSpec(spec *Swagger, options *ExpandOptions) error { | ||||
| 	resolver, err := defaultSchemaLoader(spec, options, nil, nil) | ||||
| 	// Just in case this ever returns an error. | ||||
| 	if resolver.shouldStopOnError(err) { | ||||
| 		return err | ||||
| 	} | ||||
| 	resolver := defaultSchemaLoader(spec, options, nil, nil) | ||||
| 
 | ||||
| 	// getting the base path of the spec to adjust all subsequent reference resolutions | ||||
| 	specBasePath := "" | ||||
|  | @ -160,9 +41,10 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error { | |||
| 
 | ||||
| 	if options == nil || !options.SkipSchemas { | ||||
| 		for key, definition := range spec.Definitions { | ||||
| 			var def *Schema | ||||
| 			var err error | ||||
| 			if def, err = expandSchema(definition, []string{fmt.Sprintf("#/definitions/%s", key)}, resolver, specBasePath); resolver.shouldStopOnError(err) { | ||||
| 			parentRefs := make([]string, 0, 10) | ||||
| 			parentRefs = append(parentRefs, fmt.Sprintf("#/definitions/%s", key)) | ||||
| 			def, err := expandSchema(definition, parentRefs, resolver, specBasePath) | ||||
| 			if resolver.shouldStopOnError(err) { | ||||
| 				return err | ||||
| 			} | ||||
| 			if def != nil { | ||||
|  | @ -189,77 +71,96 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error { | |||
| 
 | ||||
| 	if spec.Paths != nil { | ||||
| 		for key := range spec.Paths.Paths { | ||||
| 			path := spec.Paths.Paths[key] | ||||
| 			if err := expandPathItem(&path, resolver, specBasePath); resolver.shouldStopOnError(err) { | ||||
| 			pth := spec.Paths.Paths[key] | ||||
| 			if err := expandPathItem(&pth, resolver, specBasePath); resolver.shouldStopOnError(err) { | ||||
| 				return err | ||||
| 			} | ||||
| 			spec.Paths.Paths[key] = path | ||||
| 			spec.Paths.Paths[key] = pth | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| const rootBase = "root" | ||||
| // baseForRoot loads in the cache the root document and produces a fake "root" base path entry | ||||
| const rootBase = ".root" | ||||
| 
 | ||||
| // baseForRoot loads in the cache the root document and produces a fake ".root" base path entry | ||||
| // for further $ref resolution | ||||
| // | ||||
| // Setting the cache is optional and this parameter may safely be left to nil. | ||||
| func baseForRoot(root interface{}, cache ResolutionCache) string { | ||||
| 	if root == nil { | ||||
| 		return "" | ||||
| 	} | ||||
| 
 | ||||
| 	// cache the root document to resolve $ref's | ||||
| 	if root != nil { | ||||
| 	base, _ := absPath(rootBase) | ||||
| 	normalizedBase := normalizeAbsPath(base) | ||||
| 		debugLog("setting root doc in cache at: %s", normalizedBase) | ||||
| 		if cache == nil { | ||||
| 			cache = resCache | ||||
| 		} | ||||
| 	cache.Set(normalizedBase, root) | ||||
| 		return rootBase | ||||
| 	} | ||||
| 	return "" | ||||
| 
 | ||||
| 	return normalizedBase | ||||
| } | ||||
| 
 | ||||
| // ExpandSchema expands the refs in the schema object with reference to the root object | ||||
| // go-openapi/validate uses this function | ||||
| // notice that it is impossible to reference a json schema in a different file other than root | ||||
| // ExpandSchema expands the refs in the schema object with reference to the root object. | ||||
| // | ||||
| // go-openapi/validate uses this function. | ||||
| // | ||||
| // Notice that it is impossible to reference a json schema in a different document other than root | ||||
| // (use ExpandSchemaWithBasePath to resolve external references). | ||||
| // | ||||
| // Setting the cache is optional and this parameter may safely be left to nil. | ||||
| func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error { | ||||
| 	cache = cacheOrDefault(cache) | ||||
| 	if root == nil { | ||||
| 		root = schema | ||||
| 	} | ||||
| 
 | ||||
| 	opts := &ExpandOptions{ | ||||
| 		// when a root is specified, cache the root as an in-memory document for $ref retrieval | ||||
| 		RelativeBase:    baseForRoot(root, cache), | ||||
| 		SkipSchemas:     false, | ||||
| 		ContinueOnError: false, | ||||
| 		// when no base path is specified, remaining $ref (circular) are rendered with an absolute path | ||||
| 		AbsoluteCircularRef: true, | ||||
| 	} | ||||
| 
 | ||||
| 	return ExpandSchemaWithBasePath(schema, cache, opts) | ||||
| } | ||||
| 
 | ||||
| // ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options | ||||
| // ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options. | ||||
| // | ||||
| // Setting the cache is optional and this parameter may safely be left to nil. | ||||
| func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error { | ||||
| 	if schema == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	cache = cacheOrDefault(cache) | ||||
| 
 | ||||
| 	var basePath string | ||||
| 	if opts.RelativeBase != "" { | ||||
| 		basePath, _ = absPath(opts.RelativeBase) | ||||
| 	} | ||||
| 
 | ||||
| 	resolver, err := defaultSchemaLoader(nil, opts, cache, nil) | ||||
| 	resolver := defaultSchemaLoader(nil, opts, cache, nil) | ||||
| 
 | ||||
| 	parentRefs := make([]string, 0, 10) | ||||
| 	s, err := expandSchema(*schema, parentRefs, resolver, basePath) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	refs := []string{""} | ||||
| 	var s *Schema | ||||
| 	if s, err = expandSchema(*schema, refs, resolver, basePath); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if s != nil { | ||||
| 		// guard for when continuing on error | ||||
| 		*schema = *s | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) { | ||||
| 	if target.Items != nil { | ||||
| 	if target.Items == nil { | ||||
| 		return &target, nil | ||||
| 	} | ||||
| 
 | ||||
| 	// array | ||||
| 	if target.Items.Schema != nil { | ||||
| 		t, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath) | ||||
| 		if err != nil { | ||||
|  | @ -267,6 +168,8 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, bas | |||
| 		} | ||||
| 		*target.Items.Schema = *t | ||||
| 	} | ||||
| 
 | ||||
| 	// tuple | ||||
| 	for i := range target.Items.Schemas { | ||||
| 		t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath) | ||||
| 		if err != nil { | ||||
|  | @ -274,72 +177,34 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, bas | |||
| 		} | ||||
| 		target.Items.Schemas[i] = *t | ||||
| 	} | ||||
| 	} | ||||
| 
 | ||||
| 	return &target, nil | ||||
| } | ||||
| 
 | ||||
| func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) { | ||||
| 	if target.Ref.String() == "" && target.Ref.IsRoot() { | ||||
| 		// normalizing is important | ||||
| 		newRef := normalizeFileRef(&target.Ref, basePath) | ||||
| 		target.Ref = *newRef | ||||
| 		return &target, nil | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	// change the base path of resolution when an ID is encountered | ||||
| 	// otherwise the basePath should inherit the parent's | ||||
| 	// important: ID can be relative path | ||||
| 	if target.ID != "" { | ||||
| 		debugLog("schema has ID: %s", target.ID) | ||||
| 		// handling the case when id is a folder | ||||
| 		// remember that basePath has to be a file | ||||
| 		refPath := target.ID | ||||
| 		if strings.HasSuffix(target.ID, "/") { | ||||
| 			// path.Clean here would not work correctly if basepath is http | ||||
| 			refPath = fmt.Sprintf("%s%s", refPath, "placeholder.json") | ||||
| 		} | ||||
| 		basePath = normalizePaths(refPath, basePath) | ||||
| 		basePath, _ = resolver.setSchemaID(target, target.ID, basePath) | ||||
| 	} | ||||
| 
 | ||||
| 	var t *Schema | ||||
| 	// if Ref is found, everything else doesn't matter | ||||
| 	// Ref also changes the resolution scope of children expandSchema | ||||
| 	if target.Ref.String() != "" { | ||||
| 		// here the resolution scope is changed because a $ref was encountered | ||||
| 		normalizedRef := normalizeFileRef(&target.Ref, basePath) | ||||
| 		normalizedBasePath := normalizedRef.RemoteURI() | ||||
| 
 | ||||
| 		if resolver.isCircular(normalizedRef, basePath, parentRefs...) { | ||||
| 			// this means there is a cycle in the recursion tree: return the Ref | ||||
| 			// - circular refs cannot be expanded. We leave them as ref. | ||||
| 			// - denormalization means that a new local file ref is set relative to the original basePath | ||||
| 			debugLog("shortcut circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s", | ||||
| 				basePath, normalizedBasePath, normalizedRef.String()) | ||||
| 			if !resolver.options.AbsoluteCircularRef { | ||||
| 				target.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath) | ||||
| 			} else { | ||||
| 				target.Ref = *normalizedRef | ||||
| 			} | ||||
| 			return &target, nil | ||||
| 		return expandSchemaRef(target, parentRefs, resolver, basePath) | ||||
| 	} | ||||
| 
 | ||||
| 		debugLog("basePath: %s: calling Resolve with target: %#v", basePath, target) | ||||
| 		if err := resolver.Resolve(&target.Ref, &t, basePath); resolver.shouldStopOnError(err) { | ||||
| 			return nil, err | ||||
| 	for k := range target.Definitions { | ||||
| 		tt, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
| 			return &target, err | ||||
| 		} | ||||
| 
 | ||||
| 		if t != nil { | ||||
| 			parentRefs = append(parentRefs, normalizedRef.String()) | ||||
| 			var err error | ||||
| 			transitiveResolver, err := resolver.transitiveResolver(basePath, target.Ref) | ||||
| 			if transitiveResolver.shouldStopOnError(err) { | ||||
| 				return nil, err | ||||
| 			} | ||||
| 
 | ||||
| 			basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath) | ||||
| 
 | ||||
| 			return expandSchema(*t, parentRefs, transitiveResolver, basePath) | ||||
| 		if tt != nil { | ||||
| 			target.Definitions[k] = *tt | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -356,15 +221,21 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 		if resolver.shouldStopOnError(err) { | ||||
| 			return &target, err | ||||
| 		} | ||||
| 		if t != nil { | ||||
| 			target.AllOf[i] = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for i := range target.AnyOf { | ||||
| 		t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
| 			return &target, err | ||||
| 		} | ||||
| 		if t != nil { | ||||
| 			target.AnyOf[i] = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for i := range target.OneOf { | ||||
| 		t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -374,6 +245,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			target.OneOf[i] = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if target.Not != nil { | ||||
| 		t, err := expandSchema(*target.Not, parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -383,6 +255,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			*target.Not = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for k := range target.Properties { | ||||
| 		t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -392,6 +265,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			target.Properties[k] = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil { | ||||
| 		t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -401,6 +275,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			*target.AdditionalProperties.Schema = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for k := range target.PatternProperties { | ||||
| 		t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -410,6 +285,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			target.PatternProperties[k] = *t | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for k := range target.Dependencies { | ||||
| 		if target.Dependencies[k].Schema != nil { | ||||
| 			t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath) | ||||
|  | @ -421,6 +297,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil { | ||||
| 		t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
|  | @ -430,16 +307,48 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba | |||
| 			*target.AdditionalItems.Schema = *t | ||||
| 		} | ||||
| 	} | ||||
| 	for k := range target.Definitions { | ||||
| 		t, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
| 			return &target, err | ||||
| 		} | ||||
| 		if t != nil { | ||||
| 			target.Definitions[k] = *t | ||||
| 		} | ||||
| 	return &target, nil | ||||
| } | ||||
| 
 | ||||
| func expandSchemaRef(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) { | ||||
| 	// if a Ref is found, all sibling fields are skipped | ||||
| 	// Ref also changes the resolution scope of children expandSchema | ||||
| 
 | ||||
| 	// here the resolution scope is changed because a $ref was encountered | ||||
| 	normalizedRef := normalizeFileRef(&target.Ref, basePath) | ||||
| 	normalizedBasePath := normalizedRef.RemoteURI() | ||||
| 
 | ||||
| 	if resolver.isCircular(normalizedRef, basePath, parentRefs...) { | ||||
| 		// this means there is a cycle in the recursion tree: return the Ref | ||||
| 		// - circular refs cannot be expanded. We leave them as ref. | ||||
| 		// - denormalization means that a new local file ref is set relative to the original basePath | ||||
| 		debugLog("short circuit circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s", | ||||
| 			basePath, normalizedBasePath, normalizedRef.String()) | ||||
| 		if !resolver.options.AbsoluteCircularRef { | ||||
| 			target.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath) | ||||
| 		} else { | ||||
| 			target.Ref = *normalizedRef | ||||
| 		} | ||||
| 		return &target, nil | ||||
| 	} | ||||
| 
 | ||||
| 	var t *Schema | ||||
| 	err := resolver.Resolve(&target.Ref, &t, basePath) | ||||
| 	if resolver.shouldStopOnError(err) { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	if t == nil { | ||||
| 		// guard for when continuing on error | ||||
| 		return &target, nil | ||||
| 	} | ||||
| 
 | ||||
| 	parentRefs = append(parentRefs, normalizedRef.String()) | ||||
| 	transitiveResolver := resolver.transitiveResolver(basePath, target.Ref) | ||||
| 
 | ||||
| 	basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath) | ||||
| 
 | ||||
| 	return expandSchema(*t, parentRefs, transitiveResolver, basePath) | ||||
| } | ||||
| 
 | ||||
| func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error { | ||||
|  | @ -447,25 +356,24 @@ func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) | |||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	parentRefs := []string{} | ||||
| 	parentRefs := make([]string, 0, 10) | ||||
| 	if err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if pathItem.Ref.String() != "" { | ||||
| 		transitiveResolver, err := resolver.transitiveResolver(basePath, pathItem.Ref) | ||||
| 		if transitiveResolver.shouldStopOnError(err) { | ||||
| 			return err | ||||
| 		} | ||||
| 		transitiveResolver := resolver.transitiveResolver(basePath, pathItem.Ref) | ||||
| 		basePath = transitiveResolver.updateBasePath(resolver, basePath) | ||||
| 		resolver = transitiveResolver | ||||
| 	} | ||||
| 	pathItem.Ref = Ref{} | ||||
| 
 | ||||
| 	for idx := range pathItem.Parameters { | ||||
| 		if err := expandParameterOrResponse(&(pathItem.Parameters[idx]), resolver, basePath); resolver.shouldStopOnError(err) { | ||||
| 	pathItem.Ref = Ref{} | ||||
| 	for i := range pathItem.Parameters { | ||||
| 		if err := expandParameterOrResponse(&(pathItem.Parameters[i]), resolver, basePath); resolver.shouldStopOnError(err) { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	ops := []*Operation{ | ||||
| 		pathItem.Get, | ||||
| 		pathItem.Head, | ||||
|  | @ -480,6 +388,7 @@ func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) | |||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | @ -496,11 +405,15 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err | |||
| 		op.Parameters[i] = param | ||||
| 	} | ||||
| 
 | ||||
| 	if op.Responses != nil { | ||||
| 	if op.Responses == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	responses := op.Responses | ||||
| 	if err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	for code := range responses.StatusCodeResponses { | ||||
| 		response := responses.StatusCodeResponses[code] | ||||
| 		if err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) { | ||||
|  | @ -508,30 +421,31 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err | |||
| 		} | ||||
| 		responses.StatusCodeResponses[code] = response | ||||
| 	} | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // ExpandResponseWithRoot expands a response based on a root document, not a fetchable document | ||||
| // | ||||
| // Notice that it is impossible to reference a json schema in a different document other than root | ||||
| // (use ExpandResponse to resolve external references). | ||||
| // | ||||
| // Setting the cache is optional and this parameter may safely be left to nil. | ||||
| func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error { | ||||
| 	cache = cacheOrDefault(cache) | ||||
| 	opts := &ExpandOptions{ | ||||
| 		RelativeBase:    baseForRoot(root, cache), | ||||
| 		SkipSchemas:     false, | ||||
| 		ContinueOnError: false, | ||||
| 		// when no base path is specified, remaining $ref (circular) are rendered with an absolute path | ||||
| 		AbsoluteCircularRef: true, | ||||
| 	} | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	resolver := defaultSchemaLoader(root, opts, cache, nil) | ||||
| 
 | ||||
| 	return expandParameterOrResponse(response, resolver, opts.RelativeBase) | ||||
| } | ||||
| 
 | ||||
| // ExpandResponse expands a response based on a basepath | ||||
| // This is the exported version of expandResponse | ||||
| // all refs inside response will be resolved relative to basePath | ||||
| // | ||||
| // All refs inside response will be resolved relative to basePath | ||||
| func ExpandResponse(response *Response, basePath string) error { | ||||
| 	var specBasePath string | ||||
| 	if basePath != "" { | ||||
|  | @ -540,27 +454,23 @@ func ExpandResponse(response *Response, basePath string) error { | |||
| 	opts := &ExpandOptions{ | ||||
| 		RelativeBase: specBasePath, | ||||
| 	} | ||||
| 	resolver, err := defaultSchemaLoader(nil, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	resolver := defaultSchemaLoader(nil, opts, nil, nil) | ||||
| 
 | ||||
| 	return expandParameterOrResponse(response, resolver, opts.RelativeBase) | ||||
| } | ||||
| 
 | ||||
| // ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document | ||||
| // ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document. | ||||
| // | ||||
| // Notice that it is impossible to reference a json schema in a different document other than root | ||||
| // (use ExpandParameter to resolve external references). | ||||
| func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error { | ||||
| 	cache = cacheOrDefault(cache) | ||||
| 	opts := &ExpandOptions{ | ||||
| 		RelativeBase:    baseForRoot(root, cache), | ||||
| 		SkipSchemas:     false, | ||||
| 		ContinueOnError: false, | ||||
| 		// when no base path is specified, remaining $ref (circular) are rendered with an absolute path | ||||
| 		AbsoluteCircularRef: true, | ||||
| 	} | ||||
| 	resolver, err := defaultSchemaLoader(root, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	resolver := defaultSchemaLoader(root, opts, cache, nil) | ||||
| 
 | ||||
| 	return expandParameterOrResponse(parameter, resolver, opts.RelativeBase) | ||||
| } | ||||
|  | @ -576,17 +486,17 @@ func ExpandParameter(parameter *Parameter, basePath string) error { | |||
| 	opts := &ExpandOptions{ | ||||
| 		RelativeBase: specBasePath, | ||||
| 	} | ||||
| 	resolver, err := defaultSchemaLoader(nil, opts, nil, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	resolver := defaultSchemaLoader(nil, opts, nil, nil) | ||||
| 
 | ||||
| 	return expandParameterOrResponse(parameter, resolver, opts.RelativeBase) | ||||
| } | ||||
| 
 | ||||
| func getRefAndSchema(input interface{}) (*Ref, *Schema, error) { | ||||
| 	var ref *Ref | ||||
| 	var sch *Schema | ||||
| 	var ( | ||||
| 		ref *Ref | ||||
| 		sch *Schema | ||||
| 	) | ||||
| 
 | ||||
| 	switch refable := input.(type) { | ||||
| 	case *Parameter: | ||||
| 		if refable == nil { | ||||
|  | @ -601,8 +511,9 @@ func getRefAndSchema(input interface{}) (*Ref, *Schema, error) { | |||
| 		ref = &refable.Ref | ||||
| 		sch = refable.Schema | ||||
| 	default: | ||||
| 		return nil, nil, fmt.Errorf("expand: unsupported type %T. Input should be of type *Parameter or *Response", input) | ||||
| 		return nil, nil, fmt.Errorf("unsupported type: %T: %w", input, ErrExpandUnsupportedType) | ||||
| 	} | ||||
| 
 | ||||
| 	return ref, sch, nil | ||||
| } | ||||
| 
 | ||||
|  | @ -611,41 +522,70 @@ func expandParameterOrResponse(input interface{}, resolver *schemaLoader, basePa | |||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if ref == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	parentRefs := []string{} | ||||
| 	if err := resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) { | ||||
| 
 | ||||
| 	parentRefs := make([]string, 0, 10) | ||||
| 	if err = resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	ref, sch, _ := getRefAndSchema(input) | ||||
| 	if ref.String() != "" { | ||||
| 		transitiveResolver, err := resolver.transitiveResolver(basePath, *ref) | ||||
| 		if transitiveResolver.shouldStopOnError(err) { | ||||
| 			return err | ||||
| 		} | ||||
| 		transitiveResolver := resolver.transitiveResolver(basePath, *ref) | ||||
| 		basePath = resolver.updateBasePath(transitiveResolver, basePath) | ||||
| 		resolver = transitiveResolver | ||||
| 	} | ||||
| 
 | ||||
| 	if sch != nil && sch.Ref.String() != "" { | ||||
| 		// schema expanded to a $ref in another root | ||||
| 		var ern error | ||||
| 		sch.Ref, ern = NewRef(normalizePaths(sch.Ref.String(), ref.RemoteURI())) | ||||
| 	if sch == nil { | ||||
| 		// nothing to be expanded | ||||
| 		if ref != nil { | ||||
| 			*ref = Ref{} | ||||
| 		} | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	if sch.Ref.String() != "" { | ||||
| 		rebasedRef, ern := NewRef(normalizePaths(sch.Ref.String(), basePath)) | ||||
| 		if ern != nil { | ||||
| 			return ern | ||||
| 		} | ||||
| 
 | ||||
| 		switch { | ||||
| 		case resolver.isCircular(&rebasedRef, basePath, parentRefs...): | ||||
| 			// this is a circular $ref: stop expansion | ||||
| 			if !resolver.options.AbsoluteCircularRef { | ||||
| 				sch.Ref = *denormalizeFileRef(&rebasedRef, basePath, resolver.context.basePath) | ||||
| 			} else { | ||||
| 				sch.Ref = rebasedRef | ||||
| 			} | ||||
| 		case !resolver.options.SkipSchemas: | ||||
| 			// schema expanded to a $ref in another root | ||||
| 			sch.Ref = rebasedRef | ||||
| 		default: | ||||
| 			// skip schema expansion but rebase $ref to schema | ||||
| 			sch.Ref = *denormalizeFileRef(&rebasedRef, basePath, resolver.context.basePath) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if ref != nil { | ||||
| 		*ref = Ref{} | ||||
| 	} | ||||
| 
 | ||||
| 	if !resolver.options.SkipSchemas && sch != nil { | ||||
| 	// expand schema | ||||
| 	if !resolver.options.SkipSchemas { | ||||
| 		s, err := expandSchema(*sch, parentRefs, resolver, basePath) | ||||
| 		if resolver.shouldStopOnError(err) { | ||||
| 			return err | ||||
| 		} | ||||
| 		if s == nil { | ||||
| 			// guard for when continuing on error | ||||
| 			return nil | ||||
| 		} | ||||
| 		*sch = *s | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
|  |  | |||
							
								
								
									
										13
									
								
								vendor/github.com/go-openapi/spec/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-openapi/spec/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,12 +1,13 @@ | |||
| module github.com/go-openapi/spec | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/go-openapi/jsonpointer v0.19.3 | ||||
| 	github.com/go-openapi/jsonreference v0.19.2 | ||||
| 	github.com/go-openapi/swag v0.19.5 | ||||
| 	github.com/stretchr/testify v1.3.0 | ||||
| 	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect | ||||
| 	gopkg.in/yaml.v2 v2.2.4 | ||||
| 	github.com/go-openapi/jsonpointer v0.19.5 | ||||
| 	github.com/go-openapi/jsonreference v0.19.5 | ||||
| 	github.com/go-openapi/swag v0.19.12 | ||||
| 	github.com/stretchr/testify v1.6.1 | ||||
| 	golang.org/x/net v0.0.0-20201224014010-6772e930b67b // indirect | ||||
| 	golang.org/x/text v0.3.4 // indirect | ||||
| 	gopkg.in/yaml.v2 v2.4.0 | ||||
| ) | ||||
| 
 | ||||
| go 1.13 | ||||
|  |  | |||
							
								
								
									
										47
									
								
								vendor/github.com/go-openapi/spec/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/go-openapi/spec/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -2,48 +2,71 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN | |||
| github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= | ||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | ||||
| github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= | ||||
| github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= | ||||
| github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= | ||||
| github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= | ||||
| github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= | ||||
| github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE= | ||||
| github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= | ||||
| github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= | ||||
| github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= | ||||
| github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= | ||||
| github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= | ||||
| github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= | ||||
| github.com/go-openapi/swag v0.19.12 h1:Bc0bnY2c3AoF7Gc+IMIAQQsD8fLHjHpc19wXvYuayQI= | ||||
| github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | ||||
| github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= | ||||
| github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= | ||||
| github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | ||||
| github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | ||||
| github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | ||||
| github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= | ||||
| github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||
| github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||
| github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4= | ||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= | ||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= | ||||
| github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= | ||||
| github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= | ||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||
| github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= | ||||
| golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= | ||||
| golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw= | ||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= | ||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||
| golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= | ||||
| golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= | ||||
| gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||
| gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= | ||||
| gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= | ||||
| gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|  |  | |||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/spec/header.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/spec/header.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -141,6 +141,12 @@ func (h *Header) AllowDuplicates() *Header { | |||
| 	return h | ||||
| } | ||||
| 
 | ||||
| // WithValidations is a fluent method to set header validations | ||||
| func (h *Header) WithValidations(val CommonValidations) *Header { | ||||
| 	h.SetValidations(SchemaValidations{CommonValidations: val}) | ||||
| 	return h | ||||
| } | ||||
| 
 | ||||
| // MarshalJSON marshal this to JSON | ||||
| func (h Header) MarshalJSON() ([]byte, error) { | ||||
| 	b1, err := json.Marshal(h.CommonValidations) | ||||
|  |  | |||
							
								
								
									
										22
									
								
								vendor/github.com/go-openapi/spec/items.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/go-openapi/spec/items.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -53,22 +53,6 @@ func (s *SimpleSchema) ItemsTypeName() string { | |||
| 	return s.Items.TypeName() | ||||
| } | ||||
| 
 | ||||
| // CommonValidations describe common JSON-schema validations | ||||
| type CommonValidations struct { | ||||
| 	Maximum          *float64      `json:"maximum,omitempty"` | ||||
| 	ExclusiveMaximum bool          `json:"exclusiveMaximum,omitempty"` | ||||
| 	Minimum          *float64      `json:"minimum,omitempty"` | ||||
| 	ExclusiveMinimum bool          `json:"exclusiveMinimum,omitempty"` | ||||
| 	MaxLength        *int64        `json:"maxLength,omitempty"` | ||||
| 	MinLength        *int64        `json:"minLength,omitempty"` | ||||
| 	Pattern          string        `json:"pattern,omitempty"` | ||||
| 	MaxItems         *int64        `json:"maxItems,omitempty"` | ||||
| 	MinItems         *int64        `json:"minItems,omitempty"` | ||||
| 	UniqueItems      bool          `json:"uniqueItems,omitempty"` | ||||
| 	MultipleOf       *float64      `json:"multipleOf,omitempty"` | ||||
| 	Enum             []interface{} `json:"enum,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // Items a limited subset of JSON-Schema's items object. | ||||
| // It is used by parameter definitions that are not located in "body". | ||||
| // | ||||
|  | @ -180,6 +164,12 @@ func (i *Items) AllowDuplicates() *Items { | |||
| 	return i | ||||
| } | ||||
| 
 | ||||
| // WithValidations is a fluent method to set Items validations | ||||
| func (i *Items) WithValidations(val CommonValidations) *Items { | ||||
| 	i.SetValidations(SchemaValidations{CommonValidations: val}) | ||||
| 	return i | ||||
| } | ||||
| 
 | ||||
| // UnmarshalJSON hydrates this items instance with the data from JSON | ||||
| func (i *Items) UnmarshalJSON(data []byte) error { | ||||
| 	var validations CommonValidations | ||||
|  |  | |||
							
								
								
									
										3
									
								
								vendor/github.com/go-openapi/spec/license.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/go-openapi/spec/license.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -28,11 +28,13 @@ type License struct { | |||
| 	VendorExtensible | ||||
| } | ||||
| 
 | ||||
| // LicenseProps holds the properties of a License object | ||||
| type LicenseProps struct { | ||||
| 	Name string `json:"name,omitempty"` | ||||
| 	URL  string `json:"url,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // UnmarshalJSON hydrates License from json | ||||
| func (l *License) UnmarshalJSON(data []byte) error { | ||||
| 	if err := json.Unmarshal(data, &l.LicenseProps); err != nil { | ||||
| 		return err | ||||
|  | @ -40,6 +42,7 @@ func (l *License) UnmarshalJSON(data []byte) error { | |||
| 	return json.Unmarshal(data, &l.VendorExtensible) | ||||
| } | ||||
| 
 | ||||
| // MarshalJSON produces License as json | ||||
| func (l License) MarshalJSON() ([]byte, error) { | ||||
| 	b1, err := json.Marshal(l.LicenseProps) | ||||
| 	if err != nil { | ||||
|  |  | |||
							
								
								
									
										41
									
								
								vendor/github.com/go-openapi/spec/normalizer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/go-openapi/spec/normalizer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,9 +20,12 @@ import ( | |||
| 	"os" | ||||
| 	"path" | ||||
| 	"path/filepath" | ||||
| 	"runtime" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| const windowsOS = "windows" | ||||
| 
 | ||||
| // normalize absolute path for cache. | ||||
| // on Windows, drive letters should be converted to lower as scheme in net/url.URL | ||||
| func normalizeAbsPath(path string) string { | ||||
|  | @ -71,27 +74,51 @@ func normalizePaths(refPath, base string) string { | |||
| 	return baseURL.String() | ||||
| } | ||||
| 
 | ||||
| // isRoot is a temporary hack to discern windows file ref for ref.IsRoot(). | ||||
| // TODO: a more thorough change is needed to handle windows file refs. | ||||
| func isRoot(ref *Ref) bool { | ||||
| 	if runtime.GOOS != windowsOS { | ||||
| 		return ref.IsRoot() | ||||
| 	} | ||||
| 	return !filepath.IsAbs(ref.String()) | ||||
| } | ||||
| 
 | ||||
| // isAbs is a temporary hack to discern windows file ref for url IsAbs(). | ||||
| // TODO: a more thorough change is needed to handle windows file refs. | ||||
| func isAbs(u *url.URL) bool { | ||||
| 	if runtime.GOOS != windowsOS { | ||||
| 		return u.IsAbs() | ||||
| 	} | ||||
| 	if len(u.Scheme) <= 1 { | ||||
| 		// drive letter got caught as URI scheme | ||||
| 		return false | ||||
| 	} | ||||
| 	return u.IsAbs() | ||||
| } | ||||
| 
 | ||||
| // denormalizePaths returns to simplest notation on file $ref, | ||||
| // i.e. strips the absolute path and sets a path relative to the base path. | ||||
| // | ||||
| // This is currently used when we rewrite ref after a circular ref has been detected | ||||
| func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref { | ||||
| 	debugLog("denormalizeFileRef for: %s", ref.String()) | ||||
| 	debugLog("denormalizeFileRef for: %s (relative: %s, original: %s)", ref.String(), | ||||
| 		relativeBase, originalRelativeBase) | ||||
| 
 | ||||
| 	if ref.String() == "" || ref.IsRoot() || ref.HasFragmentOnly { | ||||
| 	// log.Printf("denormalize: %s, IsRoot: %t,HasFragmentOnly: %t, HasFullURL: %t", ref.String(), ref.IsRoot(), ref.HasFragmentOnly, ref.HasFullURL) | ||||
| 	if ref.String() == "" || isRoot(ref) || ref.HasFragmentOnly { | ||||
| 		return ref | ||||
| 	} | ||||
| 	// strip relativeBase from URI | ||||
| 	relativeBaseURL, _ := url.Parse(relativeBase) | ||||
| 	relativeBaseURL.Fragment = "" | ||||
| 
 | ||||
| 	if relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) { | ||||
| 	if isAbs(relativeBaseURL) && strings.HasPrefix(ref.String(), relativeBase) { | ||||
| 		// this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix | ||||
| 		r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase)) | ||||
| 		return &r | ||||
| 	} | ||||
| 
 | ||||
| 	if relativeBaseURL.IsAbs() { | ||||
| 	if isAbs(relativeBaseURL) { | ||||
| 		// other absolute URL get unchanged (i.e. with a non-empty scheme) | ||||
| 		return ref | ||||
| 	} | ||||
|  | @ -111,7 +138,7 @@ func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Re | |||
| 	//   my normalized ref points to: /mypath/item.json#/target | ||||
| 	//   expected result: item.json#/target | ||||
| 	parts := strings.Split(ref.String(), "#") | ||||
| 	relativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0]) | ||||
| 	relativePath, err := filepath.Rel(filepath.Dir(originalRelativeBaseURL.String()), parts[0]) | ||||
| 	if err != nil { | ||||
| 		// there is no common ancestor (e.g. different drives on windows) | ||||
| 		// leaves the ref unchanged | ||||
|  | @ -132,8 +159,6 @@ func normalizeFileRef(ref *Ref, relativeBase string) *Ref { | |||
| 		return &r | ||||
| 	} | ||||
| 
 | ||||
| 	debugLog("normalizing %s against %s", ref.String(), relativeBase) | ||||
| 
 | ||||
| 	s := normalizePaths(ref.String(), relativeBase) | ||||
| 	r, _ := NewRef(s) | ||||
| 	return &r | ||||
|  | @ -148,5 +173,5 @@ func absPath(fname string) (string, error) { | |||
| 		return fname, nil | ||||
| 	} | ||||
| 	wd, err := os.Getwd() | ||||
| 	return filepath.Join(wd, fname), err | ||||
| 	return normalizeAbsPath(filepath.Join(wd, fname)), err | ||||
| } | ||||
|  |  | |||
							
								
								
									
										1
									
								
								vendor/github.com/go-openapi/spec/operation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/go-openapi/spec/operation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,6 @@ import ( | |||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	//gob.Register(map[string][]interface{}{}) | ||||
| 	gob.Register(map[string]interface{}{}) | ||||
| 	gob.Register([]interface{}{}) | ||||
| } | ||||
|  |  | |||
							
								
								
									
										11
									
								
								vendor/github.com/go-openapi/spec/parameter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-openapi/spec/parameter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -39,8 +39,7 @@ func PathParam(name string) *Parameter { | |||
| 
 | ||||
| // BodyParam creates a body parameter | ||||
| func BodyParam(name string, schema *Schema) *Parameter { | ||||
| 	return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema}, | ||||
| 		SimpleSchema: SimpleSchema{Type: "object"}} | ||||
| 	return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema}} | ||||
| } | ||||
| 
 | ||||
| // FormDataParam creates a body parameter | ||||
|  | @ -58,7 +57,7 @@ func FileParam(name string) *Parameter { | |||
| func SimpleArrayParam(name, tpe, fmt string) *Parameter { | ||||
| 	return &Parameter{ParamProps: ParamProps{Name: name}, | ||||
| 		SimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: "csv", | ||||
| 			Items: &Items{SimpleSchema: SimpleSchema{Type: "string", Format: fmt}}}} | ||||
| 			Items: &Items{SimpleSchema: SimpleSchema{Type: tpe, Format: fmt}}}} | ||||
| } | ||||
| 
 | ||||
| // ParamRef creates a parameter that's a json reference | ||||
|  | @ -278,6 +277,12 @@ func (p *Parameter) AllowDuplicates() *Parameter { | |||
| 	return p | ||||
| } | ||||
| 
 | ||||
| // WithValidations is a fluent method to set parameter validations | ||||
| func (p *Parameter) WithValidations(val CommonValidations) *Parameter { | ||||
| 	p.SetValidations(SchemaValidations{CommonValidations: val}) | ||||
| 	return p | ||||
| } | ||||
| 
 | ||||
| // UnmarshalJSON hydrates this items instance with the data from JSON | ||||
| func (p *Parameter) UnmarshalJSON(data []byte) error { | ||||
| 	if err := json.Unmarshal(data, &p.CommonValidations); err != nil { | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 6543
				6543