443e255708
Due to a slight change in the payload , the ssh for payload changed. This was the reason for failing test case
5845 lines
302 KiB
Go
5845 lines
302 KiB
Go
package github
|
|
|
|
import (
|
|
"bytes"
|
|
"net/http"
|
|
"os"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
. "gopkg.in/go-playground/assert.v1"
|
|
"gopkg.in/go-playground/webhooks.v4"
|
|
)
|
|
|
|
// NOTES:
|
|
// - Run "go test" to run tests
|
|
// - Run "gocov test | gocov report" to report on test converage by file
|
|
// - Run "gocov test | gocov annotate -" to report on all code and functions, those ,marked with "MISS" were never called
|
|
//
|
|
// or
|
|
//
|
|
// -- may be a good idea to change to output path to somewherelike /tmp
|
|
// go test -coverprofile cover.out && go tool cover -html=cover.out -o cover.html
|
|
//
|
|
|
|
const (
|
|
port = 3010
|
|
path = "/webhooks"
|
|
)
|
|
|
|
// HandlePayload handles GitHub event(s)
|
|
func HandlePayload(payload interface{}, header webhooks.Header) {
|
|
|
|
}
|
|
|
|
var hook *Webhook
|
|
|
|
func TestMain(m *testing.M) {
|
|
|
|
// setup
|
|
hook = New(&Config{Secret: "IsWishesWereHorsesWedAllBeEatingSteak!"})
|
|
hook.RegisterEvents(
|
|
HandlePayload,
|
|
CommitCommentEvent,
|
|
CreateEvent,
|
|
DeleteEvent,
|
|
DeploymentEvent,
|
|
DeploymentStatusEvent,
|
|
ForkEvent,
|
|
GollumEvent,
|
|
InstallationEvent,
|
|
IntegrationInstallationEvent,
|
|
IssueCommentEvent,
|
|
IssuesEvent,
|
|
LabelEvent,
|
|
MemberEvent,
|
|
MembershipEvent,
|
|
MilestoneEvent,
|
|
OrganizationEvent,
|
|
OrgBlockEvent,
|
|
PageBuildEvent,
|
|
PingEvent,
|
|
ProjectCardEvent,
|
|
ProjectColumnEvent,
|
|
ProjectEvent,
|
|
PublicEvent,
|
|
PullRequestEvent,
|
|
PullRequestReviewEvent,
|
|
PullRequestReviewCommentEvent,
|
|
PushEvent,
|
|
ReleaseEvent,
|
|
RepositoryEvent,
|
|
StatusEvent,
|
|
TeamEvent,
|
|
TeamAddEvent,
|
|
WatchEvent,
|
|
)
|
|
|
|
go webhooks.Run(hook, "127.0.0.1:"+strconv.Itoa(port), path)
|
|
time.Sleep(time.Millisecond * 500)
|
|
|
|
os.Exit(m.Run())
|
|
|
|
// teardown
|
|
}
|
|
|
|
func TestProvider(t *testing.T) {
|
|
Equal(t, hook.Provider(), webhooks.GitHub)
|
|
}
|
|
|
|
func TestBadNoEventHeader(t *testing.T) {
|
|
payload := "{}"
|
|
|
|
req, err := http.NewRequest("POST", "http://127.0.0.1:3010/webhooks", bytes.NewBuffer([]byte(payload)))
|
|
req.Header.Set("Content-Type", "application/json")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusBadRequest)
|
|
}
|
|
|
|
func TestUnsubscribedEvent(t *testing.T) {
|
|
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("X-Github-Event", "noneexistant_event")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestBadBody(t *testing.T) {
|
|
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("X-Github-Event", "commit_comment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=156404ad5f721c53151147f3d3d302329f95a3ab")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusInternalServerError)
|
|
}
|
|
|
|
func TestBadSignatureLength(t *testing.T) {
|
|
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("X-Github-Event", "commit_comment")
|
|
req.Header.Set("X-Hub-Signature", "")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusForbidden)
|
|
}
|
|
|
|
func TestBadSignatureMatch(t *testing.T) {
|
|
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("X-Github-Event", "commit_comment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=111")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusForbidden)
|
|
}
|
|
|
|
func TestCommitCommentEvent(t *testing.T) {
|
|
payload := `{
|
|
"action": "created",
|
|
"comment": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/comments/11056394",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/commit/9049f1265b7d61be4a8904a9a27120d2064dab3b#commitcomment-11056394",
|
|
"id": 11056394,
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"position": null,
|
|
"line": null,
|
|
"path": null,
|
|
"commit_id": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"created_at": "2015-05-05T23:40:29Z",
|
|
"updated_at": "2015-05-05T23:40:29Z",
|
|
"body": "This is a really good change! :+1:"
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "commit_comment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=156404ad5f721c53151147f3d3d302329f95a3ab")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestCreateEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"ref": "0.0.1",
|
|
"ref_type": "tag",
|
|
"master_branch": "master",
|
|
"description": "",
|
|
"pusher_type": "user",
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:38Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "create")
|
|
req.Header.Set("X-Hub-Signature", "sha1=77ff16ca116034bbeed77ebfce83b36572a9cbaf")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestDeleteEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"ref": "simple-tag",
|
|
"ref_type": "tag",
|
|
"pusher_type": "user",
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:40Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "delete")
|
|
req.Header.Set("X-Hub-Signature", "sha1=4ddef04fd05b504c7041e294fca3ad1804bc7be1")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestDeploymentEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"deployment": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692",
|
|
"id": 710692,
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"ref": "master",
|
|
"task": "deploy",
|
|
"payload": {
|
|
},
|
|
"environment": "production",
|
|
"description": null,
|
|
"creator": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2015-05-05T23:40:38Z",
|
|
"updated_at": "2015-05-05T23:40:38Z",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692/statuses",
|
|
"repository_url": "https://api.github.com/repos/baxterthehacker/public-repo"
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:38Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "deployment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=bb47dc63ceb764a6b1f14fe123e299e5b814c67c")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestDeploymentStatusEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"deployment_status": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692/statuses/1115122",
|
|
"id": 1115122,
|
|
"state": "success",
|
|
"creator": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"description": null,
|
|
"target_url": null,
|
|
"created_at": "2015-05-05T23:40:39Z",
|
|
"updated_at": "2015-05-05T23:40:39Z",
|
|
"deployment_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692",
|
|
"repository_url": "https://api.github.com/repos/baxterthehacker/public-repo"
|
|
},
|
|
"deployment": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692",
|
|
"id": 710692,
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"ref": "master",
|
|
"task": "deploy",
|
|
"payload": {
|
|
},
|
|
"environment": "production",
|
|
"description": null,
|
|
"creator": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2015-05-05T23:40:38Z",
|
|
"updated_at": "2015-05-05T23:40:38Z",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments/710692/statuses",
|
|
"repository_url": "https://api.github.com/repos/baxterthehacker/public-repo"
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:38Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "deployment_status")
|
|
req.Header.Set("X-Hub-Signature", "sha1=1b2ce08e0c3487fdf22bed12c63dc734cf6dc8a4")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestForkEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"forkee": {
|
|
"id": 35129393,
|
|
"name": "public-repo",
|
|
"full_name": "baxterandthehackers/public-repo",
|
|
"owner": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterandthehackers",
|
|
"html_url": "https://github.com/baxterandthehackers",
|
|
"followers_url": "https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url": "https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type": "Organization",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterandthehackers/public-repo",
|
|
"description": "",
|
|
"fork": true,
|
|
"url": "https://api.github.com/repos/baxterandthehackers/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterandthehackers/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterandthehackers/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterandthehackers/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterandthehackers/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterandthehackers/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterandthehackers/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterandthehackers/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterandthehackers/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterandthehackers/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterandthehackers/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterandthehackers/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterandthehackers/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterandthehackers/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterandthehackers/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterandthehackers/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterandthehackers/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterandthehackers/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterandthehackers/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterandthehackers/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterandthehackers/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterandthehackers/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterandthehackers/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterandthehackers/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterandthehackers/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterandthehackers/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterandthehackers/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterandthehackers/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:30Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterandthehackers/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterandthehackers/public-repo.git",
|
|
"clone_url": "https://github.com/baxterandthehackers/public-repo.git",
|
|
"svn_url": "https://github.com/baxterandthehackers/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": false,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master",
|
|
"public": true
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 1,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 1,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterandthehackers",
|
|
"html_url": "https://github.com/baxterandthehackers",
|
|
"followers_url": "https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url": "https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type": "Organization",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "fork")
|
|
req.Header.Set("X-Hub-Signature", "sha1=cec5f8fb7c383514c622d3eb9e121891dfcca848")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestGollumEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"pages": [
|
|
{
|
|
"page_name": "Home",
|
|
"title": "Home",
|
|
"summary": null,
|
|
"action": "created",
|
|
"sha": "91ea1bd42aa2ba166b86e8aefe049e9837214e67",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/wiki/Home"
|
|
}
|
|
],
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:17Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "jasonrudolph",
|
|
"id": 2988,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2988?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/jasonrudolph",
|
|
"html_url": "https://github.com/jasonrudolph",
|
|
"followers_url": "https://api.github.com/users/jasonrudolph/followers",
|
|
"following_url": "https://api.github.com/users/jasonrudolph/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/jasonrudolph/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/jasonrudolph/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/jasonrudolph/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/jasonrudolph/orgs",
|
|
"repos_url": "https://api.github.com/users/jasonrudolph/repos",
|
|
"events_url": "https://api.github.com/users/jasonrudolph/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/jasonrudolph/received_events",
|
|
"type": "User",
|
|
"site_admin": true
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "gollum")
|
|
req.Header.Set("X-Hub-Signature", "sha1=a375a6dc8ceac7231ee022211f8eb85e2a84a5b9")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestInstallationEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"installation": {
|
|
"id": 80429,
|
|
"account": {
|
|
"login": "PombeirP",
|
|
"id": 138074,
|
|
"avatar_url": "https://avatars1.githubusercontent.com/u/138074?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/PombeirP",
|
|
"html_url": "https://github.com/PombeirP",
|
|
"followers_url": "https://api.github.com/users/PombeirP/followers",
|
|
"following_url": "https://api.github.com/users/PombeirP/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/PombeirP/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/PombeirP/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/PombeirP/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/PombeirP/orgs",
|
|
"repos_url": "https://api.github.com/users/PombeirP/repos",
|
|
"events_url": "https://api.github.com/users/PombeirP/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/PombeirP/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repository_selection": "selected",
|
|
"access_tokens_url": "https://api.github.com/installations/80429/access_tokens",
|
|
"repositories_url": "https://api.github.com/installation/repositories",
|
|
"html_url": "https://github.com/settings/installations/80429",
|
|
"app_id": 8157,
|
|
"target_id": 138074,
|
|
"target_type": "User",
|
|
"permissions": {
|
|
"repository_projects": "write",
|
|
"issues": "read",
|
|
"metadata": "read",
|
|
"pull_requests": "read"
|
|
},
|
|
"events": [
|
|
"pull_request"
|
|
],
|
|
"created_at": 1516025475,
|
|
"updated_at": 1516025475,
|
|
"single_file_name": null
|
|
},
|
|
"repositories": [
|
|
{
|
|
"id": 117381220,
|
|
"name": "status-github-bot",
|
|
"full_name": "PombeirP/status-github-bot"
|
|
}
|
|
],
|
|
"sender": {
|
|
"login": "PombeirP",
|
|
"id": 138074,
|
|
"avatar_url": "https://avatars1.githubusercontent.com/u/138074?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/PombeirP",
|
|
"html_url": "https://github.com/PombeirP",
|
|
"followers_url": "https://api.github.com/users/PombeirP/followers",
|
|
"following_url": "https://api.github.com/users/PombeirP/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/PombeirP/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/PombeirP/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/PombeirP/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/PombeirP/orgs",
|
|
"repos_url": "https://api.github.com/users/PombeirP/repos",
|
|
"events_url": "https://api.github.com/users/PombeirP/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/PombeirP/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "installation")
|
|
req.Header.Set("X-Hub-Signature", "sha1=987338c6e5c21794ab6c258abe51284f9b1df728")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestIntegrationInstallationEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"installation": {
|
|
"id": 80429,
|
|
"account": {
|
|
"login": "PombeirP",
|
|
"id": 138074,
|
|
"avatar_url": "https://avatars1.githubusercontent.com/u/138074?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/PombeirP",
|
|
"html_url": "https://github.com/PombeirP",
|
|
"followers_url": "https://api.github.com/users/PombeirP/followers",
|
|
"following_url": "https://api.github.com/users/PombeirP/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/PombeirP/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/PombeirP/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/PombeirP/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/PombeirP/orgs",
|
|
"repos_url": "https://api.github.com/users/PombeirP/repos",
|
|
"events_url": "https://api.github.com/users/PombeirP/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/PombeirP/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repository_selection": "selected",
|
|
"access_tokens_url": "https://api.github.com/installations/80429/access_tokens",
|
|
"repositories_url": "https://api.github.com/installation/repositories",
|
|
"html_url": "https://github.com/settings/installations/80429",
|
|
"app_id": 8157,
|
|
"target_id": 138074,
|
|
"target_type": "User",
|
|
"permissions": {
|
|
"repository_projects": "write",
|
|
"issues": "read",
|
|
"metadata": "read",
|
|
"pull_requests": "read"
|
|
},
|
|
"events": [
|
|
"pull_request"
|
|
],
|
|
"created_at": 1516025475,
|
|
"updated_at": 1516025475,
|
|
"single_file_name": null
|
|
},
|
|
"repositories": [
|
|
{
|
|
"id": 117381220,
|
|
"name": "status-github-bot",
|
|
"full_name": "PombeirP/status-github-bot"
|
|
}
|
|
],
|
|
"sender": {
|
|
"login": "PombeirP",
|
|
"id": 138074,
|
|
"avatar_url": "https://avatars1.githubusercontent.com/u/138074?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/PombeirP",
|
|
"html_url": "https://github.com/PombeirP",
|
|
"followers_url": "https://api.github.com/users/PombeirP/followers",
|
|
"following_url": "https://api.github.com/users/PombeirP/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/PombeirP/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/PombeirP/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/PombeirP/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/PombeirP/orgs",
|
|
"repos_url": "https://api.github.com/users/PombeirP/repos",
|
|
"events_url": "https://api.github.com/users/PombeirP/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/PombeirP/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "integration_installation")
|
|
req.Header.Set("X-Hub-Signature", "sha1=987338c6e5c21794ab6c258abe51284f9b1df728")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestIssueCommentEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"issue": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/comments",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/events",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/issues/2",
|
|
"id": 73464126,
|
|
"number": 2,
|
|
"title": "Spelling error in the README file",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/labels/bug",
|
|
"name": "bug",
|
|
"color": "fc2929"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": null,
|
|
"milestone": null,
|
|
"comments": 1,
|
|
"created_at": "2015-05-05T23:40:28Z",
|
|
"updated_at": "2015-05-05T23:40:28Z",
|
|
"closed_at": null,
|
|
"body": "It looks like you accidently spelled 'commit' with two 't's."
|
|
},
|
|
"comment": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments/99262140",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/issues/2#issuecomment-99262140",
|
|
"issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2",
|
|
"id": 99262140,
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"created_at": "2015-05-05T23:40:28Z",
|
|
"updated_at": "2015-05-05T23:40:28Z",
|
|
"body": "You are totally right! I'll get this fixed right away."
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "issue_comment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=e724c9f811fcf5f511aac32e4251b08ab1a0fd87")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestIssuesEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "opened",
|
|
"issue": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/comments",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2/events",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/issues/2",
|
|
"id": 73464126,
|
|
"number": 2,
|
|
"title": "Spelling error in the README file",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 208045946,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/labels/bug",
|
|
"name": "bug",
|
|
"color": "fc2929",
|
|
"default": true
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": null,
|
|
"milestone": null,
|
|
"comments": 0,
|
|
"created_at": "2015-05-05T23:40:28Z",
|
|
"updated_at": "2015-05-05T23:40:28Z",
|
|
"closed_at": null,
|
|
"body": "It looks like you accidently spelled 'commit' with two 't's."
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "issues")
|
|
req.Header.Set("X-Hub-Signature", "sha1=dfc9a3428f3df86e4ecd78e34b41c55bba5d0b21")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestLabelEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action":"created",
|
|
"label":{
|
|
"url":"https://api.github.com/repos/baxterandthehackers/public-repo/labels/blocked",
|
|
"name":"blocked",
|
|
"color":"ff0000"
|
|
},
|
|
"repository":{
|
|
"id":67075329,
|
|
"name":"public-repo",
|
|
"full_name":"baxterandthehackers/public-repo",
|
|
"owner":{
|
|
"login":"baxterandthehackers",
|
|
"id":4312013,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterandthehackers",
|
|
"html_url":"https://github.com/baxterandthehackers",
|
|
"followers_url":"https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url":"https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url":"https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type":"Organization",
|
|
"site_admin":false
|
|
},
|
|
"private":true,
|
|
"html_url":"https://github.com/baxterandthehackers/public-repo",
|
|
"description":null,
|
|
"fork":false,
|
|
"url":"https://api.github.com/repos/baxterandthehackers/public-repo",
|
|
"forks_url":"https://api.github.com/repos/baxterandthehackers/public-repo/forks",
|
|
"keys_url":"https://api.github.com/repos/baxterandthehackers/public-repo/keys{/key_id}",
|
|
"collaborators_url":"https://api.github.com/repos/baxterandthehackers/public-repo/collaborators{/collaborator}",
|
|
"teams_url":"https://api.github.com/repos/baxterandthehackers/public-repo/teams",
|
|
"hooks_url":"https://api.github.com/repos/baxterandthehackers/public-repo/hooks",
|
|
"issue_events_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues/events{/number}",
|
|
"events_url":"https://api.github.com/repos/baxterandthehackers/public-repo/events",
|
|
"assignees_url":"https://api.github.com/repos/baxterandthehackers/public-repo/assignees{/user}",
|
|
"branches_url":"https://api.github.com/repos/baxterandthehackers/public-repo/branches{/branch}",
|
|
"tags_url":"https://api.github.com/repos/baxterandthehackers/public-repo/tags",
|
|
"blobs_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/blobs{/sha}",
|
|
"git_tags_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/tags{/sha}",
|
|
"git_refs_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/refs{/sha}",
|
|
"trees_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/trees{/sha}",
|
|
"statuses_url":"https://api.github.com/repos/baxterandthehackers/public-repo/statuses/{sha}",
|
|
"languages_url":"https://api.github.com/repos/baxterandthehackers/public-repo/languages",
|
|
"stargazers_url":"https://api.github.com/repos/baxterandthehackers/public-repo/stargazers",
|
|
"contributors_url":"https://api.github.com/repos/baxterandthehackers/public-repo/contributors",
|
|
"subscribers_url":"https://api.github.com/repos/baxterandthehackers/public-repo/subscribers",
|
|
"subscription_url":"https://api.github.com/repos/baxterandthehackers/public-repo/subscription",
|
|
"commits_url":"https://api.github.com/repos/baxterandthehackers/public-repo/commits{/sha}",
|
|
"git_commits_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/commits{/sha}",
|
|
"comments_url":"https://api.github.com/repos/baxterandthehackers/public-repo/comments{/number}",
|
|
"issue_comment_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues/comments{/number}",
|
|
"contents_url":"https://api.github.com/repos/baxterandthehackers/public-repo/contents/{+path}",
|
|
"compare_url":"https://api.github.com/repos/baxterandthehackers/public-repo/compare/{base}...{head}",
|
|
"merges_url":"https://api.github.com/repos/baxterandthehackers/public-repo/merges",
|
|
"archive_url":"https://api.github.com/repos/baxterandthehackers/public-repo/{archive_format}{/ref}",
|
|
"downloads_url":"https://api.github.com/repos/baxterandthehackers/public-repo/downloads",
|
|
"issues_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues{/number}",
|
|
"pulls_url":"https://api.github.com/repos/baxterandthehackers/public-repo/pulls{/number}",
|
|
"milestones_url":"https://api.github.com/repos/baxterandthehackers/public-repo/milestones{/number}",
|
|
"notifications_url":"https://api.github.com/repos/baxterandthehackers/public-repo/notifications{?since,all,participating}",
|
|
"labels_url":"https://api.github.com/repos/baxterandthehackers/public-repo/labels{/name}",
|
|
"releases_url":"https://api.github.com/repos/baxterandthehackers/public-repo/releases{/id}",
|
|
"deployments_url":"https://api.github.com/repos/baxterandthehackers/public-repo/deployments",
|
|
"created_at":"2016-08-31T21:38:51Z",
|
|
"updated_at":"2016-08-31T21:38:51Z",
|
|
"pushed_at":"2016-08-31T21:38:51Z",
|
|
"git_url":"git://github.com/baxterandthehackers/public-repo.git",
|
|
"ssh_url":"git@github.com:baxterandthehackers/public-repo.git",
|
|
"clone_url":"https://github.com/baxterandthehackers/public-repo.git",
|
|
"svn_url":"https://github.com/baxterandthehackers/public-repo",
|
|
"homepage":null,
|
|
"size":0,
|
|
"stargazers_count":0,
|
|
"watchers_count":0,
|
|
"language":null,
|
|
"has_issues":true,
|
|
"has_downloads":true,
|
|
"has_wiki":true,
|
|
"has_pages":false,
|
|
"forks_count":0,
|
|
"mirror_url":null,
|
|
"open_issues_count":2,
|
|
"forks":0,
|
|
"open_issues":2,
|
|
"watchers":0,
|
|
"default_branch":"master"
|
|
},
|
|
"organization":{
|
|
"login":"baxterandthehackers",
|
|
"id":4312013,
|
|
"url":"https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url":"https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url":"https://api.github.com/orgs/baxterandthehackers/events",
|
|
"hooks_url":"https://api.github.com/orgs/baxterandthehackers/hooks",
|
|
"issues_url":"https://api.github.com/orgs/baxterandthehackers/issues",
|
|
"members_url":"https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url":"https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"description":""
|
|
},
|
|
"sender":{
|
|
"login":"baxterthehacker",
|
|
"id":7649605,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterthehacker",
|
|
"html_url":"https://github.com/baxterthehacker",
|
|
"followers_url":"https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url":"https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url":"https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterthehacker/received_events",
|
|
"type":"User",
|
|
"site_admin":true
|
|
}
|
|
}
|
|
`
|
|
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("X-Github-Event", "label")
|
|
req.Header.Set("X-Hub-Signature", "sha1=efc13e7ad816235222e4a6b3f96d3fd1e162dbd4")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestMemberEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "added",
|
|
"member": {
|
|
"login": "octocat",
|
|
"id": 583231,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/583231?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/octocat",
|
|
"html_url": "https://github.com/octocat",
|
|
"followers_url": "https://api.github.com/users/octocat/followers",
|
|
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/octocat/orgs",
|
|
"repos_url": "https://api.github.com/users/octocat/repos",
|
|
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/octocat/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:40Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "member")
|
|
req.Header.Set("X-Hub-Signature", "sha1=597e7d6627a6636d4c3283e36631983fbd57bdd0")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestMembershipEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "added",
|
|
"scope": "team",
|
|
"member": {
|
|
"login": "kdaigle",
|
|
"id": 2501,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2501?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/kdaigle",
|
|
"html_url": "https://github.com/kdaigle",
|
|
"followers_url": "https://api.github.com/users/kdaigle/followers",
|
|
"following_url": "https://api.github.com/users/kdaigle/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/kdaigle/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/kdaigle/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/kdaigle/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/kdaigle/orgs",
|
|
"repos_url": "https://api.github.com/users/kdaigle/repos",
|
|
"events_url": "https://api.github.com/users/kdaigle/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/kdaigle/received_events",
|
|
"type": "User",
|
|
"site_admin": true
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"team": {
|
|
"name": "Contractors",
|
|
"id": 123456,
|
|
"slug": "contractors",
|
|
"permission": "admin",
|
|
"url": "https://api.github.com/teams/123456",
|
|
"members_url": "https://api.github.com/teams/123456/members{/member}",
|
|
"repositories_url": "https://api.github.com/teams/123456/repos"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=2"
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "membership")
|
|
req.Header.Set("X-Hub-Signature", "sha1=16928c947b3707b0efcf8ceb074a5d5dedc9c76e")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestMilestoneEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action":"created",
|
|
"milestone":{
|
|
"url":"https://api.github.com/repos/baxterandthehackers/public-repo/milestones/3",
|
|
"html_url":"https://github.com/baxterandthehackers/public-repo/milestones/Test%20milestone%20creation%20webhook%20from%20command%20line2",
|
|
"labels_url":"https://api.github.com/repos/baxterandthehackers/public-repo/milestones/3/labels",
|
|
"id":2055681,
|
|
"number":3,
|
|
"title":"I am a milestone",
|
|
"description":null,
|
|
"creator":{
|
|
"login":"baxterthehacker",
|
|
"id":7649605,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterthehacker",
|
|
"html_url":"https://github.com/baxterthehacker",
|
|
"followers_url":"https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url":"https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url":"https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterthehacker/received_events",
|
|
"type":"User",
|
|
"site_admin":true
|
|
},
|
|
"open_issues":0,
|
|
"closed_issues":0,
|
|
"state":"open",
|
|
"created_at":"2016-10-07T19:26:08Z",
|
|
"updated_at":"2016-10-07T19:26:08Z",
|
|
"due_on":null,
|
|
"closed_at":null
|
|
},
|
|
"repository":{
|
|
"id":70275481,
|
|
"name":"public-repo",
|
|
"full_name":"baxterandthehackers/public-repo",
|
|
"owner":{
|
|
"login":"baxterandthehackers",
|
|
"id":4312013,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterandthehackers",
|
|
"html_url":"https://github.com/baxterandthehackers",
|
|
"followers_url":"https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url":"https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url":"https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type":"Organization",
|
|
"site_admin":false
|
|
},
|
|
"private":true,
|
|
"html_url":"https://github.com/baxterandthehackers/public-repo",
|
|
"description":null,
|
|
"fork":false,
|
|
"url":"https://api.github.com/repos/baxterandthehackers/public-repo",
|
|
"forks_url":"https://api.github.com/repos/baxterandthehackers/public-repo/forks",
|
|
"keys_url":"https://api.github.com/repos/baxterandthehackers/public-repo/keys{/key_id}",
|
|
"collaborators_url":"https://api.github.com/repos/baxterandthehackers/public-repo/collaborators{/collaborator}",
|
|
"teams_url":"https://api.github.com/repos/baxterandthehackers/public-repo/teams",
|
|
"hooks_url":"https://api.github.com/repos/baxterandthehackers/public-repo/hooks",
|
|
"issue_events_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues/events{/number}",
|
|
"events_url":"https://api.github.com/repos/baxterandthehackers/public-repo/events",
|
|
"assignees_url":"https://api.github.com/repos/baxterandthehackers/public-repo/assignees{/user}",
|
|
"branches_url":"https://api.github.com/repos/baxterandthehackers/public-repo/branches{/branch}",
|
|
"tags_url":"https://api.github.com/repos/baxterandthehackers/public-repo/tags",
|
|
"blobs_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/blobs{/sha}",
|
|
"git_tags_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/tags{/sha}",
|
|
"git_refs_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/refs{/sha}",
|
|
"trees_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/trees{/sha}",
|
|
"statuses_url":"https://api.github.com/repos/baxterandthehackers/public-repo/statuses/{sha}",
|
|
"languages_url":"https://api.github.com/repos/baxterandthehackers/public-repo/languages",
|
|
"stargazers_url":"https://api.github.com/repos/baxterandthehackers/public-repo/stargazers",
|
|
"contributors_url":"https://api.github.com/repos/baxterandthehackers/public-repo/contributors",
|
|
"subscribers_url":"https://api.github.com/repos/baxterandthehackers/public-repo/subscribers",
|
|
"subscription_url":"https://api.github.com/repos/baxterandthehackers/public-repo/subscription",
|
|
"commits_url":"https://api.github.com/repos/baxterandthehackers/public-repo/commits{/sha}",
|
|
"git_commits_url":"https://api.github.com/repos/baxterandthehackers/public-repo/git/commits{/sha}",
|
|
"comments_url":"https://api.github.com/repos/baxterandthehackers/public-repo/comments{/number}",
|
|
"issue_comment_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues/comments{/number}",
|
|
"contents_url":"https://api.github.com/repos/baxterandthehackers/public-repo/contents/{+path}",
|
|
"compare_url":"https://api.github.com/repos/baxterandthehackers/public-repo/compare/{base}...{head}",
|
|
"merges_url":"https://api.github.com/repos/baxterandthehackers/public-repo/merges",
|
|
"archive_url":"https://api.github.com/repos/baxterandthehackers/public-repo/{archive_format}{/ref}",
|
|
"downloads_url":"https://api.github.com/repos/baxterandthehackers/public-repo/downloads",
|
|
"issues_url":"https://api.github.com/repos/baxterandthehackers/public-repo/issues{/number}",
|
|
"pulls_url":"https://api.github.com/repos/baxterandthehackers/public-repo/pulls{/number}",
|
|
"milestones_url":"https://api.github.com/repos/baxterandthehackers/public-repo/milestones{/number}",
|
|
"notifications_url":"https://api.github.com/repos/baxterandthehackers/public-repo/notifications{?since,all,participating}",
|
|
"labels_url":"https://api.github.com/repos/baxterandthehackers/public-repo/labels{/name}",
|
|
"releases_url":"https://api.github.com/repos/baxterandthehackers/public-repo/releases{/id}",
|
|
"deployments_url":"https://api.github.com/repos/baxterandthehackers/public-repo/deployments",
|
|
"created_at":"2016-10-07T19:10:12Z",
|
|
"updated_at":"2016-10-07T19:10:12Z",
|
|
"pushed_at":"2016-10-07T19:10:13Z",
|
|
"git_url":"git://github.com/baxterandthehackers/public-repo.git",
|
|
"ssh_url":"git@github.com:baxterandthehackers/public-repo.git",
|
|
"clone_url":"https://github.com/baxterandthehackers/public-repo.git",
|
|
"svn_url":"https://github.com/baxterandthehackers/public-repo",
|
|
"homepage":null,
|
|
"size":0,
|
|
"stargazers_count":0,
|
|
"watchers_count":0,
|
|
"language":null,
|
|
"has_issues":true,
|
|
"has_downloads":true,
|
|
"has_wiki":true,
|
|
"has_pages":false,
|
|
"forks_count":0,
|
|
"mirror_url":null,
|
|
"open_issues_count":0,
|
|
"forks":0,
|
|
"open_issues":0,
|
|
"watchers":0,
|
|
"default_branch":"master"
|
|
},
|
|
"organization":{
|
|
"login":"baxterandthehackers",
|
|
"id":4312013,
|
|
"url":"https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url":"https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url":"https://api.github.com/orgs/baxterandthehackers/events",
|
|
"hooks_url":"https://api.github.com/orgs/baxterandthehackers/hooks",
|
|
"issues_url":"https://api.github.com/orgs/baxterandthehackers/issues",
|
|
"members_url":"https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url":"https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"description":""
|
|
},
|
|
"sender":{
|
|
"login":"baxterthehacker",
|
|
"id":7649605,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterthehacker",
|
|
"html_url":"https://github.com/baxterthehacker",
|
|
"followers_url":"https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url":"https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url":"https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterthehacker/received_events",
|
|
"type":"User",
|
|
"site_admin":true
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "milestone")
|
|
req.Header.Set("X-Hub-Signature", "sha1=8b63f58ea58e6a59dcfc5ecbaea0d1741a6bf9ec")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestOrganizationEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "member_invited",
|
|
"invitation": {
|
|
"id": 3294302,
|
|
"login": "baxterthehacker",
|
|
"email": null,
|
|
"role": "direct_member"
|
|
},
|
|
"membership": {
|
|
"url": "https://api.github.com/orgs/baxterandthehackers/memberships/baxterthehacker",
|
|
"state": "active",
|
|
"role": "member",
|
|
"organization_url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/17085448?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 4312013,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"hooks_url": "https://api.github.com/orgs/baxterandthehackers/hooks",
|
|
"issues_url": "https://api.github.com/orgs/baxterandthehackers/issues",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"description": ""
|
|
},
|
|
"sender":{
|
|
"login":"baxterthehacker",
|
|
"id":7649605,
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id":"",
|
|
"url":"https://api.github.com/users/baxterthehacker",
|
|
"html_url":"https://github.com/baxterthehacker",
|
|
"followers_url":"https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url":"https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url":"https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url":"https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url":"https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url":"https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url":"https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url":"https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url":"https://api.github.com/users/baxterthehacker/received_events",
|
|
"type":"User",
|
|
"site_admin":true
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "organization")
|
|
req.Header.Set("X-Hub-Signature", "sha1=7e5ad88557be0a05fb89e86c7893d987386aa0d5")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestOrgBlockEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "blocked",
|
|
"blocked_user": {
|
|
"login": "octocat",
|
|
"id": 583231,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/583231?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/octocat",
|
|
"html_url": "https://github.com/octocat",
|
|
"followers_url": "https://api.github.com/users/octocat/followers",
|
|
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/octocat/orgs",
|
|
"repos_url": "https://api.github.com/users/octocat/repos",
|
|
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/octocat/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"organization": {
|
|
"login": "github",
|
|
"id": 4366038,
|
|
"url": "https://api.github.com/orgs/github",
|
|
"repos_url": "https://api.github.com/orgs/github/repos",
|
|
"events_url": "https://api.github.com/orgs/github/events",
|
|
"hooks_url": "https://api.github.com/orgs/github/hooks",
|
|
"issues_url": "https://api.github.com/orgs/github/issues",
|
|
"members_url": "https://api.github.com/orgs/github/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4366038?v=3",
|
|
"description": ""
|
|
},
|
|
"sender": {
|
|
"login": "octodocs",
|
|
"id": 25781999,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/25781999?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/octodocs",
|
|
"html_url": "https://github.com/octodocs",
|
|
"followers_url": "https://api.github.com/users/octodocs/followers",
|
|
"following_url": "https://api.github.com/users/octodocs/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/octodocs/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/octodocs/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/octodocs/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/octodocs/orgs",
|
|
"repos_url": "https://api.github.com/users/octodocs/repos",
|
|
"events_url": "https://api.github.com/users/octodocs/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/octodocs/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "org_block")
|
|
req.Header.Set("X-Hub-Signature", "sha1=21fe61da3f014c011edb60b0b9dfc9aa7059a24b")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPageBuildEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"id": 15995382,
|
|
"build": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/pages/builds/15995382",
|
|
"status": "built",
|
|
"error": {
|
|
"message": null
|
|
},
|
|
"pusher": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"commit": "053b99542c83021d6b202d1a1f5ecd5ef7084e55",
|
|
"duration": 3790,
|
|
"created_at": "2015-05-05T23:40:13Z",
|
|
"updated_at": "2015-05-05T23:40:17Z"
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:17Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "page_build")
|
|
req.Header.Set("X-Hub-Signature", "sha1=b3abad8f9c1b3fc0b01c4eb107447800bb5000f9")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPingEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"zen": "Keep it logically awesome.",
|
|
"hook_id": 20081052,
|
|
"hook": {
|
|
"type": "App",
|
|
"id": 20081052,
|
|
"name": "web",
|
|
"active": true,
|
|
"events": [
|
|
"pull_request"
|
|
],
|
|
"config": {
|
|
"content_type": "json",
|
|
"insecure_ssl": "0",
|
|
"secret": "********",
|
|
"url": "https://ngrok.io/webhook"
|
|
},
|
|
"updated_at": "2018-01-15T10:48:54Z",
|
|
"created_at": "2018-01-15T10:48:54Z",
|
|
"app_id": 8157
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "ping")
|
|
req.Header.Set("X-Hub-Signature", "sha1=f82267eb5c6408d5986209da906747f57c11b33b")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestProjectCardEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"project_card": {
|
|
"url": "https://api.github.com/projects/columns/cards/1266091",
|
|
"column_url": "https://api.github.com/projects/columns/515520",
|
|
"column_id": 515520,
|
|
"id": 1266091,
|
|
"note": null,
|
|
"creator": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"created_at": 1483569391,
|
|
"updated_at": 1483569391,
|
|
"content_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/2"
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=2"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "project_card")
|
|
req.Header.Set("X-Hub-Signature", "sha1=495dec0d6449d16b71f2ddcd37d595cb9b04b1d8")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestProjectColumnEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"project_column": {
|
|
"url": "https://api.github.com/projects/columns/515520",
|
|
"project_url": "https://api.github.com/projects/288065",
|
|
"cards_url": "https://api.github.com/projects/columns/515520/cards",
|
|
"id": 515520,
|
|
"name": "High Priority",
|
|
"created_at": 1483569138,
|
|
"updated_at": 1483569138
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=2"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "project_column")
|
|
req.Header.Set("X-Hub-Signature", "sha1=7d5dd49d9863e982a4f577170717ea8350a69db0")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestProjectEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"project": {
|
|
"owner_url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"url": "https://api.github.com/projects/288065",
|
|
"columns_url": "https://api.github.com/projects/288065/columns",
|
|
"id": 288065,
|
|
"name": "2017",
|
|
"body": "Roadmap for work to be done in 2017",
|
|
"number": 10,
|
|
"state": "open",
|
|
"creator": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"created_at": 1483567089,
|
|
"updated_at": 1483567089
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=2"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "project")
|
|
req.Header.Set("X-Hub-Signature", "sha1=7295ab4f205434208f1b86edf2b55adae34c6c92")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPublicEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:41Z",
|
|
"pushed_at": "2015-05-05T23:40:40Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "public")
|
|
req.Header.Set("X-Hub-Signature", "sha1=73edb2a8c69c1ac35efb797ede3dc2cde618c10c")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPullRequestEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "opened",
|
|
"number": 1,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1",
|
|
"id": 34778301,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/pull/1",
|
|
"diff_url": "https://github.com/baxterthehacker/public-repo/pull/1.diff",
|
|
"patch_url": "https://github.com/baxterthehacker/public-repo/pull/1.patch",
|
|
"issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1",
|
|
"number": 1,
|
|
"state": "open",
|
|
"locked": false,
|
|
"title": "Update the README with new information",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"body": "This is a pretty simple change that we need to pull into master.",
|
|
"created_at": "2015-05-05T23:40:27Z",
|
|
"updated_at": "2015-05-05T23:40:27Z",
|
|
"closed_at": null,
|
|
"merged_at": null,
|
|
"merge_commit_sha": null,
|
|
"assignee": null,
|
|
"milestone": null,
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits",
|
|
"review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments",
|
|
"review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"head": {
|
|
"label": "baxterthehacker:changes",
|
|
"ref": "changes",
|
|
"sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repo": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:26Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"base": {
|
|
"label": "baxterthehacker:master",
|
|
"ref": "master",
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repo": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:26Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1"
|
|
},
|
|
"html": {
|
|
"href": "https://github.com/baxterthehacker/public-repo/pull/1"
|
|
},
|
|
"issue": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1"
|
|
},
|
|
"comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments"
|
|
},
|
|
"review_comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments"
|
|
},
|
|
"review_comment": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}"
|
|
},
|
|
"commits": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits"
|
|
},
|
|
"statuses": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"
|
|
}
|
|
},
|
|
"merged": false,
|
|
"mergeable": null,
|
|
"mergeable_state": "unknown",
|
|
"merged_by": null,
|
|
"comments": 0,
|
|
"review_comments": 0,
|
|
"commits": 1,
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changed_files": 1
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:26Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"installation": {
|
|
"id": 234
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "pull_request")
|
|
req.Header.Set("X-Hub-Signature", "sha1=35712c8d2bc197b7d07621dcf20d2fb44620508f")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPullRequestReviewEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "submitted",
|
|
"review": {
|
|
"id": 2626884,
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"body": "Looks great!",
|
|
"submitted_at": "2016-10-03T23:39:09Z",
|
|
"state": "approved",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/pull/8#pullrequestreview-2626884",
|
|
"pull_request_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8",
|
|
"_links": {
|
|
"html": {
|
|
"href": "https://github.com/baxterthehacker/public-repo/pull/8#pullrequestreview-2626884"
|
|
},
|
|
"pull_request": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8"
|
|
}
|
|
}
|
|
},
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8",
|
|
"id": 87811438,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/pull/8",
|
|
"diff_url": "https://github.com/baxterthehacker/public-repo/pull/8.diff",
|
|
"patch_url": "https://github.com/baxterthehacker/public-repo/pull/8.patch",
|
|
"issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/8",
|
|
"number": 8,
|
|
"state": "open",
|
|
"locked": false,
|
|
"title": "Add a README description",
|
|
"user": {
|
|
"login": "skalnik",
|
|
"id": 2546,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2546?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/skalnik",
|
|
"html_url": "https://github.com/skalnik",
|
|
"followers_url": "https://api.github.com/users/skalnik/followers",
|
|
"following_url": "https://api.github.com/users/skalnik/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/skalnik/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/skalnik/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/skalnik/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/skalnik/orgs",
|
|
"repos_url": "https://api.github.com/users/skalnik/repos",
|
|
"events_url": "https://api.github.com/users/skalnik/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/skalnik/received_events",
|
|
"type": "User",
|
|
"site_admin": true
|
|
},
|
|
"body": "Just a few more details",
|
|
"created_at": "2016-10-03T23:37:43Z",
|
|
"updated_at": "2016-10-03T23:39:09Z",
|
|
"closed_at": null,
|
|
"merged_at": null,
|
|
"merge_commit_sha": "faea154a7decef6819754aab0f8c0e232e6c8b4f",
|
|
"assignee": null,
|
|
"assignees": [],
|
|
"milestone": null,
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8/commits",
|
|
"review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8/comments",
|
|
"review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/8/comments",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/b7a1f9c27caa4e03c14a88feb56e2d4f7500aa63",
|
|
"head": {
|
|
"label": "skalnik:patch-2",
|
|
"ref": "patch-2",
|
|
"sha": "b7a1f9c27caa4e03c14a88feb56e2d4f7500aa63",
|
|
"user": {
|
|
"login": "skalnik",
|
|
"id": 2546,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2546?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/skalnik",
|
|
"html_url": "https://github.com/skalnik",
|
|
"followers_url": "https://api.github.com/users/skalnik/followers",
|
|
"following_url": "https://api.github.com/users/skalnik/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/skalnik/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/skalnik/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/skalnik/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/skalnik/orgs",
|
|
"repos_url": "https://api.github.com/users/skalnik/repos",
|
|
"events_url": "https://api.github.com/users/skalnik/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/skalnik/received_events",
|
|
"type": "User",
|
|
"site_admin": true
|
|
},
|
|
"repo": {
|
|
"id": 69919152,
|
|
"name": "public-repo",
|
|
"full_name": "skalnik/public-repo",
|
|
"owner": {
|
|
"login": "skalnik",
|
|
"id": 2546,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2546?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/skalnik",
|
|
"html_url": "https://github.com/skalnik",
|
|
"followers_url": "https://api.github.com/users/skalnik/followers",
|
|
"following_url": "https://api.github.com/users/skalnik/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/skalnik/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/skalnik/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/skalnik/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/skalnik/orgs",
|
|
"repos_url": "https://api.github.com/users/skalnik/repos",
|
|
"events_url": "https://api.github.com/users/skalnik/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/skalnik/received_events",
|
|
"type": "User",
|
|
"site_admin": true
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/skalnik/public-repo",
|
|
"description": null,
|
|
"fork": true,
|
|
"url": "https://api.github.com/repos/skalnik/public-repo",
|
|
"forks_url": "https://api.github.com/repos/skalnik/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/skalnik/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/skalnik/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/skalnik/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/skalnik/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/skalnik/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/skalnik/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/skalnik/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/skalnik/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/skalnik/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/skalnik/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/skalnik/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/skalnik/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/skalnik/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/skalnik/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/skalnik/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/skalnik/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/skalnik/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/skalnik/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/skalnik/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/skalnik/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/skalnik/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/skalnik/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/skalnik/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/skalnik/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/skalnik/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/skalnik/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/skalnik/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/skalnik/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/skalnik/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/skalnik/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/skalnik/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/skalnik/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/skalnik/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/skalnik/public-repo/releases{/id}",
|
|
"deployments_url": "https://api.github.com/repos/skalnik/public-repo/deployments",
|
|
"created_at": "2016-10-03T23:23:31Z",
|
|
"updated_at": "2016-08-15T17:19:01Z",
|
|
"pushed_at": "2016-10-03T23:36:52Z",
|
|
"git_url": "git://github.com/skalnik/public-repo.git",
|
|
"ssh_url": "git@github.com:skalnik/public-repo.git",
|
|
"clone_url": "https://github.com/skalnik/public-repo.git",
|
|
"svn_url": "https://github.com/skalnik/public-repo",
|
|
"homepage": null,
|
|
"size": 233,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": false,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": false,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"base": {
|
|
"label": "baxterthehacker:master",
|
|
"ref": "master",
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repo": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"deployments_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2016-08-15T17:19:01Z",
|
|
"pushed_at": "2016-10-03T23:37:43Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 233,
|
|
"stargazers_count": 2,
|
|
"watchers_count": 2,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 2,
|
|
"mirror_url": null,
|
|
"open_issues_count": 5,
|
|
"forks": 2,
|
|
"open_issues": 5,
|
|
"watchers": 2,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8"
|
|
},
|
|
"html": {
|
|
"href": "https://github.com/baxterthehacker/public-repo/pull/8"
|
|
},
|
|
"issue": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/8"
|
|
},
|
|
"comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/8/comments"
|
|
},
|
|
"review_comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8/comments"
|
|
},
|
|
"review_comment": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}"
|
|
},
|
|
"commits": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/8/commits"
|
|
},
|
|
"statuses": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/b7a1f9c27caa4e03c14a88feb56e2d4f7500aa63"
|
|
}
|
|
}
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"deployments_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2016-08-15T17:19:01Z",
|
|
"pushed_at": "2016-10-03T23:37:43Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 233,
|
|
"stargazers_count": 2,
|
|
"watchers_count": 2,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 2,
|
|
"mirror_url": null,
|
|
"open_issues_count": 5,
|
|
"forks": 2,
|
|
"open_issues": 5,
|
|
"watchers": 2,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "pull_request_review")
|
|
req.Header.Set("X-Hub-Signature", "sha1=55345ce92be7849f97d39b9426b95261d4bd4465")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPullRequestReviewCommentEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"comment": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments/29724692",
|
|
"id": 29724692,
|
|
"diff_hunk": "@@ -1 +1 @@\n-# public-repo",
|
|
"path": "README.md",
|
|
"position": 1,
|
|
"original_position": 1,
|
|
"commit_id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"original_commit_id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"body": "Maybe you should use more emojji on this line.",
|
|
"created_at": "2015-05-05T23:40:27Z",
|
|
"updated_at": "2015-05-05T23:40:27Z",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/pull/1#discussion_r29724692",
|
|
"pull_request_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1",
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments/29724692"
|
|
},
|
|
"html": {
|
|
"href": "https://github.com/baxterthehacker/public-repo/pull/1#discussion_r29724692"
|
|
},
|
|
"pull_request": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1"
|
|
}
|
|
}
|
|
},
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1",
|
|
"id": 34778301,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/pull/1",
|
|
"diff_url": "https://github.com/baxterthehacker/public-repo/pull/1.diff",
|
|
"patch_url": "https://github.com/baxterthehacker/public-repo/pull/1.patch",
|
|
"issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1",
|
|
"number": 1,
|
|
"state": "open",
|
|
"locked": false,
|
|
"title": "Update the README with new information",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"body": "This is a pretty simple change that we need to pull into master.",
|
|
"created_at": "2015-05-05T23:40:27Z",
|
|
"updated_at": "2015-05-05T23:40:27Z",
|
|
"closed_at": null,
|
|
"merged_at": null,
|
|
"merge_commit_sha": "18721552ba489fb84e12958c1b5694b5475f7991",
|
|
"assignee": null,
|
|
"milestone": null,
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits",
|
|
"review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments",
|
|
"review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"head": {
|
|
"label": "baxterthehacker:changes",
|
|
"ref": "changes",
|
|
"sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repo": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"base": {
|
|
"label": "baxterthehacker:master",
|
|
"ref": "master",
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"user": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"repo": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1"
|
|
},
|
|
"html": {
|
|
"href": "https://github.com/baxterthehacker/public-repo/pull/1"
|
|
},
|
|
"issue": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1"
|
|
},
|
|
"comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments"
|
|
},
|
|
"review_comments": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments"
|
|
},
|
|
"review_comment": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}"
|
|
},
|
|
"commits": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits"
|
|
},
|
|
"statuses": {
|
|
"href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"
|
|
}
|
|
}
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:12Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 1,
|
|
"forks": 0,
|
|
"open_issues": 1,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "pull_request_review_comment")
|
|
req.Header.Set("X-Hub-Signature", "sha1=a9ece15dbcbb85fa5f00a0bf409494af2cbc5b60")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestPushEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"ref": "refs/heads/master",
|
|
"before": "737d38c599c1b2991664dfc6155d6bf516fcce36",
|
|
"after": "fd489864e7642b48eaad6e3f155c10e46810ec72",
|
|
"created": false,
|
|
"deleted": false,
|
|
"forced": false,
|
|
"base_ref": null,
|
|
"compare": "https://github.com/binkkatal/sample_app/compare/737d38c599c1...fd489864e764",
|
|
"commits": [
|
|
{
|
|
"id": "fd489864e7642b48eaad6e3f155c10e46810ec72",
|
|
"tree_id": "55e08136e14d5168b699038f88c73e175ddffd3b",
|
|
"distinct": true,
|
|
"message": "test a push event",
|
|
"timestamp": "2018-06-29T19:34:13+05:30",
|
|
"url": "https://github.com/binkkatal/sample_app/commit/fd489864e7642b48eaad6e3f155c10e46810ec72",
|
|
"author": {
|
|
"name": "binkkatal",
|
|
"email": "binkkatal.r@gmail.com",
|
|
"username": "binkkatal"
|
|
},
|
|
"committer": {
|
|
"name": "binkkatal",
|
|
"email": "binkkatal.r@gmail.com",
|
|
"username": "binkkatal"
|
|
},
|
|
"added": [
|
|
".razorops.yaml"
|
|
],
|
|
"removed": [
|
|
|
|
],
|
|
"modified": [
|
|
"app/controllers/application_controller.rb"
|
|
]
|
|
}
|
|
],
|
|
"head_commit": {
|
|
"id": "fd489864e7642b48eaad6e3f155c10e46810ec72",
|
|
"tree_id": "55e08136e14d5168b699038f88c73e175ddffd3b",
|
|
"distinct": true,
|
|
"message": "test a push event",
|
|
"timestamp": "2018-06-29T19:34:13+05:30",
|
|
"url": "https://github.com/binkkatal/sample_app/commit/fd489864e7642b48eaad6e3f155c10e46810ec72",
|
|
"author": {
|
|
"name": "binkkatal",
|
|
"email": "binkkatal.r@gmail.com",
|
|
"username": "binkkatal"
|
|
},
|
|
"committer": {
|
|
"name": "binkkatal",
|
|
"email": "binkkatal.r@gmail.com",
|
|
"username": "binkkatal"
|
|
},
|
|
"added": [
|
|
".razorops.yaml"
|
|
],
|
|
"removed": [
|
|
|
|
],
|
|
"modified": [
|
|
"app/controllers/application_controller.rb"
|
|
]
|
|
},
|
|
"repository": {
|
|
"id": 63933911,
|
|
"node_id": "MDEwOlJlcG9zaXRvcnk2MzkzMzkxMQ==",
|
|
"name": "sample_app",
|
|
"full_name": "binkkatal/sample_app",
|
|
"owner": {
|
|
"name": "binkkatal",
|
|
"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,
|
|
"html_url": "https://github.com/binkkatal/sample_app",
|
|
"description": null,
|
|
"fork": false,
|
|
"url": "https://github.com/binkkatal/sample_app",
|
|
"forks_url": "https://api.github.com/repos/binkkatal/sample_app/forks",
|
|
"keys_url": "https://api.github.com/repos/binkkatal/sample_app/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/binkkatal/sample_app/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/binkkatal/sample_app/teams",
|
|
"hooks_url": "https://api.github.com/repos/binkkatal/sample_app/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/binkkatal/sample_app/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/binkkatal/sample_app/events",
|
|
"assignees_url": "https://api.github.com/repos/binkkatal/sample_app/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/binkkatal/sample_app/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/binkkatal/sample_app/tags",
|
|
"blobs_url": "https://api.github.com/repos/binkkatal/sample_app/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/binkkatal/sample_app/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/binkkatal/sample_app/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/binkkatal/sample_app/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/binkkatal/sample_app/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/binkkatal/sample_app/languages",
|
|
"stargazers_url": "https://api.github.com/repos/binkkatal/sample_app/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/binkkatal/sample_app/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/binkkatal/sample_app/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/binkkatal/sample_app/subscription",
|
|
"commits_url": "https://api.github.com/repos/binkkatal/sample_app/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/binkkatal/sample_app/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/binkkatal/sample_app/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/binkkatal/sample_app/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/binkkatal/sample_app/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/binkkatal/sample_app/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/binkkatal/sample_app/merges",
|
|
"archive_url": "https://api.github.com/repos/binkkatal/sample_app/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/binkkatal/sample_app/downloads",
|
|
"issues_url": "https://api.github.com/repos/binkkatal/sample_app/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/binkkatal/sample_app/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/binkkatal/sample_app/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/binkkatal/sample_app/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/binkkatal/sample_app/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/binkkatal/sample_app/releases{/id}",
|
|
"deployments_url": "https://api.github.com/repos/binkkatal/sample_app/deployments",
|
|
"created_at": 1469173225,
|
|
"updated_at": "2016-07-22T07:48:39Z",
|
|
"pushed_at": 1530281075,
|
|
"git_url": "git://github.com/binkkatal/sample_app.git",
|
|
"ssh_url": "git@github.com:binkkatal/sample_app.git",
|
|
"clone_url": "https://github.com/binkkatal/sample_app.git",
|
|
"svn_url": "https://github.com/binkkatal/sample_app",
|
|
"homepage": null,
|
|
"size": 23,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": "Ruby",
|
|
"has_issues": true,
|
|
"has_projects": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": false,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"archived": false,
|
|
"open_issues_count": 0,
|
|
"license": null,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master",
|
|
"stargazers": 0,
|
|
"master_branch": "master"
|
|
},
|
|
"pusher": {
|
|
"name": "binkkatal",
|
|
"email": "binkkatal.r@gmail.com"
|
|
},
|
|
"sender": {
|
|
"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
|
|
}
|
|
}`
|
|
|
|
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("X-Github-Event", "push")
|
|
req.Header.Set("X-Hub-Signature", "sha1=0534736f52c2fc5896ef1bd5a043127b20d233ba")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
|
|
}
|
|
|
|
func TestReleaseEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "published",
|
|
"release": {
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/releases/1261438",
|
|
"assets_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases/1261438/assets",
|
|
"upload_url": "https://uploads.github.com/repos/baxterthehacker/public-repo/releases/1261438/assets{?name}",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/releases/tag/0.0.1",
|
|
"id": 1261438,
|
|
"tag_name": "0.0.1",
|
|
"target_commitish": "master",
|
|
"name": null,
|
|
"draft": false,
|
|
"author": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"prerelease": false,
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"published_at": "2015-05-05T23:40:38Z",
|
|
"assets": [
|
|
|
|
],
|
|
"tarball_url": "https://api.github.com/repos/baxterthehacker/public-repo/tarball/0.0.1",
|
|
"zipball_url": "https://api.github.com/repos/baxterthehacker/public-repo/zipball/0.0.1",
|
|
"body": null
|
|
},
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:38Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "release")
|
|
req.Header.Set("X-Hub-Signature", "sha1=e62bb4c51bc7dde195b9525971c2e3aecb394390")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestRepositoryEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "created",
|
|
"repository": {
|
|
"id": 27496774,
|
|
"name": "new-repository",
|
|
"full_name": "baxterandthehackers/new-repository",
|
|
"owner": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterandthehackers",
|
|
"html_url": "https://github.com/baxterandthehackers",
|
|
"followers_url": "https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url": "https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type": "Organization",
|
|
"site_admin": false
|
|
},
|
|
"private": true,
|
|
"html_url": "https://github.com/baxterandthehackers/new-repository",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterandthehackers/new-repository",
|
|
"forks_url": "https://api.github.com/repos/baxterandthehackers/new-repository/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterandthehackers/new-repository/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterandthehackers/new-repository/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterandthehackers/new-repository/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterandthehackers/new-repository/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterandthehackers/new-repository/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterandthehackers/new-repository/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterandthehackers/new-repository/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterandthehackers/new-repository/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterandthehackers/new-repository/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterandthehackers/new-repository/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterandthehackers/new-repository/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterandthehackers/new-repository/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterandthehackers/new-repository/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterandthehackers/new-repository/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterandthehackers/new-repository/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterandthehackers/new-repository/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterandthehackers/new-repository/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterandthehackers/new-repository/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterandthehackers/new-repository/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterandthehackers/new-repository/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterandthehackers/new-repository/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterandthehackers/new-repository/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterandthehackers/new-repository/issues/comments/{number}",
|
|
"contents_url": "https://api.github.com/repos/baxterandthehackers/new-repository/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterandthehackers/new-repository/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterandthehackers/new-repository/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterandthehackers/new-repository/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterandthehackers/new-repository/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterandthehackers/new-repository/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterandthehackers/new-repository/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterandthehackers/new-repository/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterandthehackers/new-repository/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterandthehackers/new-repository/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterandthehackers/new-repository/releases{/id}",
|
|
"created_at": "2014-12-03T16:39:25Z",
|
|
"updated_at": "2014-12-03T16:39:25Z",
|
|
"pushed_at": "2014-12-03T16:39:25Z",
|
|
"git_url": "git://github.com/baxterandthehackers/new-repository.git",
|
|
"ssh_url": "git@github.com:baxterandthehackers/new-repository.git",
|
|
"clone_url": "https://github.com/baxterandthehackers/new-repository.git",
|
|
"svn_url": "https://github.com/baxterandthehackers/new-repository",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": false,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=2"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=2",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "repository")
|
|
req.Header.Set("X-Hub-Signature", "sha1=df442a8af41edd2d42ccdd997938d1d111b0f94e")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestStatusEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"id": 214015194,
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"name": "baxterthehacker/public-repo",
|
|
"target_url": null,
|
|
"context": "default",
|
|
"description": null,
|
|
"state": "success",
|
|
"commit": {
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"commit": {
|
|
"author": {
|
|
"name": "baxterthehacker",
|
|
"email": "baxterthehacker@users.noreply.github.com",
|
|
"date": "2015-05-05T23:40:12Z"
|
|
},
|
|
"committer": {
|
|
"name": "baxterthehacker",
|
|
"email": "baxterthehacker@users.noreply.github.com",
|
|
"date": "2015-05-05T23:40:12Z"
|
|
},
|
|
"message": "Initial commit",
|
|
"tree": {
|
|
"sha": "02b49ad0ba4f1acd9f06531b21e16a4ac5d341d0",
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees/02b49ad0ba4f1acd9f06531b21e16a4ac5d341d0"
|
|
},
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits/9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"comment_count": 1
|
|
},
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/commits/9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"html_url": "https://github.com/baxterthehacker/public-repo/commit/9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits/9049f1265b7d61be4a8904a9a27120d2064dab3b/comments",
|
|
"author": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"committer": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"parents": [
|
|
|
|
]
|
|
},
|
|
"branches": [
|
|
{
|
|
"name": "master",
|
|
"commit": {
|
|
"sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b",
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/commits/9049f1265b7d61be4a8904a9a27120d2064dab3b"
|
|
}
|
|
},
|
|
{
|
|
"name": "changes",
|
|
"commit": {
|
|
"sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/commits/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"
|
|
}
|
|
},
|
|
{
|
|
"name": "gh-pages",
|
|
"commit": {
|
|
"sha": "b11bb7545ac14abafc6191a0481b0d961e7793c6",
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo/commits/b11bb7545ac14abafc6191a0481b0d961e7793c6"
|
|
}
|
|
}
|
|
],
|
|
"created_at": "2015-05-05T23:40:39Z",
|
|
"updated_at": "2015-05-05T23:40:39Z",
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:39Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "status")
|
|
req.Header.Set("X-Hub-Signature", "sha1=3caa5f062a2deb7cce1482314bb9b4c99bf0ab45")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestTeamEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action":"created",
|
|
"team":{
|
|
"name":"team baxter",
|
|
"id":2175394,
|
|
"slug":"team-baxter",
|
|
"description":"",
|
|
"privacy":"secret",
|
|
"url":"https:/api.github.com/teams/2175394",
|
|
"members_url":"https:/api.github.com/teams/2175394/members{/member}",
|
|
"repositories_url":"https:/api.github.com/teams/2175394/repos",
|
|
"permission":"pull"
|
|
},
|
|
"organization":{
|
|
"login":"baxterandthehackers",
|
|
"id":4312013,
|
|
"url":"https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url":"https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url":"https://api.github.com/orgs/baxterandthehackers/events",
|
|
"hooks_url":"https://api.github.com/orgs/baxterandthehackers/hooks",
|
|
"issues_url":"https://api.github.com/orgs/baxterandthehackers/issues",
|
|
"members_url":"https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url":"https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url":"https://avatars.githubusercontent.com/u/4312013?v=3",
|
|
"description":""
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "team")
|
|
req.Header.Set("X-Hub-Signature", "sha1=ff5b5d58faec10bd40fc96834148df408e7a4608")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestTeamAddEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"team": {
|
|
"name": "github",
|
|
"id": 836012,
|
|
"slug": "github",
|
|
"description": "",
|
|
"permission": "pull",
|
|
"url": "https://api.github.com/teams/836012",
|
|
"members_url": "https://api.github.com/teams/836012/members{/member}",
|
|
"repositories_url": "https://api.github.com/teams/836012/repos"
|
|
},
|
|
"repository": {
|
|
"id": 35129393,
|
|
"name": "public-repo",
|
|
"full_name": "baxterandthehackers/public-repo",
|
|
"owner": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterandthehackers",
|
|
"html_url": "https://github.com/baxterandthehackers",
|
|
"followers_url": "https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url": "https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type": "Organization",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterandthehackers/public-repo",
|
|
"description": "",
|
|
"fork": true,
|
|
"url": "https://api.github.com/repos/baxterandthehackers/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterandthehackers/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterandthehackers/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterandthehackers/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterandthehackers/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterandthehackers/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterandthehackers/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterandthehackers/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterandthehackers/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterandthehackers/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterandthehackers/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterandthehackers/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterandthehackers/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterandthehackers/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterandthehackers/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterandthehackers/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterandthehackers/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterandthehackers/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterandthehackers/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterandthehackers/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterandthehackers/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterandthehackers/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterandthehackers/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterandthehackers/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterandthehackers/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterandthehackers/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterandthehackers/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterandthehackers/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterandthehackers/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterandthehackers/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:30Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterandthehackers/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterandthehackers/public-repo.git",
|
|
"clone_url": "https://github.com/baxterandthehackers/public-repo.git",
|
|
"svn_url": "https://github.com/baxterandthehackers/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": false,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 0,
|
|
"forks": 0,
|
|
"open_issues": 0,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"organization": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"url": "https://api.github.com/orgs/baxterandthehackers",
|
|
"repos_url": "https://api.github.com/orgs/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/orgs/baxterandthehackers/events",
|
|
"members_url": "https://api.github.com/orgs/baxterandthehackers/members{/member}",
|
|
"public_members_url": "https://api.github.com/orgs/baxterandthehackers/public_members{/member}",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"description": null
|
|
},
|
|
"sender": {
|
|
"login": "baxterandthehackers",
|
|
"id": 7649605,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7649605?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterandthehackers",
|
|
"html_url": "https://github.com/baxterandthehackers",
|
|
"followers_url": "https://api.github.com/users/baxterandthehackers/followers",
|
|
"following_url": "https://api.github.com/users/baxterandthehackers/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterandthehackers/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterandthehackers/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterandthehackers/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterandthehackers/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterandthehackers/repos",
|
|
"events_url": "https://api.github.com/users/baxterandthehackers/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterandthehackers/received_events",
|
|
"type": "Organization",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "team_add")
|
|
req.Header.Set("X-Hub-Signature", "sha1=5f3953476e270b79cc6763780346110da880609a")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|
|
|
|
func TestWatchEvent(t *testing.T) {
|
|
|
|
payload := `{
|
|
"action": "started",
|
|
"repository": {
|
|
"id": 35129377,
|
|
"name": "public-repo",
|
|
"full_name": "baxterthehacker/public-repo",
|
|
"owner": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/baxterthehacker/public-repo",
|
|
"description": "",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
|
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
|
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
|
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
|
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
|
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
|
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
|
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
|
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
|
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
|
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
|
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
|
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
|
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
|
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
|
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
|
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
|
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
|
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
|
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
|
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
|
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
|
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
|
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
|
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
|
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
|
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
|
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
|
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
|
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
|
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
|
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
|
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
|
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
|
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
|
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
|
"created_at": "2015-05-05T23:40:12Z",
|
|
"updated_at": "2015-05-05T23:40:30Z",
|
|
"pushed_at": "2015-05-05T23:40:27Z",
|
|
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
|
"ssh_url": "git@github.com:baxterthehacker/public-repo.git",
|
|
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
|
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
|
"homepage": null,
|
|
"size": 0,
|
|
"stargazers_count": 0,
|
|
"watchers_count": 0,
|
|
"language": null,
|
|
"has_issues": true,
|
|
"has_downloads": true,
|
|
"has_wiki": true,
|
|
"has_pages": true,
|
|
"forks_count": 0,
|
|
"mirror_url": null,
|
|
"open_issues_count": 2,
|
|
"forks": 0,
|
|
"open_issues": 2,
|
|
"watchers": 0,
|
|
"default_branch": "master"
|
|
},
|
|
"sender": {
|
|
"login": "baxterthehacker",
|
|
"id": 6752317,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/baxterthehacker",
|
|
"html_url": "https://github.com/baxterthehacker",
|
|
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
|
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
|
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
|
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
}
|
|
`
|
|
|
|
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("X-Github-Event", "watch")
|
|
req.Header.Set("X-Hub-Signature", "sha1=a317bcfe69ccb8bece74c20c7378e5413c4772f1")
|
|
|
|
Equal(t, err, nil)
|
|
|
|
client := &http.Client{}
|
|
resp, err := client.Do(req)
|
|
Equal(t, err, nil)
|
|
|
|
defer resp.Body.Close()
|
|
|
|
Equal(t, resp.StatusCode, http.StatusOK)
|
|
}
|