GitHub PullRequestReviewCommentEvent at 2014-07-22 09:16:40
Repository: libuv
Actor: saghul
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/joyent/libuv/pulls/comments/15217654","id":15217654,"diff_hunk":"@@ -128,8 +498,390 @@ void uv_loadavg(double avg[3]) {\n }\n \n \n+static char *uv__rawname(char *cp) {\n+  static char rawbuf[FILENAME_MAX+1];\n+  char *dp = rindex(cp, '/');\n+\n+  if (dp == 0)\n+    return (0);\n+\n+  *dp = 0;\n+  strcpy(rawbuf, cp);\n+  *dp = '/';\n+  strcat(rawbuf, \"/r\");\n+  strcat(rawbuf, dp+1);\n+  return (rawbuf);\n+}\n+\n+\n+/* \n+ * Determine whether given pathname pertains to a file or a directory\n+ * Returns 0 for file, 1 for directory, or an error code < 0 on failure\n+ *\n+ * TODO: most callers of this don't check the error case\n+ */\n+static int uv__file_is_a_directory(char* filename) {\n+  struct stat statbuf;\n+  int rc = 0;\n+\n+  if (stat(filename, &statbuf) < 0) {\n+    return -errno;\n+  }\n+  if (statbuf.st_type == VDIR) {\n+    rc = 1;\n+  }\n+\n+  return rc;\n+}\n+\n+\n+/* \n+ * Check whether AHAFS is mounted.\n+ * Returns 0 if AHAFS is mounted, -1 if not\n+ */\n+static int uv__is_ahafs_mounted(void){\n+  int rv, i=2;\n+  struct vmount *p;\n+  int size_multiplier = 10;\n+  size_t siz = sizeof(struct vmount)*size_multiplier;\n+  struct vmount *vmt;\n+  const char *dev = \"/aha\";\n+  char *obj, *stub;\n+\n+  p = malloc(siz);\n+  if (p == NULL) {\n+    assert(0 && \"malloc failed (errno)\");\n+    return -1;\n+  }\n+\n+  /* Retrieve all mounted filesystems */\n+  while(1) {\n+    rv = mntctl(MCTL_QUERY, siz, (char*)p);\n+    if (rv > 0) {\n+      break;        /* It worked */\n+    }\n+    if (rv < 0) {\n+      assert(0 && \"mntctl failed (errno)\");\n+      free(p);\n+      return -1;\n+    }\n+\n+    /* Use a bigger size buffer to hold all mounted filesystems */\n+    siz = sizeof(struct vmount) * size_multiplier * i;\n+    free(p);\n+    p = malloc(siz);\n+\n+    if (p == NULL) {\n+      assert(0 && \"realloc failed (errno)\");\n+      return -1;\n+    }\n+    i++;\n+  }\n+\n+  /* Look for dev in filesystems mount info */\n+  for(vmt = p, i = 0; i < rv; i++) {\n+    obj = vmt2dataptr(vmt, VMT_OBJECT);     /* device */\n+    stub = vmt2dataptr(vmt, VMT_STUB);      /* mount point */\n+\n+    if (EQ(obj, dev) || EQ(uv__rawname(obj), dev) || EQ(stub, dev)) {\n+      free(p);  /* Found a match */\n+      return 0;\n+    }\n+    vmt = (struct vmount *) ((char *) vmt + vmt->vmt_length);\n+  }\n+\n+  /* Error - aha not found */\n+  assert(0 && \"/aha is required for monitoring filesystem changes\");\n+  return -1;\n+}\n+\n+/*\n+ * Recursive call to mkdir() to create intermediate folders, if any\n+ * Returns code from mkdir call\n+ */\n+static int uv__makedir_p(const char *dir) {\n+  char tmp[256];\n+  char *p = NULL;\n+  size_t len;\n+  int err;\n+\n+  snprintf(tmp, sizeof(tmp),\"%s\",dir);\n+  len = strlen(tmp);\n+  if (tmp[len - 1] == '/')\n+    tmp[len - 1] = 0;\n+  for (p = tmp + 1; *p; p++)\n+    if (*p == '/') {\n+      *p = 0;\n+      err = mkdir(tmp, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);\n+      if(err != 0)\n+        return err;\n+      *p = '/';\n+    }\n+  return mkdir(tmp, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);\n+}\n+\n+/* \n+ * Creates necessary subdirectories in the AIX Event Infrastructure\n+ * file system for monitoring the object specified.\n+ * Returns code from mkdir call\n+ */\n+static int uv__make_subdirs_p(const char *filename) {\n+  char cmd[2048];\n+  char *p;\n+  int rc=0;\n+\n+  /* Strip off the monitor file name */\n+  p = strrchr(filename, '/');\n+\n+  if (p == NULL)\n+    return 0;\n+\n+  if (uv__file_is_a_directory((char*)filename) == 1) {\n+    sprintf(cmd, \"/aha/fs/modDir.monFactory\");\n+  } else {\n+    sprintf(cmd, \"/aha/fs/modFile.monFactory\");\n+  }\n+\n+  strncat(cmd, filename, (p - filename));\n+  rc = uv__makedir_p(cmd);\n+\n+  if (rc == -1 && errno != EEXIST){\n+    assert(0 && \"uv__make_subdirs_p error\");\n+  }\n+\n+  return rc;\n+}\n+\n+\n+/*\n+ * Checks if /aha is mounted, then proceeds to set up the monitoring\n+ * objects for the specified file.\n+ * Returns 0 on success, or an error code < 0 on failure\n+ */\n+static int uv__setup_ahafs(const char* filename, int *fd) {\n+  int rc = 0;\n+  char mon_file_write_string[RDWR_BUF_SIZE];\n+  char mon_file[PATH_MAX];\n+  int file_is_directory = 0; /* 0 == NO, 1 == YES  */\n+\n+  /* Create monitor file name for object */\n+  file_is_directory = uv__file_is_a_directory((char*)filename);\n+\n+  if (file_is_directory == 1)\n+    sprintf(mon_file, \"/aha/fs/modDir.monFactory\");\n+  else\n+    sprintf(mon_file, \"/aha/fs/modFile.monFactory\");\n+\n+  if ((strlen(mon_file) + strlen(filename) + 5) > PATH_MAX) {\n+    assert(0 && \"Error: Cannot monitor object, path name too long\\n\");\n+    return -ENAMETOOLONG;\n+  }\n+\n+  /* Make the necessary subdirectories for the monitor file */\n+  rc = uv__make_subdirs_p(filename);\n+  if (rc == -1 && errno != EEXIST)\n+    return rc;\n+\n+  strcat(mon_file, filename);\n+  strcat(mon_file, \".mon\");\n+\n+  *fd = 0; errno = 0;\n+\n+  /* Open the monitor file, creating it if necessary */\n+  *fd = open(mon_file, O_CREAT|O_RDWR);\n+  if (*fd < 0) {\n+    assert(0 && \"uv__setup_ahafs - Error opening monitor file\");\n+    return *fd;\n+  }\n+\n+  /* Write out the monitoring specifications.\n+   * In this case, we are monitoring for a state change event type\n+   *    CHANGED=YES\n+   * We will be waiting in select call, rather than a read:\n+   *    WAIT_TYPE=WAIT_IN_SELECT\n+   * We only want minimal information for files:\n+   *      INFO_LVL=1\n+   * For directories, we want more information to track what file\n+   * caused the change\n+   *      INFO_LVL=2\n+   */\n+\n+  if (file_is_directory == 1)\n+    sprintf(mon_file_write_string, \"CHANGED=YES;WAIT_TYPE=WAIT_IN_SELECT;INFO_LVL=2\");\n+  else\n+    sprintf(mon_file_write_string, \"CHANGED=YES;WAIT_TYPE=WAIT_IN_SELECT;INFO_LVL=1\");\n+\n+  rc = write(*fd, mon_file_write_string, strlen(mon_file_write_string)+1);\n+  if (rc < 0) {\n+    assert(0 && \"uv__setup_ahafs - Error writing to monitor file\");","path":"src/unix/aix.c","position":658,"original_position":658,"commit_id":"7657d7eaf29db738cca28e6e7d928fea7d495081","original_commit_id":"7657d7eaf29db738cca28e6e7d928fea7d495081","user":{"login":"saghul","id":317464,"avatar_url":"https://avatars.githubusercontent.com/u/317464?","gravatar_id":"acb8a5d8b51267e636e4736eee1379ea","url":"https://api.github.com/users/saghul","html_url":"https://github.com/saghul","followers_url":"https://api.github.com/users/saghul/followers","following_url":"https://api.github.com/users/saghul/following{/other_user}","gists_url":"https://api.github.com/users/saghul/gists{/gist_id}","starred_url":"https://api.github.com/users/saghul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saghul/subscriptions","organizations_url":"https://api.github.com/users/saghul/orgs","repos_url":"https://api.github.com/users/saghul/repos","events_url":"https://api.github.com/users/saghul/events{/privacy}","received_events_url":"https://api.github.com/users/saghul/received_events","type":"User","site_admin":false},"body":"Ditto.","created_at":"2014-07-22T09:16:40Z","updated_at":"2014-07-22T09:16:40Z","html_url":"https://github.com/joyent/libuv/pull/1256#discussion_r15217654","pull_request_url":"https://api.github.com/repos/joyent/libuv/pulls/1256","_links":{"self":{"href":"https://api.github.com/repos/joyent/libuv/pulls/comments/15217654"},"html":{"href":"https://github.com/joyent/libuv/pull/1256#discussion_r15217654"},"pull_request":{"href":"https://api.github.com/repos/joyent/libuv/pulls/1256"}}},"pull_request":{"url":"https://api.github.com/repos/joyent/libuv/pulls/1256","id":15082818,"html_url":"https://github.com/joyent/libuv/pull/1256","diff_url":"https://github.com/joyent/libuv/pull/1256.diff","patch_url":"https://github.com/joyent/libuv/pull/1256.patch","issue_url":"https://api.github.com/repos/joyent/libuv/issues/1256","number":1256,"state":"open","title":"aix: improve AIX compatibility for Node.js use","user":{"login":"andrewlow","id":2952475,"avatar_url":"https://avatars.githubusercontent.com/u/2952475?","gravatar_id":"0e98ff5116808d7da9884f5028ac51e9","url":"https://api.github.com/users/andrewlow","html_url":"https://github.com/andrewlow","followers_url":"https://api.github.com/users/andrewlow/followers","following_url":"https://api.github.com/users/andrewlow/following{/other_user}","gists_url":"https://api.github.com/users/andrewlow/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewlow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewlow/subscriptions","organizations_url":"https://api.github.com/users/andrewlow/orgs","repos_url":"https://api.github.com/users/andrewlow/repos","events_url":"https://api.github.com/users/andrewlow/events{/privacy}","received_events_url":"https://api.github.com/users/andrewlow/received_events","type":"User","site_admin":false},"body":"As we work through the changes to Node required to support\r\nPowerPC platforms, we have had to introduce a changes to the\r\nlibuv component to support the AIX operating system.\r\n\r\nThese are the initial enabling changes required.","created_at":"2014-04-23T18:52:26Z","updated_at":"2014-07-22T09:16:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"184cd06bc88c26aa02886732420f356980f8a384","assignee":null,"milestone":{"url":"https://api.github.com/repos/joyent/libuv/milestones/5","labels_url":"https://api.github.com/repos/joyent/libuv/milestones/5/labels","id":725845,"number":5,"title":"v0.12","description":null,"creator":{"login":"saghul","id":317464,"avatar_url":"https://avatars.githubusercontent.com/u/317464?","gravatar_id":"acb8a5d8b51267e636e4736eee1379ea","url":"https://api.github.com/users/saghul","html_url":"https://github.com/saghul","followers_url":"https://api.github.com/users/saghul/followers","following_url":"https://api.github.com/users/saghul/following{/other_user}","gists_url":"https://api.github.com/users/saghul/gists{/gist_id}","starred_url":"https://api.github.com/users/saghul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saghul/subscriptions","organizations_url":"https://api.github.com/users/saghul/orgs","repos_url":"https://api.github.com/users/saghul/repos","events_url":"https://api.github.com/users/saghul/events{/privacy}","received_events_url":"https://api.github.com/users/saghul/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":1,"state":"open","created_at":"2014-07-19T09:10:45Z","updated_at":"2014-07-20T17:40:56Z","due_on":null},"commits_url":"https://api.github.com/repos/joyent/libuv/pulls/1256/commits","review_comments_url":"https://api.github.com/repos/joyent/libuv/pulls/1256/comments","review_comment_url":"https://api.github.com/repos/joyent/libuv/pulls/comments/{number}","comments_url":"https://api.github.com/repos/joyent/libuv/issues/1256/comments","statuses_url":"https://api.github.com/repos/joyent/libuv/statuses/7657d7eaf29db738cca28e6e7d928fea7d495081","head":{"label":"andrewlow:aix","ref":"aix","sha":"7657d7eaf29db738cca28e6e7d928fea7d495081","user":{"login":"andrewlow","id":2952475,"avatar_url":"https://avatars.githubusercontent.com/u/2952475?","gravatar_id":"0e98ff5116808d7da9884f5028ac51e9","url":"https://api.github.com/users/andrewlow","html_url":"https://github.com/andrewlow","followers_url":"https://api.github.com/users/andrewlow/followers","following_url":"https://api.github.com/users/andrewlow/following{/other_user}","gists_url":"https://api.github.com/users/andrewlow/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewlow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewlow/subscriptions","organizations_url":"https://api.github.com/users/andrewlow/orgs","repos_url":"https://api.github.com/users/andrewlow/repos","events_url":"https://api.github.com/users/andrewlow/events{/privacy}","received_events_url":"https://api.github.com/users/andrewlow/received_events","type":"User","site_admin":false},"repo":{"id":18764850,"name":"libuv","full_name":"andrewlow/libuv","owner":{"login":"andrewlow","id":2952475,"avatar_url":"https://avatars.githubusercontent.com/u/2952475?","gravatar_id":"0e98ff5116808d7da9884f5028ac51e9","url":"https://api.github.com/users/andrewlow","html_url":"https://github.com/andrewlow","followers_url":"https://api.github.com/users/andrewlow/followers","following_url":"https://api.github.com/users/andrewlow/following{/other_user}","gists_url":"https://api.github.com/users/andrewlow/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewlow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewlow/subscriptions","organizations_url":"https://api.github.com/users/andrewlow/orgs","repos_url":"https://api.github.com/users/andrewlow/repos","events_url":"https://api.github.com/users/andrewlow/events{/privacy}","received_events_url":"https://api.github.com/users/andrewlow/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/andrewlow/libuv","description":"Cross-platform asychronous I/O","fork":true,"url":"https://api.github.com/repos/andrewlow/libuv","forks_url":"https://api.github.com/repos/andrewlow/libuv/forks","keys_url":"https://api.github.com/repos/andrewlow/libuv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andrewlow/libuv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andrewlow/libuv/teams","hooks_url":"https://api.github.com/repos/andrewlow/libuv/hooks","issue_events_url":"https://api.github.com/repos/andrewlow/libuv/issues/events{/number}","events_url":"https://api.github.com/repos/andrewlow/libuv/events","assignees_url":"https://api.github.com/repos/andrewlow/libuv/assignees{/user}","branches_url":"https://api.github.com/repos/andrewlow/libuv/branches{/branch}","tags_url":"https://api.github.com/repos/andrewlow/libuv/tags","blobs_url":"https://api.github.com/repos/andrewlow/libuv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andrewlow/libuv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andrewlow/libuv/git/refs{/sha}","trees_url":"https://api.github.com/repos/andrewlow/libuv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andrewlow/libuv/statuses/{sha}","languages_url":"https://api.github.com/repos/andrewlow/libuv/languages","stargazers_url":"https://api.github.com/repos/andrewlow/libuv/stargazers","contributors_url":"https://api.github.com/repos/andrewlow/libuv/contributors","subscribers_url":"https://api.github.com/repos/andrewlow/libuv/subscribers","subscription_url":"https://api.github.com/repos/andrewlow/libuv/subscription","commits_url":"https://api.github.com/repos/andrewlow/libuv/commits{/sha}","git_commits_url":"https://api.github.com/repos/andrewlow/libuv/git/commits{/sha}","comments_url":"https://api.github.com/repos/andrewlow/libuv/comments{/number}","issue_comment_url":"https://api.github.com/repos/andrewlow/libuv/issues/comments/{number}","contents_url":"https://api.github.com/repos/andrewlow/libuv/contents/{+path}","compare_url":"https://api.github.com/repos/andrewlow/libuv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andrewlow/libuv/merges","archive_url":"https://api.github.com/repos/andrewlow/libuv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andrewlow/libuv/downloads","issues_url":"https://api.github.com/repos/andrewlow/libuv/issues{/number}","pulls_url":"https://api.github.com/repos/andrewlow/libuv/pulls{/number}","milestones_url":"https://api.github.com/repos/andrewlow/libuv/milestones{/number}","notifications_url":"https://api.github.com/repos/andrewlow/libuv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andrewlow/libuv/labels{/name}","releases_url":"https://api.github.com/repos/andrewlow/libuv/releases{/id}","created_at":"2014-04-14T15:02:36Z","updated_at":"2014-05-15T18:56:44Z","pushed_at":"2014-07-21T13:19:34Z","git_url":"git://github.com/andrewlow/libuv.git","ssh_url":"git@github.com:andrewlow/libuv.git","clone_url":"https://github.com/andrewlow/libuv.git","svn_url":"https://github.com/andrewlow/libuv","homepage":"http://libuv.org/","size":12141,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"joyent:master","ref":"master","sha":"06c60e9662fea752d77237857bbf2c9ea5889a00","user":{"login":"joyent","id":10161,"avatar_url":"https://avatars.githubusercontent.com/u/10161?","gravatar_id":"95c8b4070c2ba024f87a8fdca63e9d24","url":"https://api.github.com/users/joyent","html_url":"https://github.com/joyent","followers_url":"https://api.github.com/users/joyent/followers","following_url":"https://api.github.com/users/joyent/following{/other_user}","gists_url":"https://api.github.com/users/joyent/gists{/gist_id}","starred_url":"https://api.github.com/users/joyent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joyent/subscriptions","organizations_url":"https://api.github.com/users/joyent/orgs","repos_url":"https://api.github.com/users/joyent/repos","events_url":"https://api.github.com/users/joyent/events{/privacy}","received_events_url":"https://api.github.com/users/joyent/received_events","type":"Organization","site_admin":false},"repo":{"id":1543431,"name":"libuv","full_name":"joyent/libuv","owner":{"login":"joyent","id":10161,"avatar_url":"https://avatars.githubusercontent.com/u/10161?","gravatar_id":"95c8b4070c2ba024f87a8fdca63e9d24","url":"https://api.github.com/users/joyent","html_url":"https://github.com/joyent","followers_url":"https://api.github.com/users/joyent/followers","following_url":"https://api.github.com/users/joyent/following{/other_user}","gists_url":"https://api.github.com/users/joyent/gists{/gist_id}","starred_url":"https://api.github.com/users/joyent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joyent/subscriptions","organizations_url":"https://api.github.com/users/joyent/orgs","repos_url":"https://api.github.com/users/joyent/repos","events_url":"https://api.github.com/users/joyent/events{/privacy}","received_events_url":"https://api.github.com/users/joyent/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/joyent/libuv","description":"Cross-platform asychronous I/O","fork":false,"url":"https://api.github.com/repos/joyent/libuv","forks_url":"https://api.github.com/repos/joyent/libuv/forks","keys_url":"https://api.github.com/repos/joyent/libuv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joyent/libuv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joyent/libuv/teams","hooks_url":"https://api.github.com/repos/joyent/libuv/hooks","issue_events_url":"https://api.github.com/repos/joyent/libuv/issues/events{/number}","events_url":"https://api.github.com/repos/joyent/libuv/events","assignees_url":"https://api.github.com/repos/joyent/libuv/assignees{/user}","branches_url":"https://api.github.com/repos/joyent/libuv/branches{/branch}","tags_url":"https://api.github.com/repos/joyent/libuv/tags","blobs_url":"https://api.github.com/repos/joyent/libuv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joyent/libuv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joyent/libuv/git/refs{/sha}","trees_url":"https://api.github.com/repos/joyent/libuv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joyent/libuv/statuses/{sha}","languages_url":"https://api.github.com/repos/joyent/libuv/languages","stargazers_url":"https://api.github.com/repos/joyent/libuv/stargazers","contributors_url":"https://api.github.com/repos/joyent/libuv/contributors","subscribers_url":"https://api.github.com/repos/joyent/libuv/subscribers","subscription_url":"https://api.github.com/repos/joyent/libuv/subscription","commits_url":"https://api.github.com/repos/joyent/libuv/commits{/sha}","git_commits_url":"https://api.github.com/repos/joyent/libuv/git/commits{/sha}","comments_url":"https://api.github.com/repos/joyent/libuv/comments{/number}","issue_comment_url":"https://api.github.com/repos/joyent/libuv/issues/comments/{number}","contents_url":"https://api.github.com/repos/joyent/libuv/contents/{+path}","compare_url":"https://api.github.com/repos/joyent/libuv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joyent/libuv/merges","archive_url":"https://api.github.com/repos/joyent/libuv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joyent/libuv/downloads","issues_url":"https://api.github.com/repos/joyent/libuv/issues{/number}","pulls_url":"https://api.github.com/repos/joyent/libuv/pulls{/number}","milestones_url":"https://api.github.com/repos/joyent/libuv/milestones{/number}","notifications_url":"https://api.github.com/repos/joyent/libuv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joyent/libuv/labels{/name}","releases_url":"https://api.github.com/repos/joyent/libuv/releases{/id}","created_at":"2011-03-29T21:10:45Z","updated_at":"2014-07-22T09:03:47Z","pushed_at":"2014-07-20T17:40:55Z","git_url":"git://github.com/joyent/libuv.git","ssh_url":"git@github.com:joyent/libuv.git","clone_url":"https://github.com/joyent/libuv.git","svn_url":"https://github.com/joyent/libuv","homepage":"http://libuv.org/","size":26907,"stargazers_count":2925,"watchers_count":2925,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":651,"mirror_url":null,"open_issues_count":123,"forks":651,"open_issues":123,"watchers":2925,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/joyent/libuv/pulls/1256"},"html":{"href":"https://github.com/joyent/libuv/pull/1256"},"issue":{"href":"https://api.github.com/repos/joyent/libuv/issues/1256"},"comments":{"href":"https://api.github.com/repos/joyent/libuv/issues/1256/comments"},"review_comments":{"href":"https://api.github.com/repos/joyent/libuv/pulls/1256/comments"},"review_comment":{"href":"https://api.github.com/repos/joyent/libuv/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/joyent/libuv/pulls/1256/commits"},"statuses":{"href":"https://api.github.com/repos/joyent/libuv/statuses/7657d7eaf29db738cca28e6e7d928fea7d495081"}}}}