@@ -57,12 +57,18 @@ func getToken() []byte {
57
57
}
58
58
59
59
func ServeHTTP (w http.ResponseWriter , r * http.Request ) {
60
- fmt . Fprint ( w , "Version: 0.55 \n " )
61
- eventType , _ , payload , ok , _ := gitee_utils . ValidateWebhook ( w , r )
62
- if ! ok {
60
+ defer r . Body . Close ( )
61
+ payload , err := ioutil . ReadAll ( r . Body )
62
+ if err != nil {
63
63
return
64
64
}
65
65
66
+ // fmt.Println(string(payload))
67
+
68
+ eventType := r .Header .Get ("event_type" )
69
+
70
+ var resp []string
71
+
66
72
switch eventType {
67
73
case "Issue Hook" :
68
74
var ie gitee.IssueEvent
@@ -72,13 +78,15 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request) {
72
78
if err := checkRepository (payload , ie .Repository ); err != nil {
73
79
return
74
80
}
75
- go handleIssueEvent (& ie )
81
+ resp = handleIssueEvent (& ie )
82
+ responseJson (w , resp )
76
83
case "Note Hook" :
77
84
var ic gitee.NoteEvent
78
85
if err := json .Unmarshal (payload , & ic ); err != nil {
79
86
return
80
87
}
81
- go handleCommentEvent (& ic )
88
+ resp = handleCommentEvent (& ic )
89
+ responseJson (w , resp )
82
90
//case "Merge Request Hook":
83
91
//var ip gitee.PullRequestEvent
84
92
//if err := json.Unmarshal(payload, &ip); err != nil {
@@ -87,12 +95,14 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request) {
87
95
//go handlePullRequestEvent(&ip)
88
96
default :
89
97
return
98
+
90
99
}
91
100
}
92
101
93
- func handleIssueEvent (i * gitee.IssueEvent ) {
102
+ func handleIssueEvent (i * gitee.IssueEvent ) []string {
103
+ var resp []string
94
104
if * (i .Action ) != "open" {
95
- return
105
+ return resp
96
106
}
97
107
assignee := ""
98
108
strLabels := ""
@@ -118,11 +128,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
118
128
c := gitee_utils .NewClient (getToken )
119
129
120
130
if len (issueInit ) == 0 {
121
- res := c .CreateGiteeIssueComment (org , repo , issueNum , issueTemp )
122
- if res != nil {
123
- fmt .Println (res .Error ())
124
- return
125
- }
131
+ resp = append (resp , issueTemp )
126
132
var labelsToAdd []string
127
133
128
134
labelMatches := labelRegex .FindAllStringSubmatch (issueBody , - 1 )
@@ -180,7 +186,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
180
186
rese := c .AssignGiteeIssue (org , repo , labelsToAdd_str , issueNum , assignee )
181
187
if rese != nil {
182
188
fmt .Println (rese .Error ())
183
- return
189
+ return resp
184
190
}
185
191
186
192
issueBody = strings .Replace (issueBody , " " , "" , - 1 )
@@ -237,19 +243,11 @@ func handleIssueEvent(i *gitee.IssueEvent) {
237
243
238
244
helloWord = strings .Replace (helloWord , "{" + "label" + "}" , fmt .Sprintf ("%v" , strLabels ), - 1 )
239
245
240
- resLabel := c .CreateGiteeIssueComment (org , repo , issueNum , helloWord )
241
- if resLabel != nil {
242
- fmt .Println (resLabel .Error ())
243
- return
244
- }
246
+ resp = append (resp , helloWord )
245
247
}
246
248
} else {
247
249
248
- res := c .CreateGiteeIssueComment (org , repo , issueNum , issueTemp )
249
- if res != nil {
250
- fmt .Println (res .Error ())
251
- return
252
- }
250
+ resp = append (resp , issueTemp )
253
251
254
252
var labelFindTemp []string
255
253
for _ , label := range issueInit {
@@ -265,7 +263,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
265
263
rese := c .AssignGiteeIssue (org , repo , "" , issueNum , assignee )
266
264
if rese != nil {
267
265
fmt .Println (rese .Error ())
268
- return
266
+ return nil
269
267
}
270
268
} else {
271
269
assignTemp := string (assignComment [:])
@@ -277,11 +275,8 @@ func handleIssueEvent(i *gitee.IssueEvent) {
277
275
} else {
278
276
assignTemp = strings .Replace (assignTemp , "@{" + "assignee" + "}" , fmt .Sprintf ("%v" , "自己" ), - 1 )
279
277
}
280
- rs := c .CreateGiteeIssueComment (org , repo , issueNum , assignTemp )
281
- if rs != nil {
282
- fmt .Println (res .Error ())
283
- return
284
- }
278
+
279
+ resp = append (resp , assignTemp )
285
280
}
286
281
}
287
282
@@ -292,29 +287,31 @@ func handleIssueEvent(i *gitee.IssueEvent) {
292
287
assigneeStr = ""
293
288
}
294
289
Temp := "hello, @" + issueMaker + assigneeStr + " " + decisionTemp + "\n "
295
- res := c .CreateGiteeIssueComment (org , repo , issueNum , Temp )
296
- if res != nil {
297
- fmt .Println (res .Error ())
298
- return
299
- }
290
+
291
+ resp = append (resp , Temp )
300
292
}
301
293
}
294
+ return resp
302
295
}
303
296
304
- func handleCommentEvent (i * gitee.NoteEvent ) {
297
+ func handleCommentEvent (i * gitee.NoteEvent ) [] string {
305
298
switch * (i .NoteableType ) {
306
299
case "Issue" :
307
- go handleIssueCommentEvent (i )
300
+ // go handleIssueCommentEvent(i)
301
+ var resp []string = handleIssueCommentEvent (i )
302
+ return resp
308
303
//case "PullRequest":
309
304
// go handlePRCommentEvent(i)
310
305
default :
311
- return
306
+ return nil
312
307
}
313
308
}
314
309
315
- func handleIssueCommentEvent (i * gitee.NoteEvent ) {
310
+ func handleIssueCommentEvent (i * gitee.NoteEvent ) []string {
311
+ var resp []string
312
+
316
313
if * (i .Action ) != "comment" {
317
- return
314
+ return resp
318
315
}
319
316
assignee := ""
320
317
labelsToAddStr := ""
@@ -340,18 +337,15 @@ func handleIssueCommentEvent(i *gitee.NoteEvent) {
340
337
c := gitee_utils .NewClient (getToken )
341
338
labelMatches := labelRegex .FindAllStringSubmatch (noteBody , - 1 )
342
339
if len (labelMatches ) == 0 {
343
- return
340
+ return nil
344
341
}
345
342
var labelsToAdd []string
346
343
labelsToAdd = getLabelsFromREMatches (labelMatches )
347
344
348
345
if strings .Contains (noteBody , "good-first-issue" ) {
349
346
astr := "如果您是第一次贡献社区,可以参考我们的贡献指南:https://www.openeuler.org/zh/community/contribution/"
350
- res := c .CreateGiteeIssueComment (org , repo , issueNum , astr )
351
- if res != nil {
352
- fmt .Println (res .Error ())
353
- return
354
- }
347
+
348
+ resp = append (resp , astr )
355
349
}
356
350
357
351
if len (labelStrs ) != 0 {
@@ -372,20 +366,18 @@ func handleIssueCommentEvent(i *gitee.NoteEvent) {
372
366
rese := c .AssignGiteeIssue (org , repo , labelsToAddStr , issueNum , assignee )
373
367
if rese != nil {
374
368
fmt .Println (rese .Error ())
375
- return
369
+ return nil
376
370
}
377
371
378
372
for _ , label := range labelsToAdd {
379
373
if label == "kind/decision" {
380
374
Temp := "hello, @" + issueMaker + assigneeStr + " " + decisionTemp + "\n "
381
- res := c .CreateGiteeIssueComment (org , repo , issueNum , Temp )
382
- if res != nil {
383
- fmt .Println (res .Error ())
384
- return
385
- }
375
+
376
+ resp = append (resp , Temp )
386
377
}
387
378
}
388
379
}
380
+ return resp
389
381
}
390
382
391
383
func handlePRCommentEvent (i * gitee.NoteEvent ) {
@@ -524,6 +516,21 @@ func getRecommendation(c gitee_utils.Client, labels []string) string {
524
516
return participants
525
517
}
526
518
519
+ func responseJson (w http.ResponseWriter , resp []string ) {
520
+ resp_map := make (map [int ]string )
521
+ for i , content := range resp {
522
+ resp_map [i ] = content
523
+ }
524
+ resp_json , err := json .Marshal (resp_map )
525
+ if err != nil {
526
+ fmt .Println ("json.Marshal failed:" , err )
527
+ return
528
+ }
529
+ w .Header ().Set ("content-type" , "text/json" )
530
+ w .WriteHeader (200 )
531
+ w .Write (resp_json )
532
+ }
533
+
527
534
func loadFile (path , fileType string ) error {
528
535
jsonFile , err := os .Open (path )
529
536
if err != nil {
@@ -557,14 +564,14 @@ func loadFile(path, fileType string) error {
557
564
}
558
565
559
566
func configFile () {
560
- loadFile ("src/data/mentor.json" , "json" )
561
- loadFile ("src/data/issueComTemplate.md" , "issue" )
562
- loadFile ("src/data/decisionTemplate.md" , "decision" )
563
- loadFile ("src/data/prComTemplate.md" , "pr" )
564
- loadFile ("src/data/partiTemplate.md" , "parti" )
565
- loadFile ("src/data/partiTemplate_ai.md" , "partiAI" )
566
- loadFile ("src/data/token.md" , "token" )
567
- loadFile ("src/data/assignTemplate.md" , "assign" )
567
+ loadFile ("../ src/data/mentor.json" , "json" )
568
+ loadFile ("../ src/data/issueComTemplate.md" , "issue" )
569
+ loadFile ("../ src/data/decisionTemplate.md" , "decision" )
570
+ loadFile ("../ src/data/prComTemplate.md" , "pr" )
571
+ loadFile ("../ src/data/partiTemplate.md" , "parti" )
572
+ loadFile ("../ src/data/partiTemplate_ai.md" , "partiAI" )
573
+ loadFile ("../ src/data/token.md" , "token" )
574
+ loadFile ("../ src/data/assignTemplate.md" , "assign" )
568
575
}
569
576
570
577
func main () {
0 commit comments