diff --git a/.arclint b/.arclint --- a/.arclint +++ b/.arclint @@ -61,7 +61,19 @@ "type": "spelling" }, "text": { - "type": "text" + "type": "text", + "exclude": [ + "(^src/(.*/)?__tests__/[^/]+/.*\\.(txt|json))" + ] + }, + "text-without-length": { + "type": "text", + "include": [ + "(^src/(.*/)?__tests__/[^/]+/.*\\.(txt|json))" + ], + "severity": { + "3": "disabled" + } }, "xhpast": { "type": "xhpast", diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1426,6 +1426,7 @@ 'NuanceGitHubImportCursor' => 'applications/nuance/cursor/NuanceGitHubImportCursor.php', 'NuanceGitHubIssuesImportCursor' => 'applications/nuance/cursor/NuanceGitHubIssuesImportCursor.php', 'NuanceGitHubRawEvent' => 'applications/nuance/github/NuanceGitHubRawEvent.php', + 'NuanceGitHubRawEventTestCase' => 'applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php', 'NuanceGitHubRepositoryImportCursor' => 'applications/nuance/cursor/NuanceGitHubRepositoryImportCursor.php', 'NuanceGitHubRepositorySourceDefinition' => 'applications/nuance/source/NuanceGitHubRepositorySourceDefinition.php', 'NuanceImportCursor' => 'applications/nuance/cursor/NuanceImportCursor.php', @@ -5687,6 +5688,7 @@ 'NuanceGitHubImportCursor' => 'NuanceImportCursor', 'NuanceGitHubIssuesImportCursor' => 'NuanceGitHubImportCursor', 'NuanceGitHubRawEvent' => 'Phobject', + 'NuanceGitHubRawEventTestCase' => 'PhabricatorTestCase', 'NuanceGitHubRepositoryImportCursor' => 'NuanceGitHubImportCursor', 'NuanceGitHubRepositorySourceDefinition' => 'NuanceSourceDefinition', 'NuanceImportCursor' => 'Phobject', diff --git a/src/applications/nuance/github/NuanceGitHubRawEvent.php b/src/applications/nuance/github/NuanceGitHubRawEvent.php --- a/src/applications/nuance/github/NuanceGitHubRawEvent.php +++ b/src/applications/nuance/github/NuanceGitHubRawEvent.php @@ -30,14 +30,35 @@ switch ($this->getIssueRawKind()) { case 'IssuesEvent': - case 'IssuesCommentEvent': return true; + case 'IssueCommentEvent': + if (!$this->getRawPullRequestData()) { + return true; + } + break; } return false; } public function isPullRequestEvent() { + if ($this->type == self::TYPE_ISSUE) { + // TODO: This is wrong, some of these are pull events. + return false; + } + + $raw = $this->raw; + + switch ($this->getIssueRawKind()) { + case 'PullRequestEvent': + return true; + case 'IssueCommentEvent': + if ($this->getRawPullRequestData()) { + return true; + } + break; + } + return false; } @@ -46,27 +67,71 @@ return null; } + return $this->getRawIssueNumber(); + } + + public function getPullRequestNumber() { + if (!$this->isPullRequestEvent()) { + return null; + } + + return $this->getRawIssueNumber(); + } + + private function getRepositoryFullRawName() { $raw = $this->raw; - if ($this->type == self::TYPE_ISSUE) { - return idxv($raw, array('issue', 'number')); + $full = idxv($raw, array('repo', 'name')); + if (strlen($full)) { + return $full; } - if ($this->type == self::TYPE_REPOSITORY) { - return idxv($raw, array('payload', 'issue', 'number')); + // For issue events, the repository is not identified explicitly in the + // response body. Parse it out of the URI. + + $matches = null; + $ok = preg_match( + '(/repos/((?:[^/]+)/(?:[^/]+))/issues/events/)', + idx($raw, 'url'), + $matches); + + if ($ok) { + return $matches[1]; } return null; } - private function getRepositoryFullRawName() { + private function getIssueRawKind() { $raw = $this->raw; - return idxv($raw, array('repo', 'name')); + return idxv($raw, array('type')); } - private function getIssueRawKind() { + private function getRawIssueNumber() { $raw = $this->raw; - return idxv($raw, array('type')); + + if ($this->type == self::TYPE_ISSUE) { + return idxv($raw, array('issue', 'number')); + } + + if ($this->type == self::TYPE_REPOSITORY) { + $issue_number = idxv($raw, array('payload', 'issue', 'number')); + if ($issue_number) { + return $issue_number; + } + + $pull_number = idxv($raw, array('payload', 'number')); + if ($pull_number) { + return $pull_number; + } + } + + return null; + } + + private function getRawPullRequestData() { + $raw = $this->raw; + return idxv($raw, array('payload', 'issue', 'pull_request')); } } diff --git a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php @@ -0,0 +1,108 @@ +readTestCases($path); + + foreach ($cases as $name => $info) { + $input = $info['input']; + $expect = $info['expect']; + + $event = NuanceGitHubRawEvent::newEvent( + NuanceGitHubRawEvent::TYPE_ISSUE, + $input); + + $this->assertGitHubRawEventParse($expect, $event, $name); + } + } + + public function testRepositoryEvents() { + $path = dirname(__FILE__).'/repositoryevents/'; + + $cases = $this->readTestCases($path); + + foreach ($cases as $name => $info) { + $input = $info['input']; + $expect = $info['expect']; + + $event = NuanceGitHubRawEvent::newEvent( + NuanceGitHubRawEvent::TYPE_REPOSITORY, + $input); + + $this->assertGitHubRawEventParse($expect, $event, $name); + } + } + + private function assertGitHubRawEventParse( + array $expect, + NuanceGitHubRawEvent $event, + $name) { + + $actual = array( + 'repository.name.full' => $event->getRepositoryFullName(), + 'is.issue' => $event->isIssueEvent(), + 'is.pull' => $event->isPullRequestEvent(), + 'issue.number' => $event->getIssueNumber(), + 'pull.number' => $event->getPullRequestNumber(), + ); + + // Only verify the keys which are actually present in the test. This + // allows tests to specify only relevant keys. + $actual = array_select_keys($actual, array_keys($expect)); + + ksort($expect); + ksort($actual); + + $this->assertEqual($expect, $actual, $name); + } + + private function readTestCases($path) { + $files = Filesystem::listDirectory($path, $include_hidden = false); + + $tests = array(); + foreach ($files as $file) { + $data = Filesystem::readFile($path.$file); + + $parts = preg_split('/^~{5,}$/m', $data); + if (count($parts) < 2) { + throw new Exception( + pht( + 'Expected test file "%s" to contain an input section in JSON, '. + 'then an expected result section in JSON, with the two sections '. + 'separated by a line of "~~~~~", but the divider is not present '. + 'in the file.', + $file)); + } else if (count($parts) > 2) { + throw new Exception( + pht( + 'Expected test file "%s" to contain exactly two sections, '. + 'but it has more than two sections.')); + } + + list($input, $expect) = $parts; + + try { + $input = phutil_json_decode($input); + $expect = phutil_json_decode($expect); + } catch (Exception $ex) { + throw new PhutilProxyException( + pht( + 'Exception while decoding test data for test "%s".', + $file), + $ex); + } + + $tests[$file] = array( + 'input' => $input, + 'expect' => $expect, + ); + } + + return $tests; + } + +} diff --git a/src/applications/nuance/github/__tests__/issueevents/assigned.txt b/src/applications/nuance/github/__tests__/issueevents/assigned.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/assigned.txt @@ -0,0 +1,114 @@ +{ + "id": 583217900, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583217900", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "assigned", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:42:53Z", + "assignee": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "assigner": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/closed.txt b/src/applications/nuance/github/__tests__/issueevents/closed.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/closed.txt @@ -0,0 +1,76 @@ +{ + "id": 583218864, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218864", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "closed", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:53Z", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt b/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt @@ -0,0 +1,79 @@ +{ + "id": 583218613, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218613", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "demilestoned", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:36Z", + "milestone": { + "title": "b" + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/labeled.txt b/src/applications/nuance/github/__tests__/issueevents/labeled.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/labeled.txt @@ -0,0 +1,80 @@ +{ + "id": 583217784, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583217784", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "labeled", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:42:44Z", + "label": { + "name": "bug", + "color": "fc2929" + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/locked.txt b/src/applications/nuance/github/__tests__/issueevents/locked.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/locked.txt @@ -0,0 +1,76 @@ +{ + "id": 583218006, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218006", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "locked", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:42:58Z", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/milestoned.txt b/src/applications/nuance/github/__tests__/issueevents/milestoned.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/milestoned.txt @@ -0,0 +1,79 @@ +{ + "id": 583217866, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583217866", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "milestoned", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:42:50Z", + "milestone": { + "title": "b" + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/renamed.txt b/src/applications/nuance/github/__tests__/issueevents/renamed.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/renamed.txt @@ -0,0 +1,80 @@ +{ + "id": 583218162, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218162", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "renamed", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:07Z", + "rename": { + "from": "Enforce haiku in commit messages", + "to": "Enforce haiku in commit messages edit" + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/reopened.txt b/src/applications/nuance/github/__tests__/issueevents/reopened.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/reopened.txt @@ -0,0 +1,76 @@ +{ + "id": 583218814, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218814", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "reopened", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:50Z", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/unassigned.txt b/src/applications/nuance/github/__tests__/issueevents/unassigned.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/unassigned.txt @@ -0,0 +1,114 @@ +{ + "id": 583218511, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218511", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "unassigned", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:29Z", + "assignee": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "assigner": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt b/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt @@ -0,0 +1,80 @@ +{ + "id": 583218703, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218703", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "unlabeled", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:42Z", + "label": { + "name": "bug", + "color": "fc2929" + }, + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/issueevents/unlocked.txt b/src/applications/nuance/github/__tests__/issueevents/unlocked.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/issueevents/unlocked.txt @@ -0,0 +1,76 @@ +{ + "id": 583218062, + "url": "https://api.github.com/repos/epriestley/poems/issues/events/583218062", + "actor": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "event": "unlocked", + "commit_id": null, + "commit_url": null, + "created_at": "2016-03-09T12:43:01Z", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T14:34:46Z", + "closed_at": null, + "body": "OK" + } +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt @@ -0,0 +1,161 @@ +{ + "id": "3740938746", + "type": "IssueCommentEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "created", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/2", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/2/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/2/events", + "html_url": "https://github.com/epriestley/poems/pull/2", + "id": 139568860, + "number": 2, + "title": "Please Merge Quack2 into Feature", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/epriestley/poems/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/epriestley/poems/milestones/1", + "html_url": "https://github.com/epriestley/poems/milestones/b", + "labels_url": "https://api.github.com/repos/epriestley/poems/milestones/1/labels", + "id": 1633589, + "number": 1, + "title": "b", + "description": null, + "creator": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 1, + "closed_issues": 0, + "state": "open", + "created_at": "2016-03-09T12:42:50Z", + "updated_at": "2016-03-09T12:52:41Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2016-03-09T12:52:31Z", + "updated_at": "2016-03-09T12:53:06Z", + "closed_at": null, + "pull_request": { + "url": "https://api.github.com/repos/epriestley/poems/pulls/2", + "html_url": "https://github.com/epriestley/poems/pull/2", + "diff_url": "https://github.com/epriestley/poems/pull/2.diff", + "patch_url": "https://github.com/epriestley/poems/pull/2.patch" + }, + "body": "" + }, + "comment": { + "url": "https://api.github.com/repos/epriestley/poems/issues/comments/194282800", + "html_url": "https://github.com/epriestley/poems/pull/2#issuecomment-194282800", + "issue_url": "https://api.github.com/repos/epriestley/poems/issues/2", + "id": 194282800, + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-03-09T12:53:06Z", + "updated_at": "2016-03-09T12:53:06Z", + "body": "wub wub" + } + }, + "public": true, + "created_at": "2016-03-09T12:53:06Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": false, + "is.pull": true, + "issue.number": null, + "pull.number": 2 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt @@ -0,0 +1,98 @@ +{ + "id": "3733510485", + "type": "IssueCommentEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "created", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-08T00:41:22Z", + "closed_at": null, + "body": "OK" + }, + "comment": { + "url": "https://api.github.com/repos/epriestley/poems/issues/comments/193528669", + "html_url": "https://github.com/epriestley/poems/issues/1#issuecomment-193528669", + "issue_url": "https://api.github.com/repos/epriestley/poems/issues/1", + "id": 193528669, + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-03-08T00:41:22Z", + "updated_at": "2016-03-08T00:41:22Z", + "body": "comment on issue" + } + }, + "public": true, + "created_at": "2016-03-08T00:41:22Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt @@ -0,0 +1,70 @@ +{ + "id": "3740905151", + "type": "IssuesEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "closed", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "closed", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 2, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T12:43:48Z", + "closed_at": "2016-03-09T12:43:48Z", + "body": "OK" + } + }, + "public": true, + "created_at": "2016-03-09T12:43:48Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt @@ -0,0 +1,70 @@ +{ + "id": "3733509737", + "type": "IssuesEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "opened", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-08T00:41:08Z", + "closed_at": null, + "body": "OK" + } + }, + "public": true, + "created_at": "2016-03-08T00:41:08Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt @@ -0,0 +1,70 @@ +{ + "id": "3740908680", + "type": "IssuesEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "reopened", + "issue": { + "url": "https://api.github.com/repos/epriestley/poems/issues/1", + "repository_url": "https://api.github.com/repos/epriestley/poems", + "labels_url": "https://api.github.com/repos/epriestley/poems/issues/1/labels{/name}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/1/comments", + "events_url": "https://api.github.com/repos/epriestley/poems/issues/1/events", + "html_url": "https://github.com/epriestley/poems/issues/1", + "id": 139138813, + "number": 1, + "title": "Enforce haiku in commit messages edit", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2016-03-08T00:41:08Z", + "updated_at": "2016-03-09T12:44:49Z", + "closed_at": null, + "body": "OK" + } + }, + "public": true, + "created_at": "2016-03-09T12:44:49Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": true, + "is.pull": false, + "issue.number": 1 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt b/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt @@ -0,0 +1,334 @@ +{ + "id": "3740936638", + "type": "PullRequestEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "opened", + "number": 2, + "pull_request": { + "url": "https://api.github.com/repos/epriestley/poems/pulls/2", + "id": 62223852, + "html_url": "https://github.com/epriestley/poems/pull/2", + "diff_url": "https://github.com/epriestley/poems/pull/2.diff", + "patch_url": "https://github.com/epriestley/poems/pull/2.patch", + "issue_url": "https://api.github.com/repos/epriestley/poems/issues/2", + "number": 2, + "state": "open", + "locked": false, + "title": "Please Merge Quack2 into Feature", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "body": "", + "created_at": "2016-03-09T12:52:31Z", + "updated_at": "2016-03-09T12:52:31Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": null, + "assignee": null, + "milestone": null, + "commits_url": "https://api.github.com/repos/epriestley/poems/pulls/2/commits", + "review_comments_url": "https://api.github.com/repos/epriestley/poems/pulls/2/comments", + "review_comment_url": "https://api.github.com/repos/epriestley/poems/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/epriestley/poems/issues/2/comments", + "statuses_url": "https://api.github.com/repos/epriestley/poems/statuses/6cf5f6d0c8c06c4c73b8783666d9b3ecce138244", + "head": { + "label": "epriestley:feature", + "ref": "feature", + "sha": "6cf5f6d0c8c06c4c73b8783666d9b3ecce138244", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 14627834, + "name": "poems", + "full_name": "epriestley/poems", + "owner": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/epriestley/poems", + "description": "Poems (Mirror)", + "fork": false, + "url": "https://api.github.com/repos/epriestley/poems", + "forks_url": "https://api.github.com/repos/epriestley/poems/forks", + "keys_url": "https://api.github.com/repos/epriestley/poems/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/epriestley/poems/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/epriestley/poems/teams", + "hooks_url": "https://api.github.com/repos/epriestley/poems/hooks", + "issue_events_url": "https://api.github.com/repos/epriestley/poems/issues/events{/number}", + "events_url": "https://api.github.com/repos/epriestley/poems/events", + "assignees_url": "https://api.github.com/repos/epriestley/poems/assignees{/user}", + "branches_url": "https://api.github.com/repos/epriestley/poems/branches{/branch}", + "tags_url": "https://api.github.com/repos/epriestley/poems/tags", + "blobs_url": "https://api.github.com/repos/epriestley/poems/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/epriestley/poems/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/epriestley/poems/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/epriestley/poems/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/epriestley/poems/statuses/{sha}", + "languages_url": "https://api.github.com/repos/epriestley/poems/languages", + "stargazers_url": "https://api.github.com/repos/epriestley/poems/stargazers", + "contributors_url": "https://api.github.com/repos/epriestley/poems/contributors", + "subscribers_url": "https://api.github.com/repos/epriestley/poems/subscribers", + "subscription_url": "https://api.github.com/repos/epriestley/poems/subscription", + "commits_url": "https://api.github.com/repos/epriestley/poems/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/epriestley/poems/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/epriestley/poems/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/epriestley/poems/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/epriestley/poems/contents/{+path}", + "compare_url": "https://api.github.com/repos/epriestley/poems/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/epriestley/poems/merges", + "archive_url": "https://api.github.com/repos/epriestley/poems/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/epriestley/poems/downloads", + "issues_url": "https://api.github.com/repos/epriestley/poems/issues{/number}", + "pulls_url": "https://api.github.com/repos/epriestley/poems/pulls{/number}", + "milestones_url": "https://api.github.com/repos/epriestley/poems/milestones{/number}", + "notifications_url": "https://api.github.com/repos/epriestley/poems/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/epriestley/poems/labels{/name}", + "releases_url": "https://api.github.com/repos/epriestley/poems/releases{/id}", + "deployments_url": "https://api.github.com/repos/epriestley/poems/deployments", + "created_at": "2013-11-22T19:47:42Z", + "updated_at": "2016-01-21T17:10:27Z", + "pushed_at": "2016-01-21T17:10:21Z", + "git_url": "git://github.com/epriestley/poems.git", + "ssh_url": "git@github.com:epriestley/poems.git", + "clone_url": "https://github.com/epriestley/poems.git", + "svn_url": "https://github.com/epriestley/poems", + "homepage": null, + "size": 715, + "stargazers_count": 9, + "watchers_count": 9, + "language": "PHP", + "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": 9, + "default_branch": "master" + } + }, + "base": { + "label": "epriestley:quack2", + "ref": "quack2", + "sha": "5a9c51e86615f6e1097b2a4a73ef0fe75981c1dd", + "user": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 14627834, + "name": "poems", + "full_name": "epriestley/poems", + "owner": { + "login": "epriestley", + "id": 102631, + "avatar_url": "https://avatars.githubusercontent.com/u/102631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "html_url": "https://github.com/epriestley", + "followers_url": "https://api.github.com/users/epriestley/followers", + "following_url": "https://api.github.com/users/epriestley/following{/other_user}", + "gists_url": "https://api.github.com/users/epriestley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epriestley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epriestley/subscriptions", + "organizations_url": "https://api.github.com/users/epriestley/orgs", + "repos_url": "https://api.github.com/users/epriestley/repos", + "events_url": "https://api.github.com/users/epriestley/events{/privacy}", + "received_events_url": "https://api.github.com/users/epriestley/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/epriestley/poems", + "description": "Poems (Mirror)", + "fork": false, + "url": "https://api.github.com/repos/epriestley/poems", + "forks_url": "https://api.github.com/repos/epriestley/poems/forks", + "keys_url": "https://api.github.com/repos/epriestley/poems/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/epriestley/poems/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/epriestley/poems/teams", + "hooks_url": "https://api.github.com/repos/epriestley/poems/hooks", + "issue_events_url": "https://api.github.com/repos/epriestley/poems/issues/events{/number}", + "events_url": "https://api.github.com/repos/epriestley/poems/events", + "assignees_url": "https://api.github.com/repos/epriestley/poems/assignees{/user}", + "branches_url": "https://api.github.com/repos/epriestley/poems/branches{/branch}", + "tags_url": "https://api.github.com/repos/epriestley/poems/tags", + "blobs_url": "https://api.github.com/repos/epriestley/poems/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/epriestley/poems/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/epriestley/poems/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/epriestley/poems/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/epriestley/poems/statuses/{sha}", + "languages_url": "https://api.github.com/repos/epriestley/poems/languages", + "stargazers_url": "https://api.github.com/repos/epriestley/poems/stargazers", + "contributors_url": "https://api.github.com/repos/epriestley/poems/contributors", + "subscribers_url": "https://api.github.com/repos/epriestley/poems/subscribers", + "subscription_url": "https://api.github.com/repos/epriestley/poems/subscription", + "commits_url": "https://api.github.com/repos/epriestley/poems/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/epriestley/poems/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/epriestley/poems/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/epriestley/poems/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/epriestley/poems/contents/{+path}", + "compare_url": "https://api.github.com/repos/epriestley/poems/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/epriestley/poems/merges", + "archive_url": "https://api.github.com/repos/epriestley/poems/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/epriestley/poems/downloads", + "issues_url": "https://api.github.com/repos/epriestley/poems/issues{/number}", + "pulls_url": "https://api.github.com/repos/epriestley/poems/pulls{/number}", + "milestones_url": "https://api.github.com/repos/epriestley/poems/milestones{/number}", + "notifications_url": "https://api.github.com/repos/epriestley/poems/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/epriestley/poems/labels{/name}", + "releases_url": "https://api.github.com/repos/epriestley/poems/releases{/id}", + "deployments_url": "https://api.github.com/repos/epriestley/poems/deployments", + "created_at": "2013-11-22T19:47:42Z", + "updated_at": "2016-01-21T17:10:27Z", + "pushed_at": "2016-01-21T17:10:21Z", + "git_url": "git://github.com/epriestley/poems.git", + "ssh_url": "git@github.com:epriestley/poems.git", + "clone_url": "https://github.com/epriestley/poems.git", + "svn_url": "https://github.com/epriestley/poems", + "homepage": null, + "size": 715, + "stargazers_count": 9, + "watchers_count": 9, + "language": "PHP", + "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": 9, + "default_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/epriestley/poems/pulls/2" + }, + "html": { + "href": "https://github.com/epriestley/poems/pull/2" + }, + "issue": { + "href": "https://api.github.com/repos/epriestley/poems/issues/2" + }, + "comments": { + "href": "https://api.github.com/repos/epriestley/poems/issues/2/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/epriestley/poems/pulls/2/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/epriestley/poems/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/epriestley/poems/pulls/2/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/epriestley/poems/statuses/6cf5f6d0c8c06c4c73b8783666d9b3ecce138244" + } + }, + "merged": false, + "mergeable": null, + "mergeable_state": "unknown", + "merged_by": null, + "comments": 0, + "review_comments": 0, + "commits": 26, + "additions": 26, + "deletions": 0, + "changed_files": 1 + } + }, + "public": true, + "created_at": "2016-03-09T12:52:31Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": false, + "is.pull": true, + "issue.number": null, + "pull.number": 2 +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt b/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt @@ -0,0 +1,45 @@ +{ + "id": "3498724127", + "type": "PushEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "push_id": 924333172, + "size": 1, + "distinct_size": 1, + "ref": "refs/heads/master", + "head": "c829132d37c4c1da80d319942a5a1e500632b52f", + "before": "d8262dc45f0bd79c06571c6851d47efaeb6b599b", + "commits": [ + { + "sha": "c829132d37c4c1da80d319942a5a1e500632b52f", + "author": { + "email": "git@epriestley.com", + "name": "epriestley" + }, + "message": "Put 16K files in a single directory", + "distinct": true, + "url": "https://api.github.com/repos/epriestley/poems/commits/c829132d37c4c1da80d319942a5a1e500632b52f" + } + ] + }, + "public": true, + "created_at": "2016-01-06T11:21:59Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": false, + "is.pull": false, + "issue.number": null +} diff --git a/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt b/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt new file mode 100644 --- /dev/null +++ b/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt @@ -0,0 +1,29 @@ +{ + "id": "3740950917", + "type": "WatchEvent", + "actor": { + "id": 102631, + "login": "epriestley", + "gravatar_id": "", + "url": "https://api.github.com/users/epriestley", + "avatar_url": "https://avatars.githubusercontent.com/u/102631?" + }, + "repo": { + "id": 14627834, + "name": "epriestley/poems", + "url": "https://api.github.com/repos/epriestley/poems" + }, + "payload": { + "action": "started" + }, + "public": true, + "created_at": "2016-03-09T12:56:28Z" +} +~~~~~ +{ + "repository.name.full": "epriestley/poems", + "is.issue": false, + "is.pull": false, + "issue.number": null, + "pull.number": null +}