Skip to content

Commit 9d012c9

Browse files
author
Raphaël Benitte
committed
Merge pull request #29 from sleclercq/master
Add merge requests listing to project example
2 parents a526ef0 + 745dbda commit 9d012c9

File tree

4 files changed

+50
-4
lines changed

4 files changed

+50
-4
lines changed

examples/projects/main.go

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,24 @@ func main() {
3535
var method string
3636
flag.StringVar(&method, "m", "", "Specify method to retrieve projects infos, available methods:\n"+
3737
" > -m projects\n"+
38-
" > -m project -id PROJECT_ID\n"+
39-
" > -m hooks -id PROJECT_ID\n"+
40-
" > -m branches -id PROJECT_ID\n"+
41-
" > -m team -id PROJECT_ID")
38+
" > -m project -id PROJECT_ID\n"+
39+
" > -m hooks -id PROJECT_ID\n"+
40+
" > -m branches -id PROJECT_ID\n"+
41+
" > -m team -id PROJECT_ID\n"+
42+
" > -m merge_requests -id PROJECT_ID [-state <all|merged|opened|closed>] [-order <created_at|updated_at>] [-sort <asc|desc>]")
4243

4344
var id string
4445
flag.StringVar(&id, "id", "", "Specify repository id")
4546

47+
var state string
48+
flag.StringVar(&state, "state", "", "Specify merge request state")
49+
50+
var order string
51+
flag.StringVar(&order, "order", "", "Specify merge request order")
52+
53+
var sort string
54+
flag.StringVar(&sort, "sort", "", "Specify merge request sort")
55+
4656
flag.Usage = func() {
4757
fmt.Printf("Usage:\n")
4858
flag.PrintDefaults()
@@ -158,5 +168,35 @@ func main() {
158168
for _, member := range members {
159169
fmt.Printf("> [%d] %s (%s) since %s\n", member.Id, member.Username, member.Name, member.CreatedAt)
160170
}
171+
172+
case "merge_requests":
173+
fmt.Println("Fetching project merge requests...")
174+
175+
if id == "" {
176+
flag.Usage()
177+
return
178+
}
179+
180+
var params map[string]string = make(map[string]string)
181+
if state != "" {
182+
params["state"] = state
183+
}
184+
if order != "" {
185+
params["order_by"] = order
186+
}
187+
if sort != "" {
188+
params["sort"] = sort
189+
}
190+
191+
mrs, err := gitlab.ProjectMergeRequests(id, params)
192+
if err != nil {
193+
fmt.Println(err.Error())
194+
return
195+
}
196+
197+
for _, mr := range mrs {
198+
fmt.Printf("> [%d] %s (+%d) by %s on %s.\n", mr.Id, mr.Title, mr.Upvotes, mr.Author.Name, mr.CreatedAt)
199+
}
200+
161201
}
162202
}

merge_requests.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ type MergeRequest struct {
2323
ProjectId int `json:"project_id,omitempty"`
2424
Title string `json:"title,omitempty"`
2525
State string `json:"state,omitempty"`
26+
CreatedAt string `json:"created_at,omitempty"`
27+
UpdatedAt string `json:"updated_at,omitempty"`
2628
Upvotes int `json:"upvotes,omitempty"`
2729
Downvotes int `json:"downvotes,omitempty"`
2830
Author *User `json:"author,omitempty"`

stubs/merge_requests/index.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
"project_id": 3,
88
"title": "test1",
99
"state": "opened",
10+
"created_at": "2016-05-20T13:58:19.283Z",
11+
"updated_at": "2016-05-20T13:58:19.283Z",
1012
"upvotes": 0,
1113
"downvotes": 0,
1214
"author": {

stubs/merge_requests/show.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
"project_id": 3,
77
"title": "test1",
88
"state": "merged",
9+
"created_at": "2016-05-20T13:58:19.283Z",
10+
"updated_at": "2016-05-20T13:58:19.283Z",
911
"upvotes": 0,
1012
"downvotes": 0,
1113
"author": {

0 commit comments

Comments
 (0)