Skip to content

Commit 3667088

Browse files
author
Dean Karn
authored
Merge pull request #24 from lukepatrick/v3
update MergeRequestEvent payload with Project, Repo objects from the API
2 parents 9494e43 + 9cafa89 commit 3667088

File tree

2 files changed

+132
-67
lines changed

2 files changed

+132
-67
lines changed

gitlab/gitlab_test.go

+130-67
Original file line numberDiff line numberDiff line change
@@ -807,82 +807,145 @@ func TestCommentSunippetEvent(t *testing.T) {
807807
func TestMergeRequestEvent(t *testing.T) {
808808

809809
payload := `{
810-
"object_kind": "merge_request",
811-
"user": {
812-
"name": "Administrator",
813-
"username": "root",
814-
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
815-
},
816-
"object_attributes": {
817-
"id": 99,
818-
"target_branch": "master",
819-
"source_branch": "ms-viewport",
820-
"source_project_id": 14,
821-
"author_id": 51,
822-
"assignee_id": 6,
823-
"title": "MS-Viewport",
824-
"created_at": "2013-12-03T17:23:34Z",
825-
"updated_at": "2013-12-03T17:23:34Z",
826-
"st_commits": null,
827-
"st_diffs": null,
828-
"milestone_id": null,
829-
"state": "opened",
830-
"merge_status": "unchecked",
831-
"target_project_id": 14,
832-
"iid": 1,
833-
"description": "",
834-
"source":{
835-
"name":"Awesome Project",
836-
"description":"Aut reprehenderit ut est.",
837-
"web_url":"http://example.com/awesome_space/awesome_project",
838-
"avatar_url":null,
839-
"git_ssh_url":"[email protected]:awesome_space/awesome_project.git",
840-
"git_http_url":"http://example.com/awesome_space/awesome_project.git",
841-
"namespace":"Awesome Space",
842-
"visibility_level":20,
843-
"path_with_namespace":"awesome_space/awesome_project",
844-
"default_branch":"master",
845-
"homepage":"http://example.com/awesome_space/awesome_project",
846-
"url":"http://example.com/awesome_space/awesome_project.git",
847-
"ssh_url":"[email protected]:awesome_space/awesome_project.git",
848-
"http_url":"http://example.com/awesome_space/awesome_project.git"
810+
"object_kind": "merge_request",
811+
"user": {
812+
"name": "Administrator",
813+
"username": "root",
814+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
849815
},
850-
"target": {
851-
"name":"Awesome Project",
816+
"project": {
817+
"id": 1,
818+
"name":"Gitlab Test",
852819
"description":"Aut reprehenderit ut est.",
853-
"web_url":"http://example.com/awesome_space/awesome_project",
820+
"web_url":"http://example.com/gitlabhq/gitlab-test",
854821
"avatar_url":null,
855-
"git_ssh_url":"[email protected]:awesome_space/awesome_project.git",
856-
"git_http_url":"http://example.com/awesome_space/awesome_project.git",
857-
"namespace":"Awesome Space",
822+
"git_ssh_url":"[email protected]:gitlabhq/gitlab-test.git",
823+
"git_http_url":"http://example.com/gitlabhq/gitlab-test.git",
824+
"namespace":"GitlabHQ",
858825
"visibility_level":20,
859-
"path_with_namespace":"awesome_space/awesome_project",
826+
"path_with_namespace":"gitlabhq/gitlab-test",
860827
"default_branch":"master",
861-
"homepage":"http://example.com/awesome_space/awesome_project",
862-
"url":"http://example.com/awesome_space/awesome_project.git",
863-
"ssh_url":"[email protected]:awesome_space/awesome_project.git",
864-
"http_url":"http://example.com/awesome_space/awesome_project.git"
828+
"homepage":"http://example.com/gitlabhq/gitlab-test",
829+
"url":"http://example.com/gitlabhq/gitlab-test.git",
830+
"ssh_url":"[email protected]:gitlabhq/gitlab-test.git",
831+
"http_url":"http://example.com/gitlabhq/gitlab-test.git"
865832
},
866-
"last_commit": {
867-
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
868-
"message": "fixed readme",
869-
"timestamp": "2012-01-03T23:36:29+02:00",
870-
"url": "http://example.com/awesome_space/awesome_project/commits/da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
871-
"author": {
872-
"name": "GitLab dev user",
873-
"email": "gitlabdev@dv6700.(none)"
833+
"repository": {
834+
"name": "Gitlab Test",
835+
"url": "http://example.com/gitlabhq/gitlab-test.git",
836+
"description": "Aut reprehenderit ut est.",
837+
"homepage": "http://example.com/gitlabhq/gitlab-test"
838+
},
839+
"object_attributes": {
840+
"id": 99,
841+
"target_branch": "master",
842+
"source_branch": "ms-viewport",
843+
"source_project_id": 14,
844+
"author_id": 51,
845+
"assignee_id": 6,
846+
"title": "MS-Viewport",
847+
"created_at": "2013-12-03T17:23:34Z",
848+
"updated_at": "2013-12-03T17:23:34Z",
849+
"milestone_id": null,
850+
"state": "opened",
851+
"merge_status": "unchecked",
852+
"target_project_id": 14,
853+
"iid": 1,
854+
"description": "",
855+
"source": {
856+
"name":"Awesome Project",
857+
"description":"Aut reprehenderit ut est.",
858+
"web_url":"http://example.com/awesome_space/awesome_project",
859+
"avatar_url":null,
860+
"git_ssh_url":"[email protected]:awesome_space/awesome_project.git",
861+
"git_http_url":"http://example.com/awesome_space/awesome_project.git",
862+
"namespace":"Awesome Space",
863+
"visibility_level":20,
864+
"path_with_namespace":"awesome_space/awesome_project",
865+
"default_branch":"master",
866+
"homepage":"http://example.com/awesome_space/awesome_project",
867+
"url":"http://example.com/awesome_space/awesome_project.git",
868+
"ssh_url":"[email protected]:awesome_space/awesome_project.git",
869+
"http_url":"http://example.com/awesome_space/awesome_project.git"
870+
},
871+
"target": {
872+
"name":"Awesome Project",
873+
"description":"Aut reprehenderit ut est.",
874+
"web_url":"http://example.com/awesome_space/awesome_project",
875+
"avatar_url":null,
876+
"git_ssh_url":"[email protected]:awesome_space/awesome_project.git",
877+
"git_http_url":"http://example.com/awesome_space/awesome_project.git",
878+
"namespace":"Awesome Space",
879+
"visibility_level":20,
880+
"path_with_namespace":"awesome_space/awesome_project",
881+
"default_branch":"master",
882+
"homepage":"http://example.com/awesome_space/awesome_project",
883+
"url":"http://example.com/awesome_space/awesome_project.git",
884+
"ssh_url":"[email protected]:awesome_space/awesome_project.git",
885+
"http_url":"http://example.com/awesome_space/awesome_project.git"
886+
},
887+
"last_commit": {
888+
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
889+
"message": "fixed readme",
890+
"timestamp": "2012-01-03T23:36:29+02:00",
891+
"url": "http://example.com/awesome_space/awesome_project/commits/da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
892+
"author": {
893+
"name": "GitLab dev user",
894+
"email": "gitlabdev@dv6700.(none)"
895+
}
896+
},
897+
"work_in_progress": false,
898+
"url": "http://example.com/diaspora/merge_requests/1",
899+
"action": "open",
900+
"assignee": {
901+
"name": "User1",
902+
"username": "user1",
903+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
874904
}
875905
},
876-
"work_in_progress": false,
877-
"url": "http://example.com/diaspora/merge_requests/1",
878-
"action": "open",
879-
"assignee": {
880-
"name": "User1",
881-
"username": "user1",
882-
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
906+
"labels": [{
907+
"id": 206,
908+
"title": "API",
909+
"color": "#ffffff",
910+
"project_id": 14,
911+
"created_at": "2013-12-03T17:15:43Z",
912+
"updated_at": "2013-12-03T17:15:43Z",
913+
"template": false,
914+
"description": "API related issues",
915+
"type": "ProjectLabel",
916+
"group_id": 41
917+
}],
918+
"changes": {
919+
"updated_by_id": [null, 1],
920+
"updated_at": ["2017-09-15 16:50:55 UTC", "2017-09-15 16:52:00 UTC"],
921+
"labels": {
922+
"previous": [{
923+
"id": 206,
924+
"title": "API",
925+
"color": "#ffffff",
926+
"project_id": 14,
927+
"created_at": "2013-12-03T17:15:43Z",
928+
"updated_at": "2013-12-03T17:15:43Z",
929+
"template": false,
930+
"description": "API related issues",
931+
"type": "ProjectLabel",
932+
"group_id": 41
933+
}],
934+
"current": [{
935+
"id": 205,
936+
"title": "Platform",
937+
"color": "#123123",
938+
"project_id": 14,
939+
"created_at": "2013-12-03T17:15:43Z",
940+
"updated_at": "2013-12-03T17:15:43Z",
941+
"template": false,
942+
"description": "Platform related issues",
943+
"type": "ProjectLabel",
944+
"group_id": 41
945+
}]
946+
}
883947
}
884-
}
885-
}
948+
}
886949
`
887950

888951
req, err := http.NewRequest("POST", "http://127.0.0.1:3011/webhooks", bytes.NewBuffer([]byte(payload)))

gitlab/payload.go

+2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ type MergeRequestEventPayload struct {
5454
User User `json:"user"`
5555
ObjectAttributes ObjectAttributes `json:"object_attributes"`
5656
Changes Changes `json:"changes"`
57+
Project Project `json:"project"`
58+
Repository Repository `json:"repository"`
5759
}
5860

5961
// PushEventPayload contains the information for GitLab's push event

0 commit comments

Comments
 (0)