GitHub PullRequestReviewCommentEvent at 2014-11-18 14:58:13
Repository: qunitjs.com
Actor: jzaefferer
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/comments/20509785","id":20509785,"diff_hunk":"@@ -0,0 +1,305 @@\n+<script>{\n+\t\"title\": \"QUnit 2.x Upgrade Guide\",\n+\t\"toc\": true\n+}</script>\n+\n+## Overview\n+\n+This guide will assist in upgrading from QUnit 1.x to QUnit 2.x. All breaking changes are listed below, explaining how to upgrade your code to work with QUnit 2.x.\n+\n+Note that all the new APIs of QUnit 2.0 are already usable in QUnit 1.16, allowing you to migrate step by step. QUnit 2.0 will include a migration layer that throws descriptive errors for all deprecated methods (<code>\"Global 'test()' method is removed, use 'QUnit.test() instead\"</code>), to help you migrate to the new APIs. QUnit 2.1+ will remove that layer, causing failures that will be more difficult to debug (<code>\"ReferenceError: test is not defined\"</code>).\n+\n+## Removed globals\n+\n+QUnit no longer exposes multiple global variables. The only global variable still exposed is `QUnit`. Use [`QUnit.module()`](http://api.qunitjs.com/QUnit.module/) and [`QUnit.test()`](http://api.qunitjs.com/QUnit.test/) to define your testsuite, and use the [`assert`](http://api.qunitjs.com/QUnit.assert/) argument in test callbacks to write assertions.\n+\n+The global `stop()` and `start()` methods are gone, replaced by [`assert.async()`](http://api.qunitjs.com/async/), which returns a callback. Execute this callback when your test is done.\n+\n+### Replace `module()` with `QUnit.module()`\n+\n+The global function `module()` is gone. Use [`QUnit.module()`](http://api.qunitjs.com/QUnit.module/) instead.\n+\n+Before:\n+\n+```js\n+module( \"router\" );\n+```\n+\n+After:\n+\n+```js\n+QUnit.module( \"router\" );\n+```\n+\n+### Replace `test()` with `QUnit.test()`\n+\n+The global function `test()` is gone, use [`QUnit.test()`](http://api.qunitjs.com/QUnit.test/) instead.\n+\n+Before:\n+\n+```js\n+test( \"defaults to home\" );\n+```\n+\n+After:\n+\n+```js\n+QUnit.test( \"defaults to home\" );\n+```\n+\n+### Replace `asyncTest()` with `QUnit.test()` and `assert.async()`\n+\n+The global function `asyncTest()` is gone. Use [`QUnit.test()`](http://api.qunitjs.com/QUnit.test/) and [`assert.async()`](http://api.qunitjs.com/async/) instead.\n+\n+Before:\n+\n+```js\n+asyncTest( \"navigates to new page (async)\", function( assert ) {\n+\trouter.navigate(function( newPage ) {\n+\t\tassert.equal( newPage.id, 1 );\n+\t\tstart();\n+\t})\n+});\n+```\n+\n+After:\n+\n+```js\n+QUnit.test( \"navigates to new page (async)\", function( assert ) {\n+\tvar done = assert.async();\n+\trouter.navigate(function( newPage ) {\n+\t\tassert.equal( newPage.id, 1 );\n+\t\tdone();\n+\t})\n+});\n+```\n+\n+### Replace `stop()` and `start()` with `assert.async()`\n+\n+The global functions `stop()` and `start()` are gone. Use [`assert.async()`](http://api.qunitjs.com/async/) instead, which returns a \"done\" function that should be called when the asynchronous operation has completed.\n+\n+Before:\n+\n+```js\n+QUnit.test( \"navigates to new page (async)\", function( assert ) {\n+\tstop();\n+\trouter.navigate(function( newPage ) {\n+\t\tassert.equal( newPage.id, 1 );\n+\t\tstart();\n+\t})\n+});\n+```\n+\n+After:\n+\n+```js\n+QUnit.test( \"navigates to new page (async)\", function( assert ) {\n+\tvar done = assert.async();\n+\trouter.navigate(function( newPage ) {\n+\t\tassert.equal( newPage.id, 1 );\n+\t\tdone();\n+\t})\n+});\n+```\n+\n+### Replace `expect()` with `assert.expect()`\n+\n+The global function `expect()` is gone. Use [`assert.expect()`](http://api.qunitjs.com/expect/) instead.\n+\n+Before:\n+\n+```js\n+QUnit.test( \"refresh (sync)\", function( assert ) {\n+\texpect( 1 );\n+\trouter.refresh(function( currentPage ) {\n+\t\tassert.equal( currentPage.id, 2 );\n+\t});\n+});\n+```\n+\n+After:\n+\n+```js\n+QUnit.test( \"refresh (sync)\", function( assert ) {\n+\tassert.expect( 1 );\n+\trouter.refresh(function( currentPage ) {\n+\t\tassert.equal( currentPage.id, 2 );\n+\t});\n+});\n+```\n+\n+### Replace global assertions with `assert` arguments\n+\n+All global assertions, like `equal()` and `deepEqual()` are gone. Use `assert` instead, like [`assert.equal()`](http://api.qunitjs.com/equal/) or [`assert.deepEqual()`](http://api.qunitjs.com/deepEqual/).\n+\n+Here are all assertion methods affected by this change in alphabetic order: [`deepEqual()`](http://api.qunitjs.com/deepEqual/), [`equal()`](http://api.qunitjs.com/equal/), [`notDeepEqual()`](http://api.qunitjs.com/notDeepEqual/), [`notEqual()`](http://api.qunitjs.com/notEqual/), [`notPropEqual()`](http://api.qunitjs.com/notPropEqual/), [`notStrictEqual()`](http://api.qunitjs.com/notStrictEqual/), [`ok()`](http://api.qunitjs.com/ok/), [`propEqual()`](http://api.qunitjs.com/propEqual/), [`strictEqual()`](http://api.qunitjs.com/strictEqual/), [`throws()`](http://api.qunitjs.com/throws/).\n+\n+Before:\n+\n+```js\n+QUnit.test( \"static properties\", function() {\n+\tok( router.initialized );\n+\tequal( router.currentPage.id, 3 );\n+\tdeepEqual( router.currentPage, {\n+\t\tid: 3,\n+\t\tpath: \"/about\"\n+\t});\n+});\n+```\n+\n+After:\n+\n+```js\n+QUnit.test( \"static properties\", function( assert ) {\n+\tassert.ok( router.initialized );\n+\tassert.equal( router.currentPage.id, 3 );\n+\tassert.deepEqual( router.currentPage, {\n+\t\tid: 3,\n+\t\tpath: \"/about\"\n+\t});\n+});\n+```\n+\n+\n+## Rename module hooks\n+\n+The [module hooks](http://api.qunitjs.com/QUnit.module/) `setup` and `teardown` have been renamed to `beforeEach` and `afterEach`, to make it more obvious that they run for each test within a module.\n+\n+Before:\n+\n+```js\n+QUnit.module( \"router\", {\n+\tsetup: function( assert ) {\n+\t\tthis.router = new Router();\n+\t},\n+\tteardown: function( assert ) {\n+\t\tthis.router.destroy();\n+\t}\n+});\n+```\n+\n+After:\n+\n+```js\n+QUnit.module( \"router\", {\n+\tbeforeEach: function( assert ) {\n+\t\tthis.router = new Router();\n+\t},\n+\tafterEach: function( assert ) {\n+\t\tthis.router.destroy();\n+\t}\n+});\n+```\n+\n+\n+## Removed and modified QUnit methods and properties\n+\n+A few methods and properties in the `QUnit` namespace have been modified or removed.\n+\n+### Replace `QUnit.done = callback` with `QUnit.done( callback )` for all reporting callbacks\n+\n+For several versions of QUnit before 2.0, custom reporters could be registered by calling the appropiate methods with a callback function. If your code still uses the old approach of overwriting a property on the `QUnit` object, replace that by calling the method instead.\n+\n+This applies to all reporting callbacks, specifically: [`begin`](http://api.qunitjs.com/QUnit.begin/), [`done`](http://api.qunitjs.com/QUnit.done/), [`log`](http://api.qunitjs.com/QUnit.log/), [`moduleDone`](http://api.qunitjs.com/QUnit.moduleDone/), [`moduleStart`](http://api.qunitjs.com/QUnit.moduleStart/), [`testDone`](http://api.qunitjs.com/QUnit.testDone/), [`testStart`](http://api.qunitjs.com/QUnit.testStart/).\n+\n+Before:\n+\n+```js\n+QUnit.done = function( results ) {\n+\tconsole.log( results );\n+};\n+```\n+\n+After:\n+\n+```js\n+QUnit.done(function( results ) {\n+\tconsole.log( results );\n+});\n+```\n+\n+### Replace `QUnit.push()` with `this.push()`\n+\n+To implement custom assertions, assign functions to [`QUnit.assert`](http://api.qunitjs.com/QUnit.assert/), inside use [`this.push()`](http://api.qunitjs.com/push/), replacing `QUnit.push`. This way, the assertion will be directly related to its test context, preventing asynchronous tests leaking assertions to other tests.\n+\n+Before:\n+\n+```js\n+QUnit.assert.mod2 = function( value, expected, message ) {\n+    var actual = value % 2;\n+    QUnit.push( actual === expected, actual, expected, message );\n+};\n+```\n+\n+After:\n+\n+```js\n+QUnit.assert.mod2 = function( value, expected, message ) {\n+    var actual = value % 2;\n+    this.push( actual === expected, actual, expected, message );\n+};\n+```\n+\n+### Stop using `QUnit.init`, no replacement\n+\n+This method used to reinitialize the test runner. It should never have been exposed as a public method and is now gone, without replacement. If you've built a setup that requires the use of `QUnit.init`, contact us ([issue tracker](https://github.com/jquery/qunit/issues), [forum](https://forum.jquery.com/qunit-and-testing), [IRC](irc://irc.freenode.net/#jquery-dev)) and we can recommend a replacement.\n+\n+### Stop using `QUnit.reset`, split one test into multiple tests\n+\n+This method used to give access to QUnit's internal fixture reset. This is now gone, without replacement. If your code is using it, you probably need to split affected tests into multiple tests.","path":"pages/upgrade-guide-2.x.md","position":249,"original_position":249,"commit_id":"a7242d11fe83e1ea0871051ef0e103a85eaf2f3d","original_commit_id":"a7242d11fe83e1ea0871051ef0e103a85eaf2f3d","user":{"login":"jzaefferer","id":52585,"avatar_url":"https://avatars.githubusercontent.com/u/52585?v=3","gravatar_id":"","url":"https://api.github.com/users/jzaefferer","html_url":"https://github.com/jzaefferer","followers_url":"https://api.github.com/users/jzaefferer/followers","following_url":"https://api.github.com/users/jzaefferer/following{/other_user}","gists_url":"https://api.github.com/users/jzaefferer/gists{/gist_id}","starred_url":"https://api.github.com/users/jzaefferer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzaefferer/subscriptions","organizations_url":"https://api.github.com/users/jzaefferer/orgs","repos_url":"https://api.github.com/users/jzaefferer/repos","events_url":"https://api.github.com/users/jzaefferer/events{/privacy}","received_events_url":"https://api.github.com/users/jzaefferer/received_events","type":"User","site_admin":false},"body":"I don't see how qunit-composite is relevant here.","created_at":"2014-11-18T14:58:13Z","updated_at":"2014-11-18T14:58:13Z","html_url":"https://github.com/jquery/qunitjs.com/pull/88#discussion_r20509785","pull_request_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88","_links":{"self":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/comments/20509785"},"html":{"href":"https://github.com/jquery/qunitjs.com/pull/88#discussion_r20509785"},"pull_request":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88"}}},"pull_request":{"url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88","id":22565668,"html_url":"https://github.com/jquery/qunitjs.com/pull/88","diff_url":"https://github.com/jquery/qunitjs.com/pull/88.diff","patch_url":"https://github.com/jquery/qunitjs.com/pull/88.patch","issue_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/88","number":88,"state":"open","locked":false,"title":"Pages: Upgade guide to QUnit 2.x","user":{"login":"jzaefferer","id":52585,"avatar_url":"https://avatars.githubusercontent.com/u/52585?v=3","gravatar_id":"","url":"https://api.github.com/users/jzaefferer","html_url":"https://github.com/jzaefferer","followers_url":"https://api.github.com/users/jzaefferer/followers","following_url":"https://api.github.com/users/jzaefferer/following{/other_user}","gists_url":"https://api.github.com/users/jzaefferer/gists{/gist_id}","starred_url":"https://api.github.com/users/jzaefferer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzaefferer/subscriptions","organizations_url":"https://api.github.com/users/jzaefferer/orgs","repos_url":"https://api.github.com/users/jzaefferer/repos","events_url":"https://api.github.com/users/jzaefferer/events{/privacy}","received_events_url":"https://api.github.com/users/jzaefferer/received_events","type":"User","site_admin":false},"body":"Fixes #86 \r\n\r\nFirst draft for an upgrade guide. There are no links to this page, yet. There are layout issues, may need to port some CSS from jqueryui.com.\r\n\r\nWould be good to get some feedback on the format. Also, am I missing something?","created_at":"2014-10-10T14:54:00Z","updated_at":"2014-11-18T14:58:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bd902e1b5182be6e2438532562a653f91eb277f3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88/commits","review_comments_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88/comments","review_comment_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls/comments/{number}","comments_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/88/comments","statuses_url":"https://api.github.com/repos/jquery/qunitjs.com/statuses/a7242d11fe83e1ea0871051ef0e103a85eaf2f3d","head":{"label":"jquery:upgrade-guide","ref":"upgrade-guide","sha":"a7242d11fe83e1ea0871051ef0e103a85eaf2f3d","user":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"repo":{"id":4015228,"name":"qunitjs.com","full_name":"jquery/qunitjs.com","owner":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jquery/qunitjs.com","description":"QUnit web site content","fork":false,"url":"https://api.github.com/repos/jquery/qunitjs.com","forks_url":"https://api.github.com/repos/jquery/qunitjs.com/forks","keys_url":"https://api.github.com/repos/jquery/qunitjs.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jquery/qunitjs.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jquery/qunitjs.com/teams","hooks_url":"https://api.github.com/repos/jquery/qunitjs.com/hooks","issue_events_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/events{/number}","events_url":"https://api.github.com/repos/jquery/qunitjs.com/events","assignees_url":"https://api.github.com/repos/jquery/qunitjs.com/assignees{/user}","branches_url":"https://api.github.com/repos/jquery/qunitjs.com/branches{/branch}","tags_url":"https://api.github.com/repos/jquery/qunitjs.com/tags","blobs_url":"https://api.github.com/repos/jquery/qunitjs.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jquery/qunitjs.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jquery/qunitjs.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/jquery/qunitjs.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jquery/qunitjs.com/statuses/{sha}","languages_url":"https://api.github.com/repos/jquery/qunitjs.com/languages","stargazers_url":"https://api.github.com/repos/jquery/qunitjs.com/stargazers","contributors_url":"https://api.github.com/repos/jquery/qunitjs.com/contributors","subscribers_url":"https://api.github.com/repos/jquery/qunitjs.com/subscribers","subscription_url":"https://api.github.com/repos/jquery/qunitjs.com/subscription","commits_url":"https://api.github.com/repos/jquery/qunitjs.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/jquery/qunitjs.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/jquery/qunitjs.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/comments/{number}","contents_url":"https://api.github.com/repos/jquery/qunitjs.com/contents/{+path}","compare_url":"https://api.github.com/repos/jquery/qunitjs.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jquery/qunitjs.com/merges","archive_url":"https://api.github.com/repos/jquery/qunitjs.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jquery/qunitjs.com/downloads","issues_url":"https://api.github.com/repos/jquery/qunitjs.com/issues{/number}","pulls_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls{/number}","milestones_url":"https://api.github.com/repos/jquery/qunitjs.com/milestones{/number}","notifications_url":"https://api.github.com/repos/jquery/qunitjs.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jquery/qunitjs.com/labels{/name}","releases_url":"https://api.github.com/repos/jquery/qunitjs.com/releases{/id}","created_at":"2012-04-13T11:24:35Z","updated_at":"2014-11-04T21:45:53Z","pushed_at":"2014-11-06T15:34:14Z","git_url":"git://github.com/jquery/qunitjs.com.git","ssh_url":"git@github.com:jquery/qunitjs.com.git","clone_url":"https://github.com/jquery/qunitjs.com.git","svn_url":"https://github.com/jquery/qunitjs.com","homepage":"qunitjs.com","size":3063,"stargazers_count":47,"watchers_count":47,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"open_issues_count":12,"forks":30,"open_issues":12,"watchers":47,"default_branch":"master"}},"base":{"label":"jquery:master","ref":"master","sha":"32a434e35da5b2e5bcfb19e79a627eec72d365ec","user":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"repo":{"id":4015228,"name":"qunitjs.com","full_name":"jquery/qunitjs.com","owner":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jquery/qunitjs.com","description":"QUnit web site content","fork":false,"url":"https://api.github.com/repos/jquery/qunitjs.com","forks_url":"https://api.github.com/repos/jquery/qunitjs.com/forks","keys_url":"https://api.github.com/repos/jquery/qunitjs.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jquery/qunitjs.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jquery/qunitjs.com/teams","hooks_url":"https://api.github.com/repos/jquery/qunitjs.com/hooks","issue_events_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/events{/number}","events_url":"https://api.github.com/repos/jquery/qunitjs.com/events","assignees_url":"https://api.github.com/repos/jquery/qunitjs.com/assignees{/user}","branches_url":"https://api.github.com/repos/jquery/qunitjs.com/branches{/branch}","tags_url":"https://api.github.com/repos/jquery/qunitjs.com/tags","blobs_url":"https://api.github.com/repos/jquery/qunitjs.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jquery/qunitjs.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jquery/qunitjs.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/jquery/qunitjs.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jquery/qunitjs.com/statuses/{sha}","languages_url":"https://api.github.com/repos/jquery/qunitjs.com/languages","stargazers_url":"https://api.github.com/repos/jquery/qunitjs.com/stargazers","contributors_url":"https://api.github.com/repos/jquery/qunitjs.com/contributors","subscribers_url":"https://api.github.com/repos/jquery/qunitjs.com/subscribers","subscription_url":"https://api.github.com/repos/jquery/qunitjs.com/subscription","commits_url":"https://api.github.com/repos/jquery/qunitjs.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/jquery/qunitjs.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/jquery/qunitjs.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/jquery/qunitjs.com/issues/comments/{number}","contents_url":"https://api.github.com/repos/jquery/qunitjs.com/contents/{+path}","compare_url":"https://api.github.com/repos/jquery/qunitjs.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jquery/qunitjs.com/merges","archive_url":"https://api.github.com/repos/jquery/qunitjs.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jquery/qunitjs.com/downloads","issues_url":"https://api.github.com/repos/jquery/qunitjs.com/issues{/number}","pulls_url":"https://api.github.com/repos/jquery/qunitjs.com/pulls{/number}","milestones_url":"https://api.github.com/repos/jquery/qunitjs.com/milestones{/number}","notifications_url":"https://api.github.com/repos/jquery/qunitjs.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jquery/qunitjs.com/labels{/name}","releases_url":"https://api.github.com/repos/jquery/qunitjs.com/releases{/id}","created_at":"2012-04-13T11:24:35Z","updated_at":"2014-11-04T21:45:53Z","pushed_at":"2014-11-06T15:34:14Z","git_url":"git://github.com/jquery/qunitjs.com.git","ssh_url":"git@github.com:jquery/qunitjs.com.git","clone_url":"https://github.com/jquery/qunitjs.com.git","svn_url":"https://github.com/jquery/qunitjs.com","homepage":"qunitjs.com","size":3063,"stargazers_count":47,"watchers_count":47,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"open_issues_count":12,"forks":30,"open_issues":12,"watchers":47,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88"},"html":{"href":"https://github.com/jquery/qunitjs.com/pull/88"},"issue":{"href":"https://api.github.com/repos/jquery/qunitjs.com/issues/88"},"comments":{"href":"https://api.github.com/repos/jquery/qunitjs.com/issues/88/comments"},"review_comments":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88/comments"},"review_comment":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/jquery/qunitjs.com/pulls/88/commits"},"statuses":{"href":"https://api.github.com/repos/jquery/qunitjs.com/statuses/a7242d11fe83e1ea0871051ef0e103a85eaf2f3d"}}}}