{"action":"created","comment":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41610937","id":41610937,"diff_hunk":"@@ -1,3 +1,323 @@\n-<html>\n-    <!-- Ваш замечательный код -->\n+<!DOCTYPE html>\n+<html lang=\"ru\">\n+<head>\n+    <meta charset=\"UTF-8\">\n+    <meta name=\"author\" content=\"@doochik\">\n+    <title>Яндекс.Блог</title>\n+</head>\n+<body>\n+    <header>\n+        <h1>Блог компании <span style=\"color:red\">Яндекс</span></h1>\n+    </header>\n+    <hr>\n+    <main>\n+        <article>\n+            <h2>\n+                <span style=\"color:red\">ЯНДЕКС</span>.ПОЧТА: КАК МЫ ИЗМЕРЯЕМ СКОРОСТЬ ЗАГРУЗКИ И УЛУЧШАЕМ ЕЁ\n+            </h2>\n+            <p>\n+                Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни то,\n+                какой он красивый, ни то, какой он удобный. Никому не понравится, когда все\n+                тормозит. Мы регулярно добавляем в <span style=\"color:red\">Яндекс</span>.Почту \n+                новую функциональность,иногда — исправляем ошибки, а это значит, у нас\n+                постоянно появляются новый код и новая логика.Всё это напрямую влияет на \n+                скорость работы интерфейса.\n+            </p>\n+            <h3>Что мы измеряем</h3>\n+            <h4>Этапы первой загрузки:</h4>\n+            <ul>\n+                <li>подготовка;</li>\n+                <li>\n+                    загрузка статики (\n+                    <abbr title=\"HyperText Transfer Protocol\">\n+                        HTTP\n+                    </abbr>-\n+                    запрос и парсинг);\n+                </li>\n+                <li>исполнение модулей;</li>\n+                <li>инициализация базовых объектов;</li>\n+                <li>отрисовка.</li>\n+            </ul>\n+            <h4>Этапы отрисовки любой страницы:</h4>\n+            <ul>\n+                <li>подготовка к запросу на сервер;</li>\n+                <li>запрос данных с сервера;</li>\n+                <li>шаблонизация;</li>\n+                <li>\n+                    обновление\n+                    <abbr title=\"Document Object Model\">\n+                        DOM\n+                    </abbr>\n+                    .\n+                </li>\n+            </ul>\n+            <p>\n+                — <q>Ок, теперь у нас есть метрики, мы можем отправить их на сервер</q> - говорим мы<br>\n+                — <q>Что же дальше?</q> - вопрошаете вы<br>\n+                — <q>А давай построим график!</q> - отвечаем мы<br>\n+                — <q>А что будем считать?</q> - уточняете вы <br>\n+            </p>\n+            <p>\n+                Как вы знаете, <dfn>медиана</dfn> – это серединное, а не среднее значение в выборке.\n+                Если у нас имеются числа 1, 2, 2, 3, 8, 10, 20, то медиана – 3, а среднее – 6,5.\n+                В общем случае медиана отлично показывает, сколько грузится средний пользователь.\n+            </p>\n+            <p>\n+                В случае ускорения или замедления медиана, конечно, изменится. Но она не может\n+                рассказать, сколько пользователей ускорилось, а сколько замедлилось.\n+            </p>\n+            <p>\n+                <abbr title=\"Application Performance Index\">\n+                    APDEX\n+                </abbr>\n+                – метрика, которая сразу говорит: хорошо или плохо. Метрика\n+                работает очень просто. Мы выбираем временной интервал [0; <var>t</var>] такой, что если\n+                время показа страницы попало в него, то пользователь счастлив. Берем еще один\n+                интервал, (<var>t</var>; 4<var>t</var>] (в четыре раза больше первого), и считаем, \n+                что если страница показана за это время, то пользователь в целом удовлетворен \n+                скоростью работы, но уже не настолько счастлив. И применяем формулу:<br><br>\n+                (<var>кол-во счастливых пользователей</var> + <var>кол-во удовлетворенных</var> / 2) /\n+                (<var>кол-во всех</var>).<br><br>\n+                Получается значение от нуля до единицы, которое, видимо, лучше всего показывает,\n+                хорошо или плохо работает почта.\n+            </p>\n+            <h3>Как мы измеряем</h3>\n+            <p>\n+                Сейчас модуль обновления сам логирует все свои стадии, и можно легко понять\n+                причину замедления: медленнее стал отвечать сервер либо слишком долго\n+                выполняется JavaScript. Выглядит это примерно так:<br><br>\n+                <code>\n+                    this.timings['look-ma-im-start'] = Date.now();<br>\n+                    this.timings['look-ma-finish'] = Date.now();\n+                </code><br><br>\n+                C помощью <code>Date.now()</code> мы получаем текущее время. Все тайминги собираются и при\n+                отправке рассчитываются. На этапах разница между\n+                <var>“end”</var> и <var>“start”</var> не считается,\n+                а все вычисления производятся в конце:<br><br>\n+                <code>\n+                    var totalTime = this.timings['look-ma-finish'] - this.timings['look-ma-im-start'];\n+                </code><br><br>\n+                И на сервер прилетают подобные записи:<br><br>\n+                <code>serverResponse=50&domUpdate=60</code>\n+            </p>\n+            <h3>Как мы ускоряем</h3>\n+            <p>Чтобы снизить время загрузки почты при выходе новых версий, мы уже делаем следующее:</p>\n+            <ul>\n+                <li>включаем gzip;</li>\n+                <li>выставляем заголовки кэширования;</li>\n+                <li>\n+                    фризим\n+                    <abbr title=\"Cascading Style Sheet\">\n+                        CSS\n+                    </abbr>,\n+                    <abbr title=\"JavaScript\">\n+                        JS\n+                    </abbr>,\n+                    шаблоны и картинки;\n+                </li>\n+                <li>\n+                    используем\n+                    <abbr title=\"Content Delivery Network\">\n+                        CDN\n+                    </abbr>;\n+                </li>\n+            </ul>\n+            <p>\n+                Мы подумали: «А что если хранить где-то старую версию файлов, а при выходе новой\n+                передавать только diff между ней и той, которая сохранена у пользователя?»\n+                В браузере же останется просто наложить патч на клиенте.\n+            </p>\n+            <p>\n+                На самое деле эта идея не нова. Уже существуют стандарты для HTTP — например,\n+                RFC 3229 «Delta encoding in HTTP» и «Google SDHC», — но по разным причинам они\n+                не получили должного распространения в браузерах и на серверах.\n+            </p>\n+            <p>\n+                Мы же решили сделать свой аналог на JS. Чтобы реализовать этот метод обновления,\n+                начали искать реализации diff на JS. На популярных хостингах кода нашли\n+                библиотеки:\n+            </p>\n+            <ul>\n+                <li>VCDiff</li>\n+                <li>google-diff-patch-match</li>\n+            </ul>\n+            <p>Для окончательного выбора библиотеки нам нужно сравнить:</p>\n+            <table>\n+                <thead>\n+                    <tr>\n+                        <th>Библиотека</th>\n+                        <th>IE 9</th>\n+                        <th>Opera 12</th>\n+                    </tr>\n+                </thead>\n+                <tbody>\n+                    <tr>\n+                        <td>vcdiff</td>\n+                        <td>8</td>\n+                        <td>1363</td>\n+                    </tr>\n+                    <tr>\n+                        <td>google diff </td>\n+                        <td>5</td>\n+                        <td>76</td>\n+                    </tr>\n+                </tbody>\n+            </table>\n+            <p>\n+                После того как мы определились с библиотекой для диффа, нужно определиться с тем,\n+                где и как хранить статику на клиенте.\n+            </p>\n+            <p>Формат файла с патчами для проекта выглядит так:</p>\n+            <pre>\n+            <code> \n+[\n+    {\n+        \"k\": \"jane.css\",\n+        \"p\": [patch],\n+        \"s\": 4554\n+    },\n+    {\n+        \"k\": \"jane.css\",\n+        \"p\": [patch],\n+        \"s\": 4554\n+    }\n+]                     \n+                </code>\n+            </pre>\n+            <p>\n+                То есть это обычный массив из объектов. Каждый объект — отдельный ресурс. У\n+                каждого объекта есть три свойства. <var>k</var> — названия ключа в localStorage для этого\n+                ресурса. <var>p</var> — патч для ресурса, который сгенерировал vcdiff.\n+                <var>s</var> — чексумма для\n+                ресурса актуальной версии, чтобы потом можно было проверить правильность\n+                наложения патча на клиенте. Чексумма вычисляется по алгоритму Флетчера.\n+            </p>\n+            <aside>\n+                Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS)","path":"index.html","position":198,"original_position":198,"commit_id":"08c4408423cbb70b6055a7955db7d227b3be6047","original_commit_id":"08c4408423cbb70b6055a7955db7d227b3be6047","user":{"login":"sinseveriya","id":5352441,"avatar_url":"https://avatars.githubusercontent.com/u/5352441?v=3","gravatar_id":"","url":"https://api.github.com/users/sinseveriya","html_url":"https://github.com/sinseveriya","followers_url":"https://api.github.com/users/sinseveriya/followers","following_url":"https://api.github.com/users/sinseveriya/following{/other_user}","gists_url":"https://api.github.com/users/sinseveriya/gists{/gist_id}","starred_url":"https://api.github.com/users/sinseveriya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sinseveriya/subscriptions","organizations_url":"https://api.github.com/users/sinseveriya/orgs","repos_url":"https://api.github.com/users/sinseveriya/repos","events_url":"https://api.github.com/users/sinseveriya/events{/privacy}","received_events_url":"https://api.github.com/users/sinseveriya/received_events","type":"User","site_admin":false},"body":"Определение","created_at":"2015-10-09T09:10:02Z","updated_at":"2015-10-09T09:10:02Z","html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/94#discussion_r41610937","pull_request_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94","_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41610937"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/94#discussion_r41610937"},"pull_request":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94"}}},"pull_request":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94","id":47058708,"html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/94","diff_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/94.diff","patch_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/94.patch","issue_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/94","number":94,"state":"open","locked":false,"title":"Дубиковский Саша","user":{"login":"lokomilan","id":8557502,"avatar_url":"https://avatars.githubusercontent.com/u/8557502?v=3","gravatar_id":"","url":"https://api.github.com/users/lokomilan","html_url":"https://github.com/lokomilan","followers_url":"https://api.github.com/users/lokomilan/followers","following_url":"https://api.github.com/users/lokomilan/following{/other_user}","gists_url":"https://api.github.com/users/lokomilan/gists{/gist_id}","starred_url":"https://api.github.com/users/lokomilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lokomilan/subscriptions","organizations_url":"https://api.github.com/users/lokomilan/orgs","repos_url":"https://api.github.com/users/lokomilan/repos","events_url":"https://api.github.com/users/lokomilan/events{/privacy}","received_events_url":"https://api.github.com/users/lokomilan/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-10-07T17:44:12Z","updated_at":"2015-10-09T09:10:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3f42b89f6de2b13ade2acd0b0a2d79eb1159522a","assignee":{"login":"sinseveriya","id":5352441,"avatar_url":"https://avatars.githubusercontent.com/u/5352441?v=3","gravatar_id":"","url":"https://api.github.com/users/sinseveriya","html_url":"https://github.com/sinseveriya","followers_url":"https://api.github.com/users/sinseveriya/followers","following_url":"https://api.github.com/users/sinseveriya/following{/other_user}","gists_url":"https://api.github.com/users/sinseveriya/gists{/gist_id}","starred_url":"https://api.github.com/users/sinseveriya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sinseveriya/subscriptions","organizations_url":"https://api.github.com/users/sinseveriya/orgs","repos_url":"https://api.github.com/users/sinseveriya/repos","events_url":"https://api.github.com/users/sinseveriya/events{/privacy}","received_events_url":"https://api.github.com/users/sinseveriya/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94/commits","review_comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94/comments","review_comment_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments{/number}","comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/94/comments","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/08c4408423cbb70b6055a7955db7d227b3be6047","head":{"label":"lokomilan:master","ref":"master","sha":"08c4408423cbb70b6055a7955db7d227b3be6047","user":{"login":"lokomilan","id":8557502,"avatar_url":"https://avatars.githubusercontent.com/u/8557502?v=3","gravatar_id":"","url":"https://api.github.com/users/lokomilan","html_url":"https://github.com/lokomilan","followers_url":"https://api.github.com/users/lokomilan/followers","following_url":"https://api.github.com/users/lokomilan/following{/other_user}","gists_url":"https://api.github.com/users/lokomilan/gists{/gist_id}","starred_url":"https://api.github.com/users/lokomilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lokomilan/subscriptions","organizations_url":"https://api.github.com/users/lokomilan/orgs","repos_url":"https://api.github.com/users/lokomilan/repos","events_url":"https://api.github.com/users/lokomilan/events{/privacy}","received_events_url":"https://api.github.com/users/lokomilan/received_events","type":"User","site_admin":false},"repo":{"id":43817429,"name":"verstka-tasks-1","full_name":"lokomilan/verstka-tasks-1","owner":{"login":"lokomilan","id":8557502,"avatar_url":"https://avatars.githubusercontent.com/u/8557502?v=3","gravatar_id":"","url":"https://api.github.com/users/lokomilan","html_url":"https://github.com/lokomilan","followers_url":"https://api.github.com/users/lokomilan/followers","following_url":"https://api.github.com/users/lokomilan/following{/other_user}","gists_url":"https://api.github.com/users/lokomilan/gists{/gist_id}","starred_url":"https://api.github.com/users/lokomilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lokomilan/subscriptions","organizations_url":"https://api.github.com/users/lokomilan/orgs","repos_url":"https://api.github.com/users/lokomilan/repos","events_url":"https://api.github.com/users/lokomilan/events{/privacy}","received_events_url":"https://api.github.com/users/lokomilan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lokomilan/verstka-tasks-1","description":"Задача к лекции «HTML, I часть»","fork":true,"url":"https://api.github.com/repos/lokomilan/verstka-tasks-1","forks_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/forks","keys_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/teams","hooks_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/hooks","issue_events_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/issues/events{/number}","events_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/events","assignees_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/assignees{/user}","branches_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/branches{/branch}","tags_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/tags","blobs_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/statuses/{sha}","languages_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/languages","stargazers_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/stargazers","contributors_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/contributors","subscribers_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/subscribers","subscription_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/subscription","commits_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/contents/{+path}","compare_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/merges","archive_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/downloads","issues_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/issues{/number}","pulls_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/pulls{/number}","milestones_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/milestones{/number}","notifications_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/labels{/name}","releases_url":"https://api.github.com/repos/lokomilan/verstka-tasks-1/releases{/id}","created_at":"2015-10-07T13:25:46Z","updated_at":"2015-10-07T13:25:47Z","pushed_at":"2015-10-07T21:03:53Z","git_url":"git://github.com/lokomilan/verstka-tasks-1.git","ssh_url":"git@github.com:lokomilan/verstka-tasks-1.git","clone_url":"https://github.com/lokomilan/verstka-tasks-1.git","svn_url":"https://github.com/lokomilan/verstka-tasks-1","homepage":"","size":113,"stargazers_count":0,"watchers_count":0,"language":"HTML","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":"urfu-2015:master","ref":"master","sha":"92106c708076d457b6ffcd8175044271b4318dd9","user":{"login":"urfu-2015","id":14800971,"avatar_url":"https://avatars.githubusercontent.com/u/14800971?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2015","html_url":"https://github.com/urfu-2015","followers_url":"https://api.github.com/users/urfu-2015/followers","following_url":"https://api.github.com/users/urfu-2015/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2015/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2015/subscriptions","organizations_url":"https://api.github.com/users/urfu-2015/orgs","repos_url":"https://api.github.com/users/urfu-2015/repos","events_url":"https://api.github.com/users/urfu-2015/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2015/received_events","type":"Organization","site_admin":false},"repo":{"id":43061154,"name":"verstka-tasks-1","full_name":"urfu-2015/verstka-tasks-1","owner":{"login":"urfu-2015","id":14800971,"avatar_url":"https://avatars.githubusercontent.com/u/14800971?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2015","html_url":"https://github.com/urfu-2015","followers_url":"https://api.github.com/users/urfu-2015/followers","following_url":"https://api.github.com/users/urfu-2015/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2015/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2015/subscriptions","organizations_url":"https://api.github.com/users/urfu-2015/orgs","repos_url":"https://api.github.com/users/urfu-2015/repos","events_url":"https://api.github.com/users/urfu-2015/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2015/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/urfu-2015/verstka-tasks-1","description":"Задача к лекции «HTML, I часть»","fork":false,"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1","forks_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/forks","keys_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/teams","hooks_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/hooks","issue_events_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/events{/number}","events_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/events","assignees_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/assignees{/user}","branches_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/branches{/branch}","tags_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/tags","blobs_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/{sha}","languages_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/languages","stargazers_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/stargazers","contributors_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/contributors","subscribers_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/subscribers","subscription_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/subscription","commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/contents/{+path}","compare_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/merges","archive_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/downloads","issues_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues{/number}","pulls_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls{/number}","milestones_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/milestones{/number}","notifications_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/labels{/name}","releases_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/releases{/id}","created_at":"2015-09-24T10:45:26Z","updated_at":"2015-10-07T14:13:10Z","pushed_at":"2015-10-09T08:44:09Z","git_url":"git://github.com/urfu-2015/verstka-tasks-1.git","ssh_url":"git@github.com:urfu-2015/verstka-tasks-1.git","clone_url":"https://github.com/urfu-2015/verstka-tasks-1.git","svn_url":"https://github.com/urfu-2015/verstka-tasks-1","homepage":"","size":2497,"stargazers_count":15,"watchers_count":15,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":108,"mirror_url":null,"open_issues_count":56,"forks":108,"open_issues":56,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/94"},"issue":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/94"},"comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/94/comments"},"review_comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94/comments"},"review_comment":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/94/commits"},"statuses":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/08c4408423cbb70b6055a7955db7d227b3be6047"}}}}