@@ -28,31 +28,31 @@ type Analyzer struct {
28
28
var _ pb.AnalyzerServer = & Analyzer {}
29
29
30
30
// function to convert pb.types.Value to string argument
31
- type argumentConstructor func (v * types.Value ) string
31
+ type argumentConstructor func (logger log. Logger , v * types.Value ) string
32
32
33
33
// map of linters with options and argument constructors
34
34
var lintersOptions = map [string ]map [string ]argumentConstructor {
35
35
"lll" : map [string ]argumentConstructor {
36
- "maxLen" : func (v * types.Value ) string {
36
+ "maxLen" : func (logger log. Logger , v * types.Value ) string {
37
37
var number int
38
38
39
39
switch v .GetKind ().(type ) {
40
40
case * types.Value_StringValue :
41
41
n , err := strconv .Atoi (v .GetStringValue ())
42
42
if err != nil {
43
- log .Warningf ("wrong type for lll:maxLen argument" )
43
+ logger .Warningf ("wrong type for lll:maxLen argument" )
44
44
return ""
45
45
}
46
46
number = n
47
47
case * types.Value_NumberValue :
48
48
intpart , frac := math .Modf (v .GetNumberValue ())
49
49
if frac != 0 {
50
- log .Warningf ("wrong type for lll:maxLen argument" )
50
+ logger .Warningf ("wrong type for lll:maxLen argument" )
51
51
return ""
52
52
}
53
53
number = int (intpart )
54
54
default :
55
- log .Warningf ("wrong type for lll:maxLen argument" )
55
+ logger .Warningf ("wrong type for lll:maxLen argument" )
56
56
return ""
57
57
}
58
58
@@ -67,6 +67,9 @@ var lintersOptions = map[string]map[string]argumentConstructor{
67
67
68
68
func (a * Analyzer ) NotifyReviewEvent (ctx context.Context , e * pb.ReviewEvent ) (
69
69
* pb.EventResponse , error ) {
70
+
71
+ logger := log .With (log .Fields (pb .GetLogFields (ctx )))
72
+
70
73
changes , err := a .DataClient .GetChanges (ctx , & pb.ChangesRequest {
71
74
Head : & e .Head ,
72
75
Base : & e .Base ,
@@ -76,17 +79,17 @@ func (a *Analyzer) NotifyReviewEvent(ctx context.Context, e *pb.ReviewEvent) (
76
79
IncludeLanguages : []string {"go" },
77
80
})
78
81
if err != nil {
79
- log .Errorf (err , "failed to GetChanges from a DataService" )
82
+ logger .Errorf (err , "failed to GetChanges from a DataService" )
80
83
return nil , err
81
84
}
82
85
83
86
tmp , err := ioutil .TempDir ("" , "gometalint" )
84
87
if err != nil {
85
- log .Errorf (err , "cannot create tmp dir in %s" , os .TempDir ())
88
+ logger .Errorf (err , "cannot create tmp dir in %s" , os .TempDir ())
86
89
return nil , err
87
90
}
88
91
defer os .RemoveAll (tmp )
89
- log .Debugf ("Saving files to '%s'" , tmp )
92
+ logger .Debugf ("Saving files to '%s'" , tmp )
90
93
91
94
found , saved := 0 , 0
92
95
for {
@@ -96,7 +99,7 @@ func (a *Analyzer) NotifyReviewEvent(ctx context.Context, e *pb.ReviewEvent) (
96
99
}
97
100
98
101
if err != nil {
99
- log .Errorf (err , "failed to get a file from DataServer" )
102
+ logger .Errorf (err , "failed to get a file from DataServer" )
100
103
continue
101
104
}
102
105
@@ -106,23 +109,23 @@ func (a *Analyzer) NotifyReviewEvent(ctx context.Context, e *pb.ReviewEvent) (
106
109
107
110
file := change .Head
108
111
if err = saveTo (file , tmp ); err != nil {
109
- log .Errorf (err , "failed to write file %q" , file .Path )
112
+ logger .Errorf (err , "failed to write file %q" , file .Path )
110
113
} else {
111
114
saved ++
112
115
}
113
116
found ++
114
117
}
115
118
116
119
if saved < found {
117
- log .Warningf ("%d/%d Golang files saved. analyzer won't run on non-saved ones" , saved , found )
120
+ logger .Warningf ("%d/%d Golang files saved. analyzer won't run on non-saved ones" , saved , found )
118
121
}
119
122
if saved == 0 {
120
- log .Debugf ("no Golang files to work on. skip running gometalinter" )
123
+ logger .Debugf ("no Golang files to work on. skip running gometalinter" )
121
124
return & pb.EventResponse {AnalyzerVersion : a .Version }, nil
122
125
}
123
- log .Debugf ("%d Golang files to work on. running gometalinter" , saved )
126
+ logger .Debugf ("%d Golang files to work on. running gometalinter" , saved )
124
127
125
- withArgs := append (append (a .Args , tmp ), a .linterArguments (e .Configuration )... )
128
+ withArgs := append (append (a .Args , tmp ), a .linterArguments (logger , e .Configuration )... )
126
129
comments := RunGometalinter (withArgs )
127
130
var allComments []* pb.Comment
128
131
for _ , comment := range comments {
@@ -134,10 +137,10 @@ func (a *Analyzer) NotifyReviewEvent(ctx context.Context, e *pb.ReviewEvent) (
134
137
Text : origPathText ,
135
138
}
136
139
allComments = append (allComments , & newComment )
137
- log .Debugf ("Get comment %v" , newComment )
140
+ logger .Debugf ("Get comment %v" , newComment )
138
141
}
139
142
140
- log .Infof ("%d comments created" , len (allComments ))
143
+ logger .Infof ("%d comments created" , len (allComments ))
141
144
return & pb.EventResponse {
142
145
AnalyzerVersion : a .Version ,
143
146
Comments : allComments ,
@@ -189,7 +192,7 @@ func (a *Analyzer) NotifyPushEvent(ctx context.Context, e *pb.PushEvent) (*pb.Ev
189
192
return & pb.EventResponse {}, nil
190
193
}
191
194
192
- func (a * Analyzer ) linterArguments (s types.Struct ) []string {
195
+ func (a * Analyzer ) linterArguments (logger log. Logger , s types.Struct ) []string {
193
196
config := s .GetFields ()
194
197
if config == nil {
195
198
return nil
@@ -232,7 +235,7 @@ func (a *Analyzer) linterArguments(s types.Struct) []string {
232
235
}
233
236
234
237
if ! correctLinter {
235
- log .Warningf ("unknown linter %s" , name )
238
+ logger .Warningf ("unknown linter %s" , name )
236
239
continue
237
240
}
238
241
@@ -243,7 +246,7 @@ func (a *Analyzer) linterArguments(s types.Struct) []string {
243
246
continue
244
247
}
245
248
246
- arg := linterOpts [optionName ](optV )
249
+ arg := linterOpts [optionName ](logger , optV )
247
250
if arg != "" {
248
251
args = append (args , arg )
249
252
}
0 commit comments