{"action":"created","comment":{"url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/comments/47256055","id":47256055,"diff_hunk":"@@ -8,124 +8,89 @@\n  */\n \n #import \"FBProcessInfo.h\"\n-#import \"FBProcessInfo+Private.h\"\n \n #import \"FBProcessLaunchConfiguration.h\"\n \n-@implementation FBUserLaunchedProcess\n+@implementation FBProcessInfo\n \n+@synthesize launchPath = _launchPath;\n @synthesize processIdentifier = _processIdentifier;\n+@synthesize arguments = _arguments;\n+@synthesize environment = _environment;\n \n-- (NSString *)launchPath\n-{\n-  return self.launchConfiguration.launchPath;\n-}\n-\n-- (instancetype)copyWithZone:(NSZone *)zone\n-{\n-  FBUserLaunchedProcess *state = [self.class new];\n-  state.processIdentifier = self.processIdentifier;\n-  state.launchConfiguration = self.launchConfiguration;\n-  state.launchDate = self.launchDate;\n-  state.diagnostics = self.diagnostics;\n-  return state;\n-}\n+#pragma mark NSObject\n \n-- (NSArray *)arguments\n+- (instancetype)initWithProcessIdentifier:(pid_t)processIdentifier launchPath:(NSString *)launchPath arguments:(NSArray *)arguments environment:(NSDictionary *)environment\n {\n-  return self.launchConfiguration.arguments;\n-}\n+  self = [super init];\n+  if (!self) {\n+    return nil;\n+  }\n \n-- (NSDictionary *)environment\n-{\n-  return self.launchConfiguration.environment;\n+  _processIdentifier = processIdentifier;\n+  _launchPath = launchPath;\n+  _arguments = arguments;\n+  _environment = environment;\n+  return self;\n }\n \n - (NSUInteger)hash\n {\n-  return ((unsigned long) self.processIdentifier) | self.launchConfiguration.hash | self.launchConfiguration.hash | self.diagnostics.hash;\n+  return ((unsigned long) self.processIdentifier) | self.launchPath.hash ^ self.arguments.hash | self.environment.hash;\n }\n \n-- (BOOL)isEqual:(FBUserLaunchedProcess *)object\n+- (BOOL)isEqual:(FBProcessInfo *)object\n {\n   if (![object isKindOfClass:self.class]) {\n     return NO;\n   }\n   return self.processIdentifier == object.processIdentifier &&\n-        [self.launchConfiguration isEqual:object.launchConfiguration] &&\n-        [self.launchDate isEqual:object.launchDate] &&\n-        [self.diagnostics isEqual:object.diagnostics];\n+        [self.launchPath isEqual:object.launchPath] &&\n+        [self.arguments isEqual:object.arguments] &&\n+        [self.environment isEqual:object.environment];\n }\n \n - (NSString *)description\n {\n-  return [self shortDescription];\n-}\n-\n-- (NSString *)longDescription\n-{\n   return [NSString stringWithFormat:\n-    @\"Launch %@ | PID %d | Launched %@ | Diagnostics %@\",\n-    self.launchConfiguration,\n+    @\"Process %@ | PID %d | Arguments %@ | Environment %@\",\n+    self.launchPath,\n     self.processIdentifier,\n-    self.launchDate,\n-    self.diagnostics\n+    self.arguments,\n+    self.environment\n   ];\n }\n \n-- (NSString *)shortDescription\n-{\n-  return [NSString stringWithFormat:\n-    @\"Process %@ | PID %d\",\n-    self.launchConfiguration.shortDescription,\n-    self.processIdentifier\n-  ];\n-}\n-\n-@end\n-\n-@implementation FBFoundProcess\n-\n-@synthesize launchPath = _launchPath;\n-@synthesize processIdentifier = _processIdentifier;\n-@synthesize arguments = _arguments;\n-@synthesize environment = _environment;\n+#pragma mark NSCopying\n \n - (instancetype)copyWithZone:(NSZone *)zone\n {\n-  FBFoundProcess *process = [self.class new];\n-  process.processIdentifier = self.processIdentifier;\n-  process.launchPath = self.launchPath;\n-  process.arguments = self.arguments;\n-  process.environment = self.environment;\n-  return process;\n+  return [[self.class alloc] initWithProcessIdentifier:self.processIdentifier launchPath:self.launchPath arguments:self.arguments environment:self.environment];\n }\n \n-- (NSUInteger)hash\n-{\n-  return ((unsigned long) self.processIdentifier) | self.launchPath.hash | self.arguments.hash | self.environment.hash;\n-}\n+#pragma mark NSCoding\n \n-- (BOOL)isEqual:(FBUserLaunchedProcess *)object\n+- (instancetype)initWithCoder:(NSCoder *)coder\n {\n-  if (![object isKindOfClass:self.class]) {\n-    return NO;\n+  self = [super init];\n+  if (!self) {\n+    return nil;\n   }\n-  return self.processIdentifier == object.processIdentifier &&\n-         [self.launchPath isEqualToString:object.launchPath] &&\n-         [self.arguments isEqualToArray:object.arguments] &&\n-         [self.environment isEqualToDictionary:object.environment];\n+\n+  _processIdentifier = [coder decodeInt32ForKey:NSStringFromSelector(@selector(processIdentifier))];","path":"FBSimulatorControl/Model/FBProcessInfo.m","position":143,"original_position":143,"commit_id":"28c3549ec4de99abd0ef3c52826d0b188c7245e1","original_commit_id":"28c3549ec4de99abd0ef3c52826d0b188c7245e1","user":{"login":"lawrencelomax","id":217883,"avatar_url":"https://avatars.githubusercontent.com/u/217883?v=3","gravatar_id":"","url":"https://api.github.com/users/lawrencelomax","html_url":"https://github.com/lawrencelomax","followers_url":"https://api.github.com/users/lawrencelomax/followers","following_url":"https://api.github.com/users/lawrencelomax/following{/other_user}","gists_url":"https://api.github.com/users/lawrencelomax/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrencelomax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrencelomax/subscriptions","organizations_url":"https://api.github.com/users/lawrencelomax/orgs","repos_url":"https://api.github.com/users/lawrencelomax/repos","events_url":"https://api.github.com/users/lawrencelomax/events{/privacy}","received_events_url":"https://api.github.com/users/lawrencelomax/received_events","type":"User","site_admin":false},"body":"I'm not too worried about migration right now, so even if the 'schema' changes and the decoding fails we can just start again.","created_at":"2015-12-10T17:24:43Z","updated_at":"2015-12-10T17:24:43Z","html_url":"https://github.com/facebook/FBSimulatorControl/pull/91#discussion_r47256055","pull_request_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91","_links":{"self":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/comments/47256055"},"html":{"href":"https://github.com/facebook/FBSimulatorControl/pull/91#discussion_r47256055"},"pull_request":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91"}}},"pull_request":{"url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91","id":52871883,"html_url":"https://github.com/facebook/FBSimulatorControl/pull/91","diff_url":"https://github.com/facebook/FBSimulatorControl/pull/91.diff","patch_url":"https://github.com/facebook/FBSimulatorControl/pull/91.patch","issue_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/91","number":91,"state":"open","locked":false,"title":"Liberate Simulator Events from Sessions","user":{"login":"lawrencelomax","id":217883,"avatar_url":"https://avatars.githubusercontent.com/u/217883?v=3","gravatar_id":"","url":"https://api.github.com/users/lawrencelomax","html_url":"https://github.com/lawrencelomax","followers_url":"https://api.github.com/users/lawrencelomax/followers","following_url":"https://api.github.com/users/lawrencelomax/following{/other_user}","gists_url":"https://api.github.com/users/lawrencelomax/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrencelomax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrencelomax/subscriptions","organizations_url":"https://api.github.com/users/lawrencelomax/orgs","repos_url":"https://api.github.com/users/lawrencelomax/repos","events_url":"https://api.github.com/users/lawrencelomax/events{/privacy}","received_events_url":"https://api.github.com/users/lawrencelomax/received_events","type":"User","site_admin":false},"body":"The history of events that occur during the lifecycle of a Simulator have previously been tied to the availability of a session:\r\n\r\n- `FBSimulatorEventSink` defines a protocol for handling events that occur in the lifecycle of a simulator.\r\n- `FBSimulatorSessionLifecycle` has been decomposed into discrete `FBSimulatorEventSink` implementations.\r\n- `FBSimulatorSessionState` has been replaced with `FBSimulatorHistory` as there is no longer any coupling to a Session. All Session-specific information is stripped out of the history. The lifecycle of a session and of a simulator are orthogonal concerns. `FBSimulatorHistory` is a full value, without knowledge of the Simulator it is representing the history for. This means that Simulator history can serialized independently of the existence of a Simulator. This means that history for a Simulator can be looked at after a simulator has been deleted.\r\n- `FBSimulatorSessionStateGenerator` has been replaced `FBSimulatorHistoryGenerator`. `FBSimulatorHistoryGenerator` is a simulator event sink so composes nicely with others. All of the Session handling logic has been removed.\r\n- `FBSimulator(Helpers)` pulls out some of the helper functions that were cluttering the `FBSimulator` definition.\r\n- `FBSimulatorEventRelay` converts observed events such as application termination into invocations of `FBSimulatorEventSink` methods. This was previously done in `FBSimulator. Events are also deduplicated here. This prevents racing of events being synthesized for unexpected application termination as well as direct termination.\r\n- `FBSimulatorNotificationEventSink` is an Event Sink that synthesizes `NSNotifications`.\r\n- `FBSimulatorResourceManager` takes on the responsibility of releasing resources previously done by `FBSimulatorSessionLifecycle`. This means that resources will be released outside of the context of a session, so resources can be managed without a session.\r\n- `FBProcessInfo` is now an concrete type that is used regardless of whether `FBSimulatorControl` launched the application, or another process did. This means that applications launched by us get the full environment that `launchd_sim` wraps around the process.\r\n- `FBProcessLaunchConfiguration` is just used for storing information about how to launch processes and is not use to represent the state of running processes, as `FBProcessInfo` fulfills this role. A mappping of processes-to-launch-info is maintained to allow for relaunching.\r\n- `FBSimulatorHistoryGenerator` does not need to re-write history to update diagnostics for terminated applications. Since diagnostics are keyed per-process rather than per-binary as before, each launch of a binary has a separate set of process diagnostics. This also means that history is append-only, which makes streaming history a possibility.\r\n- The distinction between process and simulator diagnostics is now clearer with separate dictionaries for each.\r\n- `FBSimulatorHistory` conforms to `NSCoding`, meaning that it can be serialized to disk. This requires that all the objects in the graph that are connected to `FBSimulatorHistory` are also serializable: `FBProcessLaunchConfiguration` & `FBProcessInfo`. Knowledge about the current state of the world can be read on launch of the process utilizing `FBSimulatorControl`.\r\n- `FBSimulatorSession` doesn't make any assumptions about the lifecycle of a simulator, it just serves as a way of locking access to a resource (Simulators). State transitions are implemented in terms of transitions within a class-cluster.","created_at":"2015-12-07T17:05:31Z","updated_at":"2015-12-10T17:24:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8195c9b8ee59658c256644833d39d2bbbc6ab965","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91/commits","review_comments_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91/comments","review_comment_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/91/comments","statuses_url":"https://api.github.com/repos/facebook/FBSimulatorControl/statuses/28c3549ec4de99abd0ef3c52826d0b188c7245e1","head":{"label":"facebook:event-sink","ref":"event-sink","sha":"28c3549ec4de99abd0ef3c52826d0b188c7245e1","user":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"repo":{"id":41870517,"name":"FBSimulatorControl","full_name":"facebook/FBSimulatorControl","owner":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/facebook/FBSimulatorControl","description":"A Mac OS X library for managing and manipulating iOS Simulators","fork":false,"url":"https://api.github.com/repos/facebook/FBSimulatorControl","forks_url":"https://api.github.com/repos/facebook/FBSimulatorControl/forks","keys_url":"https://api.github.com/repos/facebook/FBSimulatorControl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/facebook/FBSimulatorControl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/facebook/FBSimulatorControl/teams","hooks_url":"https://api.github.com/repos/facebook/FBSimulatorControl/hooks","issue_events_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/events{/number}","events_url":"https://api.github.com/repos/facebook/FBSimulatorControl/events","assignees_url":"https://api.github.com/repos/facebook/FBSimulatorControl/assignees{/user}","branches_url":"https://api.github.com/repos/facebook/FBSimulatorControl/branches{/branch}","tags_url":"https://api.github.com/repos/facebook/FBSimulatorControl/tags","blobs_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/refs{/sha}","trees_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/facebook/FBSimulatorControl/statuses/{sha}","languages_url":"https://api.github.com/repos/facebook/FBSimulatorControl/languages","stargazers_url":"https://api.github.com/repos/facebook/FBSimulatorControl/stargazers","contributors_url":"https://api.github.com/repos/facebook/FBSimulatorControl/contributors","subscribers_url":"https://api.github.com/repos/facebook/FBSimulatorControl/subscribers","subscription_url":"https://api.github.com/repos/facebook/FBSimulatorControl/subscription","commits_url":"https://api.github.com/repos/facebook/FBSimulatorControl/commits{/sha}","git_commits_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/commits{/sha}","comments_url":"https://api.github.com/repos/facebook/FBSimulatorControl/comments{/number}","issue_comment_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/comments{/number}","contents_url":"https://api.github.com/repos/facebook/FBSimulatorControl/contents/{+path}","compare_url":"https://api.github.com/repos/facebook/FBSimulatorControl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/facebook/FBSimulatorControl/merges","archive_url":"https://api.github.com/repos/facebook/FBSimulatorControl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/facebook/FBSimulatorControl/downloads","issues_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues{/number}","pulls_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls{/number}","milestones_url":"https://api.github.com/repos/facebook/FBSimulatorControl/milestones{/number}","notifications_url":"https://api.github.com/repos/facebook/FBSimulatorControl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/facebook/FBSimulatorControl/labels{/name}","releases_url":"https://api.github.com/repos/facebook/FBSimulatorControl/releases{/id}","created_at":"2015-09-03T16:25:17Z","updated_at":"2015-12-10T16:19:55Z","pushed_at":"2015-12-10T17:22:23Z","git_url":"git://github.com/facebook/FBSimulatorControl.git","ssh_url":"git@github.com:facebook/FBSimulatorControl.git","clone_url":"https://github.com/facebook/FBSimulatorControl.git","svn_url":"https://github.com/facebook/FBSimulatorControl","homepage":null,"size":1137,"stargazers_count":1139,"watchers_count":1139,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":60,"mirror_url":null,"open_issues_count":19,"forks":60,"open_issues":19,"watchers":1139,"default_branch":"master"}},"base":{"label":"facebook:master","ref":"master","sha":"165932d0d9d0ea724c1b2305db5769e20e73a65e","user":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"repo":{"id":41870517,"name":"FBSimulatorControl","full_name":"facebook/FBSimulatorControl","owner":{"login":"facebook","id":69631,"avatar_url":"https://avatars.githubusercontent.com/u/69631?v=3","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/facebook/FBSimulatorControl","description":"A Mac OS X library for managing and manipulating iOS Simulators","fork":false,"url":"https://api.github.com/repos/facebook/FBSimulatorControl","forks_url":"https://api.github.com/repos/facebook/FBSimulatorControl/forks","keys_url":"https://api.github.com/repos/facebook/FBSimulatorControl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/facebook/FBSimulatorControl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/facebook/FBSimulatorControl/teams","hooks_url":"https://api.github.com/repos/facebook/FBSimulatorControl/hooks","issue_events_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/events{/number}","events_url":"https://api.github.com/repos/facebook/FBSimulatorControl/events","assignees_url":"https://api.github.com/repos/facebook/FBSimulatorControl/assignees{/user}","branches_url":"https://api.github.com/repos/facebook/FBSimulatorControl/branches{/branch}","tags_url":"https://api.github.com/repos/facebook/FBSimulatorControl/tags","blobs_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/refs{/sha}","trees_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/facebook/FBSimulatorControl/statuses/{sha}","languages_url":"https://api.github.com/repos/facebook/FBSimulatorControl/languages","stargazers_url":"https://api.github.com/repos/facebook/FBSimulatorControl/stargazers","contributors_url":"https://api.github.com/repos/facebook/FBSimulatorControl/contributors","subscribers_url":"https://api.github.com/repos/facebook/FBSimulatorControl/subscribers","subscription_url":"https://api.github.com/repos/facebook/FBSimulatorControl/subscription","commits_url":"https://api.github.com/repos/facebook/FBSimulatorControl/commits{/sha}","git_commits_url":"https://api.github.com/repos/facebook/FBSimulatorControl/git/commits{/sha}","comments_url":"https://api.github.com/repos/facebook/FBSimulatorControl/comments{/number}","issue_comment_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/comments{/number}","contents_url":"https://api.github.com/repos/facebook/FBSimulatorControl/contents/{+path}","compare_url":"https://api.github.com/repos/facebook/FBSimulatorControl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/facebook/FBSimulatorControl/merges","archive_url":"https://api.github.com/repos/facebook/FBSimulatorControl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/facebook/FBSimulatorControl/downloads","issues_url":"https://api.github.com/repos/facebook/FBSimulatorControl/issues{/number}","pulls_url":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls{/number}","milestones_url":"https://api.github.com/repos/facebook/FBSimulatorControl/milestones{/number}","notifications_url":"https://api.github.com/repos/facebook/FBSimulatorControl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/facebook/FBSimulatorControl/labels{/name}","releases_url":"https://api.github.com/repos/facebook/FBSimulatorControl/releases{/id}","created_at":"2015-09-03T16:25:17Z","updated_at":"2015-12-10T16:19:55Z","pushed_at":"2015-12-10T17:22:23Z","git_url":"git://github.com/facebook/FBSimulatorControl.git","ssh_url":"git@github.com:facebook/FBSimulatorControl.git","clone_url":"https://github.com/facebook/FBSimulatorControl.git","svn_url":"https://github.com/facebook/FBSimulatorControl","homepage":null,"size":1137,"stargazers_count":1139,"watchers_count":1139,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":60,"mirror_url":null,"open_issues_count":19,"forks":60,"open_issues":19,"watchers":1139,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91"},"html":{"href":"https://github.com/facebook/FBSimulatorControl/pull/91"},"issue":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/91"},"comments":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/issues/91/comments"},"review_comments":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91/comments"},"review_comment":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/pulls/91/commits"},"statuses":{"href":"https://api.github.com/repos/facebook/FBSimulatorControl/statuses/28c3549ec4de99abd0ef3c52826d0b188c7245e1"}}}}