{"action":"created","comment":{"url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/comments/25966959","id":25966959,"diff_hunk":"@@ -1,170 +1,229 @@\n // The following line is uncommented during the jsLint check.\n-//var it, xit, describe, expect, eclipseSim;\n+//var console, it, xit, describe, expect, eclipseSim, beforeEach, afterEach;\n+describe('Eclipse battle simulator', function () {\n \n-describe('Battle simulator', function () {\n-  it('should define main object', function () {\n-    expect(eclipseSim).toBeDefined();\n-  });\n-});\n-\n-describe('Main object', function () {\n-  it('should define method main', function () {\n-    expect(eclipseSim.main).toBeDefined();\n-  });\n-\n-  it('should define method battleSimulation', function () {\n-    expect(eclipseSim.battleSimulation).toBeDefined();\n-  });\n-\n-  it('should define method battleRound', function () {\n-    expect(eclipseSim.battleRound).toBeDefined();\n-  });\n-\n-  it('should define method getShipGroup', function () {\n-    expect(eclipseSim.getShipGroup).toBeDefined();\n-  });\n-\n-  it('should define method copyFleet', function () {\n-    expect(eclipseSim.copyFleet).toBeDefined();\n-  });\n-\n-  it('should define method rollDice', function () {\n-    expect(eclipseSim.rollDice).toBeDefined();\n-  });\n-\n-  it('should define method applyDamage', function () {\n-    expect(eclipseSim.applyDamage).toBeDefined();\n-  });\n-});\n-\n-describe('Main object methods behaviour: general tests', function () {\n-  describe('Ship function', function () {\n-    it('should return empty (default) ship when called with no arguments', function () {\n-      var emptyShip = {\n-        initiative: 0,\n-        guns: [],\n-        hp: 0\n-      };\n-      var testShip = new eclipseSim.Ship();\n-      expect(testShip).toEqual(emptyShip);\n-    });\n-\n-    it('should return copy of the ship when called with an argument', function () {\n-      var testShip = {\n-        initiative: 1,\n-        guns: [1, 2],\n-        hp: 2\n-      };\n-      var newShip = new eclipseSim.Ship(testShip);\n-      expect(newShip).toEqual(testShip);\n+  describe('Battle simulator', function () {\n+    it('should define main object', function () {\n+      expect(eclipseSim).toBeDefined();\n     });\n   });\n \n-  describe('addShips function', function () {\n-    xit('should throw exception when called with no arguments', function () {\n-      expect(eclipseSim.addShips()).toThrow();\n+  describe('Main object', function () {\n+    it('should define method main', function () {\n+      expect(eclipseSim.main).toBeDefined();\n     });\n \n-    xit('should take two to three arguments', function () {\n-\n+    it('should define method battleSimulation', function () {\n+      expect(eclipseSim.battleSimulation).toBeDefined();\n     });\n \n-    xit('should throw exception when *fleet* argument is not defined', function () {\n-\n+    it('should define method battleRound', function () {\n+      expect(eclipseSim.battleRound).toBeDefined();\n     });\n \n-    xit('should throw exception when *ships* argument is not defined', function () {\n-\n+    it('should define method getShipGroup', function () {\n+      expect(eclipseSim.getShipGroup).toBeDefined();\n     });\n \n-    xit('should take two arrays of ships as arguments', function () {\n-\n+    it('should define method copyFleet', function () {\n+      expect(eclipseSim.copyFleet).toBeDefined();\n     });\n \n-    xit('should add ships from the second array to the first array by value', function () {\n-\n+    it('should define method rollDice', function () {\n+      expect(eclipseSim.rollDice).toBeDefined();\n     });\n \n-    xit('should modify the first array, but do not modify the second one', function () {\n-\n+    it('should define method applyDamage', function () {\n+      expect(eclipseSim.applyDamage).toBeDefined();\n     });\n-  });\n \n-  describe('Main function', function () {\n-    it('should return 43% - 47%  when simulating battle between two equal ships with default settings', function () {\n-      var testFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(testFleet, testFleet, numberOfSimulations);\n-      expect(result).toBeGreaterThan(43);\n-      expect(result).toBeLessThan(47);\n-    });\n-    it('should return 0% when attacker fleet has no guns', function () {\n-      var attackerFleet = [{initiative: 1, guns: [], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(0);\n+    it('should define method findTarget', function () {\n+      expect(eclipseSim.findTarget).toBeDefined();\n     });\n+  });\n \n-    it('should return 100% when defender fleet has no guns', function () {\n-      var attackerFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [], hp: 1}];\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(100);\n-    });\n+  describe('Main object methods behaviour: general tests', function () {\n+    var defaultShip,\n+      attackerFleet,\n+      defenderFleet,\n+      numberOfSimulations = 20000;\n \n-    it('should return 0% when defender has too much hp', function () {\n-      var attackerFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1000}];\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(0);\n-    });\n+    var inBounds = function (value, lowerLimit, upperLimit) {\n+      return (value >= lowerLimit && value < upperLimit);\n+    };\n \n-    it('should return 100% when attacker has too much hp', function () {\n-      var attackerFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1000}];\n-      var defenderFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(100);\n-    });\n+    beforeEach(function () {\n+      defaultShip = {\n+        initiative: 1,\n+        guns: [{hitThreshold: (5 / 6), damage: 1}],\n+        hp: 1,\n+        shield: 0\n+      };\n \n-    it('should return 0% when defender fleet has too much guns and strikes first', function () {\n-      var attackerFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [], hp: 1}];\n-      var i;\n-      for (i = 0; i < 100; i++) {\n-        defenderFleet[0].guns.push({hitThreshold: (5 / 6), damage: 1});\n-      }\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(0);\n+      attackerFleet = [new eclipseSim.Ship(defaultShip)];\n+      defenderFleet = [new eclipseSim.Ship(defaultShip)];\n     });\n \n-    it('should return about 80% when attacker fleet has too much guns but strikes last', function () {\n-      var attackerFleet = [{initiative: 0, guns: [], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 1}];\n-      var i;\n-      for (i = 0; i < 100; i++) {\n-        attackerFleet[0].guns.push({hitThreshold: (5 / 6), damage: 1});\n-      }\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBeLessThan(85);\n-      expect(result).toBeGreaterThan(75);\n-    });\n+    afterEach(function () {\n+      defaultShip = {\n+        initiative: 1,\n+        guns: [{hitThreshold: (5 / 6), damage: 1}],\n+        hp: 1,\n+        shield: 0\n+      };\n \n-    it('should return 100% when attacker fleet has low hp but higher initiative and lots of guns while defender is tough but slow', function () {\n-      var attackerFleet = [{initiative: 2, guns: [], hp: 1}];\n-      var defenderFleet = [{initiative: 1, guns: [{hitThreshold: (5 / 6), damage: 1}], hp: 100}];\n-      var i;\n-      for (i = 0; i < 1000; i++) {\n-        attackerFleet[0].guns.push({hitThreshold: (5 / 6), damage: 1});\n-      }\n-      var numberOfSimulations = 20000;\n-      var result = eclipseSim.main(attackerFleet, defenderFleet, numberOfSimulations);\n-      expect(result).toBe(100);\n+      attackerFleet = [];\n+      defenderFleet = [];\n+    });\n+\n+    describe('Ship function', function () {\n+      it('should return empty (default) ship when called with no arguments', function () {\n+        var emptyShip = {\n+          initiative: 0,\n+          guns: [],\n+          hp: 0,\n+          shield: 0\n+        };\n+        var testShip = new eclipseSim.Ship();\n+        expect(testShip).toEqual(emptyShip);\n+      });\n+\n+      it('should return copy of the ship when called with an argument', function () {\n+        var newShip = new eclipseSim.Ship(defaultShip);\n+        expect(newShip).toEqual(defaultShip);\n+      });\n+    });\n+\n+    describe('addShips function', function () {\n+      xit('should throw exception when called with no arguments', function () {\n+        expect(eclipseSim.addShips()).toThrow();\n+      });\n+\n+      xit('should take two to three arguments', function () {\n+        console.log(1);\n+      });\n+\n+      xit('should throw exception when *fleet* argument is not defined', function () {\n+        console.log(1);\n+      });\n+\n+      xit('should throw exception when *ships* argument is not defined', function () {\n+        console.log(1);\n+      });\n+\n+      xit('should take two arrays of ships as arguments', function () {\n+        console.log(1);\n+      });\n+\n+      xit('should add ships from the second array to the first array by value', function () {\n+        console.log(1);\n+      });\n+\n+      xit('should modify the first array, but do not modify the second one', function () {","path":"specs.js","position":262,"original_position":262,"commit_id":"46d2e53b88e95379f9e53f232a32a0e88054a9d5","original_commit_id":"46d2e53b88e95379f9e53f232a32a0e88054a9d5","user":{"login":"houndci","id":6697940,"avatar_url":"https://avatars.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci","html_url":"https://github.com/houndci","followers_url":"https://api.github.com/users/houndci/followers","following_url":"https://api.github.com/users/houndci/following{/other_user}","gists_url":"https://api.github.com/users/houndci/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci/subscriptions","organizations_url":"https://api.github.com/users/houndci/orgs","repos_url":"https://api.github.com/users/houndci/repos","events_url":"https://api.github.com/users/houndci/events{/privacy}","received_events_url":"https://api.github.com/users/houndci/received_events","type":"User","site_admin":false},"body":"Line is too long.","created_at":"2015-03-06T18:46:55Z","updated_at":"2015-03-06T18:46:55Z","html_url":"https://github.com/boardgaming/sun-tzu/pull/28#discussion_r25966959","pull_request_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28","_links":{"self":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/comments/25966959"},"html":{"href":"https://github.com/boardgaming/sun-tzu/pull/28#discussion_r25966959"},"pull_request":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28"}}},"pull_request":{"url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28","id":30668995,"html_url":"https://github.com/boardgaming/sun-tzu/pull/28","diff_url":"https://github.com/boardgaming/sun-tzu/pull/28.diff","patch_url":"https://github.com/boardgaming/sun-tzu/pull/28.patch","issue_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/28","number":28,"state":"open","locked":false,"title":"22 shields","user":{"login":"octocrux","id":2687551,"avatar_url":"https://avatars.githubusercontent.com/u/2687551?v=3","gravatar_id":"","url":"https://api.github.com/users/octocrux","html_url":"https://github.com/octocrux","followers_url":"https://api.github.com/users/octocrux/followers","following_url":"https://api.github.com/users/octocrux/following{/other_user}","gists_url":"https://api.github.com/users/octocrux/gists{/gist_id}","starred_url":"https://api.github.com/users/octocrux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocrux/subscriptions","organizations_url":"https://api.github.com/users/octocrux/orgs","repos_url":"https://api.github.com/users/octocrux/repos","events_url":"https://api.github.com/users/octocrux/events{/privacy}","received_events_url":"https://api.github.com/users/octocrux/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-06T18:46:44Z","updated_at":"2015-03-06T18:46:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e976b804de8c594124161e9e9a9e507510f04cb7","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28/commits","review_comments_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28/comments","review_comment_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/28/comments","statuses_url":"https://api.github.com/repos/boardgaming/sun-tzu/statuses/46d2e53b88e95379f9e53f232a32a0e88054a9d5","head":{"label":"boardgaming:22_shields","ref":"22_shields","sha":"46d2e53b88e95379f9e53f232a32a0e88054a9d5","user":{"login":"boardgaming","id":11175380,"avatar_url":"https://avatars.githubusercontent.com/u/11175380?v=3","gravatar_id":"","url":"https://api.github.com/users/boardgaming","html_url":"https://github.com/boardgaming","followers_url":"https://api.github.com/users/boardgaming/followers","following_url":"https://api.github.com/users/boardgaming/following{/other_user}","gists_url":"https://api.github.com/users/boardgaming/gists{/gist_id}","starred_url":"https://api.github.com/users/boardgaming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boardgaming/subscriptions","organizations_url":"https://api.github.com/users/boardgaming/orgs","repos_url":"https://api.github.com/users/boardgaming/repos","events_url":"https://api.github.com/users/boardgaming/events{/privacy}","received_events_url":"https://api.github.com/users/boardgaming/received_events","type":"Organization","site_admin":false},"repo":{"id":31257662,"name":"sun-tzu","full_name":"boardgaming/sun-tzu","owner":{"login":"boardgaming","id":11175380,"avatar_url":"https://avatars.githubusercontent.com/u/11175380?v=3","gravatar_id":"","url":"https://api.github.com/users/boardgaming","html_url":"https://github.com/boardgaming","followers_url":"https://api.github.com/users/boardgaming/followers","following_url":"https://api.github.com/users/boardgaming/following{/other_user}","gists_url":"https://api.github.com/users/boardgaming/gists{/gist_id}","starred_url":"https://api.github.com/users/boardgaming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boardgaming/subscriptions","organizations_url":"https://api.github.com/users/boardgaming/orgs","repos_url":"https://api.github.com/users/boardgaming/repos","events_url":"https://api.github.com/users/boardgaming/events{/privacy}","received_events_url":"https://api.github.com/users/boardgaming/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/boardgaming/sun-tzu","description":"","fork":false,"url":"https://api.github.com/repos/boardgaming/sun-tzu","forks_url":"https://api.github.com/repos/boardgaming/sun-tzu/forks","keys_url":"https://api.github.com/repos/boardgaming/sun-tzu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boardgaming/sun-tzu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boardgaming/sun-tzu/teams","hooks_url":"https://api.github.com/repos/boardgaming/sun-tzu/hooks","issue_events_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/events{/number}","events_url":"https://api.github.com/repos/boardgaming/sun-tzu/events","assignees_url":"https://api.github.com/repos/boardgaming/sun-tzu/assignees{/user}","branches_url":"https://api.github.com/repos/boardgaming/sun-tzu/branches{/branch}","tags_url":"https://api.github.com/repos/boardgaming/sun-tzu/tags","blobs_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/refs{/sha}","trees_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boardgaming/sun-tzu/statuses/{sha}","languages_url":"https://api.github.com/repos/boardgaming/sun-tzu/languages","stargazers_url":"https://api.github.com/repos/boardgaming/sun-tzu/stargazers","contributors_url":"https://api.github.com/repos/boardgaming/sun-tzu/contributors","subscribers_url":"https://api.github.com/repos/boardgaming/sun-tzu/subscribers","subscription_url":"https://api.github.com/repos/boardgaming/sun-tzu/subscription","commits_url":"https://api.github.com/repos/boardgaming/sun-tzu/commits{/sha}","git_commits_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/commits{/sha}","comments_url":"https://api.github.com/repos/boardgaming/sun-tzu/comments{/number}","issue_comment_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/comments{/number}","contents_url":"https://api.github.com/repos/boardgaming/sun-tzu/contents/{+path}","compare_url":"https://api.github.com/repos/boardgaming/sun-tzu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boardgaming/sun-tzu/merges","archive_url":"https://api.github.com/repos/boardgaming/sun-tzu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boardgaming/sun-tzu/downloads","issues_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues{/number}","pulls_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls{/number}","milestones_url":"https://api.github.com/repos/boardgaming/sun-tzu/milestones{/number}","notifications_url":"https://api.github.com/repos/boardgaming/sun-tzu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boardgaming/sun-tzu/labels{/name}","releases_url":"https://api.github.com/repos/boardgaming/sun-tzu/releases{/id}","created_at":"2015-02-24T11:46:25Z","updated_at":"2015-03-02T21:57:23Z","pushed_at":"2015-03-06T18:44:23Z","git_url":"git://github.com/boardgaming/sun-tzu.git","ssh_url":"git@github.com:boardgaming/sun-tzu.git","clone_url":"https://github.com/boardgaming/sun-tzu.git","svn_url":"https://github.com/boardgaming/sun-tzu","homepage":null,"size":304,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":8,"forks":0,"open_issues":8,"watchers":0,"default_branch":"master"}},"base":{"label":"boardgaming:master","ref":"master","sha":"2bc15c43819ea5b4f42da48f09046448885477eb","user":{"login":"boardgaming","id":11175380,"avatar_url":"https://avatars.githubusercontent.com/u/11175380?v=3","gravatar_id":"","url":"https://api.github.com/users/boardgaming","html_url":"https://github.com/boardgaming","followers_url":"https://api.github.com/users/boardgaming/followers","following_url":"https://api.github.com/users/boardgaming/following{/other_user}","gists_url":"https://api.github.com/users/boardgaming/gists{/gist_id}","starred_url":"https://api.github.com/users/boardgaming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boardgaming/subscriptions","organizations_url":"https://api.github.com/users/boardgaming/orgs","repos_url":"https://api.github.com/users/boardgaming/repos","events_url":"https://api.github.com/users/boardgaming/events{/privacy}","received_events_url":"https://api.github.com/users/boardgaming/received_events","type":"Organization","site_admin":false},"repo":{"id":31257662,"name":"sun-tzu","full_name":"boardgaming/sun-tzu","owner":{"login":"boardgaming","id":11175380,"avatar_url":"https://avatars.githubusercontent.com/u/11175380?v=3","gravatar_id":"","url":"https://api.github.com/users/boardgaming","html_url":"https://github.com/boardgaming","followers_url":"https://api.github.com/users/boardgaming/followers","following_url":"https://api.github.com/users/boardgaming/following{/other_user}","gists_url":"https://api.github.com/users/boardgaming/gists{/gist_id}","starred_url":"https://api.github.com/users/boardgaming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boardgaming/subscriptions","organizations_url":"https://api.github.com/users/boardgaming/orgs","repos_url":"https://api.github.com/users/boardgaming/repos","events_url":"https://api.github.com/users/boardgaming/events{/privacy}","received_events_url":"https://api.github.com/users/boardgaming/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/boardgaming/sun-tzu","description":"","fork":false,"url":"https://api.github.com/repos/boardgaming/sun-tzu","forks_url":"https://api.github.com/repos/boardgaming/sun-tzu/forks","keys_url":"https://api.github.com/repos/boardgaming/sun-tzu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boardgaming/sun-tzu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boardgaming/sun-tzu/teams","hooks_url":"https://api.github.com/repos/boardgaming/sun-tzu/hooks","issue_events_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/events{/number}","events_url":"https://api.github.com/repos/boardgaming/sun-tzu/events","assignees_url":"https://api.github.com/repos/boardgaming/sun-tzu/assignees{/user}","branches_url":"https://api.github.com/repos/boardgaming/sun-tzu/branches{/branch}","tags_url":"https://api.github.com/repos/boardgaming/sun-tzu/tags","blobs_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/refs{/sha}","trees_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boardgaming/sun-tzu/statuses/{sha}","languages_url":"https://api.github.com/repos/boardgaming/sun-tzu/languages","stargazers_url":"https://api.github.com/repos/boardgaming/sun-tzu/stargazers","contributors_url":"https://api.github.com/repos/boardgaming/sun-tzu/contributors","subscribers_url":"https://api.github.com/repos/boardgaming/sun-tzu/subscribers","subscription_url":"https://api.github.com/repos/boardgaming/sun-tzu/subscription","commits_url":"https://api.github.com/repos/boardgaming/sun-tzu/commits{/sha}","git_commits_url":"https://api.github.com/repos/boardgaming/sun-tzu/git/commits{/sha}","comments_url":"https://api.github.com/repos/boardgaming/sun-tzu/comments{/number}","issue_comment_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues/comments{/number}","contents_url":"https://api.github.com/repos/boardgaming/sun-tzu/contents/{+path}","compare_url":"https://api.github.com/repos/boardgaming/sun-tzu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boardgaming/sun-tzu/merges","archive_url":"https://api.github.com/repos/boardgaming/sun-tzu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boardgaming/sun-tzu/downloads","issues_url":"https://api.github.com/repos/boardgaming/sun-tzu/issues{/number}","pulls_url":"https://api.github.com/repos/boardgaming/sun-tzu/pulls{/number}","milestones_url":"https://api.github.com/repos/boardgaming/sun-tzu/milestones{/number}","notifications_url":"https://api.github.com/repos/boardgaming/sun-tzu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boardgaming/sun-tzu/labels{/name}","releases_url":"https://api.github.com/repos/boardgaming/sun-tzu/releases{/id}","created_at":"2015-02-24T11:46:25Z","updated_at":"2015-03-02T21:57:23Z","pushed_at":"2015-03-06T18:44:23Z","git_url":"git://github.com/boardgaming/sun-tzu.git","ssh_url":"git@github.com:boardgaming/sun-tzu.git","clone_url":"https://github.com/boardgaming/sun-tzu.git","svn_url":"https://github.com/boardgaming/sun-tzu","homepage":null,"size":304,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":8,"forks":0,"open_issues":8,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28"},"html":{"href":"https://github.com/boardgaming/sun-tzu/pull/28"},"issue":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/issues/28"},"comments":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/issues/28/comments"},"review_comments":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28/comments"},"review_comment":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/pulls/28/commits"},"statuses":{"href":"https://api.github.com/repos/boardgaming/sun-tzu/statuses/46d2e53b88e95379f9e53f232a32a0e88054a9d5"}}}}