Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Commit 19c0dcd

Browse files
committed
support service config analyzed-paths
1 parent 3874bea commit 19c0dcd

File tree

21 files changed

+274
-134
lines changed

21 files changed

+274
-134
lines changed

.circleci/config.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 2
22
jobs:
33
build:
44
docker:
5-
- image: circleci/golang:1.12
5+
- image: circleci/golang:1.13
66
- image: redis
77
- image: circleci/postgres:9.4
88
environment:
@@ -12,7 +12,6 @@ jobs:
1212
working_directory: /go/src/github.com/golangci/golangci-api
1313
steps:
1414
- checkout
15-
- run: GO111MODULE=on go mod vendor
1615
- run: go get github.com/golangci/golangci-lint/cmd/golangci-lint
1716
- run: make prepare_test_env
1817
- run:

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ require (
6363
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
6464
github.com/yudai/pp v2.0.1+incompatible // indirect
6565
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
66-
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678
66+
golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0
6767
gopkg.in/boj/redistore.v1 v1.0.0-20160128113310-fc113767cd6b
6868
gopkg.in/redsync.v1 v1.0.1
69-
gopkg.in/yaml.v2 v2.2.2
69+
gopkg.in/yaml.v2 v2.2.4
7070
)
7171

7272
go 1.13

