Compare commits

..

9 Commits

Author SHA1 Message Date
Dean Karn adb918738a Update README.md 2018-07-20 07:02:01 -07:00
Dean Karn 9cc34fc5d1 Merge pull request #38 from bafko/37-pushpayload
Updated Github PushPayload
2018-07-20 07:01:43 -07:00
bafko 63866ac80d Updated Github PushPayload 2018-07-19 17:26:06 +02:00
Dean Karn 866b461aac Update README.md 2018-07-15 20:49:11 -07:00
Dean Karn 0035246764 Merge pull request #36 from binkkatal/feature/owner_fields_in_github_push_event_payload
Add fields in PushPayload for repository owner
2018-07-15 20:48:34 -07:00
binkkatal 443e255708 Fix failing TestCommitCommentEvent
Due to a slight change in the payload , the ssh for payload changed.
This was the reason for failing test case
2018-07-14 11:38:41 +05:30
binkkatal eb56c26534 Skip TestCommitCommentEvent 2018-07-14 11:30:50 +05:30
binkkatal 2d55603413 Add fields in PushPayload for repository owner
All other webhook events have all the repository owner fields except push event.
This commit adds owner fields in `PushPayload`
```
Login             string `json:"login"`
ID                int64  `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"`
```
2018-07-08 16:47:39 +05:30
Dean Karn b9b0e19032 Update README.md 2018-06-28 12:55:36 -07:00
3 changed files with 160 additions and 119 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
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-4.0.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-4.1.1-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=v4)](https://travis-ci.org/go-playground/webhooks)
[![Coverage Status](https://coveralls.io/repos/go-playground/webhooks/badge.svg?branch=v4&service=github)](https://coveralls.io/github/go-playground/webhooks?branch=v3) [![Coverage Status](https://coveralls.io/repos/go-playground/webhooks/badge.svg?branch=v4&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)
[![GoDoc](https://godoc.org/gopkg.in/go-playground/webhooks.v4?status.svg)](https://godoc.org/gopkg.in/go-playground/webhooks.v4) [![GoDoc](https://godoc.org/gopkg.in/go-playground/webhooks.v4?status.svg)](https://godoc.org/gopkg.in/go-playground/webhooks.v4)
+126 -103
View File
@@ -181,7 +181,6 @@ func TestBadSignatureMatch(t *testing.T) {
} }
func TestCommitCommentEvent(t *testing.T) { func TestCommitCommentEvent(t *testing.T) {
payload := `{ payload := `{
"action": "created", "action": "created",
"comment": { "comment": {
@@ -4763,137 +4762,160 @@ func TestPullRequestReviewCommentEvent(t *testing.T) {
func TestPushEvent(t *testing.T) { func TestPushEvent(t *testing.T) {
payload := `{ payload := `{
"ref": "refs/heads/changes", "ref": "refs/heads/master",
"before": "9049f1265b7d61be4a8904a9a27120d2064dab3b", "before": "737d38c599c1b2991664dfc6155d6bf516fcce36",
"after": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "after": "fd489864e7642b48eaad6e3f155c10e46810ec72",
"created": false, "created": false,
"deleted": false, "deleted": false,
"forced": false, "forced": false,
"base_ref": null, "base_ref": null,
"compare": "https://github.com/baxterthehacker/public-repo/compare/9049f1265b7d...0d1a26e67d8f", "compare": "https://github.com/binkkatal/sample_app/compare/737d38c599c1...fd489864e764",
"commits": [ "commits": [
{ {
"id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "id": "fd489864e7642b48eaad6e3f155c10e46810ec72",
"tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "tree_id": "55e08136e14d5168b699038f88c73e175ddffd3b",
"distinct": true, "distinct": true,
"message": "Update README.md", "message": "test a push event",
"timestamp": "2015-05-05T19:40:15-04:00", "timestamp": "2018-06-29T19:34:13+05:30",
"url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "url": "https://github.com/binkkatal/sample_app/commit/fd489864e7642b48eaad6e3f155c10e46810ec72",
"author": { "author": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com", "email": "binkkatal.r@gmail.com",
"username": "baxterthehacker" "username": "binkkatal"
}, },
"committer": { "committer": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com", "email": "binkkatal.r@gmail.com",
"username": "baxterthehacker" "username": "binkkatal"
}, },
"added": [ "added": [
".razorops.yaml"
], ],
"removed": [ "removed": [
], ],
"modified": [ "modified": [
"README.md" "app/controllers/application_controller.rb"
] ]
} }
], ],
"head_commit": { "head_commit": {
"id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "id": "fd489864e7642b48eaad6e3f155c10e46810ec72",
"tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "tree_id": "55e08136e14d5168b699038f88c73e175ddffd3b",
"distinct": true, "distinct": true,
"message": "Update README.md", "message": "test a push event",
"timestamp": "2015-05-05T19:40:15-04:00", "timestamp": "2018-06-29T19:34:13+05:30",
"url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "url": "https://github.com/binkkatal/sample_app/commit/fd489864e7642b48eaad6e3f155c10e46810ec72",
"author": { "author": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com", "email": "binkkatal.r@gmail.com",
"username": "baxterthehacker" "username": "binkkatal"
}, },
"committer": { "committer": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com", "email": "binkkatal.r@gmail.com",
"username": "baxterthehacker" "username": "binkkatal"
}, },
"added": [ "added": [
".razorops.yaml"
], ],
"removed": [ "removed": [
], ],
"modified": [ "modified": [
"README.md" "app/controllers/application_controller.rb"
] ]
}, },
"repository": { "repository": {
"id": 35129377, "id": 63933911,
"name": "public-repo", "node_id": "MDEwOlJlcG9zaXRvcnk2MzkzMzkxMQ==",
"full_name": "baxterthehacker/public-repo", "name": "sample_app",
"full_name": "binkkatal/sample_app",
"owner": { "owner": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com" "email": "binkkatal.r@gmail.com",
"login": "binkkatal",
"id": 13351472,
"node_id": "MDQ6VXNlcjEzMzUxNDcy",
"avatar_url": "https://avatars3.githubusercontent.com/u/13351472?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/binkkatal",
"html_url": "https://github.com/binkkatal",
"followers_url": "https://api.github.com/users/binkkatal/followers",
"following_url": "https://api.github.com/users/binkkatal/following{/other_user}",
"gists_url": "https://api.github.com/users/binkkatal/gists{/gist_id}",
"starred_url": "https://api.github.com/users/binkkatal/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/binkkatal/subscriptions",
"organizations_url": "https://api.github.com/users/binkkatal/orgs",
"repos_url": "https://api.github.com/users/binkkatal/repos",
"events_url": "https://api.github.com/users/binkkatal/events{/privacy}",
"received_events_url": "https://api.github.com/users/binkkatal/received_events",
"type": "User",
"site_admin": false
}, },
"private": false, "private": false,
"html_url": "https://github.com/baxterthehacker/public-repo", "html_url": "https://github.com/binkkatal/sample_app",
"description": "", "description": null,
"fork": false, "fork": false,
"url": "https://github.com/baxterthehacker/public-repo", "url": "https://github.com/binkkatal/sample_app",
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "forks_url": "https://api.github.com/repos/binkkatal/sample_app/forks",
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "keys_url": "https://api.github.com/repos/binkkatal/sample_app/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "collaborators_url": "https://api.github.com/repos/binkkatal/sample_app/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "teams_url": "https://api.github.com/repos/binkkatal/sample_app/teams",
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "hooks_url": "https://api.github.com/repos/binkkatal/sample_app/hooks",
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "issue_events_url": "https://api.github.com/repos/binkkatal/sample_app/issues/events{/number}",
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "events_url": "https://api.github.com/repos/binkkatal/sample_app/events",
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "assignees_url": "https://api.github.com/repos/binkkatal/sample_app/assignees{/user}",
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "branches_url": "https://api.github.com/repos/binkkatal/sample_app/branches{/branch}",
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "tags_url": "https://api.github.com/repos/binkkatal/sample_app/tags",
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "blobs_url": "https://api.github.com/repos/binkkatal/sample_app/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_tags_url": "https://api.github.com/repos/binkkatal/sample_app/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "git_refs_url": "https://api.github.com/repos/binkkatal/sample_app/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "trees_url": "https://api.github.com/repos/binkkatal/sample_app/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "statuses_url": "https://api.github.com/repos/binkkatal/sample_app/statuses/{sha}",
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "languages_url": "https://api.github.com/repos/binkkatal/sample_app/languages",
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "stargazers_url": "https://api.github.com/repos/binkkatal/sample_app/stargazers",
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "contributors_url": "https://api.github.com/repos/binkkatal/sample_app/contributors",
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscribers_url": "https://api.github.com/repos/binkkatal/sample_app/subscribers",
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "subscription_url": "https://api.github.com/repos/binkkatal/sample_app/subscription",
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "commits_url": "https://api.github.com/repos/binkkatal/sample_app/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "git_commits_url": "https://api.github.com/repos/binkkatal/sample_app/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "comments_url": "https://api.github.com/repos/binkkatal/sample_app/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "issue_comment_url": "https://api.github.com/repos/binkkatal/sample_app/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "contents_url": "https://api.github.com/repos/binkkatal/sample_app/contents/{+path}",
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "compare_url": "https://api.github.com/repos/binkkatal/sample_app/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "merges_url": "https://api.github.com/repos/binkkatal/sample_app/merges",
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "archive_url": "https://api.github.com/repos/binkkatal/sample_app/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "downloads_url": "https://api.github.com/repos/binkkatal/sample_app/downloads",
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "issues_url": "https://api.github.com/repos/binkkatal/sample_app/issues{/number}",
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "pulls_url": "https://api.github.com/repos/binkkatal/sample_app/pulls{/number}",
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "milestones_url": "https://api.github.com/repos/binkkatal/sample_app/milestones{/number}",
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "notifications_url": "https://api.github.com/repos/binkkatal/sample_app/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "labels_url": "https://api.github.com/repos/binkkatal/sample_app/labels{/name}",
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "releases_url": "https://api.github.com/repos/binkkatal/sample_app/releases{/id}",
"created_at": 1430869212, "deployments_url": "https://api.github.com/repos/binkkatal/sample_app/deployments",
"updated_at": "2015-05-05T23:40:12Z", "created_at": 1469173225,
"pushed_at": 1430869217, "updated_at": "2016-07-22T07:48:39Z",
"git_url": "git://github.com/baxterthehacker/public-repo.git", "pushed_at": 1530281075,
"ssh_url": "git@github.com:baxterthehacker/public-repo.git", "git_url": "git://github.com/binkkatal/sample_app.git",
"clone_url": "https://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:binkkatal/sample_app.git",
"svn_url": "https://github.com/baxterthehacker/public-repo", "clone_url": "https://github.com/binkkatal/sample_app.git",
"svn_url": "https://github.com/binkkatal/sample_app",
"homepage": null, "homepage": null,
"size": 0, "size": 23,
"stargazers_count": 0, "stargazers_count": 0,
"watchers_count": 0, "watchers_count": 0,
"language": null, "language": "Ruby",
"has_issues": true, "has_issues": true,
"has_projects": true,
"has_downloads": true, "has_downloads": true,
"has_wiki": true, "has_wiki": true,
"has_pages": true, "has_pages": false,
"forks_count": 0, "forks_count": 0,
"mirror_url": null, "mirror_url": null,
"archived": false,
"open_issues_count": 0, "open_issues_count": 0,
"license": null,
"forks": 0, "forks": 0,
"open_issues": 0, "open_issues": 0,
"watchers": 0, "watchers": 0,
@@ -4902,35 +4924,35 @@ func TestPushEvent(t *testing.T) {
"master_branch": "master" "master_branch": "master"
}, },
"pusher": { "pusher": {
"name": "baxterthehacker", "name": "binkkatal",
"email": "baxterthehacker@users.noreply.github.com" "email": "binkkatal.r@gmail.com"
}, },
"sender": { "sender": {
"login": "baxterthehacker", "login": "binkkatal",
"id": 6752317, "id": 13351472,
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "node_id": "MDQ6VXNlcjEzMzUxNDcy",
"avatar_url": "https://avatars3.githubusercontent.com/u/13351472?v=4",
"gravatar_id": "", "gravatar_id": "",
"url": "https://api.github.com/users/baxterthehacker", "url": "https://api.github.com/users/binkkatal",
"html_url": "https://github.com/baxterthehacker", "html_url": "https://github.com/binkkatal",
"followers_url": "https://api.github.com/users/baxterthehacker/followers", "followers_url": "https://api.github.com/users/binkkatal/followers",
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "following_url": "https://api.github.com/users/binkkatal/following{/other_user}",
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "gists_url": "https://api.github.com/users/binkkatal/gists{/gist_id}",
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "starred_url": "https://api.github.com/users/binkkatal/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "subscriptions_url": "https://api.github.com/users/binkkatal/subscriptions",
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "organizations_url": "https://api.github.com/users/binkkatal/orgs",
"repos_url": "https://api.github.com/users/baxterthehacker/repos", "repos_url": "https://api.github.com/users/binkkatal/repos",
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "events_url": "https://api.github.com/users/binkkatal/events{/privacy}",
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "received_events_url": "https://api.github.com/users/binkkatal/received_events",
"type": "User", "type": "User",
"site_admin": false "site_admin": false
} }
} }`
`
req, err := http.NewRequest("POST", "http://127.0.0.1:3010/webhooks", bytes.NewBuffer([]byte(payload))) req, err := http.NewRequest("POST", "http://127.0.0.1:3010/webhooks", bytes.NewBuffer([]byte(payload)))
req.Header.Set("Content-Type", "application/json") req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Github-Event", "push") req.Header.Set("X-Github-Event", "push")
req.Header.Set("X-Hub-Signature", "sha1=c7097badc10db8a2ec615e340534956e75a483c6") req.Header.Set("X-Hub-Signature", "sha1=0534736f52c2fc5896ef1bd5a043127b20d233ba")
Equal(t, err, nil) Equal(t, err, nil)
@@ -4941,6 +4963,7 @@ func TestPushEvent(t *testing.T) {
defer resp.Body.Close() defer resp.Body.Close()
Equal(t, resp.StatusCode, http.StatusOK) Equal(t, resp.StatusCode, http.StatusOK)
} }
func TestReleaseEvent(t *testing.T) { func TestReleaseEvent(t *testing.T) {
+20 -2
View File
@@ -4122,8 +4122,23 @@ type PushPayload struct {
Name string `json:"name"` Name string `json:"name"`
FullName string `json:"full_name"` FullName string `json:"full_name"`
Owner struct { Owner struct {
Name string `json:"name"` Login string `json:"login"`
Email string `json:"email"` ID int64 `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:"owner"` } `json:"owner"`
Private bool `json:"private"` Private bool `json:"private"`
HTMLURL string `json:"html_url"` HTMLURL string `json:"html_url"`
@@ -4214,6 +4229,9 @@ type PushPayload struct {
Type string `json:"type"` Type string `json:"type"`
SiteAdmin bool `json:"site_admin"` SiteAdmin bool `json:"site_admin"`
} `json:"sender"` } `json:"sender"`
Installation struct {
Id int `json:"id"`
} `json:"installation"`
} }
// ReleasePayload contains the information for GitHub's release hook event // ReleasePayload contains the information for GitHub's release hook event