/
server.go
88 lines (72 loc) · 1.86 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main
import (
"github.com/go-martini/martini"
"github.com/kyokomi/go-gitlab-client/gogitlab"
"github.com/martini-contrib/binding"
"log"
"strings"
"flag"
)
const (
apiPath = "/api/v3"
)
func main() {
flag.Parse()
gitlab := gogitlab.NewGitlab(GetGitlabBaseUrl(), apiPath, GetGitlabToken())
m := martini.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Map(gitlab)
m.Post("/issues-events", binding.Bind(IssuesEvents{}), doIssuesEvents)
m.Run()
}
func doIssuesEvents(l *log.Logger, issues IssuesEvents, gitlab *gogitlab.Gitlab) string {
l.Println(issues)
// Project Get
projectName, err := GetProjectName(gitlab, issues.ObjectAttributes.ProjectID)
if err != nil {
l.Println(err)
return "Error"
}
// User Get Author
authorName, err := GetUserName(gitlab, issues.ObjectAttributes.AuthorID)
if err != nil {
l.Println(err)
return "Error"
}
// User Get Assignee
var assigneeName string
if issues.ObjectAttributes.AssigneeID != 0 {
assigneeName, err = GetUserName(gitlab, issues.ObjectAttributes.AssigneeID)
if err != nil {
l.Println(err)
return "Error"
}
}
// Milestone Get Title
var milestoneTitle string
if issues.ObjectAttributes.MilestoneID != 0 {
milestoneTitle, err = GetMilestoneTitle(gitlab, issues.ObjectAttributes.ProjectID, issues.ObjectAttributes.MilestoneID)
if err != nil {
l.Println(err)
return "Error"
}
}
message := PostMessage{
ProjectName: projectName,
AuthorName: authorName,
AssigneeName: assigneeName,
Title: issues.ObjectAttributes.Title,
Descriptions: strings.Split(issues.ObjectAttributes.Description, "\n"),
CreatedAt: issues.ObjectAttributes.CreatedAt,
State: issues.ObjectAttributes.State,
Milestone: milestoneTitle,
}
l.Println(message)
if err := SendMessage(message); err != nil {
l.Println(err)
return "Error"
}
return "OK"
}