{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/comments/34032441","id":34032441,"diff_hunk":"@@ -0,0 +1,93 @@\n+<?php\n+define('INSTALL_ROOT',  realpath(__DIR__ . '/../../') . '/');\n+\n+// We always work with UTF8 encoding\n+mb_internal_encoding('UTF-8');\n+\n+// Make sure we have a timezone set\n+date_default_timezone_set('Europe/Paris');\n+\n+require __DIR__ . '/../../vendor/autoload.php';\n+\n+// Set an environment variable so that the instance will use content from test files\n+putenv(\"AUTOMATED_TESTS=true\");\n+\n+// Launch PHP dev server in the background\n+chdir(INSTALL_ROOT);\n+exec('php -S 0.0.0.0:8083 > /dev/null 2>&1 & echo $!', $output);\n+\n+// We will need the pid to kill it, beware, this is the pid of the php server started above\n+$pid = $output[0];\n+\n+// Pause to let time for the dev server to launch in the background\n+sleep(3);\n+\n+$json = [\n+    ['?action=listlocales&project=snippets&json', 200, \"[\\n    \\\"fr\\\",\\n    \\\"it\\\"\\n]\"],\n+    ['?action=listlocales&json', 400, \"[\\n    \\\"Please check you request: provide a project name, or a valid couple website+file.\\\"\\n]\"],\n+    ['?action=listlocales&website=2&file=page.lang&json', 200, \"[\\n    \\\"en-US\\\",\\n    \\\"it\\\"\\n]\"],\n+    ['?action=count&json', 200, \"{\\n    \\\"it\\\": 6,\\n    \\\"fr\\\": 0,\\n    \\\"en-US\\\": 0\\n}\"],\n+    ['?website=2&file=page.lang&json&locale=it', 200, \"{\\n    \\\"page.lang\\\": {\\n        \\\"it\\\": {\\n            \\\"Identical\\\": 2,\\n            \\\"Translated\\\": 13,\\n            \\\"Missing\\\": 1,\\n            \\\"Obsolete\\\": 1,\\n            \\\"tags\\\": [],\\n            \\\"activated\\\": true\\n        }\\n    }\\n}\"],\n+    ['?website=2&file=page.lang&json', 200, \"{\\n    \\\"page.lang\\\": {\\n        \\\"it\\\": {\\n            \\\"Identical\\\": 2,\\n            \\\"Translated\\\": 13,\\n            \\\"Missing\\\": 1,\\n            \\\"Obsolete\\\": 1,\\n            \\\"tags\\\": [],\\n            \\\"activated\\\": true\\n        }\\n    }\\n}\"],\n+    ['?website=foo&file=main.lang&json', 400, \"{\\n    \\\"error\\\": \\\"foo is not a supported website. Check the value and try again.\\\"\\n}\"],\n+    ['?action=snippets&locale=it', 200, \"{\\n    \\\"@@this is a test, do not remove@@\\\": \\\"Questo \\u00e8 un test\\\",\\n    \\\"Email\\\": \\\"Email\\\",\\n    \\\"Fifth string with %(one)s, %(two)s\\\": \\\"Quinta stringa con %(one)s, %(two)s e ancora %(two)s\\\",\\n    \\\"Fourth string with 90%% coverage\\\": \\\"Quarta stringa con copertura al 90%\\\",\\n    \\\"Hello\\\": \\\"Ciao\\\",\\n    \\\"Obsolete string\\\": \\\"Stringa obsoleta\\\",\\n    \\\"Press center\\\": \\\"Sala stampa\\\",\\n    \\\"Save file\\\": \\\"Salva file troppo lungo\\\",\\n    \\\"Second string with %(num)s tags\\\": \\\"Seconda stringa con %(num)s etichette\\\",\\n    \\\"Sixth string with %(one)s\\\": \\\"Sesta stringa con %(one)s e %(two)s\\\",\\n    \\\"String with %(num)s tags\\\": \\\"Stringa con etichette e variabile sbagliata\\\",\\n    \\\"String with multiple comments\\\": \\\"String con pi\\u00f9 commenti\\\",\\n    \\\"Third string with %s tags\\\": \\\"Terza stringa con variabile mancante\\\"\\n}\"],\n+    ['?action=coverage&locales=foo', 400, \"{\\n    \\\"error\\\": \\\"ERROR: locales is not an array.\\\"\\n}\"],\n+    ['?action=coverage', 400, \"{\\n    \\\"error\\\": \\\"ERROR: missing list of locales.\\\"\\n}\"],\n+    ['?website=2&file=main.lang&json', 400, \"{\\n    \\\"error\\\": \\\"File main.lang does not exist. Check the value and try again.\\\"\\n}\"],\n+    ['?action=translate&file=foo.lang&json', 400, \"{\\n    \\\"error\\\": \\\"<p>ERROR: file foo.lang does not exist<\\/p>\\\"\\n}\"],\n+    ['?action=translate&file=page.lang&json', 200, \"{\\n    \\\"Email\\\": {\\n        \\\"it\\\": \\\"Email\\\"\\n    },\\n    \\\"Hello\\\": {\\n        \\\"it\\\": \\\"Ciao\\\"\\n    },\\n    \\\"Save file\\\": {\\n        \\\"it\\\": \\\"Salva file troppo lungo\\\"\\n    },\\n    \\\"01\\\": {\\n        \\\"it\\\": \\\"1\\\"\\n    },\\n    \\\"String with multiple comments\\\": {\\n        \\\"it\\\": \\\"String con pi\\u00f9 commenti\\\"\\n    },\\n    \\\"Press center\\\": {\\n        \\\"it\\\": \\\"Sala stampa\\\"\\n    },\\n    \\\"@@this is a test, do not remove@@\\\": {\\n        \\\"it\\\": \\\"Questo \\u00e8 un test\\\"\\n    },\\n    \\\"String with %(num)s tags\\\": {\\n        \\\"it\\\": \\\"Stringa con etichette e variabile sbagliata\\\"\\n    },\\n    \\\"Second string with %(num)s tags\\\": {\\n        \\\"it\\\": \\\"Seconda stringa con %(num)s etichette\\\"\\n    },\\n    \\\"Third string with %s tags\\\": {\\n        \\\"it\\\": \\\"Terza stringa con variabile mancante\\\"\\n    },\\n    \\\"Fourth string with 90%% coverage\\\": {\\n        \\\"it\\\": \\\"Quarta stringa con copertura al 90%\\\"\\n    },\\n    \\\"Fifth string with %(one)s, %(two)s\\\": {\\n        \\\"it\\\": \\\"Quinta stringa con %(one)s, %(two)s e ancora %(two)s\\\"\\n    },\\n    \\\"Sixth string with %(one)s\\\": {\\n        \\\"it\\\": \\\"Sesta stringa con %(one)s e %(two)s\\\"\\n    }\\n}\"],\n+];\n+\n+$text = [\n+    ['?action=api&file=page.lang', 200, \"<ul>\\n<li><a href='?action=api&file=page.lang&stringid=54a2cf5e634dbba0be2bf8a55f79252f5c790bdb'>Browser</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=84add5b2952787581cb9a8851eef63d1ec75d22b'>Email</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0'>Hello</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=640ab2bae07bedc4c163f679a746f7ab7fb5d1fa'>Test</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=bedc846b24ca06a457bf9b9208de6b146969362f'>Save file</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=ddfe163345d338193ac2bdc183f8e9dcff904b43'>01</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=e27ab9a3b203bd8831760183e2bbff78878c5dac'>String with multiple comments</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=1c037c4d9e72bbf474008cf56eae8734368093e4'>Press center</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=a7b3f41052019d22a389a41e375534e65dd9dff3'>@@this is a test, do not remove@@</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=b075e68c4e2ae16b7e5fe1dec55ede7584706f55'>String with tag</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=268fbfe819c694d4d179d4943de7f7d4cec4b042'>String with %(num)s tags</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=9f13ceddb7ca0399b59b942f0c1d884870225f76'>Second string with %(num)s tags</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=4747af9ac14c7aa4985890e850b6452faf0ab649'>Third string with %s tags</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=c1b92fc8ff9a988f1729f7ffac55efab58cffc00'>Fourth string with 90%% coverage</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=f99de591a4f4f53a7335f41d68f0f28c422a8f10'>Fifth string with %(one)s, %(two)s</a></li>\\n<li><a href='?action=api&file=page.lang&stringid=3a5667ca2f63ce4baeb13bb10395e1197d041572'>Sixth string with %(one)s</a></li>\\n</ul>\\n\"],\n+];\n+\n+$number = [\n+    ['?action=coverage&locales[]=it&locales[]=fr', 200, '1.92'],\n+    ['?action=coverage&locales[]=fr', 200, '0.32'],\n+    ['?action=coverage&locales[]=foo', 200, '0.00'],\n+];\n+\n+$obj = new \\pchevrel\\Verif('Check API HTTP responses');\n+$obj->setHost('localhost:8083');\n+\n+$check = function ($object, $paths, $type) {\n+        foreach ($paths as $values) {\n+            list($path, $http_code, $content) = $values;\n+            switch ($type) {\n+                case 'json':\n+                    $object\n+                        ->setPath($path)\n+                        ->fetchContent()\n+                        ->hasResponseCode($http_code)\n+                        ->isJson()\n+                        ->isEqualTo($content);\n+                break;\n+                case 'number':\n+                    $object\n+                        ->setPath($path)\n+                        ->fetchContent()\n+                        ->hasResponseCode($http_code)\n+                        ->isNumeric()\n+                        ->isEqualTo($content);\n+                break;\n+                default:\n+                    $object\n+                        ->setPath($path)\n+                        ->fetchContent()\n+                        ->hasResponseCode($http_code)\n+                        ->isEqualTo($content);\n+                break;","path":"tests/functional/api.php","position":80,"original_position":80,"commit_id":"29e93e8f897a7c22867b7fadf063e4b945a9180a","original_commit_id":"29e93e8f897a7c22867b7fadf063e4b945a9180a","user":{"login":"pascalchevrel","id":454375,"avatar_url":"https://avatars.githubusercontent.com/u/454375?v=3","gravatar_id":"","url":"https://api.github.com/users/pascalchevrel","html_url":"https://github.com/pascalchevrel","followers_url":"https://api.github.com/users/pascalchevrel/followers","following_url":"https://api.github.com/users/pascalchevrel/following{/other_user}","gists_url":"https://api.github.com/users/pascalchevrel/gists{/gist_id}","starred_url":"https://api.github.com/users/pascalchevrel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pascalchevrel/subscriptions","organizations_url":"https://api.github.com/users/pascalchevrel/orgs","repos_url":"https://api.github.com/users/pascalchevrel/repos","events_url":"https://api.github.com/users/pascalchevrel/events{/privacy}","received_events_url":"https://api.github.com/users/pascalchevrel/received_events","type":"User","site_admin":false},"body":"There is a lot of method duplication, this would be probably simpler:\r\n```php\r\n$check = function ($paths, $type) use ($obj) {\r\n        foreach ($paths as $values) {\r\n            list($path, $http_code, $content) = $values;\r\n            $obj\r\n                ->setPath($path)\r\n                ->fetchContent()\r\n                ->hasResponseCode($http_code)\r\n                ->isEqualTo($content);\r\n\r\n            switch ($type) {\r\n                case 'json':\r\n                    $obj->isJson();\r\n                    break;\r\n                case 'number':\r\n                    $obj->isNumeric();\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n        }\r\n};\r\n```\r\nAlso please indent break statements:\r\nhttps://github.com/php-fig/fig-standards/blob/master/accepted/fr/PSR-2-coding-style-guide.md#52-switch-case","created_at":"2015-07-07T12:09:39Z","updated_at":"2015-07-07T12:09:39Z","html_url":"https://github.com/mozilla-l10n/langchecker/pull/337#discussion_r34032441","pull_request_url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337","_links":{"self":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/comments/34032441"},"html":{"href":"https://github.com/mozilla-l10n/langchecker/pull/337#discussion_r34032441"},"pull_request":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337","id":39001906,"html_url":"https://github.com/mozilla-l10n/langchecker/pull/337","diff_url":"https://github.com/mozilla-l10n/langchecker/pull/337.diff","patch_url":"https://github.com/mozilla-l10n/langchecker/pull/337.patch","issue_url":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/337","number":337,"state":"open","locked":false,"title":"Add functional tests to Langchecker JSON API","user":{"login":"TheoChevalier","id":1294206,"avatar_url":"https://avatars.githubusercontent.com/u/1294206?v=3","gravatar_id":"","url":"https://api.github.com/users/TheoChevalier","html_url":"https://github.com/TheoChevalier","followers_url":"https://api.github.com/users/TheoChevalier/followers","following_url":"https://api.github.com/users/TheoChevalier/following{/other_user}","gists_url":"https://api.github.com/users/TheoChevalier/gists{/gist_id}","starred_url":"https://api.github.com/users/TheoChevalier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheoChevalier/subscriptions","organizations_url":"https://api.github.com/users/TheoChevalier/orgs","repos_url":"https://api.github.com/users/TheoChevalier/repos","events_url":"https://api.github.com/users/TheoChevalier/events{/privacy}","received_events_url":"https://api.github.com/users/TheoChevalier/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-07-01T16:44:57Z","updated_at":"2015-07-07T12:09:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5ecaa34d6702eed72325abe92ffd655212a3a660","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337/commits","review_comments_url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337/comments","review_comment_url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/337/comments","statuses_url":"https://api.github.com/repos/mozilla-l10n/langchecker/statuses/29e93e8f897a7c22867b7fadf063e4b945a9180a","head":{"label":"TheoChevalier:functional-testing","ref":"functional-testing","sha":"29e93e8f897a7c22867b7fadf063e4b945a9180a","user":{"login":"TheoChevalier","id":1294206,"avatar_url":"https://avatars.githubusercontent.com/u/1294206?v=3","gravatar_id":"","url":"https://api.github.com/users/TheoChevalier","html_url":"https://github.com/TheoChevalier","followers_url":"https://api.github.com/users/TheoChevalier/followers","following_url":"https://api.github.com/users/TheoChevalier/following{/other_user}","gists_url":"https://api.github.com/users/TheoChevalier/gists{/gist_id}","starred_url":"https://api.github.com/users/TheoChevalier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheoChevalier/subscriptions","organizations_url":"https://api.github.com/users/TheoChevalier/orgs","repos_url":"https://api.github.com/users/TheoChevalier/repos","events_url":"https://api.github.com/users/TheoChevalier/events{/privacy}","received_events_url":"https://api.github.com/users/TheoChevalier/received_events","type":"User","site_admin":false},"repo":{"id":18602174,"name":"langchecker","full_name":"TheoChevalier/langchecker","owner":{"login":"TheoChevalier","id":1294206,"avatar_url":"https://avatars.githubusercontent.com/u/1294206?v=3","gravatar_id":"","url":"https://api.github.com/users/TheoChevalier","html_url":"https://github.com/TheoChevalier","followers_url":"https://api.github.com/users/TheoChevalier/followers","following_url":"https://api.github.com/users/TheoChevalier/following{/other_user}","gists_url":"https://api.github.com/users/TheoChevalier/gists{/gist_id}","starred_url":"https://api.github.com/users/TheoChevalier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheoChevalier/subscriptions","organizations_url":"https://api.github.com/users/TheoChevalier/orgs","repos_url":"https://api.github.com/users/TheoChevalier/repos","events_url":"https://api.github.com/users/TheoChevalier/events{/privacy}","received_events_url":"https://api.github.com/users/TheoChevalier/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/TheoChevalier/langchecker","description":"code to replicate the langchecker feature on my webdashboard","fork":true,"url":"https://api.github.com/repos/TheoChevalier/langchecker","forks_url":"https://api.github.com/repos/TheoChevalier/langchecker/forks","keys_url":"https://api.github.com/repos/TheoChevalier/langchecker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TheoChevalier/langchecker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TheoChevalier/langchecker/teams","hooks_url":"https://api.github.com/repos/TheoChevalier/langchecker/hooks","issue_events_url":"https://api.github.com/repos/TheoChevalier/langchecker/issues/events{/number}","events_url":"https://api.github.com/repos/TheoChevalier/langchecker/events","assignees_url":"https://api.github.com/repos/TheoChevalier/langchecker/assignees{/user}","branches_url":"https://api.github.com/repos/TheoChevalier/langchecker/branches{/branch}","tags_url":"https://api.github.com/repos/TheoChevalier/langchecker/tags","blobs_url":"https://api.github.com/repos/TheoChevalier/langchecker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TheoChevalier/langchecker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TheoChevalier/langchecker/git/refs{/sha}","trees_url":"https://api.github.com/repos/TheoChevalier/langchecker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TheoChevalier/langchecker/statuses/{sha}","languages_url":"https://api.github.com/repos/TheoChevalier/langchecker/languages","stargazers_url":"https://api.github.com/repos/TheoChevalier/langchecker/stargazers","contributors_url":"https://api.github.com/repos/TheoChevalier/langchecker/contributors","subscribers_url":"https://api.github.com/repos/TheoChevalier/langchecker/subscribers","subscription_url":"https://api.github.com/repos/TheoChevalier/langchecker/subscription","commits_url":"https://api.github.com/repos/TheoChevalier/langchecker/commits{/sha}","git_commits_url":"https://api.github.com/repos/TheoChevalier/langchecker/git/commits{/sha}","comments_url":"https://api.github.com/repos/TheoChevalier/langchecker/comments{/number}","issue_comment_url":"https://api.github.com/repos/TheoChevalier/langchecker/issues/comments{/number}","contents_url":"https://api.github.com/repos/TheoChevalier/langchecker/contents/{+path}","compare_url":"https://api.github.com/repos/TheoChevalier/langchecker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TheoChevalier/langchecker/merges","archive_url":"https://api.github.com/repos/TheoChevalier/langchecker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TheoChevalier/langchecker/downloads","issues_url":"https://api.github.com/repos/TheoChevalier/langchecker/issues{/number}","pulls_url":"https://api.github.com/repos/TheoChevalier/langchecker/pulls{/number}","milestones_url":"https://api.github.com/repos/TheoChevalier/langchecker/milestones{/number}","notifications_url":"https://api.github.com/repos/TheoChevalier/langchecker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TheoChevalier/langchecker/labels{/name}","releases_url":"https://api.github.com/repos/TheoChevalier/langchecker/releases{/id}","created_at":"2014-04-09T15:20:47Z","updated_at":"2014-09-02T01:23:36Z","pushed_at":"2015-07-06T23:27:34Z","git_url":"git://github.com/TheoChevalier/langchecker.git","ssh_url":"git@github.com:TheoChevalier/langchecker.git","clone_url":"https://github.com/TheoChevalier/langchecker.git","svn_url":"https://github.com/TheoChevalier/langchecker","homepage":null,"size":1095,"stargazers_count":0,"watchers_count":0,"language":"PHP","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":"mozilla-l10n:master","ref":"master","sha":"3aec0b51aec0f804a5159bc339852f5c17fdb509","user":{"login":"mozilla-l10n","id":8619669,"avatar_url":"https://avatars.githubusercontent.com/u/8619669?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-l10n","html_url":"https://github.com/mozilla-l10n","followers_url":"https://api.github.com/users/mozilla-l10n/followers","following_url":"https://api.github.com/users/mozilla-l10n/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-l10n/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-l10n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-l10n/subscriptions","organizations_url":"https://api.github.com/users/mozilla-l10n/orgs","repos_url":"https://api.github.com/users/mozilla-l10n/repos","events_url":"https://api.github.com/users/mozilla-l10n/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-l10n/received_events","type":"Organization","site_admin":false},"repo":{"id":11282767,"name":"langchecker","full_name":"mozilla-l10n/langchecker","owner":{"login":"mozilla-l10n","id":8619669,"avatar_url":"https://avatars.githubusercontent.com/u/8619669?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-l10n","html_url":"https://github.com/mozilla-l10n","followers_url":"https://api.github.com/users/mozilla-l10n/followers","following_url":"https://api.github.com/users/mozilla-l10n/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-l10n/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-l10n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-l10n/subscriptions","organizations_url":"https://api.github.com/users/mozilla-l10n/orgs","repos_url":"https://api.github.com/users/mozilla-l10n/repos","events_url":"https://api.github.com/users/mozilla-l10n/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-l10n/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla-l10n/langchecker","description":"Tool to analyze .lang files, used for mozilla.org and other Mozilla projects","fork":false,"url":"https://api.github.com/repos/mozilla-l10n/langchecker","forks_url":"https://api.github.com/repos/mozilla-l10n/langchecker/forks","keys_url":"https://api.github.com/repos/mozilla-l10n/langchecker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla-l10n/langchecker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla-l10n/langchecker/teams","hooks_url":"https://api.github.com/repos/mozilla-l10n/langchecker/hooks","issue_events_url":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla-l10n/langchecker/events","assignees_url":"https://api.github.com/repos/mozilla-l10n/langchecker/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla-l10n/langchecker/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla-l10n/langchecker/tags","blobs_url":"https://api.github.com/repos/mozilla-l10n/langchecker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla-l10n/langchecker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla-l10n/langchecker/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla-l10n/langchecker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla-l10n/langchecker/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla-l10n/langchecker/languages","stargazers_url":"https://api.github.com/repos/mozilla-l10n/langchecker/stargazers","contributors_url":"https://api.github.com/repos/mozilla-l10n/langchecker/contributors","subscribers_url":"https://api.github.com/repos/mozilla-l10n/langchecker/subscribers","subscription_url":"https://api.github.com/repos/mozilla-l10n/langchecker/subscription","commits_url":"https://api.github.com/repos/mozilla-l10n/langchecker/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla-l10n/langchecker/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla-l10n/langchecker/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla-l10n/langchecker/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla-l10n/langchecker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla-l10n/langchecker/merges","archive_url":"https://api.github.com/repos/mozilla-l10n/langchecker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla-l10n/langchecker/downloads","issues_url":"https://api.github.com/repos/mozilla-l10n/langchecker/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla-l10n/langchecker/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla-l10n/langchecker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla-l10n/langchecker/labels{/name}","releases_url":"https://api.github.com/repos/mozilla-l10n/langchecker/releases{/id}","created_at":"2013-07-09T13:18:12Z","updated_at":"2015-05-26T18:36:41Z","pushed_at":"2015-07-06T23:27:34Z","git_url":"git://github.com/mozilla-l10n/langchecker.git","ssh_url":"git@github.com:mozilla-l10n/langchecker.git","clone_url":"https://github.com/mozilla-l10n/langchecker.git","svn_url":"https://github.com/mozilla-l10n/langchecker","homepage":"https://l10n.mozilla-community.org/~pascalc/langchecker/","size":3324,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":2,"forks":4,"open_issues":2,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337"},"html":{"href":"https://github.com/mozilla-l10n/langchecker/pull/337"},"issue":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/337"},"comments":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/issues/337/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/pulls/337/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla-l10n/langchecker/statuses/29e93e8f897a7c22867b7fadf063e4b945a9180a"}}}}