go.sum

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ github.com/aws/aws-sdk-go v1.20.15 h1:y9ts8MJhB7ReUidS6Rq+0KxdFeL01J+pmOlGq6Yqpi
2424
github.com/aws/aws-sdk-go v1.20.15/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
2525
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
2626
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
27+
github.com/bombsimon/wsl v1.2.1/go.mod h1:43lEF/i0kpXbLCeDXL9LMT8c92HyBywXb0AsgMHYngM=
2728
github.com/cenkalti/backoff v2.2.0+incompatible h1:8qVbEY6GLhoLlLi1Ac2ZkVhedNwlhQXc39qivKp9+GI=
2829
github.com/cenkalti/backoff v2.2.0+incompatible/go.mod h1:b6Nc7NRH5C4aCISLry0tLnTjcuTEvoiqcWDdsU0sOGM=
2930
github.com/certifi/gocertifi v0.0.0-20190506164543-d2eda7129713 h1:UNOqI3EKhvbqV8f1Vm3NIwkrhq388sGCeAH2Op7w0rc=
@@ -127,10 +128,14 @@ github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2N
127128
github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o=
128129
github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU=
129130
github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
131+
github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
130132
github.com/golangci/golangci-lint v1.19.1 h1:g9xL8KW7UZDCkVlgHYJMA6F4Sj/sRVa0FoCeXI+Z3iM=
131133
github.com/golangci/golangci-lint v1.19.1/go.mod h1:2CEc4Fxx3vxDv7g8DyXkHCBF73AOzAymcJAprs2vCps=
134+
github.com/golangci/golangci-lint v1.20.0 h1:bokjFHRgut7TT9YiKSVWVscWfZNs1fQgSz94geGPHJw=
135+
github.com/golangci/golangci-lint v1.20.0/go.mod h1:WhcG5dpuf94TEpqUBk95qBEZ599UcAvuGf02g47CdXU=
132136
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU=
133137
github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
138+
github.com/golangci/lint-1 v0.0.0-20190930103755-fad67e08aa89/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
134139
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
135140
github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
136141
github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI=
@@ -226,10 +231,13 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
226231
github.com/markbates/goth v0.0.0-20180113214406-24f8ac10e57e h1:lY1FQSXNKC3nA0+CnwPDw28u/tDAMaSOLuBZfB4TuxA=
227232
github.com/markbates/goth v0.0.0-20180113214406-24f8ac10e57e/go.mod h1:ERjpUjiHOcJUNTBjgUhpKzkay5qNGcMdjRHYOIpF5Uk=
228233
github.com/matoous/godox v0.0.0-20190910121045-032ad8106c86/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
234+
github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
229235
github.com/mattes/migrate v0.0.0-20171208214826-d23f71b03c4a h1:vifr4bD376cKoCqVTfXsh6APO/uVS7h7QwN4Cg3Tzw4=
230236
github.com/mattes/migrate v0.0.0-20171208214826-d23f71b03c4a/go.mod h1:LJcqgpj1jQoxv3m2VXd3drv0suK5CbN/RCX7MXwgnVI=
231237
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
232238
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
239+
github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
240+
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
233241
github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
234242
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
235243
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
@@ -293,6 +301,7 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh
293301
github.com/savaki/amplitude-go v0.0.0-20160610055645-f62e3b57c0e4 h1:97Sfylvx7jxNwMDa6m3wRYQ0sCwP8R7ZGneF57jTSP0=
294302
github.com/savaki/amplitude-go v0.0.0-20160610055645-f62e3b57c0e4/go.mod h1:+dADDNKPvI1c6TuMfh+UakKF37l2i4ok/+wpEVT2KII=
295303
github.com/securego/gosec v0.0.0-20190912120752-140048b2a218/go.mod h1:q6oYAujd2qyeU4cJqIri4LBIgdHXGvxWHZ1E29HNFRE=
304+
github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do=
296305
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
297306
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
298307
github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada h1:WokF3GuxBeL+n4Lk4Fa8v9mbdjlrl7bHuneF4N1bk2I=
@@ -341,13 +350,16 @@ github.com/stvp/rollbar v0.5.1/go.mod h1:/fyFC854GgkbHRz/rSsiYc6h84o0G5hxBezoQqR
341350
github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203 h1:QVqDTf3h2WHt08YuiTGPZLls0Wq99X9bWd0Q5ZSBesM=
342351
github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8=
343352
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
353+
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
344354
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
345355
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
346356
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
347357
github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
348358
github.com/ultraware/whitespace v0.0.3/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
359+
github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
349360
github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc=
350361
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
362+
github.com/uudashr/gocognit v0.0.0-20190926065955-1655d0de0517/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM=
351363
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
352364
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
353365
github.com/valyala/fasthttp v1.2.0 h1:dzZJf2IuMiclVjdw0kkT+f9u4YdrapbNyGAN47E/qnk=
@@ -383,6 +395,7 @@ golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACk
383395
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
384396
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7 h1:0hQKqeLdqlt5iIwVOBErRisrHJAN57yOiPRQItI20fU=
385397
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
398+
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
386399
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
387400
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
388401
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -406,6 +419,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwL
406419
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
407420
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b h1:XfVGCX+0T4WOStkaOsJRllbsiImhB2jgVBGc9L0lPGc=
408421
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
422+
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g=
423+
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
409424
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
410425
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
411426
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
@@ -431,6 +446,8 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/p
431446
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
432447
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5 h1:SW/0nsKCUaozCUtZTakri5laocGx/5bkDSSLrFUsa5s=
433448
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
449+
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM=
450+
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
434451
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
435452
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
436453
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
@@ -460,6 +477,8 @@ golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtn
460477
golang.org/x/tools v0.0.0-20190911230505-6bfd74cf029c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
461478
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678 h1:rM1Udd0CgtYI3KUIhu9ROz0QCqjW+n/ODp/hH7c60Xc=
462479
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
480+
golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0 h1:7+F62GGWUowoiJOUDivedlBECd/fTeUDJnCu0JetQO0=
481+
golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
463482
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
464483
google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
465484
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -493,6 +512,8 @@ gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
493512
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
494513
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
495514
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
515+
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
516+
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
496517
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
497518
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
498519
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

pkg/goenvbuild/config/config.go

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package config
22

