Compare commits

...

7 Commits

Author SHA1 Message Date
Dean Karn 1b6492ce45 Merge pull request #26 from kuiro5/add-requested-reviewers
Add RequestedReviewers to PullRequestPayload
2018-03-19 08:41:56 -07:00
kuiros ea44f6921c Add RequestedReviewers to PullRequestPayload 2018-03-10 15:33:16 -08:00
Dean Karn b6e930d373 Update README.md 2018-02-23 05:13:07 -08:00
Dean Karn c271ec3e32 Merge pull request #25 from lukepatrick/v3
Update bitbucket uuid check to allow a non-specified uuid, similar to…
2018-02-23 05:10:58 -08:00
lukepatrick 0c4911f7f5 Update bitbucket uuid check to allow a non-specified uuid, similar to gitlab empty secret. 2018-02-22 15:27:54 -07:00
Dean Karn 3667088d60 Merge pull request #24 from lukepatrick/v3
update MergeRequestEvent payload with Project, Repo objects from the API
2018-02-15 07:22:55 -08:00
lukepatrick 9cafa895ff update MergeRequestEvent payload with Project, Repo objects from the API 2018-02-14 12:45:52 -07:00
5 changed files with 174 additions and 86 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
Library webhooks Library webhooks
================ ================
<img align="right" src="https://raw.githubusercontent.com/go-playground/webhooks/v3/logo.png">![Project status](https://img.shields.io/badge/version-3.6.0-green.svg) <img align="right" src="https://raw.githubusercontent.com/go-playground/webhooks/v3/logo.png">![Project status](https://img.shields.io/badge/version-3.8.0-green.svg)
[![Build Status](https://travis-ci.org/go-playground/webhooks.svg?branch=v3)](https://travis-ci.org/go-playground/webhooks) [![Build Status](https://travis-ci.org/go-playground/webhooks.svg?branch=v3)](https://travis-ci.org/go-playground/webhooks)
[![Coverage Status](https://coveralls.io/repos/go-playground/webhooks/badge.svg?branch=v3&service=github)](https://coveralls.io/github/go-playground/webhooks?branch=v3) [![Coverage Status](https://coveralls.io/repos/go-playground/webhooks/badge.svg?branch=v3&service=github)](https://coveralls.io/github/go-playground/webhooks?branch=v3)
[![Go Report Card](https://goreportcard.com/badge/go-playground/webhooks)](https://goreportcard.com/report/go-playground/webhooks) [![Go Report Card](https://goreportcard.com/badge/go-playground/webhooks)](https://goreportcard.com/report/go-playground/webhooks)
+5 -1
View File
@@ -80,11 +80,15 @@ func (hook Webhook) ParsePayload(w http.ResponseWriter, r *http.Request) {
} }
webhooks.DefaultLog.Debug(fmt.Sprintf("X-Hook-UUID:%s", uuid)) webhooks.DefaultLog.Debug(fmt.Sprintf("X-Hook-UUID:%s", uuid))
if len(hook.uuid) > 0 {
if uuid != hook.uuid { if uuid != hook.uuid {
webhooks.DefaultLog.Error(fmt.Sprintf("X-Hook-UUID does not match configured uuid of %s", hook.uuid)) webhooks.DefaultLog.Error(fmt.Sprintf("X-Hook-UUID %s does not match configured uuid of %s", uuid, hook.uuid))
http.Error(w, "403 Forbidden - X-Hook-UUID does not match", http.StatusForbidden) http.Error(w, "403 Forbidden - X-Hook-UUID does not match", http.StatusForbidden)
return return
} }
} else {
webhooks.DefaultLog.Debug("hook uuid not defined - recommend setting for improved security")
}
event := r.Header.Get("X-Event-Key") event := r.Header.Get("X-Event-Key")
if event == "" { if event == "" {
+19
View File
@@ -2772,6 +2772,25 @@ type PullRequestPayload struct {
ReviewCommentURL string `json:"review_comment_url"` ReviewCommentURL string `json:"review_comment_url"`
CommentsURL string `json:"comments_url"` CommentsURL string `json:"comments_url"`
StatusesURL string `json:"statuses_url"` StatusesURL string `json:"statuses_url"`
RequestedReviewers []struct {
Login string `json:"login"`
ID int `json:"id"`
AvatarURL string `json:"avatar_url"`
GravatarID string `json:"gravatar_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
FollowersURL string `json:"followers_url"`
FollowingURL string `json:"following_url"`
GistsURL string `json:"gists_url"`
StarredURL string `json:"starred_url"`
SubscriptionsURL string `json:"subscriptions_url"`
OrganizationsURL string `json:"organizations_url"`
ReposURL string `json:"repos_url"`
EventsURL string `json:"events_url"`
ReceivedEventsURL string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"requested_reviewers,omitempty"`
Head struct { Head struct {
Label string `json:"label"` Label string `json:"label"`
Ref string `json:"ref"` Ref string `json:"ref"`
+65 -2
View File
@@ -813,6 +813,29 @@ func TestMergeRequestEvent(t *testing.T) {
"username": "root", "username": "root",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon" "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
}, },
"project": {
"id": 1,
"name":"Gitlab Test",
"description":"Aut reprehenderit ut est.",
"web_url":"http://example.com/gitlabhq/gitlab-test",
"avatar_url":null,
"git_ssh_url":"git@example.com:gitlabhq/gitlab-test.git",
"git_http_url":"http://example.com/gitlabhq/gitlab-test.git",
"namespace":"GitlabHQ",
"visibility_level":20,
"path_with_namespace":"gitlabhq/gitlab-test",
"default_branch":"master",
"homepage":"http://example.com/gitlabhq/gitlab-test",
"url":"http://example.com/gitlabhq/gitlab-test.git",
"ssh_url":"git@example.com:gitlabhq/gitlab-test.git",
"http_url":"http://example.com/gitlabhq/gitlab-test.git"
},
"repository": {
"name": "Gitlab Test",
"url": "http://example.com/gitlabhq/gitlab-test.git",
"description": "Aut reprehenderit ut est.",
"homepage": "http://example.com/gitlabhq/gitlab-test"
},
"object_attributes": { "object_attributes": {
"id": 99, "id": 99,
"target_branch": "master", "target_branch": "master",
@@ -823,8 +846,6 @@ func TestMergeRequestEvent(t *testing.T) {
"title": "MS-Viewport", "title": "MS-Viewport",
"created_at": "2013-12-03T17:23:34Z", "created_at": "2013-12-03T17:23:34Z",
"updated_at": "2013-12-03T17:23:34Z", "updated_at": "2013-12-03T17:23:34Z",
"st_commits": null,
"st_diffs": null,
"milestone_id": null, "milestone_id": null,
"state": "opened", "state": "opened",
"merge_status": "unchecked", "merge_status": "unchecked",
@@ -881,6 +902,48 @@ func TestMergeRequestEvent(t *testing.T) {
"username": "user1", "username": "user1",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon" "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
} }
},
"labels": [{
"id": 206,
"title": "API",
"color": "#ffffff",
"project_id": 14,
"created_at": "2013-12-03T17:15:43Z",
"updated_at": "2013-12-03T17:15:43Z",
"template": false,
"description": "API related issues",
"type": "ProjectLabel",
"group_id": 41
}],
"changes": {
"updated_by_id": [null, 1],
"updated_at": ["2017-09-15 16:50:55 UTC", "2017-09-15 16:52:00 UTC"],
"labels": {
"previous": [{
"id": 206,
"title": "API",
"color": "#ffffff",
"project_id": 14,
"created_at": "2013-12-03T17:15:43Z",
"updated_at": "2013-12-03T17:15:43Z",
"template": false,
"description": "API related issues",
"type": "ProjectLabel",
"group_id": 41
}],
"current": [{
"id": 205,
"title": "Platform",
"color": "#123123",
"project_id": 14,
"created_at": "2013-12-03T17:15:43Z",
"updated_at": "2013-12-03T17:15:43Z",
"template": false,
"description": "Platform related issues",
"type": "ProjectLabel",
"group_id": 41
}]
}
} }
} }
` `
+2
View File
@@ -54,6 +54,8 @@ type MergeRequestEventPayload struct {
User User `json:"user"` User User `json:"user"`
ObjectAttributes ObjectAttributes `json:"object_attributes"` ObjectAttributes ObjectAttributes `json:"object_attributes"`
Changes Changes `json:"changes"` Changes Changes `json:"changes"`
Project Project `json:"project"`
Repository Repository `json:"repository"`
} }
// PushEventPayload contains the information for GitLab's push event // PushEventPayload contains the information for GitLab's push event