{"action":"created","comment":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/48243926","id":48243926,"diff_hunk":"@@ -1,3 +1,322 @@\n+<!DOCTYPE html>\n <html>\n-    <!-- Ваш замечательный код -->\n+<head>\n+    <meta charset=\"UTF-8\">\n+    <title>Задание One</title>\n+    <style>\n+        body\n+        {\n+            margin: 60px auto;\n+            max-width: 1000px;\n+            font-family: \"Segoe UI\", \"Helvetica Neue\", Arial, \"Liberation Sans\", \"Nimbus Sans L\", sans-serif;\n+            line-height: 1.5;\n+        }\n+    </style>\n+</head>\n+<body>\n+<main>\n+    <h1>Яндекс.Почта: как мы измераем скорость загрузки и улучшаем её</h1>\n+    <p>\n+        Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни\n+        то, какой он красивый, ни то, какой он удобный. Никому не понравится,\n+        когда все тормозит. Мы регулярно добавляем в Яндекс.Почту новую\n+        функциональность, иногда — исправляем ошибки, а это значит, у нас\n+        постоянно появляются новый код и новая логика. Всё это напрямую влияет\n+        на скорость работы интерфейса.\n+    </p>\n+    <h3>Что мы измеряем</h3>\n+    <p>Этапы первой загрузки:</p>\n+    <ol>\n+        <li>подготовка;</li>\n+        <li>загрузка статики (HTTP-запрос и парсинг);</li>\n+        <li>исполнение модулей;</li>\n+        <li>инициализация базовых объектов;</li>\n+        <li>отрисовка.</li>\n+    </ol>\n+    <p>Этапы отрисовки любой страницы:</p>\n+    <ol>\n+        <li>подготовка к запросу на сервер;</li>\n+        <li>запрос данных с сервера;</li>\n+        <li>шаблонизация;</li>\n+        <li>обновление DOM.</li>\n+    </ol>\n+    <p>\n+        — <q>Ок, теперь у нас есть метрики, мы можем отправить их на сервер</q>\n+        - говорим мы<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, то\n+        медиана – 3, а среднее – 6,5. В общем случае медиана отлично показывает,\n+        сколько грузится средний пользователь.\n+    </p>\n+    <p>\n+        В случае ускорения или замедления медиана, конечно, изменится. Но она не\n+        может рассказать, сколько пользователей ускорилось, а сколько\n+        замедлилось.\n+    </p>\n+    <p>\n+        <dfn>APDEX</dfn> – метрика, которая сразу говорит:\n+        хорошо или плохо. Метрика работает очень просто. Мы выбираем временной\n+        интервал [0; t], такой, что если время показа страницы попало в него, то\n+        пользователь счастлив. Берем еще один интервал, (t; 4t] (в четыре раза\n+        больше первого), и считаем, что если страница показана за это время, то\n+        пользователь в целом удовлетворен скоростью работы, но уже не настолько\n+        счастлив. И применяем формулу:\n+    </p>\n+    <em>\n+        ( количество счастливых пользователей + количество в целом\n+        удовлетворенных / 2 ) /\n+        ( количество всех пользователей ).\n+    </em>\n+    <p>\n+        Получается значение от нуля до единицы, которое, видимо, лучше всего\n+        показывает,\n+        хорошо или плохо работает почта.\n+    </p>\n+    <h3>Как мы измеряем</h3>\n+    <p>\n+        Сейчас модуль обновления сам логирует все свои стадии, и можно легко\n+        понять\n+        причину замедления: медленнее стал отвечать сервер либо слишком долго\n+        выполняется JavaScript. Выглядит это примерно так:\n+    </p>\n+    <code>\n+        this.timings['look-ma-im-start'] = Date.now();<br>\n+        this.timings['look-ma-finish'] = Date.now();\n+    </code>\n+    <p>\n+        C помощью <code>Date.now()</code> мы получаем текущее время. Все\n+        тайминги\n+        собираются и при\n+        отправке рассчитываются. На этапах разница между “end” и “start” не\n+        считается,\n+        а все вычисления производятся в конце:\n+    </p>\n+    <code>\n+        var totalTime = this.timings['look-ma-finish'] -\n+        this.timings['look-ma-im-start'];\n+    </code>\n+    <p>И на сервер прилетают подобные записи:</p>\n+    <samp>serverResponse=50&#38;domUpdate=60</samp>\n+    <h3>Как мы ускоряем</h3>\n+    <p>Чтобы снизить время загрузки почты при выходе новых версий, мы уже делаем\n+        следующее:</p>\n+    <ul>\n+        <li>включаем gzip;</li>\n+        <li>выставляем заголовки кэширования;</li>\n+        <li>фризим CSS, JS, шаблоны и картинки;</li>\n+        <li>используем CDN.</li>\n+    </ul>\n+    <p>\n+        Мы подумали:\n+        <q><!--\n+         -->А что если хранить где-то старую версию файлов, а при\n+            выходе новой передавать\n+            только diff между ней и той, которая сохранена у пользователя?<!--\n+     --></q>\n+    </p>\n+    <p>В браузере же останется просто наложить патч на клиенте.</p>\n+    <p>\n+        На самое деле эта идея не нова. Уже существуют стандарты для HTTP —\n+        например, RFC 3229 «Delta encoding in HTTP» и «Google SDHC», — но по\n+        разным причинам они не получили должного распространения в браузерах и\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>5</td>\n+        </tr>\n+        <tr>\n+            <td>google diff</td>\n+            <td>1363</td>\n+            <td>76</td>\n+        </tr>\n+        </tbody>\n+    </table>\n+    <p>\n+        После того как мы определились с библиотекой для диффа, нужно\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+        ресурс. У каждого объекта есть три свойства:<br>\n+        k — названия ключа в localStorage для этого ресурса;<br>\n+        p — патч для ресурса, который сгенерировал vcdiff;<br>\n+        s — чексумма для ресурса актуальной версии, чтобы потом можно было\n+        проверить правильность наложения патча на клиенте.<br>\n+        Чексумма вычисляется по алгоритму Флетчера.\n+    </p>\n+    <p>","path":"index.html","position":192,"original_position":192,"commit_id":"b3ec42ee04d8ea13944e5308daa2c89b23134762","original_commit_id":"b3ec42ee04d8ea13944e5308daa2c89b23134762","user":{"login":"mokhov","id":357689,"avatar_url":"https://avatars.githubusercontent.com/u/357689?v=3","gravatar_id":"","url":"https://api.github.com/users/mokhov","html_url":"https://github.com/mokhov","followers_url":"https://api.github.com/users/mokhov/followers","following_url":"https://api.github.com/users/mokhov/following{/other_user}","gists_url":"https://api.github.com/users/mokhov/gists{/gist_id}","starred_url":"https://api.github.com/users/mokhov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mokhov/subscriptions","organizations_url":"https://api.github.com/users/mokhov/orgs","repos_url":"https://api.github.com/users/mokhov/repos","events_url":"https://api.github.com/users/mokhov/events{/privacy}","received_events_url":"https://api.github.com/users/mokhov/received_events","type":"User","site_admin":false},"body":"Само описание алгоритма не является основным содержимым текста","created_at":"2015-12-22T11:10:18Z","updated_at":"2015-12-22T11:10:18Z","html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/111#discussion_r48243926","pull_request_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111","_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/48243926"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/111#discussion_r48243926"},"pull_request":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111"}}},"pull_request":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111","id":53836561,"html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/111","diff_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/111.diff","patch_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/111.patch","issue_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/111","number":111,"state":"open","locked":false,"title":"Банару Кирилл","user":{"login":"ZigGreen","id":3829895,"avatar_url":"https://avatars.githubusercontent.com/u/3829895?v=3","gravatar_id":"","url":"https://api.github.com/users/ZigGreen","html_url":"https://github.com/ZigGreen","followers_url":"https://api.github.com/users/ZigGreen/followers","following_url":"https://api.github.com/users/ZigGreen/following{/other_user}","gists_url":"https://api.github.com/users/ZigGreen/gists{/gist_id}","starred_url":"https://api.github.com/users/ZigGreen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZigGreen/subscriptions","organizations_url":"https://api.github.com/users/ZigGreen/orgs","repos_url":"https://api.github.com/users/ZigGreen/repos","events_url":"https://api.github.com/users/ZigGreen/events{/privacy}","received_events_url":"https://api.github.com/users/ZigGreen/received_events","type":"User","site_admin":false},"body":":dolphin: ","created_at":"2015-12-16T12:45:45Z","updated_at":"2015-12-22T11:10:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"603ca7600523474502a5ad427ac5b2b5c1f63c3a","assignee":{"login":"mokhov","id":357689,"avatar_url":"https://avatars.githubusercontent.com/u/357689?v=3","gravatar_id":"","url":"https://api.github.com/users/mokhov","html_url":"https://github.com/mokhov","followers_url":"https://api.github.com/users/mokhov/followers","following_url":"https://api.github.com/users/mokhov/following{/other_user}","gists_url":"https://api.github.com/users/mokhov/gists{/gist_id}","starred_url":"https://api.github.com/users/mokhov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mokhov/subscriptions","organizations_url":"https://api.github.com/users/mokhov/orgs","repos_url":"https://api.github.com/users/mokhov/repos","events_url":"https://api.github.com/users/mokhov/events{/privacy}","received_events_url":"https://api.github.com/users/mokhov/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111/commits","review_comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111/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/111/comments","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/b3ec42ee04d8ea13944e5308daa2c89b23134762","head":{"label":"ZigGreen:master","ref":"master","sha":"b3ec42ee04d8ea13944e5308daa2c89b23134762","user":{"login":"ZigGreen","id":3829895,"avatar_url":"https://avatars.githubusercontent.com/u/3829895?v=3","gravatar_id":"","url":"https://api.github.com/users/ZigGreen","html_url":"https://github.com/ZigGreen","followers_url":"https://api.github.com/users/ZigGreen/followers","following_url":"https://api.github.com/users/ZigGreen/following{/other_user}","gists_url":"https://api.github.com/users/ZigGreen/gists{/gist_id}","starred_url":"https://api.github.com/users/ZigGreen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZigGreen/subscriptions","organizations_url":"https://api.github.com/users/ZigGreen/orgs","repos_url":"https://api.github.com/users/ZigGreen/repos","events_url":"https://api.github.com/users/ZigGreen/events{/privacy}","received_events_url":"https://api.github.com/users/ZigGreen/received_events","type":"User","site_admin":false},"repo":{"id":48107399,"name":"verstka-tasks-1","full_name":"ZigGreen/verstka-tasks-1","owner":{"login":"ZigGreen","id":3829895,"avatar_url":"https://avatars.githubusercontent.com/u/3829895?v=3","gravatar_id":"","url":"https://api.github.com/users/ZigGreen","html_url":"https://github.com/ZigGreen","followers_url":"https://api.github.com/users/ZigGreen/followers","following_url":"https://api.github.com/users/ZigGreen/following{/other_user}","gists_url":"https://api.github.com/users/ZigGreen/gists{/gist_id}","starred_url":"https://api.github.com/users/ZigGreen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZigGreen/subscriptions","organizations_url":"https://api.github.com/users/ZigGreen/orgs","repos_url":"https://api.github.com/users/ZigGreen/repos","events_url":"https://api.github.com/users/ZigGreen/events{/privacy}","received_events_url":"https://api.github.com/users/ZigGreen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ZigGreen/verstka-tasks-1","description":"Задача к лекции «HTML, I часть»","fork":true,"url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1","forks_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/forks","keys_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/teams","hooks_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/hooks","issue_events_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/issues/events{/number}","events_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/events","assignees_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/assignees{/user}","branches_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/branches{/branch}","tags_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/tags","blobs_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/statuses/{sha}","languages_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/languages","stargazers_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/stargazers","contributors_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/contributors","subscribers_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/subscribers","subscription_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/subscription","commits_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/contents/{+path}","compare_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/merges","archive_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/downloads","issues_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/issues{/number}","pulls_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/pulls{/number}","milestones_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/milestones{/number}","notifications_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/labels{/name}","releases_url":"https://api.github.com/repos/ZigGreen/verstka-tasks-1/releases{/id}","created_at":"2015-12-16T11:51:07Z","updated_at":"2015-12-16T11:51:08Z","pushed_at":"2015-12-20T12:02:52Z","git_url":"git://github.com/ZigGreen/verstka-tasks-1.git","ssh_url":"git@github.com:ZigGreen/verstka-tasks-1.git","clone_url":"https://github.com/ZigGreen/verstka-tasks-1.git","svn_url":"https://github.com/ZigGreen/verstka-tasks-1","homepage":"","size":19,"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-12-09T06:32:32Z","pushed_at":"2015-12-20T12:02:52Z","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":1684,"stargazers_count":13,"watchers_count":13,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":119,"mirror_url":null,"open_issues_count":1,"forks":119,"open_issues":1,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/111"},"issue":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/111"},"comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/111/comments"},"review_comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/111/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/111/commits"},"statuses":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/b3ec42ee04d8ea13944e5308daa2c89b23134762"}}}}