Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/nuance/github/NuanceGitHubRawEvent.php b/src/applications/nuance/github/NuanceGitHubRawEvent.php
index 2c0d62c7ca..1283fb43b7 100644
--- a/src/applications/nuance/github/NuanceGitHubRawEvent.php
+++ b/src/applications/nuance/github/NuanceGitHubRawEvent.php
@@ -1,208 +1,380 @@
<?php
final class NuanceGitHubRawEvent extends Phobject {
private $raw;
private $type;
const TYPE_ISSUE = 'issue';
const TYPE_REPOSITORY = 'repository';
public static function newEvent($type, array $raw) {
$event = new self();
$event->type = $type;
$event->raw = $raw;
return $event;
}
public function getRepositoryFullName() {
return $this->getRepositoryFullRawName();
}
public function isIssueEvent() {
if ($this->isPullRequestEvent()) {
return false;
}
if ($this->type == self::TYPE_ISSUE) {
return true;
}
switch ($this->getIssueRawKind()) {
case 'IssuesEvent':
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;
}
public function getIssueNumber() {
if (!$this->isIssueEvent()) {
return null;
}
return $this->getRawIssueNumber();
}
public function getPullRequestNumber() {
if (!$this->isPullRequestEvent()) {
return null;
}
return $this->getRawIssueNumber();
}
public function getID() {
$raw = $this->raw;
$id = idx($raw, 'id');
if ($id) {
return (int)$id;
}
return null;
}
public function getComment() {
return 'TODO: Actually extract comment text.';
}
public function getURI() {
$raw = $this->raw;
if ($this->isIssueEvent() || $this->isPullRequestEvent()) {
if ($this->type == self::TYPE_ISSUE) {
$uri = idxv($raw, array('issue', 'html_url'));
$uri = $uri.'#event-'.$this->getID();
} else {
// The format of pull request events varies so we need to fish around
// a bit to find the correct URI.
$uri = idxv($raw, array('payload', 'pull_request', 'html_url'));
$need_anchor = true;
// For comments, we get a different anchor to link to the comment. In
// this case, the URI comes with an anchor already.
if (!$uri) {
$uri = idxv($raw, array('payload', 'comment', 'html_url'));
$need_anchor = false;
}
if (!$uri) {
$uri = idxv($raw, array('payload', 'issue', 'html_url'));
$need_anchor = true;
}
if ($need_anchor) {
$uri = $uri.'#event-'.$this->getID();
}
}
} else {
switch ($this->getIssueRawKind()) {
+ case 'CreateEvent':
+ $ref = idxv($raw, array('payload', 'ref'));
+
+ $repo = $this->getRepositoryFullRawName();
+ return "https://github.com/{$repo}/commits/{$ref}";
case 'PushEvent':
// These don't really have a URI since there may be multiple commits
// involved and GitHub doesn't bundle the push as an object on its
// own. Just try to find the URI for the log. The API also does
// not return any HTML URI for these events.
$head = idxv($raw, array('payload', 'head'));
if ($head === null) {
return null;
}
$repo = $this->getRepositoryFullRawName();
return "https://github.com/{$repo}/commits/{$head}";
case 'WatchEvent':
// These have no reasonable URI.
return null;
default:
return null;
}
}
return $uri;
}
private function getRepositoryFullRawName() {
$raw = $this->raw;
$full = idxv($raw, array('repo', 'name'));
if (strlen($full)) {
return $full;
}
// 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 getIssueRawKind() {
$raw = $this->raw;
return idxv($raw, array('type'));
}
private function getRawIssueNumber() {
$raw = $this->raw;
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'));
}
+ public function getEventFullTitle() {
+ switch ($this->type) {
+ case self::TYPE_ISSUE:
+ $title = $this->getRawIssueEventTitle();
+ break;
+ case self::TYPE_REPOSITORY:
+ $title = $this->getRawRepositoryEventTitle();
+ break;
+ default:
+ $title = pht('Unknown Event Type ("%s")', $this->type);
+ break;
+ }
+
+ return pht(
+ 'GitHub %s %s (%s)',
+ $this->getRepositoryFullRawName(),
+ $this->getTargetObjectName(),
+ $title);
+ }
+
+ private function getTargetObjectName() {
+ if ($this->isPullRequestEvent()) {
+ $number = $this->getRawIssueNumber();
+ return pht('Pull Request #%d', $number);
+ } else if ($this->isIssueEvent()) {
+ $number = $this->getRawIssueNumber();
+ return pht('Issue #%d', $number);
+ } else if ($this->type == self::TYPE_REPOSITORY) {
+ $raw = $this->raw;
+
+
+ $type = idx($raw, 'type');
+ switch ($type) {
+ case 'CreateEvent':
+ $ref = idxv($raw, array('payload', 'ref'));
+ $ref_type = idxv($raw, array('payload', 'ref_type'));
+
+ switch ($ref_type) {
+ case 'branch':
+ return pht('Branch %s', $ref);
+ case 'tag':
+ return pht('Tag %s', $ref);
+ default:
+ return pht('Ref %s', $ref);
+ }
+ break;
+ case 'PushEvent':
+ $ref = idxv($raw, array('payload', 'ref'));
+ if (preg_match('(^refs/heads/)', $ref)) {
+ return pht('Branch %s', substr($ref, strlen('refs/heads/')));
+ } else {
+ return pht('Ref %s', $ref);
+ }
+ break;
+ case 'WatchEvent':
+ $actor = idxv($raw, array('actor', 'login'));
+ return pht('User %s', $actor);
+ }
+
+ return pht('Unknown Object');
+ } else {
+ return pht('Unknown Object');
+ }
+ }
+
+ private function getRawIssueEventTitle() {
+ $raw = $this->raw;
+
+ $action = idxv($raw, array('event'));
+ switch ($action) {
+ case 'assigned':
+ $assignee = idxv($raw, array('assignee', 'login'));
+ $title = pht('Assigned: %s', $assignee);
+ break;
+ case 'closed':
+ $title = pht('Closed');
+ break;
+ case 'demilestoned':
+ $milestone = idxv($raw, array('milestone', 'title'));
+ $title = pht('Removed Milestone: %s', $milestone);
+ break;
+ case 'labeled':
+ $label = idxv($raw, array('label', 'name'));
+ $title = pht('Added Label: %s', $label);
+ break;
+ case 'locked':
+ $title = pht('Locked');
+ break;
+ case 'milestoned':
+ $milestone = idxv($raw, array('milestone', 'title'));
+ $title = pht('Added Milestone: %s', $milestone);
+ break;
+ case 'renamed':
+ $title = pht('Renamed');
+ break;
+ case 'reopened':
+ $title = pht('Reopened');
+ break;
+ case 'unassigned':
+ $assignee = idxv($raw, array('assignee', 'login'));
+ $title = pht('Unassigned: %s', $assignee);
+ break;
+ case 'unlabeled':
+ $label = idxv($raw, array('label', 'name'));
+ $title = pht('Removed Label: %s', $label);
+ break;
+ case 'unlocked':
+ $title = pht('Unlocked');
+ break;
+ default:
+ $title = pht('"%s"', $action);
+ break;
+ }
+
+
+ return $title;
+ }
+
+ private function getRawRepositoryEventTitle() {
+ $raw = $this->raw;
+
+ $type = idx($raw, 'type');
+ switch ($type) {
+ case 'CreateEvent':
+ return pht('Created');
+ case 'PushEvent':
+ $head = idxv($raw, array('payload', 'head'));
+ $head = substr($head, 0, 12);
+ return pht('Pushed: %s', $head);
+ case 'IssuesEvent':
+ $action = idxv($raw, array('payload', 'action'));
+ switch ($action) {
+ case 'closed':
+ return pht('Closed');
+ case 'opened':
+ return pht('Created');
+ case 'reopened':
+ return pht('Reopened');
+ default:
+ return pht('"%s"', $action);
+ }
+ break;
+ case 'IssueCommentEvent':
+ $action = idxv($raw, array('payload', 'action'));
+ switch ($action) {
+ case 'created':
+ return pht('Comment');
+ default:
+ return pht('"%s"', $action);
+ }
+ break;
+ case 'PullRequestEvent':
+ $action = idxv($raw, array('payload', 'action'));
+ switch ($action) {
+ case 'opened':
+ return pht('Created');
+ default:
+ return pht('"%s"', $action);
+ }
+ break;
+ case 'WatchEvent':
+ return pht('Watched');
+ }
+
+ return pht('"%s"', $type);
+ }
+
}
diff --git a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
index 5ce199cb8c..f5e2119141 100644
--- a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
+++ b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
@@ -1,110 +1,111 @@
<?php
final class NuanceGitHubRawEventTestCase
extends PhabricatorTestCase {
public function testIssueEvents() {
$path = dirname(__FILE__).'/issueevents/';
$cases = $this->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(),
'id' => $event->getID(),
'uri' => $event->getURI(),
+ 'title.full' => $event->getEventFullTitle(),
);
// 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
index 7c1c89435f..a126186b19 100644
--- a/src/applications/nuance/github/__tests__/issueevents/assigned.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/assigned.txt
@@ -1,116 +1,117 @@
{
"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,
"id": 583217900,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583217900"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583217900",
+ "title.full": "GitHub epriestley/poems Issue #1 (Assigned: epriestley)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/closed.txt b/src/applications/nuance/github/__tests__/issueevents/closed.txt
index e13c9a1ffd..6428fc6bcb 100644
--- a/src/applications/nuance/github/__tests__/issueevents/closed.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/closed.txt
@@ -1,78 +1,79 @@
{
"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,
"id": 583218864,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218864"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218864",
+ "title.full": "GitHub epriestley/poems Issue #1 (Closed)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt b/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt
index 1c9bab5725..5c32ec6c6c 100644
--- a/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/demilestoned.txt
@@ -1,81 +1,82 @@
{
"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,
"id": 583218613,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218613"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218613",
+ "title.full": "GitHub epriestley/poems Issue #1 (Removed Milestone: b)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/labeled.txt b/src/applications/nuance/github/__tests__/issueevents/labeled.txt
index 92cd7cd4f0..bb88a13b9a 100644
--- a/src/applications/nuance/github/__tests__/issueevents/labeled.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/labeled.txt
@@ -1,82 +1,83 @@
{
"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,
"id": 583217784,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583217784"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583217784",
+ "title.full": "GitHub epriestley/poems Issue #1 (Added Label: bug)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/locked.txt b/src/applications/nuance/github/__tests__/issueevents/locked.txt
index 536d95af8e..7eafd9e906 100644
--- a/src/applications/nuance/github/__tests__/issueevents/locked.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/locked.txt
@@ -1,78 +1,79 @@
{
"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,
"id": 583218006,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218006"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218006",
+ "title.full": "GitHub epriestley/poems Issue #1 (Locked)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/milestoned.txt b/src/applications/nuance/github/__tests__/issueevents/milestoned.txt
index 748beddda9..3e5a6a4590 100644
--- a/src/applications/nuance/github/__tests__/issueevents/milestoned.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/milestoned.txt
@@ -1,81 +1,82 @@
{
"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,
"id": 583217866,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583217866"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583217866",
+ "title.full": "GitHub epriestley/poems Issue #1 (Added Milestone: b)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/renamed.txt b/src/applications/nuance/github/__tests__/issueevents/renamed.txt
index e4a4614ebb..08a3c0c448 100644
--- a/src/applications/nuance/github/__tests__/issueevents/renamed.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/renamed.txt
@@ -1,82 +1,83 @@
{
"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,
"id": 583218162,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218162"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218162",
+ "title.full": "GitHub epriestley/poems Issue #1 (Renamed)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/reopened.txt b/src/applications/nuance/github/__tests__/issueevents/reopened.txt
index baab332450..26d5b3ec75 100644
--- a/src/applications/nuance/github/__tests__/issueevents/reopened.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/reopened.txt
@@ -1,78 +1,79 @@
{
"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,
"id": 583218814,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218814"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218814",
+ "title.full": "GitHub epriestley/poems Issue #1 (Reopened)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/unassigned.txt b/src/applications/nuance/github/__tests__/issueevents/unassigned.txt
index 43c610b576..086401afa7 100644
--- a/src/applications/nuance/github/__tests__/issueevents/unassigned.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/unassigned.txt
@@ -1,116 +1,117 @@
{
"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,
"id": 583218511,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218511"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218511",
+ "title.full": "GitHub epriestley/poems Issue #1 (Unassigned: epriestley)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt b/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt
index 8d40ba5702..dde464ab15 100644
--- a/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/unlabeled.txt
@@ -1,82 +1,83 @@
{
"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,
"id": 583218703,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218703"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218703",
+ "title.full": "GitHub epriestley/poems Issue #1 (Removed Label: bug)"
}
diff --git a/src/applications/nuance/github/__tests__/issueevents/unlocked.txt b/src/applications/nuance/github/__tests__/issueevents/unlocked.txt
index 080fbd79e8..580a6170bb 100644
--- a/src/applications/nuance/github/__tests__/issueevents/unlocked.txt
+++ b/src/applications/nuance/github/__tests__/issueevents/unlocked.txt
@@ -1,78 +1,79 @@
{
"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,
"id": 583218062,
- "uri": "https://github.com/epriestley/poems/issues/1#event-583218062"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-583218062",
+ "title.full": "GitHub epriestley/poems Issue #1 (Unlocked)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt b/src/applications/nuance/github/__tests__/repositoryevents/CreateEvent.tag.txt
similarity index 55%
copy from src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt
copy to src/applications/nuance/github/__tests__/repositoryevents/CreateEvent.tag.txt
index c65a5ee771..f0a8a3a1ad 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/CreateEvent.tag.txt
@@ -1,31 +1,37 @@
{
- "id": "3740950917",
- "type": "WatchEvent",
+ "id": "3784548642",
+ "type": "CreateEvent",
"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"
+ "ref": "phabricator/diff/400",
+ "ref_type": "tag",
+ "master_branch": "master",
+ "description": "Poems (Mirror)",
+ "pusher_type": "user"
},
"public": true,
- "created_at": "2016-03-09T12:56:28Z"
+ "created_at": "2016-03-19T22:07:56Z"
}
+
~~~~~
{
"repository.name.full": "epriestley/poems",
"is.issue": false,
"is.pull": false,
"issue.number": null,
"pull.number": null,
- "id": 3740950917,
- "uri": null
+ "id": 3784548642,
+ "uri": "https://github.com/epriestley/poems/commits/phabricator/diff/400",
+ "title.full": "GitHub epriestley/poems Tag phabricator/diff/400 (Created)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
index 7b3e7d3708..71abbceac4 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
@@ -1,163 +1,164 @@
{
"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,
"id": 3740938746,
- "uri": "https://github.com/epriestley/poems/pull/2#issuecomment-194282800"
+ "uri": "https://github.com/epriestley/poems/pull/2#issuecomment-194282800",
+ "title.full": "GitHub epriestley/poems Pull Request #2 (Comment)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
index acb40f0971..a1ca094045 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
@@ -1,100 +1,101 @@
{
"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,
"id": 3733510485,
- "uri": "https://github.com/epriestley/poems/issues/1#issuecomment-193528669"
+ "uri": "https://github.com/epriestley/poems/issues/1#issuecomment-193528669",
+ "title.full": "GitHub epriestley/poems Issue #1 (Comment)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt
index 78fc81be95..6e7d743303 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.closed.txt
@@ -1,72 +1,73 @@
{
"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,
"id": 3740905151,
- "uri": "https://github.com/epriestley/poems/issues/1#event-3740905151"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-3740905151",
+ "title.full": "GitHub epriestley/poems Issue #1 (Closed)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt
index 7ba07a591b..0b42f723d5 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.opened.txt
@@ -1,72 +1,73 @@
{
"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,
"id": 3733509737,
- "uri": "https://github.com/epriestley/poems/issues/1#event-3733509737"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-3733509737",
+ "title.full": "GitHub epriestley/poems Issue #1 (Created)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt
index 797eb84078..3a0c5b7a20 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssuesEvent.reopened.txt
@@ -1,72 +1,73 @@
{
"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,
"id": 3740908680,
- "uri": "https://github.com/epriestley/poems/issues/1#event-3740908680"
+ "uri": "https://github.com/epriestley/poems/issues/1#event-3740908680",
+ "title.full": "GitHub epriestley/poems Issue #1 (Reopened)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt b/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt
index c2f892f090..f80649e724 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/PullRequestEvent.opened.txt
@@ -1,336 +1,337 @@
{
"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,
"id": 3740936638,
- "uri": "https://github.com/epriestley/poems/pull/2#event-3740936638"
+ "uri": "https://github.com/epriestley/poems/pull/2#event-3740936638",
+ "title.full": "GitHub epriestley/poems Pull Request #2 (Created)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt b/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt
index d7c1b5ecad..c6ecf1bdbc 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/PushEvent.txt
@@ -1,47 +1,48 @@
{
"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,
"id": 3498724127,
- "uri": "https://github.com/epriestley/poems/commits/c829132d37c4c1da80d319942a5a1e500632b52f"
+ "uri": "https://github.com/epriestley/poems/commits/c829132d37c4c1da80d319942a5a1e500632b52f",
+ "title.full": "GitHub epriestley/poems Branch master (Pushed: c829132d37c4)"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt b/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt
index c65a5ee771..c23678f448 100644
--- a/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/WatchEvent.started.txt
@@ -1,31 +1,32 @@
{
"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,
"id": 3740950917,
- "uri": null
+ "uri": null,
+ "title.full": "GitHub epriestley/poems User epriestley (Watched)"
}
diff --git a/src/applications/nuance/item/NuanceGitHubEventItemType.php b/src/applications/nuance/item/NuanceGitHubEventItemType.php
index 1c6d90bbf3..2bccfb76b4 100644
--- a/src/applications/nuance/item/NuanceGitHubEventItemType.php
+++ b/src/applications/nuance/item/NuanceGitHubEventItemType.php
@@ -1,400 +1,348 @@
<?php
final class NuanceGitHubEventItemType
extends NuanceItemType {
const ITEMTYPE = 'github.event';
private $externalObject;
public function getItemTypeDisplayName() {
return pht('GitHub Event');
}
public function getItemTypeDisplayIcon() {
return 'fa-github';
}
public function getItemDisplayName(NuanceItem $item) {
- $api_type = $item->getItemProperty('api.type');
- switch ($api_type) {
- case 'issue':
- return $this->getGitHubIssueAPIEventDisplayName($item);
- case 'repository':
- return $this->getGitHubRepositoryAPIEventDisplayName($item);
- default:
- return pht('GitHub Event (Unknown API Type "%s")', $api_type);
- }
- }
-
- private function getGitHubIssueAPIEventDisplayName(NuanceItem $item) {
- $raw = $item->getItemProperty('api.raw', array());
-
- $action = idxv($raw, array('event'));
- $number = idxv($raw, array('issue', 'number'));
-
- return pht('GitHub Issue #%d (%s)', $number, $action);
- }
-
- private function getGitHubRepositoryAPIEventDisplayName(NuanceItem $item) {
- $raw = $item->getItemProperty('api.raw', array());
-
- $repo = idxv($raw, array('repo', 'name'), pht('<unknown/unknown>'));
-
- $type = idx($raw, 'type');
- switch ($type) {
- case 'PushEvent':
- $head = idxv($raw, array('payload', 'head'));
- $head = substr($head, 0, 8);
- $name = pht('Push %s', $head);
- break;
- case 'IssuesEvent':
- $action = idxv($raw, array('payload', 'action'));
- $number = idxv($raw, array('payload', 'issue', 'number'));
- $name = pht('Issue #%d (%s)', $number, $action);
- break;
- case 'IssueCommentEvent':
- $action = idxv($raw, array('payload', 'action'));
- $number = idxv($raw, array('payload', 'issue', 'number'));
- $name = pht('Issue #%d (Comment, %s)', $number, $action);
- break;
- case 'PullRequestEvent':
- $action = idxv($raw, array('payload', 'action'));
- $number = idxv($raw, array('payload', 'pull_request', 'number'));
- $name = pht('Pull Request #%d (%s)', $number, $action);
- break;
- default:
- $name = pht('Unknown Event ("%s")', $type);
- break;
- }
-
- return pht('GitHub %s %s', $repo, $name);
+ return $this->newRawEvent($item)->getEventFullTitle();
}
public function canUpdateItems() {
return true;
}
protected function updateItemFromSource(NuanceItem $item) {
$viewer = $this->getViewer();
$is_dirty = false;
// TODO: Link up the requestor, etc.
$is_dirty = false;
$xobj = $this->reloadExternalObject($item);
if ($xobj) {
$item->setItemProperty('doorkeeper.xobj.phid', $xobj->getPHID());
$is_dirty = true;
}
if ($item->getStatus() == NuanceItem::STATUS_IMPORTING) {
$item->setStatus(NuanceItem::STATUS_ROUTING);
$is_dirty = true;
}
if ($is_dirty) {
$item->save();
}
}
private function getDoorkeeperRef(NuanceItem $item) {
$raw = $this->newRawEvent($item);
$full_repository = $raw->getRepositoryFullName();
if (!strlen($full_repository)) {
return null;
}
if ($raw->isIssueEvent()) {
$ref_type = DoorkeeperBridgeGitHubIssue::OBJTYPE_GITHUB_ISSUE;
$issue_number = $raw->getIssueNumber();
$full_ref = "{$full_repository}#{$issue_number}";
} else {
return null;
}
return id(new DoorkeeperObjectRef())
->setApplicationType(DoorkeeperBridgeGitHub::APPTYPE_GITHUB)
->setApplicationDomain(DoorkeeperBridgeGitHub::APPDOMAIN_GITHUB)
->setObjectType($ref_type)
->setObjectID($full_ref);
}
private function reloadExternalObject(NuanceItem $item, $local = false) {
$ref = $this->getDoorkeeperRef($item);
if (!$ref) {
return null;
}
$source = $item->getSource();
$token = $source->getSourceProperty('github.token');
$token = new PhutilOpaqueEnvelope($token);
$viewer = $this->getViewer();
$ref = id(new DoorkeeperImportEngine())
->setViewer($viewer)
->setRefs(array($ref))
->setThrowOnMissingLink(true)
->setContextProperty('github.token', $token)
->needLocalOnly($local)
->executeOne();
if ($ref->getSyncFailed()) {
$xobj = null;
} else {
$xobj = $ref->getExternalObject();
}
if ($xobj) {
$this->externalObject = $xobj;
}
return $xobj;
}
private function getExternalObject(NuanceItem $item) {
if ($this->externalObject === null) {
$xobj = $this->reloadExternalObject($item, $local = true);
if ($xobj) {
$this->externalObject = $xobj;
} else {
$this->externalObject = false;
}
}
if ($this->externalObject) {
return $this->externalObject;
}
return null;
}
private function newRawEvent(NuanceItem $item) {
$type = $item->getItemProperty('api.type');
$raw = $item->getItemProperty('api.raw', array());
return NuanceGitHubRawEvent::newEvent($type, $raw);
}
public function getItemActions(NuanceItem $item) {
$actions = array();
$xobj = $this->getExternalObject($item);
if ($xobj) {
$actions[] = $this->newItemAction($item, 'reload')
->setName(pht('Reload from GitHub'))
->setIcon('fa-refresh')
->setWorkflow(true)
->setRenderAsForm(true);
}
$actions[] = $this->newItemAction($item, 'sync')
->setName(pht('Import to Maniphest'))
->setIcon('fa-anchor')
->setWorkflow(true)
->setRenderAsForm(true);
$actions[] = $this->newItemAction($item, 'raw')
->setName(pht('View Raw Event'))
->setWorkflow(true)
->setIcon('fa-code');
return $actions;
}
protected function handleAction(NuanceItem $item, $action) {
$viewer = $this->getViewer();
$controller = $this->getController();
switch ($action) {
case 'raw':
$raw = array(
'api.type' => $item->getItemProperty('api.type'),
'api.raw' => $item->getItemProperty('api.raw'),
);
$raw_output = id(new PhutilJSON())->encodeFormatted($raw);
$raw_box = id(new AphrontFormTextAreaControl())
->setCustomClass('PhabricatorMonospaced')
->setLabel(pht('Raw Event'))
->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_TALL)
->setValue($raw_output);
$form = id(new AphrontFormView())
->appendChild($raw_box);
return $controller->newDialog()
->setWidth(AphrontDialogView::WIDTH_FULL)
->setTitle(pht('GitHub Raw Event'))
->appendForm($form)
->addCancelButton($item->getURI(), pht('Done'));
case 'sync':
case 'reload':
$item->issueCommand($viewer->getPHID(), $action);
return id(new AphrontRedirectResponse())->setURI($item->getURI());
}
return null;
}
protected function newItemView(NuanceItem $item) {
$content = array();
$content[] = $this->newGitHubEventItemPropertyBox($item);
return $content;
}
private function newGitHubEventItemPropertyBox($item) {
$viewer = $this->getViewer();
$property_list = id(new PHUIPropertyListView())
->setViewer($viewer);
$event = $this->newRawEvent($item);
$property_list->addProperty(
pht('GitHub Event ID'),
$event->getID());
$event_uri = $event->getURI();
if ($event_uri && PhabricatorEnv::isValidRemoteURIForLink($event_uri)) {
$event_uri = phutil_tag(
'a',
array(
'href' => $event_uri,
),
$event_uri);
}
if ($event_uri) {
$property_list->addProperty(
pht('GitHub Event URI'),
$event_uri);
}
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Event Properties'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($property_list);
}
protected function handleCommand(
NuanceItem $item,
NuanceItemCommand $command) {
$action = $command->getCommand();
switch ($action) {
case 'sync':
return $this->syncItem($item, $command);
case 'reload':
$this->reloadExternalObject($item);
return true;
}
return null;
}
private function syncItem(
NuanceItem $item,
NuanceItemCommand $command) {
$xobj_phid = $item->getItemProperty('doorkeeper.xobj.phid');
if (!$xobj_phid) {
throw new Exception(
pht(
'Unable to sync: no external object PHID.'));
}
// TODO: Write some kind of marker to prevent double-synchronization.
$viewer = $this->getViewer();
$xobj = id(new DoorkeeperExternalObjectQuery())
->setViewer($viewer)
->withPHIDs(array($xobj_phid))
->executeOne();
if (!$xobj) {
throw new Exception(
pht(
'Unable to sync: failed to load object "%s".',
$xobj_phid));
}
$nuance_phid = id(new PhabricatorNuanceApplication())->getPHID();
$xactions = array();
$task = id(new ManiphestTaskQuery())
->setViewer($viewer)
->withBridgedObjectPHIDs(array($xobj_phid))
->executeOne();
if (!$task) {
$task = ManiphestTask::initializeNewTask($viewer)
->setAuthorPHID($nuance_phid)
->setBridgedObjectPHID($xobj_phid);
$title = $xobj->getProperty('task.title');
if (!strlen($title)) {
$title = pht('Nuance Item %d Task', $item->getID());
}
$description = $xobj->getProperty('task.description');
$created = $xobj->getProperty('task.created');
$state = $xobj->getProperty('task.state');
$xactions[] = id(new ManiphestTransaction())
->setTransactionType(ManiphestTransaction::TYPE_TITLE)
->setNewValue($title)
->setDateCreated($created);
$xactions[] = id(new ManiphestTransaction())
->setTransactionType(ManiphestTransaction::TYPE_DESCRIPTION)
->setNewValue($description)
->setDateCreated($created);
$task->setDateCreated($created);
// TODO: Synchronize state.
}
$event = $this->newRawEvent($item);
$comment = $event->getComment();
if (strlen($comment)) {
$xactions[] = id(new ManiphestTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
->attachComment(
id(new ManiphestTransactionComment())
->setContent($comment));
}
// TODO: Preserve the item's original source.
$source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_DAEMON,
array());
// TOOD: This should really be the external source.
$acting_phid = $nuance_phid;
$editor = id(new ManiphestTransactionEditor())
->setActor($viewer)
->setActingAsPHID($acting_phid)
->setContentSource($source)
->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true);
$xactions = $editor->applyTransactions($task, $xactions);
return array(
'objectPHID' => $task->getPHID(),
'xactionPHIDs' => mpull($xactions, 'getPHID'),
);
}
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Mar 17, 12:33 AM (23 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
963847
Default Alt Text
(116 KB)

Event Timeline