{"action":"created","comment":{"url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/comments/158888495","pull_request_review_id":85754020,"id":158888495,"diff_hunk":"@@ -20,258 +18,222 @@ function groupsDefault(req, res5) {\n \n     groupname = groupname.replace(/%20/g, \" \")\n \n-    db.query(`SELECT email\n-    FROM users\n-    WHERE user_id = '${user_id}'`,\n-    function(err, res2){\n-      myEmail = res2.rows[0].email\n-\n-      db.query(`SELECT creator\n-      FROM groups\n-      WHERE groupname = '${groupname}'`,\n-      function(err, res3){\n-        if(res3.rows[0] == undefined){\n-          res5.render('errors/grouperr')\n-        }else{\n-          creatorEmail = res3.rows[0].creator\n-\n-          if(myEmail == creatorEmail){\n-            console.log('is admin')\n-            admin = true;\n-\n-            db.query(`SELECT url\n-            FROM endpoints\n-            WHERE endpoint_id in (\n-            SELECT endpoint_id\n-            FROM end_groups\n-            WHERE group_id in (\n-            SELECT group_id\n-            FROM groups\n-            where groupname = '${groupname}'))`,\n-            function(err, results){\n-              if(err) throw error;\n-              if(results.rows[0] == undefined){\n-                d_array = false;\n-              }else{\n-                d_array = true;\n-                var da = results.rows.reduce(function(values, data){\n-                  values[0].d.push(data);\n-                  return values;\n-                }, [{d: []}])\n-                var deleteSites = da[0].d\n-              }\n-\n-              db.query(`SELECT DISTINCT url, failedpings\n-              FROM end_groups\n-              LEFT OUTER JOIN endpoints ON\n-              (end_groups.endpoint_id = endpoints.endpoint_id)\n-              LEFT OUTER JOIN groups ON\n-              (end_groups.group_id = groups.group_id)\n-              WHERE groupname = '${groupname}'\n-              ORDER BY url ASC`,\n-                function(err, res1){\n-                   if(res1.rows[0] == undefined){\n-                    console.log('no sites')\n-                    message = false;\n-\n-                    //Not sure what the b above does\n-                    res5.render('group/group', { \n-                      title: groupname , \n-                      message, \n-                      site_array: b,\n-                      admin,\n-                      d_array: deleteSites     \n-                    });\n-\n-                  }else{\n-                    message = true;\n-                    var url_string = res1.rows.reduce(function(cvs, thisData){\n-                      cvs[0].x.push(thisData);\n-                      return cvs;\n-\n-                    }, [{x: []}])\n-                    var b = url_string[0].x\n-                       \n-                  \n-                    //Not sure what the b above does\n-                    res5.render('group/group', { \n-                      title: groupname , \n-                      message,\n-                      site_array: b,\n-                      admin,\n-                      d_array: deleteSites\n-                      \n-                    });\n-                  }\n-                })\n-              })        \n+  return new Promise((resolve, reject) => {\n+    try {\n+      db.query(`SELECT email\n+      FROM users\n+      WHERE user_id = '${user_id}'`,\n+      function(err, res2){\n+        myEmail = res2.rows[0].email\n+        if (err) return reject(err);\n+\n+        db.query(`SELECT creator\n+        FROM groups\n+        WHERE groupname = '${groupname}'`,\n+        function(err, res3){\n+          if (err) return reject(err);\n+          if(res3.rows[0] == undefined){\n+            res5.render('errors/grouperr')\n           }else{\n-            console.log('not admin')\n-            admin = false;\n-\n-            db.query(`select groupname, users.user_id, email\n-            from groups\n-            left outer join group_users on \n-            (groups.group_id = group_users.group_id)\n-            left outer join users on\n-            (group_users.user_id = users.user_id)\n-            where groupname = '${groupname}' and users.user_id = '${user_id}'`,\n-            function(err6, res6){\n-              if(res6.rows[0] == undefined){\n-                var join = true;\n-                var leave = false;\n-              }else{\n-                var join = false;\n-                var leave = true\n-              }\n-\n-            db.query(`SELECT DISTINCT url, failedpings\n+            creatorEmail = res3.rows[0].creator\n+\n+            if(myEmail == creatorEmail){\n+              admin = true;\n+            }else{\n+              admin = false;\n+            }\n+\n+              db.query(`SELECT url\n+              FROM endpoints\n+              WHERE endpoint_id in (\n+              SELECT endpoint_id\n               FROM end_groups\n-              LEFT OUTER JOIN endpoints ON\n-              (end_groups.endpoint_id = endpoints.endpoint_id)\n-              LEFT OUTER JOIN groups ON\n-              (end_groups.group_id = groups.group_id)\n-              WHERE groupname = '${groupname}'\n-              ORDER BY url ASC`,\n-                function(err, res1){\n-                   if(res1.rows[0] == undefined){\n-                    console.log('no sites')\n-                    message = false;\n-\n-                    res5.render('group/group', { \n-                      title: groupname , \n-                      message, \n-                      site_array: b,\n-                      admin,\n-                      join,\n-                      leave      \n-                    });\n-\n-                  }else{\n-                    message = true;\n-                    var url_string = res1.rows.reduce(function(cvs, thisData){\n-                      cvs[0].x.push(thisData);\n-                      return cvs;\n-\n-                    }, [{x: []}])\n-                    var b = url_string[0].x\n-                       \n-\n-                    res5.render('group/group', { \n-                      title: groupname , \n-                      message, \n-                      site_array: b,\n-                      admin,\n-                      join,\n-                      leave\n-                      \n-                    });\n-                  }\n-                })\n-            })\n-          }\n-        }\n+              WHERE group_id in (\n+              SELECT group_id\n+              FROM groups\n+              where groupname = '${groupname}'))`,\n+              function(err, results){\n+                if(err) return reject (err);\n+                if(results.rows[0] == undefined){\n+                  d_array = false;\n+                }else{\n+                  d_array = true;\n+                  var da = results.rows.reduce(function(values, data){\n+                    values[0].d.push(data);\n+                    return values;\n+                  }, [{d: []}])\n+                  var deleteSites = da[0].d\n+                }\n+\n+              db.query(`select groupname, users.user_id, email\n+              from groups\n+              left outer join group_users on \n+              (groups.group_id = group_users.group_id)\n+              left outer join users on\n+              (group_users.user_id = users.user_id)\n+              where groupname = '${groupname}' and users.user_id = '${user_id}'`,\n+              function(err6, res6){\n+                if(err6) return reject(err6)\n+                if(res6.rows[0] == undefined){\n+                  var join = true;\n+                  var leave = false;\n+                }else{\n+                  var join = false;\n+                  var leave = true\n+                }\n+\n+                  db.query(`SELECT DISTINCT url, failedpings\n+                  FROM end_groups\n+                  LEFT OUTER JOIN endpoints ON\n+                  (end_groups.endpoint_id = endpoints.endpoint_id)\n+                  LEFT OUTER JOIN groups ON\n+                  (end_groups.group_id = groups.group_id)\n+                  WHERE groupname = '${groupname}'\n+                  ORDER BY url ASC`,\n+                    function(err, res1){\n+                      if(err) return reject(err);\n+                      if(res1.rows[0] == undefined){\n+                        sitesTracked = false;\n+                      }else{\n+                        sitesTracked = true;\n+                        var url_string = res1.rows.reduce(function(cvs, thisData){\n+                          cvs[0].x.push(thisData);\n+                          return cvs;\n+\n+                        }, [{x: []}])\n+                        var site_array = url_string[0].x\n+                      }\n+                        res5.render('group/group', { \n+                          title: groupname,\n+                          sitesTracked, \n+                          site_array,\n+                          admin,\n+                          d_array: deleteSites,\n+                          join,\n+                          leave     \n+                        });\n+                    })\n+                  })   \n+                })     \n+            }\n+        })\n       })\n-    })\n-  })\n+    }catch(e){\n+      console.log(e)\n+      return reject(e)\n+    }\n+  })  \n }\n \n function groupTrack(req, res, next) {\n-    const user_id = (req.user != undefined) ?\n-        req.user.user_id ? req.user.user_id : \n-        req.user.rows[0].user_id ? req.user.rows[0].user_id : null\n-        : null;\n-\n-    var host = req.body.host;\n-    var failedPings = req.body.failedPings; //Enter the amount of failed pings required to be notified of an outage\n-    var hostDelete = req.body.hostDelete;\n-\n-    var join = req.body.join;\n-    var leave = req.body.leave;\n-    \n-    var url_parts = url.parse(req.url, true);\n-    var groupname = url_parts.path.substring(1)\n-\n-    y = '%20';\n-\n-    if(groupname.indexOf(y))\n-      groupname = groupname.replace(/%20/g, \" \")\n-\n-    if(req.body.join){\n-      db.query(`INSERT INTO group_users(group_id, user_id)\n-      SELECT group_id, user_id\n-      FROM groups, users\n-      WHERE groups.groupname = '${groupname}' and users.user_id = '${user_id}'`)\n-      console.log(groupname + ' was joined!')\n-    }\n+  const user_id = (req.user != undefined) ?\n+      req.user.user_id ? req.user.user_id : \n+      req.user.rows[0].user_id ? req.user.rows[0].user_id : null\n+      : null;\n+\n+  var host = req.body.host;\n+  var failedPings = req.body.failedPings; //Enter the amount of failed pings required to be notified of an outage\n+  var hostDelete = req.body.hostDelete;\n+\n+  var join = req.body.join;\n+  var leave = req.body.leave;\n+  \n+  var url_parts = url.parse(req.url, true);\n+  var groupname = url_parts.path.substring(1)\n \n-    if(req.body.leave){\n-      db.query(`delete from group_users\n-      where user_id = '${user_id}' and group_id = (\n-      select group_id\n-      from groups\n-      where groupname = '${groupname}')`)\n-      console.log(groupname + ' was left!')\n-    }\n+  y = '%20';\n \n-    db.query(`SELECT group_id\n-    FROM groups\n-    WHERE groupname = '${groupname}'`,\n-    function(err, res3){\n-        const group_id = res3.rows[0].group_id;\n-      //Defines group Id\n+  if(groupname.indexOf(y))\n+    groupname = groupname.replace(/%20/g, \" \")\n \n-      if(host == undefined){\n-        db.query(`DELETE FROM end_groups\n-        WHERE endpoint_id IN \n-        (SELECT endpoint_id \n-        FROM endpoints \n-        WHERE group_id IN \n-        (SELECT group_id \n-        FROM groups \n-        WHERE endpoints.url = '${hostDelete}' \n-        AND groups.group_id = '${group_id}'))`,\n-            function(error, results){\n-              if(error) throw error;\n-          })\n-      }else{\n+  return new Promise((resolve, reject) => {\n+    try{\n+      if(req.body.join){\n+        db.query(`INSERT INTO group_users(group_id, user_id)\n+        SELECT group_id, user_id\n+        FROM groups, users\n+        WHERE groups.groupname = '${groupname}' and users.user_id = '${user_id}'`,\n+        function(err){\n+          if(err) return reject(err);\n+        })\n+      }\n \n-        x = 'www.';\n-        if(host.indexOf(x))\n-          host = host.replace(x, \"\")\n-        if(host[host.length-1] == '/')    \n-          host = host.slice(0, -1)\n+      if(req.body.leave){\n+        db.query(`delete from group_users\n+        where user_id = '${user_id}' and group_id = (\n+        select group_id\n+        from groups\n+        where groupname = '${groupname}')`,\n+        function(err){\n+          if (err) return reject(err);\n+        })\n+        console.log(groupname + ' was left!')\n+      }\n \n-        db.query(`INSERT INTO endpoints(url, currStatus)\n-                SELECT '${host}', 0\n-                WHERE NOT EXISTS (SELECT url \n-                FROM endpoints WHERE url = '${host}')`,\n-                function(error, results){\n-                  if(error) console.log(error);\n-        //Inserts url into database\n-          db.query(\"SELECT endpoint_id FROM endpoints WHERE url = '\"+host+\"'\", function(err, res){\n+      db.query(`SELECT group_id\n+      FROM groups\n+      WHERE groupname = '${groupname}'`,\n+      function(err, res3){\n+        if(err) return reject(err);\n+          const group_id = res3.rows[0].group_id;\n+        //Defines group Id\n+\n+        if(!host){\n+          db.query(`DELETE FROM end_groups\n+          WHERE endpoint_id IN \n+          (SELECT endpoint_id \n+          FROM endpoints \n+          WHERE group_id IN \n+          (SELECT group_id \n+          FROM groups \n+          WHERE endpoints.url = '${hostDelete}' \n+          AND groups.group_id = '${group_id}'))`,\n+              function(error, results){\n+                if(error) return reject(error);\n+            })\n+        }else{\n \n-            var e = JSON.stringify(res.rows[0].endpoint_id);\n-            console.log(e)\n-          //Defines endpoint Id\n-            db.query(`INSERT INTO end_groups(endpoint_id, group_id, failedPings) \n-            SELECT '${e}', '${group_id}', '${failedPings}' \n-            WHERE not exists \n-            (SELECT endpoint_id, user_id \n-            FROM end_users \n-            WHERE endpoint_id = '${e}' \n-            AND user_id = '${group_id}')`,\n-            function(err, res){\n-              if(err) console.log(err); //throw err;\n-            //Tracks sites for users\n-            })  \n-                \n+          x = 'www.';\n+          if(host.indexOf(x))\n+            host = host.replace(x, \"\")\n+          if(host[host.length-1] == '/')    \n+            host = host.slice(0, -1)\n+\n+          db.query(`INSERT INTO endpoints(url, currStatus)\n+                  SELECT '${host}', 0\n+                  WHERE NOT EXISTS (SELECT url \n+                  FROM endpoints WHERE url = '${host}')`,\n+                  function(error, results){\n+                    if(error) return reject(error);\n+          //Inserts url into database\n+            db.query(\"SELECT endpoint_id FROM endpoints WHERE url = '\"+host+\"'\", function(err, res){\n+\n+              var e = JSON.stringify(res.rows[0].endpoint_id);\n+              console.log(e)\n+            //Defines endpoint Id\n+              db.query(`INSERT INTO end_groups(endpoint_id, group_id, failedPings) \n+              SELECT '${e}', '${group_id}', '${failedPings}' \n+              WHERE not exists \n+              (SELECT endpoint_id, user_id \n+              FROM end_users \n+              WHERE endpoint_id = '${e}' \n+              AND user_id = '${group_id}')`,\n+              function(err, res){\n+                if(err) return reject(err);\n+              //Tracks sites for users\n+              })  \n+                  \n+            })\n           })\n-        })\n-      }\n-    \n-    })\n-  res.redirect('/group/'+groupname);\n+        }\n+      \n+      })\n+      res.redirect('/group/'+groupname);\n+    }catch(e){\n+      console.log(e)\n+      return reject(e)","path":"controllers/groups.js","position":474,"original_position":474,"commit_id":"a7ac06e5fbd70f55c25e4a7bd0c41fc9e16fa338","original_commit_id":"a7ac06e5fbd70f55c25e4a7bd0c41fc9e16fa338","user":{"login":"trycrmr","id":6002123,"avatar_url":"https://avatars2.githubusercontent.com/u/6002123?v=4","gravatar_id":"","url":"https://api.github.com/users/trycrmr","html_url":"https://github.com/trycrmr","followers_url":"https://api.github.com/users/trycrmr/followers","following_url":"https://api.github.com/users/trycrmr/following{/other_user}","gists_url":"https://api.github.com/users/trycrmr/gists{/gist_id}","starred_url":"https://api.github.com/users/trycrmr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trycrmr/subscriptions","organizations_url":"https://api.github.com/users/trycrmr/orgs","repos_url":"https://api.github.com/users/trycrmr/repos","events_url":"https://api.github.com/users/trycrmr/events{/privacy}","received_events_url":"https://api.github.com/users/trycrmr/received_events","type":"User","site_admin":false},"body":"return reject(error) does not appear to properly return an error to the browser, so try something else. ","created_at":"2017-12-28T02:05:37Z","updated_at":"2017-12-28T02:12:05Z","html_url":"https://github.com/USStateDept/Heartbeat/pull/23#discussion_r158888495","pull_request_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/comments/158888495"},"html":{"href":"https://github.com/USStateDept/Heartbeat/pull/23#discussion_r158888495"},"pull_request":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23"}}},"pull_request":{"url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23","id":160162541,"html_url":"https://github.com/USStateDept/Heartbeat/pull/23","diff_url":"https://github.com/USStateDept/Heartbeat/pull/23.diff","patch_url":"https://github.com/USStateDept/Heartbeat/pull/23.patch","issue_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/23","number":23,"state":"open","locked":false,"title":"Outages Update","user":{"login":"jpie","id":31740146,"avatar_url":"https://avatars3.githubusercontent.com/u/31740146?v=4","gravatar_id":"","url":"https://api.github.com/users/jpie","html_url":"https://github.com/jpie","followers_url":"https://api.github.com/users/jpie/followers","following_url":"https://api.github.com/users/jpie/following{/other_user}","gists_url":"https://api.github.com/users/jpie/gists{/gist_id}","starred_url":"https://api.github.com/users/jpie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpie/subscriptions","organizations_url":"https://api.github.com/users/jpie/orgs","repos_url":"https://api.github.com/users/jpie/repos","events_url":"https://api.github.com/users/jpie/events{/privacy}","received_events_url":"https://api.github.com/users/jpie/received_events","type":"User","site_admin":false},"body":"Big PR!\r\n- Adds group outage overview\r\n- Adds statistics for groups and individual sites\r\n- Adds error handling to db queries\r\n- Many minor css updates to home page (spacing, colors, etc.)\r\n- Changes to 'create a group' page\r\n","created_at":"2017-12-26T19:58:06Z","updated_at":"2017-12-28T02:12:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"db1d234d84108b601cbaa0ab753032647f2037b9","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23/commits","review_comments_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23/comments","review_comment_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/23/comments","statuses_url":"https://api.github.com/repos/USStateDept/Heartbeat/statuses/a7ac06e5fbd70f55c25e4a7bd0c41fc9e16fa338","head":{"label":"USStateDept:outages_update","ref":"outages_update","sha":"a7ac06e5fbd70f55c25e4a7bd0c41fc9e16fa338","user":{"login":"USStateDept","id":6164937,"avatar_url":"https://avatars3.githubusercontent.com/u/6164937?v=4","gravatar_id":"","url":"https://api.github.com/users/USStateDept","html_url":"https://github.com/USStateDept","followers_url":"https://api.github.com/users/USStateDept/followers","following_url":"https://api.github.com/users/USStateDept/following{/other_user}","gists_url":"https://api.github.com/users/USStateDept/gists{/gist_id}","starred_url":"https://api.github.com/users/USStateDept/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/USStateDept/subscriptions","organizations_url":"https://api.github.com/users/USStateDept/orgs","repos_url":"https://api.github.com/users/USStateDept/repos","events_url":"https://api.github.com/users/USStateDept/events{/privacy}","received_events_url":"https://api.github.com/users/USStateDept/received_events","type":"Organization","site_admin":false},"repo":{"id":102877977,"name":"Heartbeat","full_name":"USStateDept/Heartbeat","owner":{"login":"USStateDept","id":6164937,"avatar_url":"https://avatars3.githubusercontent.com/u/6164937?v=4","gravatar_id":"","url":"https://api.github.com/users/USStateDept","html_url":"https://github.com/USStateDept","followers_url":"https://api.github.com/users/USStateDept/followers","following_url":"https://api.github.com/users/USStateDept/following{/other_user}","gists_url":"https://api.github.com/users/USStateDept/gists{/gist_id}","starred_url":"https://api.github.com/users/USStateDept/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/USStateDept/subscriptions","organizations_url":"https://api.github.com/users/USStateDept/orgs","repos_url":"https://api.github.com/users/USStateDept/repos","events_url":"https://api.github.com/users/USStateDept/events{/privacy}","received_events_url":"https://api.github.com/users/USStateDept/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/USStateDept/Heartbeat","description":"This repo is for the heartbeat application","fork":false,"url":"https://api.github.com/repos/USStateDept/Heartbeat","forks_url":"https://api.github.com/repos/USStateDept/Heartbeat/forks","keys_url":"https://api.github.com/repos/USStateDept/Heartbeat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/USStateDept/Heartbeat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/USStateDept/Heartbeat/teams","hooks_url":"https://api.github.com/repos/USStateDept/Heartbeat/hooks","issue_events_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/events{/number}","events_url":"https://api.github.com/repos/USStateDept/Heartbeat/events","assignees_url":"https://api.github.com/repos/USStateDept/Heartbeat/assignees{/user}","branches_url":"https://api.github.com/repos/USStateDept/Heartbeat/branches{/branch}","tags_url":"https://api.github.com/repos/USStateDept/Heartbeat/tags","blobs_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/refs{/sha}","trees_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/USStateDept/Heartbeat/statuses/{sha}","languages_url":"https://api.github.com/repos/USStateDept/Heartbeat/languages","stargazers_url":"https://api.github.com/repos/USStateDept/Heartbeat/stargazers","contributors_url":"https://api.github.com/repos/USStateDept/Heartbeat/contributors","subscribers_url":"https://api.github.com/repos/USStateDept/Heartbeat/subscribers","subscription_url":"https://api.github.com/repos/USStateDept/Heartbeat/subscription","commits_url":"https://api.github.com/repos/USStateDept/Heartbeat/commits{/sha}","git_commits_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/commits{/sha}","comments_url":"https://api.github.com/repos/USStateDept/Heartbeat/comments{/number}","issue_comment_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/comments{/number}","contents_url":"https://api.github.com/repos/USStateDept/Heartbeat/contents/{+path}","compare_url":"https://api.github.com/repos/USStateDept/Heartbeat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/USStateDept/Heartbeat/merges","archive_url":"https://api.github.com/repos/USStateDept/Heartbeat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/USStateDept/Heartbeat/downloads","issues_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues{/number}","pulls_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls{/number}","milestones_url":"https://api.github.com/repos/USStateDept/Heartbeat/milestones{/number}","notifications_url":"https://api.github.com/repos/USStateDept/Heartbeat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/USStateDept/Heartbeat/labels{/name}","releases_url":"https://api.github.com/repos/USStateDept/Heartbeat/releases{/id}","deployments_url":"https://api.github.com/repos/USStateDept/Heartbeat/deployments","created_at":"2017-09-08T15:46:37Z","updated_at":"2017-12-01T21:27:40Z","pushed_at":"2017-12-27T15:36:59Z","git_url":"git://github.com/USStateDept/Heartbeat.git","ssh_url":"git@github.com:USStateDept/Heartbeat.git","clone_url":"https://github.com/USStateDept/Heartbeat.git","svn_url":"https://github.com/USStateDept/Heartbeat","homepage":null,"size":475,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"dev"}},"base":{"label":"USStateDept:dev","ref":"dev","sha":"89f028246b8b72680327037d8ea4ca1d3386e4ee","user":{"login":"USStateDept","id":6164937,"avatar_url":"https://avatars3.githubusercontent.com/u/6164937?v=4","gravatar_id":"","url":"https://api.github.com/users/USStateDept","html_url":"https://github.com/USStateDept","followers_url":"https://api.github.com/users/USStateDept/followers","following_url":"https://api.github.com/users/USStateDept/following{/other_user}","gists_url":"https://api.github.com/users/USStateDept/gists{/gist_id}","starred_url":"https://api.github.com/users/USStateDept/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/USStateDept/subscriptions","organizations_url":"https://api.github.com/users/USStateDept/orgs","repos_url":"https://api.github.com/users/USStateDept/repos","events_url":"https://api.github.com/users/USStateDept/events{/privacy}","received_events_url":"https://api.github.com/users/USStateDept/received_events","type":"Organization","site_admin":false},"repo":{"id":102877977,"name":"Heartbeat","full_name":"USStateDept/Heartbeat","owner":{"login":"USStateDept","id":6164937,"avatar_url":"https://avatars3.githubusercontent.com/u/6164937?v=4","gravatar_id":"","url":"https://api.github.com/users/USStateDept","html_url":"https://github.com/USStateDept","followers_url":"https://api.github.com/users/USStateDept/followers","following_url":"https://api.github.com/users/USStateDept/following{/other_user}","gists_url":"https://api.github.com/users/USStateDept/gists{/gist_id}","starred_url":"https://api.github.com/users/USStateDept/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/USStateDept/subscriptions","organizations_url":"https://api.github.com/users/USStateDept/orgs","repos_url":"https://api.github.com/users/USStateDept/repos","events_url":"https://api.github.com/users/USStateDept/events{/privacy}","received_events_url":"https://api.github.com/users/USStateDept/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/USStateDept/Heartbeat","description":"This repo is for the heartbeat application","fork":false,"url":"https://api.github.com/repos/USStateDept/Heartbeat","forks_url":"https://api.github.com/repos/USStateDept/Heartbeat/forks","keys_url":"https://api.github.com/repos/USStateDept/Heartbeat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/USStateDept/Heartbeat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/USStateDept/Heartbeat/teams","hooks_url":"https://api.github.com/repos/USStateDept/Heartbeat/hooks","issue_events_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/events{/number}","events_url":"https://api.github.com/repos/USStateDept/Heartbeat/events","assignees_url":"https://api.github.com/repos/USStateDept/Heartbeat/assignees{/user}","branches_url":"https://api.github.com/repos/USStateDept/Heartbeat/branches{/branch}","tags_url":"https://api.github.com/repos/USStateDept/Heartbeat/tags","blobs_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/refs{/sha}","trees_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/USStateDept/Heartbeat/statuses/{sha}","languages_url":"https://api.github.com/repos/USStateDept/Heartbeat/languages","stargazers_url":"https://api.github.com/repos/USStateDept/Heartbeat/stargazers","contributors_url":"https://api.github.com/repos/USStateDept/Heartbeat/contributors","subscribers_url":"https://api.github.com/repos/USStateDept/Heartbeat/subscribers","subscription_url":"https://api.github.com/repos/USStateDept/Heartbeat/subscription","commits_url":"https://api.github.com/repos/USStateDept/Heartbeat/commits{/sha}","git_commits_url":"https://api.github.com/repos/USStateDept/Heartbeat/git/commits{/sha}","comments_url":"https://api.github.com/repos/USStateDept/Heartbeat/comments{/number}","issue_comment_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues/comments{/number}","contents_url":"https://api.github.com/repos/USStateDept/Heartbeat/contents/{+path}","compare_url":"https://api.github.com/repos/USStateDept/Heartbeat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/USStateDept/Heartbeat/merges","archive_url":"https://api.github.com/repos/USStateDept/Heartbeat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/USStateDept/Heartbeat/downloads","issues_url":"https://api.github.com/repos/USStateDept/Heartbeat/issues{/number}","pulls_url":"https://api.github.com/repos/USStateDept/Heartbeat/pulls{/number}","milestones_url":"https://api.github.com/repos/USStateDept/Heartbeat/milestones{/number}","notifications_url":"https://api.github.com/repos/USStateDept/Heartbeat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/USStateDept/Heartbeat/labels{/name}","releases_url":"https://api.github.com/repos/USStateDept/Heartbeat/releases{/id}","deployments_url":"https://api.github.com/repos/USStateDept/Heartbeat/deployments","created_at":"2017-09-08T15:46:37Z","updated_at":"2017-12-01T21:27:40Z","pushed_at":"2017-12-27T15:36:59Z","git_url":"git://github.com/USStateDept/Heartbeat.git","ssh_url":"git@github.com:USStateDept/Heartbeat.git","clone_url":"https://github.com/USStateDept/Heartbeat.git","svn_url":"https://github.com/USStateDept/Heartbeat","homepage":null,"size":475,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23"},"html":{"href":"https://github.com/USStateDept/Heartbeat/pull/23"},"issue":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/issues/23"},"comments":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/USStateDept/Heartbeat/statuses/a7ac06e5fbd70f55c25e4a7bd0c41fc9e16fa338"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"trycrmr"}}