{"action":"created","comment":{"url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/comments/28743371","id":28743371,"diff_hunk":"@@ -62,6 +62,349 @@ exports[\"Stepper Firmware Requirement\"] = {\n   },\n };\n \n+exports[\"Stepper - constructor\"] = {\n+  setUp: function(done) {\n+\n+    this.board = new Board({\n+      io: new MockFirmata({\n+        pins: [\n+          {\n+            supportedModes: [8],\n+          },\n+        ]\n+      }),\n+      debug: false,\n+      repl: false\n+    });\n+\n+    done();\n+  },\n+  tearDown: function(done) {\n+    done();\n+  },\n+\n+  infertTypeAmbiguous: function(test) {\n+    test.expect(1);\n+\n+    test.throws(function() {\n+      var stepper = new Stepper({\n+        board: this.board,\n+        stepsPerRev: 200,\n+        pins: [2, 3]\n+      });\n+    });\n+\n+    test.done();\n+  },\n+\n+  inferTypeDriver: function(test) {\n+    test.expect(2);\n+    var pins = {\n+      step: 2,\n+      dir: 3\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+    test.equal(stepper.type, Stepper.TYPE.DRIVER);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    test.done();\n+  },\n+\n+  inferType2Wire: function(test) {\n+    test.expect(2);\n+    var pins = {\n+      motor1: 3,\n+      motor2: 4\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+    test.equal(stepper.type, Stepper.TYPE.TWO_WIRE);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    test.done();\n+  },\n+\n+  inferType4Wire: function(test) {\n+    test.expect(2);\n+    var pins = {\n+      motor1: 2,\n+      motor2: 3,\n+      motor3: 4,\n+      motor4: 5\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+    test.equal(stepper.type, Stepper.TYPE.FOUR_WIRE);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    test.done();\n+  },\n+\n+  typeDevice: function(test) {\n+    test.expect(4);\n+    var pins = {\n+      step: 2,\n+      dir: 3\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.DRIVER,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.DRIVER);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    pins = [3, 4];\n+    stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.DRIVER,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.DRIVER);\n+    test.deepEqual(\n+      stepper.pins,\n+      {step: pins[0], dir: pins[1]}\n+    );\n+\n+    test.done();\n+  },\n+\n+  type2Wire: function(test) {\n+    test.expect(4);\n+    var pins = {\n+      motor1: 2,\n+      motor2: 3\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.TWO_WIRE,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.TWO_WIRE);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    pins = [3, 4];\n+    stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.TWO_WIRE,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.TWO_WIRE);\n+    test.deepEqual(\n+      stepper.pins,\n+      {motor1: pins[0], motor2: pins[1]}\n+    );\n+\n+    test.done();\n+  },\n+\n+  type4Wire: function(test) {\n+    test.expect(4);\n+    var pins = {\n+      motor1: 2,\n+      motor2: 3,\n+      motor3: 4,\n+      motor4: 5\n+    };\n+    var stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.FOUR_WIRE,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.FOUR_WIRE);\n+    test.deepEqual(stepper.pins, pins);\n+\n+    pins = [3, 4, 5, 6];\n+    stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.FOUR_WIRE,\n+      stepsPerRev: 200,\n+      pins: pins\n+    });\n+\n+    test.equal(stepper.type, Stepper.TYPE.FOUR_WIRE);\n+    test.deepEqual(\n+      stepper.pins,\n+      {motor1: pins[0], motor2: pins[1], motor3: pins[2], motor4: pins[3]}\n+    );\n+\n+    test.done();\n+  },\n+};\n+\n+exports[\"Stepper - max steppers\"] = {\n+  setUp: function(done) {\n+\n+    this.maxSteppers = 6;\n+\n+    this.board1 = new Board({\n+      io: new MockFirmata({\n+        pins: [\n+          {\n+            supportedModes: [8],\n+          },\n+        ]\n+      }),\n+      debug: false,\n+      repl: false\n+    });\n+\n+    this.board2 = new Board({\n+      io: new MockFirmata({\n+        pins: [\n+          {\n+            supportedModes: [8],\n+          },\n+        ]\n+      }),\n+      debug: false,\n+      repl: false\n+    });\n+\n+    done();\n+  },\n+\n+  tearDown: function(done) {\n+    done();\n+  },\n+\n+  singleBoard: function(test) {\n+    test.expect(2);\n+\n+    test.doesNotThrow(function() {\n+      for (var i = 0; i < this.maxSteppers; i++) {\n+        new Stepper({\n+          board: this.board1,\n+          stepsPerRev: 200,\n+          pins: [3, 4, 5, 6]\n+        });\n+      }\n+    }.bind(this));\n+\n+    test.throws(function() {\n+      new Stepper({\n+        board: this.board1,\n+        stepsPerRev: 200,\n+        pins: [3, 4, 5, 6]\n+      });\n+    }.bind(this));\n+\n+    test.done();\n+  },\n+\n+  multipleBoards: function(test) {\n+    test.expect(3);\n+\n+    // should be able to add max on two boards\n+    test.doesNotThrow(function() {\n+      for (var i = 0; i < this.maxSteppers; i++) {\n+        new Stepper({\n+          board: this.board1,\n+          stepsPerRev: 200,\n+          pins: [2, 3, 4, 5]\n+        });\n+        new Stepper({\n+          board: this.board2,\n+          stepsPerRev: 200,\n+          pins: [2, 3, 4, 5]\n+        });\n+      }\n+    }.bind(this));\n+\n+    // but can't add any more to either board\n+    test.throws(function() {\n+      new Stepper({\n+        board: this.board1,\n+        stepsPerRev: 200,\n+        pins: [2, 3, 4, 5]\n+      });\n+    }.bind(this));\n+    test.throws(function() {\n+      new Stepper({\n+        board: this.board2,\n+        stepsPerRev: 200,\n+        pins: [2, 3, 4, 5]\n+      });\n+    }.bind(this));\n+\n+    test.done();\n+  }\n+};\n+\n+// TODO test that callback is called for .step()\n+// mock firmata apparently never calls it, so we can't test currently\n+// exports[\"Stepper - step callback\"] = {};\n+\n+exports[\"Stepper - set direction required before step\"] = {\n+  setUp: function(done) {\n+\n+    this.board = new Board({\n+      io: new MockFirmata({\n+        pins: [\n+          {\n+            supportedModes: [8],\n+          },\n+        ]\n+      }),\n+      debug: false,\n+      repl: false\n+    });\n+\n+    this.stepper = new Stepper({\n+      board: this.board,\n+      type: five.Stepper.TYPE.DRIVER,\n+      stepsPerRev: 200,\n+      pins: [2, 3]\n+    });\n+    done();\n+  },\n+\n+  tearDown: function(done) {\n+    done();\n+  },\n+\n+  directionSet: function(test) {\n+    test.expect(1);\n+\n+    // If we haven't set a direction, we should get error\n+    this.stepper.step(1, function(error) {\n+      test.ok(!!error);","path":"test/stepper.js","position":330,"original_position":330,"commit_id":"c258a840d3c99abc4192b57a4c4d4d5c383e1b83","original_commit_id":"c258a840d3c99abc4192b57a4c4d4d5c383e1b83","user":{"login":"Resseguie","id":1581285,"avatar_url":"https://avatars.githubusercontent.com/u/1581285?v=3","gravatar_id":"","url":"https://api.github.com/users/Resseguie","html_url":"https://github.com/Resseguie","followers_url":"https://api.github.com/users/Resseguie/followers","following_url":"https://api.github.com/users/Resseguie/following{/other_user}","gists_url":"https://api.github.com/users/Resseguie/gists{/gist_id}","starred_url":"https://api.github.com/users/Resseguie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Resseguie/subscriptions","organizations_url":"https://api.github.com/users/Resseguie/orgs","repos_url":"https://api.github.com/users/Resseguie/repos","events_url":"https://api.github.com/users/Resseguie/events{/privacy}","received_events_url":"https://api.github.com/users/Resseguie/received_events","type":"User","site_admin":false},"body":"Got it. Let me take a crack at going ahead and putting that in while I'm at it.","created_at":"2015-04-21T01:10:40Z","updated_at":"2015-04-21T01:10:40Z","html_url":"https://github.com/rwaldron/johnny-five/pull/740#discussion_r28743371","pull_request_url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740","_links":{"self":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/comments/28743371"},"html":{"href":"https://github.com/rwaldron/johnny-five/pull/740#discussion_r28743371"},"pull_request":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740"}}},"pull_request":{"url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740","id":33612800,"html_url":"https://github.com/rwaldron/johnny-five/pull/740","diff_url":"https://github.com/rwaldron/johnny-five/pull/740.diff","patch_url":"https://github.com/rwaldron/johnny-five/pull/740.patch","issue_url":"https://api.github.com/repos/rwaldron/johnny-five/issues/740","number":740,"state":"open","locked":false,"title":"stepper max per board; err if no dir; tests","user":{"login":"Resseguie","id":1581285,"avatar_url":"https://avatars.githubusercontent.com/u/1581285?v=3","gravatar_id":"","url":"https://api.github.com/users/Resseguie","html_url":"https://github.com/Resseguie","followers_url":"https://api.github.com/users/Resseguie/followers","following_url":"https://api.github.com/users/Resseguie/following{/other_user}","gists_url":"https://api.github.com/users/Resseguie/gists{/gist_id}","starred_url":"https://api.github.com/users/Resseguie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Resseguie/subscriptions","organizations_url":"https://api.github.com/users/Resseguie/orgs","repos_url":"https://api.github.com/users/Resseguie/repos","events_url":"https://api.github.com/users/Resseguie/events{/privacy}","received_events_url":"https://api.github.com/users/Resseguie/received_events","type":"User","site_admin":false},"body":"Fixes #739 - limits max steppers (currently 6) per board instead of global\r\nFixes #736 - returns error object to callback function","created_at":"2015-04-19T03:19:45Z","updated_at":"2015-04-21T01:10:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e165188314a22b9b46c02600b834ce68dd147c42","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740/commits","review_comments_url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740/comments","review_comment_url":"https://api.github.com/repos/rwaldron/johnny-five/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rwaldron/johnny-five/issues/740/comments","statuses_url":"https://api.github.com/repos/rwaldron/johnny-five/statuses/c258a840d3c99abc4192b57a4c4d4d5c383e1b83","head":{"label":"Resseguie:stepper-test","ref":"stepper-test","sha":"c258a840d3c99abc4192b57a4c4d4d5c383e1b83","user":{"login":"Resseguie","id":1581285,"avatar_url":"https://avatars.githubusercontent.com/u/1581285?v=3","gravatar_id":"","url":"https://api.github.com/users/Resseguie","html_url":"https://github.com/Resseguie","followers_url":"https://api.github.com/users/Resseguie/followers","following_url":"https://api.github.com/users/Resseguie/following{/other_user}","gists_url":"https://api.github.com/users/Resseguie/gists{/gist_id}","starred_url":"https://api.github.com/users/Resseguie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Resseguie/subscriptions","organizations_url":"https://api.github.com/users/Resseguie/orgs","repos_url":"https://api.github.com/users/Resseguie/repos","events_url":"https://api.github.com/users/Resseguie/events{/privacy}","received_events_url":"https://api.github.com/users/Resseguie/received_events","type":"User","site_admin":false},"repo":{"id":32468560,"name":"johnny-five","full_name":"Resseguie/johnny-five","owner":{"login":"Resseguie","id":1581285,"avatar_url":"https://avatars.githubusercontent.com/u/1581285?v=3","gravatar_id":"","url":"https://api.github.com/users/Resseguie","html_url":"https://github.com/Resseguie","followers_url":"https://api.github.com/users/Resseguie/followers","following_url":"https://api.github.com/users/Resseguie/following{/other_user}","gists_url":"https://api.github.com/users/Resseguie/gists{/gist_id}","starred_url":"https://api.github.com/users/Resseguie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Resseguie/subscriptions","organizations_url":"https://api.github.com/users/Resseguie/orgs","repos_url":"https://api.github.com/users/Resseguie/repos","events_url":"https://api.github.com/users/Resseguie/events{/privacy}","received_events_url":"https://api.github.com/users/Resseguie/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Resseguie/johnny-five","description":"JavaScript Robotics and IoT programming framework, developed at Bocoup. Based on Arduino Firmata Protocol","fork":true,"url":"https://api.github.com/repos/Resseguie/johnny-five","forks_url":"https://api.github.com/repos/Resseguie/johnny-five/forks","keys_url":"https://api.github.com/repos/Resseguie/johnny-five/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Resseguie/johnny-five/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Resseguie/johnny-five/teams","hooks_url":"https://api.github.com/repos/Resseguie/johnny-five/hooks","issue_events_url":"https://api.github.com/repos/Resseguie/johnny-five/issues/events{/number}","events_url":"https://api.github.com/repos/Resseguie/johnny-five/events","assignees_url":"https://api.github.com/repos/Resseguie/johnny-five/assignees{/user}","branches_url":"https://api.github.com/repos/Resseguie/johnny-five/branches{/branch}","tags_url":"https://api.github.com/repos/Resseguie/johnny-five/tags","blobs_url":"https://api.github.com/repos/Resseguie/johnny-five/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Resseguie/johnny-five/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Resseguie/johnny-five/git/refs{/sha}","trees_url":"https://api.github.com/repos/Resseguie/johnny-five/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Resseguie/johnny-five/statuses/{sha}","languages_url":"https://api.github.com/repos/Resseguie/johnny-five/languages","stargazers_url":"https://api.github.com/repos/Resseguie/johnny-five/stargazers","contributors_url":"https://api.github.com/repos/Resseguie/johnny-five/contributors","subscribers_url":"https://api.github.com/repos/Resseguie/johnny-five/subscribers","subscription_url":"https://api.github.com/repos/Resseguie/johnny-five/subscription","commits_url":"https://api.github.com/repos/Resseguie/johnny-five/commits{/sha}","git_commits_url":"https://api.github.com/repos/Resseguie/johnny-five/git/commits{/sha}","comments_url":"https://api.github.com/repos/Resseguie/johnny-five/comments{/number}","issue_comment_url":"https://api.github.com/repos/Resseguie/johnny-five/issues/comments{/number}","contents_url":"https://api.github.com/repos/Resseguie/johnny-five/contents/{+path}","compare_url":"https://api.github.com/repos/Resseguie/johnny-five/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Resseguie/johnny-five/merges","archive_url":"https://api.github.com/repos/Resseguie/johnny-five/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Resseguie/johnny-five/downloads","issues_url":"https://api.github.com/repos/Resseguie/johnny-five/issues{/number}","pulls_url":"https://api.github.com/repos/Resseguie/johnny-five/pulls{/number}","milestones_url":"https://api.github.com/repos/Resseguie/johnny-five/milestones{/number}","notifications_url":"https://api.github.com/repos/Resseguie/johnny-five/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Resseguie/johnny-five/labels{/name}","releases_url":"https://api.github.com/repos/Resseguie/johnny-five/releases{/id}","created_at":"2015-03-18T15:52:56Z","updated_at":"2015-04-19T00:34:54Z","pushed_at":"2015-04-19T03:18:01Z","git_url":"git://github.com/Resseguie/johnny-five.git","ssh_url":"git@github.com:Resseguie/johnny-five.git","clone_url":"https://github.com/Resseguie/johnny-five.git","svn_url":"https://github.com/Resseguie/johnny-five","homepage":"","size":48299,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rwaldron:master","ref":"master","sha":"7d3221bfd34448d781e32e20cae759f90d1bde0f","user":{"login":"rwaldron","id":27985,"avatar_url":"https://avatars.githubusercontent.com/u/27985?v=3","gravatar_id":"","url":"https://api.github.com/users/rwaldron","html_url":"https://github.com/rwaldron","followers_url":"https://api.github.com/users/rwaldron/followers","following_url":"https://api.github.com/users/rwaldron/following{/other_user}","gists_url":"https://api.github.com/users/rwaldron/gists{/gist_id}","starred_url":"https://api.github.com/users/rwaldron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwaldron/subscriptions","organizations_url":"https://api.github.com/users/rwaldron/orgs","repos_url":"https://api.github.com/users/rwaldron/repos","events_url":"https://api.github.com/users/rwaldron/events{/privacy}","received_events_url":"https://api.github.com/users/rwaldron/received_events","type":"User","site_admin":false},"repo":{"id":3880513,"name":"johnny-five","full_name":"rwaldron/johnny-five","owner":{"login":"rwaldron","id":27985,"avatar_url":"https://avatars.githubusercontent.com/u/27985?v=3","gravatar_id":"","url":"https://api.github.com/users/rwaldron","html_url":"https://github.com/rwaldron","followers_url":"https://api.github.com/users/rwaldron/followers","following_url":"https://api.github.com/users/rwaldron/following{/other_user}","gists_url":"https://api.github.com/users/rwaldron/gists{/gist_id}","starred_url":"https://api.github.com/users/rwaldron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwaldron/subscriptions","organizations_url":"https://api.github.com/users/rwaldron/orgs","repos_url":"https://api.github.com/users/rwaldron/repos","events_url":"https://api.github.com/users/rwaldron/events{/privacy}","received_events_url":"https://api.github.com/users/rwaldron/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rwaldron/johnny-five","description":"JavaScript Robotics and IoT programming framework, developed at Bocoup. Based on Arduino Firmata Protocol","fork":false,"url":"https://api.github.com/repos/rwaldron/johnny-five","forks_url":"https://api.github.com/repos/rwaldron/johnny-five/forks","keys_url":"https://api.github.com/repos/rwaldron/johnny-five/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rwaldron/johnny-five/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rwaldron/johnny-five/teams","hooks_url":"https://api.github.com/repos/rwaldron/johnny-five/hooks","issue_events_url":"https://api.github.com/repos/rwaldron/johnny-five/issues/events{/number}","events_url":"https://api.github.com/repos/rwaldron/johnny-five/events","assignees_url":"https://api.github.com/repos/rwaldron/johnny-five/assignees{/user}","branches_url":"https://api.github.com/repos/rwaldron/johnny-five/branches{/branch}","tags_url":"https://api.github.com/repos/rwaldron/johnny-five/tags","blobs_url":"https://api.github.com/repos/rwaldron/johnny-five/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rwaldron/johnny-five/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rwaldron/johnny-five/git/refs{/sha}","trees_url":"https://api.github.com/repos/rwaldron/johnny-five/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rwaldron/johnny-five/statuses/{sha}","languages_url":"https://api.github.com/repos/rwaldron/johnny-five/languages","stargazers_url":"https://api.github.com/repos/rwaldron/johnny-five/stargazers","contributors_url":"https://api.github.com/repos/rwaldron/johnny-five/contributors","subscribers_url":"https://api.github.com/repos/rwaldron/johnny-five/subscribers","subscription_url":"https://api.github.com/repos/rwaldron/johnny-five/subscription","commits_url":"https://api.github.com/repos/rwaldron/johnny-five/commits{/sha}","git_commits_url":"https://api.github.com/repos/rwaldron/johnny-five/git/commits{/sha}","comments_url":"https://api.github.com/repos/rwaldron/johnny-five/comments{/number}","issue_comment_url":"https://api.github.com/repos/rwaldron/johnny-five/issues/comments{/number}","contents_url":"https://api.github.com/repos/rwaldron/johnny-five/contents/{+path}","compare_url":"https://api.github.com/repos/rwaldron/johnny-five/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rwaldron/johnny-five/merges","archive_url":"https://api.github.com/repos/rwaldron/johnny-five/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rwaldron/johnny-five/downloads","issues_url":"https://api.github.com/repos/rwaldron/johnny-five/issues{/number}","pulls_url":"https://api.github.com/repos/rwaldron/johnny-five/pulls{/number}","milestones_url":"https://api.github.com/repos/rwaldron/johnny-five/milestones{/number}","notifications_url":"https://api.github.com/repos/rwaldron/johnny-five/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rwaldron/johnny-five/labels{/name}","releases_url":"https://api.github.com/repos/rwaldron/johnny-five/releases{/id}","created_at":"2012-03-30T20:09:52Z","updated_at":"2015-04-20T23:39:51Z","pushed_at":"2015-04-20T21:12:22Z","git_url":"git://github.com/rwaldron/johnny-five.git","ssh_url":"git@github.com:rwaldron/johnny-five.git","clone_url":"https://github.com/rwaldron/johnny-five.git","svn_url":"https://github.com/rwaldron/johnny-five","homepage":"","size":56429,"stargazers_count":3498,"watchers_count":3498,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":450,"mirror_url":null,"open_issues_count":115,"forks":450,"open_issues":115,"watchers":3498,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740"},"html":{"href":"https://github.com/rwaldron/johnny-five/pull/740"},"issue":{"href":"https://api.github.com/repos/rwaldron/johnny-five/issues/740"},"comments":{"href":"https://api.github.com/repos/rwaldron/johnny-five/issues/740/comments"},"review_comments":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740/comments"},"review_comment":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rwaldron/johnny-five/pulls/740/commits"},"statuses":{"href":"https://api.github.com/repos/rwaldron/johnny-five/statuses/c258a840d3c99abc4192b57a4c4d4d5c383e1b83"}}}}