Skip to content

Commit c17753c

Browse files
committed
Modify the code in server.go, and can be called in rule-handler
1 parent 8bb9e1d commit c17753c

File tree

1 file changed

+66
-59
lines changed

1 file changed

+66
-59
lines changed

src/server.go

Lines changed: 66 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,18 @@ func getToken() []byte {
5757
}
5858

5959
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 {
6363
return
6464
}
6565

66+
// fmt.Println(string(payload))
67+
68+
eventType := r.Header.Get("event_type")
69+
70+
var resp []string
71+
6672
switch eventType {
6773
case "Issue Hook":
6874
var ie gitee.IssueEvent
@@ -72,13 +78,15 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request) {
7278
if err := checkRepository(payload, ie.Repository); err != nil {
7379
return
7480
}
75-
go handleIssueEvent(&ie)
81+
resp = handleIssueEvent(&ie)
82+
responseJson(w, resp)
7683
case "Note Hook":
7784
var ic gitee.NoteEvent
7885
if err := json.Unmarshal(payload, &ic); err != nil {
7986
return
8087
}
81-
go handleCommentEvent(&ic)
88+
resp = handleCommentEvent(&ic)
89+
responseJson(w, resp)
8290
//case "Merge Request Hook":
8391
//var ip gitee.PullRequestEvent
8492
//if err := json.Unmarshal(payload, &ip); err != nil {
@@ -87,12 +95,14 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request) {
8795
//go handlePullRequestEvent(&ip)
8896
default:
8997
return
98+
9099
}
91100
}
92101

93-
func handleIssueEvent(i *gitee.IssueEvent) {
102+
func handleIssueEvent(i *gitee.IssueEvent) []string {
103+
var resp []string
94104
if *(i.Action) != "open" {
95-
return
105+
return resp
96106
}
97107
assignee := ""
98108
strLabels := ""
@@ -118,11 +128,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
118128
c := gitee_utils.NewClient(getToken)
119129

120130
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)
126132
var labelsToAdd []string
127133

128134
labelMatches := labelRegex.FindAllStringSubmatch(issueBody, -1)
@@ -180,7 +186,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
180186
rese := c.AssignGiteeIssue(org, repo, labelsToAdd_str, issueNum, assignee)
181187
if rese != nil {
182188
fmt.Println(rese.Error())
183-
return
189+
return resp
184190
}
185191

186192
issueBody = strings.Replace(issueBody, " ", "", -1)
@@ -237,19 +243,11 @@ func handleIssueEvent(i *gitee.IssueEvent) {
237243

238244
helloWord = strings.Replace(helloWord, "{"+"label"+"}", fmt.Sprintf("%v", strLabels), -1)
239245

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)
245247
}
246248
} else {
247249

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)
253251

254252
var labelFindTemp []string
255253
for _, label := range issueInit {
@@ -265,7 +263,7 @@ func handleIssueEvent(i *gitee.IssueEvent) {
265263
rese := c.AssignGiteeIssue(org, repo, "", issueNum, assignee)
266264
if rese != nil {
267265
fmt.Println(rese.Error())
268-
return
266+
return nil
269267
}
270268
} else {
271269
assignTemp := string(assignComment[:])
@@ -277,11 +275,8 @@ func handleIssueEvent(i *gitee.IssueEvent) {
277275
} else {
278276
assignTemp = strings.Replace(assignTemp, "@{"+"assignee"+"}", fmt.Sprintf("%v", "自己"), -1)
279277
}
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)
285280
}
286281
}
287282

@@ -292,29 +287,31 @@ func handleIssueEvent(i *gitee.IssueEvent) {
292287
assigneeStr = ""
293288
}
294289
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)
300292
}
301293
}
294+
return resp
302295
}
303296

304-
func handleCommentEvent(i *gitee.NoteEvent) {
297+
func handleCommentEvent(i *gitee.NoteEvent) []string {
305298
switch *(i.NoteableType) {
306299
case "Issue":
307-
go handleIssueCommentEvent(i)
300+
// go handleIssueCommentEvent(i)
301+
var resp []string = handleIssueCommentEvent(i)
302+
return resp
308303
//case "PullRequest":
309304
// go handlePRCommentEvent(i)
310305
default:
311-
return
306+
return nil
312307
}
313308
}
314309

315-
func handleIssueCommentEvent(i *gitee.NoteEvent) {
310+
func handleIssueCommentEvent(i *gitee.NoteEvent) []string {
311+
var resp []string
312+
316313
if *(i.Action) != "comment" {
317-
return
314+
return resp
318315
}
319316
assignee := ""
320317
labelsToAddStr := ""
@@ -340,18 +337,15 @@ func handleIssueCommentEvent(i *gitee.NoteEvent) {
340337
c := gitee_utils.NewClient(getToken)
341338
labelMatches := labelRegex.FindAllStringSubmatch(noteBody, -1)
342339
if len(labelMatches) == 0 {
343-
return
340+
return nil
344341
}
345342
var labelsToAdd []string
346343
labelsToAdd = getLabelsFromREMatches(labelMatches)
347344

348345
if strings.Contains(noteBody, "good-first-issue") {
349346
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)
355349
}
356350

357351
if len(labelStrs) != 0 {
@@ -372,20 +366,18 @@ func handleIssueCommentEvent(i *gitee.NoteEvent) {
372366
rese := c.AssignGiteeIssue(org, repo, labelsToAddStr, issueNum, assignee)
373367
if rese != nil {
374368
fmt.Println(rese.Error())
375-
return
369+
return nil
376370
}
377371

378372
for _, label := range labelsToAdd {
379373
if label == "kind/decision" {
380374
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)
386377
}
387378
}
388379
}
380+
return resp
389381
}
390382

391383
func handlePRCommentEvent(i *gitee.NoteEvent) {
@@ -524,6 +516,21 @@ func getRecommendation(c gitee_utils.Client, labels []string) string {
524516
return participants
525517
}
526518

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+
527534
func loadFile(path, fileType string) error {
528535
jsonFile, err := os.Open(path)
529536
if err != nil {
@@ -557,14 +564,14 @@ func loadFile(path, fileType string) error {
557564
}
558565

559566
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")
568575
}
569576

570577
func main() {

0 commit comments

Comments
 (0)