3+
import (
4+
"fmt"
5+
"strings"
6+
7+
"github.com/pkg/errors"
8+
)
9+
310
type Service struct {
4-
ProjectPath string `mapstructure:"project-path"`
11+
ProjectPath string `mapstructure:"project-path"`
12+
AnalyzedPaths []string `mapstructure:"analyzed-paths"`
513

614
GolangciLintVersion string `mapstructure:"golangci-lint-version"`
715
Prepare []string
@@ -15,3 +23,35 @@ type SuggestedChangesConfig struct {
1523
type FullConfig struct {
1624
Service Service
1725
}
26+
27+
func (cfg *Service) validateAnalyzedPaths() error {
28+
for _, path := range cfg.AnalyzedPaths {
29+
if strings.HasPrefix(path, "/") {
30+
return fmt.Errorf("path %q is invalid: only relative paths are allowed", path)
31+
}
32+
33+
path = strings.TrimSuffix(path, "/...")
34+
if strings.Contains(path, "..") {
35+
return fmt.Errorf("path %q is invalid: analyzing of parent dirs (..) isn't allowed", path)
36+
}
37+
}
38+
39+
return nil
40+
}
41+
42+
func (cfg *Service) GetValidatedAnalyzedPaths() ([]string, error) {
43+
defaultPaths := []string{"./..."}
44+
if cfg == nil {
45+
return defaultPaths, nil
46+
}
47+
48+
if err := cfg.validateAnalyzedPaths(); err != nil {
49+
return nil, errors.Wrap(err, "failed to validate service config")
50+
}
51+
52+
if len(cfg.AnalyzedPaths) != 0 {
53+
return cfg.AnalyzedPaths, nil
54+
}
55+
56+
return defaultPaths, nil
57+
}

pkg/goenvbuild/preparer.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ func (p Preparer) run(needStreamToOutput bool) *result.Result {
214214
// run golangci-lint
215215
err = runStepGroup(res.Log, "run golangci-lint", func(sg *result.StepGroup, log logutil.Log) error {
216216
r := runner.WithEnv("GOLANGCI_COM_RUN", "1")
217-
return p.runGolangciLint(ctx, sg, r)
217+
return p.runGolangciLint(ctx, sg, r, &res.ServiceConfig)
218218
})
219219
if err != nil {
220220
return saveErr(err)
@@ -281,11 +281,16 @@ func parseVersion(v string) (*version, error) {
281281
}, nil
282282
}
283283

284-
func (p Preparer) runGolangciLint(ctx context.Context, sg *result.StepGroup, runner *command.StreamingRunner) error {
284+
func (p Preparer) runGolangciLint(ctx context.Context, sg *result.StepGroup, runner *command.StreamingRunner, cfg *goenvconfig.Service) error {
285+
analyzedPaths, err := cfg.GetValidatedAnalyzedPaths()
286+
if err != nil {
287+
return errors.Wrap(err, "failed to build paths for analysis")
288+
}
289+
290+
args := append([]string{"run", "-v", "--deadline=5m"}, analyzedPaths...)
285291
cmd := "golangci-lint"
286-
args := []string{"run", "-v", "--deadline=5m"}
287292
sg.AddStepCmd(cmd, args...)
288-
_, err := runner.Run(ctx, cmd, args...)
293+
_, err = runner.Run(ctx, cmd, args...)
289294
return err
290295
}
291296

pkg/worker/analyze/analyzequeue/consumers/analyze_pr.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ func (c AnalyzePR) Consume(ctx context.Context, repoOwner, repoName string,
9191
if err != nil {
9292
return errors.Wrap(err, "can't build processor")
9393
}
94-
defer cleanup()
94+
if cleanup != nil {
95+
defer cleanup()
96+
}
9597

9698
if err = p.Process(pullCtx); err != nil {
9799
return errors.Wrap(err, "can't process pull analysis")

pkg/worker/analyze/linters/golinters/golangci_lint.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import (
77
"strconv"
88
"strings"
99

10+
"github.com/pkg/errors"
11+
12+
"github.com/golangci/golangci-api/pkg/goenvbuild/config"
1013
logresult "github.com/golangci/golangci-api/pkg/goenvbuild/result"
1114
"github.com/golangci/golangci-api/pkg/worker/analytics"
1215
"github.com/golangci/golangci-api/pkg/worker/analyze/linters/result"
@@ -25,9 +28,14 @@ func (g GolangciLint) Name() string {
2528
}
2629

2730
//nolint:gocyclo
28-
func (g GolangciLint) Run(ctx context.Context, sg *logresult.StepGroup, exec executors.Executor) (*result.Result, error) {
31+
func (g GolangciLint) Run(ctx context.Context, sg *logresult.StepGroup, exec executors.Executor, buildConfig *config.Service) (*result.Result, error) {
2932
exec = exec.WithEnv("GOLANGCI_COM_RUN", "1")
3033

34+
analyzedPaths, err := buildConfig.GetValidatedAnalyzedPaths()
35+
if err != nil {
36+
return nil, errors.Wrap(err, "failed to build paths for analysis")
37+
}
38+
3139
args := []string{
3240
"run",
3341
"--out-format=json",
@@ -37,6 +45,7 @@ func (g GolangciLint) Run(ctx context.Context, sg *logresult.StepGroup, exec exe
3745
"--new-from-rev=",
3846
"--new-from-patch=" + g.PatchPath,
3947
}
48+
args = append(args, analyzedPaths...)
4049
step := sg.AddStepCmd("GOLANGCI_COM_RUN=1 golangci-lint", args...)
4150

4251
runRes, runErr := exec.Run(ctx, g.Name(), args...)

pkg/worker/analyze/linters/linter.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package linters
33
import (
44
"context"
55

6+
"github.com/golangci/golangci-api/pkg/goenvbuild/config"
7+
68
logresult "github.com/golangci/golangci-api/pkg/goenvbuild/result"
79
"github.com/golangci/golangci-api/pkg/worker/analyze/linters/result"
810
"github.com/golangci/golangci-api/pkg/worker/lib/executors"
@@ -11,6 +13,6 @@ import (
1113
//go:generate mockgen -package linters -source linter.go -destination linter_mock.go
1214

1315
type Linter interface {
14-
Run(ctx context.Context, sg *logresult.StepGroup, exec executors.Executor) (*result.Result, error)
16+
Run(ctx context.Context, sg *logresult.StepGroup, exec executors.Executor, buildConfig *config.Service) (*result.Result, error)
1517
Name() string
1618
}

pkg/worker/analyze/linters/linter_mock.go

Lines changed: 16 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/worker/analyze/linters/runner.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,24 @@ import (
44
"context"
55
"log"
66

7+
"github.com/golangci/golangci-api/pkg/goenvbuild/config"
8+
79
logresult "github.com/golangci/golangci-api/pkg/goenvbuild/result"
810
"github.com/golangci/golangci-api/pkg/worker/analyze/linters/result"
911
"github.com/golangci/golangci-api/pkg/worker/lib/executors"
1012
)
1113

1214
type Runner interface {
13-
Run(ctx context.Context, sg *logresult.StepGroup, linters []Linter, exec executors.Executor) (*result.Result, error)
15+
Run(ctx context.Context, sg *logresult.StepGroup, linters []Linter, exec executors.Executor, buildConfig *config.Service) (*result.Result, error)
1416
}
1517

1618
type SimpleRunner struct {
1719
}
1820

19-
func (r SimpleRunner) Run(ctx context.Context, sg *logresult.StepGroup, linters []Linter, exec executors.Executor) (*result.Result, error) {
21+
func (r SimpleRunner) Run(ctx context.Context, sg *logresult.StepGroup, linters []Linter, exec executors.Executor, buildConfig *config.Service) (*result.Result, error) {
2022
results := []result.Result{}
2123
for _, linter := range linters {
22-
res, err := linter.Run(ctx, sg, exec)
24+
res, err := linter.Run(ctx, sg, exec, buildConfig)
2325
if err != nil {
2426
return nil, err // don't wrap error here, need to save original error
2527
}

0 commit comments

Comments
 (0)