public async Task <DashboardMessageGitHub> PostRawBufferManual() { IEnumerable <string> headerValues = Request.Headers.GetValues("X-GitHub-Event"); string GitHubEvent = headerValues.FirstOrDefault(); string RawJSON = await Request.Content.ReadAsStringAsync(); DashboardMessageGitHub msg = new DashboardMessageGitHub(RawJSON, GitHubEvent); var hubContext = GlobalHost.ConnectionManager.GetHubContext <DashboardMessageHub>(); hubContext.Clients.All.broadcastDashboardMessage(msg); DashboardMessageCache.Add(msg); return(msg); }
public void DashboardMessageGitHubTest_Push() { #region JSON DATA string json = @"{ ""ref"": ""refs / heads / changes"", ""before"": ""9049f1265b7d61be4a8904a9a27120d2064dab3b"", ""after"": ""0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"", ""created"": false, ""deleted"": false, ""forced"": false, ""base_ref"": null, ""compare"": ""https://github.com/baxterthehacker/public-repo/compare/9049f1265b7d...0d1a26e67d8f"", ""commits"": [ { ""id"": ""0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"", ""tree_id"": ""f9d2a07e9488b91af2641b26b9407fe22a451433"", ""distinct"": true, ""message"": ""Update README.md"", ""timestamp"": ""2015-05-05T19:40:15-04:00"", ""url"": ""https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"", ""author"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"", ""username"": ""baxterthehacker"" }, ""committer"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"", ""username"": ""baxterthehacker"" }, ""added"": [ ], ""removed"": [ ], ""modified"": [ ""README.md"" ] } ], ""head_commit"": { ""id"": ""0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"", ""tree_id"": ""f9d2a07e9488b91af2641b26b9407fe22a451433"", ""distinct"": true, ""message"": ""Update README.md"", ""timestamp"": ""2015-05-05T19:40:15-04:00"", ""url"": ""https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"", ""author"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"", ""username"": ""baxterthehacker"" }, ""committer"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"", ""username"": ""baxterthehacker"" }, ""added"": [ ], ""removed"": [ ], ""modified"": [ ""README.md"" ] }, ""repository"": { ""id"": 35129377, ""name"": ""public-repo"", ""full_name"": ""baxterthehacker/public-repo"", ""owner"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"" }, ""private"": false, ""html_url"": ""https://github.com/baxterthehacker/public-repo"", ""description"": """", ""fork"": false, ""url"": ""https://github.com/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"": 1430869212, ""updated_at"": ""2015-05-05T23:40:12Z"", ""pushed_at"": 1430869217, ""git_url"": ""git://github.com/baxterthehacker/public-repo.git"", ""ssh_url"": ""[email protected]: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"", ""stargazers"": 0, ""master_branch"": ""master"" }, ""pusher"": { ""name"": ""baxterthehacker"", ""email"": ""*****@*****.**"" }, ""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 } }"; #endregion DashboardMessageGitHub msg = new DashboardMessageGitHub(json, "push"); Assert.AreEqual("Code", msg.Category); Assert.AreEqual("Code push to 'public-repo'", msg.Title); Assert.AreEqual("", msg.Context); Assert.AreEqual("baxterthehacker has pushed commits to repository 'public-repo'", msg.Message); Assert.AreEqual(1, msg.Details.Length); Assert.AreEqual("Update README.md", msg.Details[0]); }
public void DashboardMessageGitHubTest_PullRequest() { #region JSON DATA string json = @"{ ""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"": ""[email protected]: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"": ""[email protected]: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"": ""[email protected]: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 } }"; #endregion DashboardMessageGitHub msg = new DashboardMessageGitHub(json, "pull_request"); Assert.AreEqual("Code", msg.Category); Assert.AreEqual("Pull request in 'public-repo'", msg.Title); Assert.AreEqual("", msg.Context); Assert.AreEqual("baxterthehacker has opened pull request to public-repo branch master", msg.Message); Assert.AreEqual(1, msg.Details.Length); Assert.AreEqual("Update the README with new information", msg.Details[0]); }