{"action":"created","comment":{"url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/comments/87332359","pull_request_review_id":7948498,"id":87332359,"diff_hunk":"@@ -1,162 +1,161 @@\n-/* eslint-disable no-invalid-this */\n 'use strict';\n \n-var getEmitter = require('./emitter');\n-\n-var students = {\n-    Sam: {\n-        focus: 100,\n-        wisdom: 50\n-    },\n-    Sally: {\n-        focus: 100,\n-        wisdom: 60\n-    },\n-    Bill: {\n-        focus: 90,\n-        wisdom: 50\n-    },\n-    Sharon: {\n-        focus: 110,\n-        wisdom: 40\n+/**\n+ * Сделано задание на звездочку\n+ * Реализованы методы several и through\n+ */\n+getEmitter.isStar = true;\n+module.exports = getEmitter;\n+\n+function executeEvent(event, events) {\n+    if (events.hasOwnProperty(event)) {\n+        events[event].forEach(function (student) {\n+            if (student.times > 0) {\n+                student.handler.call(student.context);\n+                student.times = student.times === undefined ? undefined : student.times - 1;\n+            } else if (student.frequency !== undefined && student.frequencyCounter %\n+                    student.frequency === 0) {\n+                student.handler.call(student.context);\n+            } else if (student.frequency === undefined && student.times === undefined) {\n+                student.handler.call(student.context);\n+            }\n+            student.frequencyCounter++;\n+        });\n     }\n-};\n-\n-var lecturer = getEmitter();\n-\n-// С началом лекции у всех резко повышаются показатели\n-lecturer\n-    .on('begin', students.Sam, function () {\n-        this.focus += 10;\n-    })\n-    .on('begin', students.Sally, function () {\n-        this.focus += 10;\n-    })\n-    .on('begin', students.Bill, function () {\n-        this.focus += 10;\n-        this.wisdom += 5;\n-    })\n-    .on('begin', students.Sharon, function () {\n-        this.focus += 20;\n-    });\n-\n-// На каждый слайд внимательность падает, но растет мудрость\n-lecturer\n-    .on('slide', students.Sam, function () {\n-        this.wisdom += Math.round(this.focus * 0.1);\n-        this.focus -= 10;\n-    })\n-    .on('slide', students.Sally, function () {\n-        this.wisdom += Math.round(this.focus * 0.15);\n-        this.focus -= 5;\n-    })\n-    .on('slide', students.Bill, function () {\n-        this.wisdom += Math.round(this.focus * 0.05);\n-        this.focus -= 10;\n-    })\n-    .on('slide', students.Sharon, function () {\n-        this.wisdom += Math.round(this.focus * 0.01);\n-        this.focus -= 5;\n-    });\n-\n-// На каждый веселый слайд всё наоборот\n-lecturer\n-    .on('slide.funny', students.Sam, function () {\n-        this.focus += 5;\n-        this.wisdom -= 10;\n-    })\n-    .on('slide.funny', students.Sally, function () {\n-        this.focus += 5;\n-        this.wisdom -= 5;\n-    })\n-    .on('slide.funny', students.Bill, function () {\n-        this.focus += 5;\n-        this.wisdom -= 10;\n-    })\n-    .on('slide.funny', students.Sharon, function () {\n-        this.focus += 10;\n-        this.wisdom -= 10;\n-    });\n-\n-// Начинаем лекцию\n-lecturer.emit('begin');\n-// Sam(110,50); Sally(110,60); Bill(100,55); Sharon(130,40)\n-\n-lecturer\n-    .emit('slide.text')\n-    .emit('slide.text')\n-    .emit('slide.text')\n-    .emit('slide.funny');\n-// Sam(75,79); Sally(95,118); Bill(65,63); Sharon(120,34)\n+}\n \n-lecturer\n-    .off('slide.funny', students.Sharon)\n-    .emit('slide.text')\n-    .emit('slide.text')\n-    .emit('slide.funny');\n-// Sam(50,90); Sally(85,155); Bill(40,62); Sharon(105,37)\n+/**\n+ * Возвращает новый emitter\n+ * @returns {Object}\n+ */\n+function getEmitter() {\n+    var events = {};\n+\n+    return {\n+\n+        /**\n+         * Подписаться на событие\n+         * @param {String} event\n+         * @param {Object} context\n+         * @param {Function} handler\n+         * @returns {Object}\n+         */\n+        on: function (event, context, handler) {\n+            if (events.hasOwnProperty(event)) {\n+                events[event].push({\n+                    context: context,\n+                    handler: handler,\n+                    times: undefined,\n+                    frequency: undefined,\n+                    frequencyCounter: 0\n+                });\n+            } else {\n+                events[event] = [{\n+                    context: context,\n+                    handler: handler,\n+                    times: undefined,\n+                    frequency: undefined,\n+                    frequencyCounter: 0\n+                }];\n+            }\n+\n+            return this;\n+        },\n \n-lecturer\n-    .off('slide', students.Bill)\n-    .emit('slide.text')\n-    .emit('slide.text')\n-    .emit('slide.text');\n+        /**\n+         * Отписаться от события\n+         * @param {String} event\n+         * @param {Object} context\n+         * @returns {Object}\n+         */\n+        off: function (event, context) {\n+            var countPartsInEvent = event.split('.').length;\n+            Object.keys(events).forEach(function (keyEvent) {\n+                if (keyEvent.split('.').length < countPartsInEvent ||\n+                    keyEvent.split('.').slice(0, countPartsInEvent)\n+                    .join('.') !== event) {\n+                    return;\n+                }\n+                events[keyEvent] = events[keyEvent].filter(function (student) {\n+                    return student.context !== context;\n+                });\n+            });\n+\n+            return this;\n+        },\n \n-lecturer.emit('end');\n-// Sam(20,102); Sally(70,191); Bill(40,62); Sharon(90,40)\n+        /**\n+         * Уведомить о событии\n+         * @param {String} event\n+         * @returns {Object}\n+         */\n+        emit: function (event) {\n+            executeEvent(event, events);\n+            while (event.indexOf('.') !== -1) {\n+                event = event.split('.').slice(0, -1)\n+                .join('.');\n+                executeEvent(event, events);\n+            }\n+\n+            return this;\n+        },\n \n-if (getEmitter.isStar) {\n-    students = {\n-        Sam: {\n-            focus: 100,\n-            wisdom: 50\n+        /**\n+         * Подписаться на событие с ограничением по количеству полученных уведомлений\n+         * @star\n+         * @param {String} event\n+         * @param {Object} context\n+         * @param {Function} handler\n+         * @param {Number} times – сколько раз получить уведомление\n+         * @returns {Object}\n+         */\n+        several: function (event, context, handler, times) {\n+            return severalOrThrough(event, context, handler, undefined, times, events, this);\n         },\n-        Bill: {\n-            focus: 90,\n-            wisdom: 50\n+\n+        /**\n+         * Подписаться на событие с ограничением по частоте получения уведомлений\n+         * @star\n+         * @param {String} event\n+         * @param {Object} context\n+         * @param {Function} handler\n+         * @param {Number} frequency – как часто уведомлять\n+         * @returns {Object}\n+         */\n+        through: function (event, context, handler, frequency) {\n+            return severalOrThrough(event, context, handler, frequency, undefined, events, this);\n         }\n     };\n+}\n \n-    lecturer = getEmitter()\n-        .several('begin', students.Sam, function () {\n-            this.focus += 10;\n-        }, 1)\n-        .several('begin', students.Bill, function () {\n-            this.focus += 10;\n-            this.wisdom += 5;\n-        }, 1)\n-        // На Сэма действуют только нечетные слайды\n-        .through('slide', students.Sam, function () {\n-            this.wisdom += Math.round(this.focus * 0.1);\n-            this.focus -= 10;\n-        }, 2)\n-        // Концентрации Билла хватит ровно на 4 слайда\n-        .several('slide', students.Bill, function () {\n-            this.wisdom += Math.round(this.focus * 0.05);\n-            this.focus -= 10;\n-        }, 4)\n-        .on('slide.funny', students.Sam, function () {\n-            this.focus += 5;\n-            this.wisdom -= 10;\n-        })\n-        .on('slide.funny', students.Bill, function () {\n-            this.focus += 5;\n-            this.wisdom -= 10;\n+function severalOrThrough() {\n+    var event = arguments[0];\n+    var context = arguments[1];\n+    var handler = arguments[2];","path":"index.js","position":267,"original_position":267,"commit_id":"78948a292008dafb4c1a5642e4782ecf4e92c88d","original_commit_id":"78948a292008dafb4c1a5642e4782ecf4e92c88d","user":{"login":"bratva","id":1937870,"avatar_url":"https://avatars.githubusercontent.com/u/1937870?v=3","gravatar_id":"","url":"https://api.github.com/users/bratva","html_url":"https://github.com/bratva","followers_url":"https://api.github.com/users/bratva/followers","following_url":"https://api.github.com/users/bratva/following{/other_user}","gists_url":"https://api.github.com/users/bratva/gists{/gist_id}","starred_url":"https://api.github.com/users/bratva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bratva/subscriptions","organizations_url":"https://api.github.com/users/bratva/orgs","repos_url":"https://api.github.com/users/bratva/repos","events_url":"https://api.github.com/users/bratva/events{/privacy}","received_events_url":"https://api.github.com/users/bratva/received_events","type":"User","site_admin":false},"body":"ужас","created_at":"2016-11-10T05:49:47Z","updated_at":"2016-11-10T05:49:47Z","html_url":"https://github.com/urfu-2016/javascript-task-5/pull/1#discussion_r87332359","pull_request_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/comments/87332359"},"html":{"href":"https://github.com/urfu-2016/javascript-task-5/pull/1#discussion_r87332359"},"pull_request":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1","id":92198502,"html_url":"https://github.com/urfu-2016/javascript-task-5/pull/1","diff_url":"https://github.com/urfu-2016/javascript-task-5/pull/1.diff","patch_url":"https://github.com/urfu-2016/javascript-task-5/pull/1.patch","issue_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/1","number":1,"state":"open","locked":false,"title":"Убогов Сергей","user":{"login":"Sergey-Ubogov","id":19286511,"avatar_url":"https://avatars.githubusercontent.com/u/19286511?v=3","gravatar_id":"","url":"https://api.github.com/users/Sergey-Ubogov","html_url":"https://github.com/Sergey-Ubogov","followers_url":"https://api.github.com/users/Sergey-Ubogov/followers","following_url":"https://api.github.com/users/Sergey-Ubogov/following{/other_user}","gists_url":"https://api.github.com/users/Sergey-Ubogov/gists{/gist_id}","starred_url":"https://api.github.com/users/Sergey-Ubogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sergey-Ubogov/subscriptions","organizations_url":"https://api.github.com/users/Sergey-Ubogov/orgs","repos_url":"https://api.github.com/users/Sergey-Ubogov/repos","events_url":"https://api.github.com/users/Sergey-Ubogov/events{/privacy}","received_events_url":"https://api.github.com/users/Sergey-Ubogov/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-11-03T17:09:27Z","updated_at":"2016-11-10T05:49:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e418437a3a2118b446583fc6aa9e775b8230a2c5","assignee":{"login":"bratva","id":1937870,"avatar_url":"https://avatars.githubusercontent.com/u/1937870?v=3","gravatar_id":"","url":"https://api.github.com/users/bratva","html_url":"https://github.com/bratva","followers_url":"https://api.github.com/users/bratva/followers","following_url":"https://api.github.com/users/bratva/following{/other_user}","gists_url":"https://api.github.com/users/bratva/gists{/gist_id}","starred_url":"https://api.github.com/users/bratva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bratva/subscriptions","organizations_url":"https://api.github.com/users/bratva/orgs","repos_url":"https://api.github.com/users/bratva/repos","events_url":"https://api.github.com/users/bratva/events{/privacy}","received_events_url":"https://api.github.com/users/bratva/received_events","type":"User","site_admin":false},"assignees":[{"login":"bratva","id":1937870,"avatar_url":"https://avatars.githubusercontent.com/u/1937870?v=3","gravatar_id":"","url":"https://api.github.com/users/bratva","html_url":"https://github.com/bratva","followers_url":"https://api.github.com/users/bratva/followers","following_url":"https://api.github.com/users/bratva/following{/other_user}","gists_url":"https://api.github.com/users/bratva/gists{/gist_id}","starred_url":"https://api.github.com/users/bratva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bratva/subscriptions","organizations_url":"https://api.github.com/users/bratva/orgs","repos_url":"https://api.github.com/users/bratva/repos","events_url":"https://api.github.com/users/bratva/events{/privacy}","received_events_url":"https://api.github.com/users/bratva/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1/commits","review_comments_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1/comments","review_comment_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/comments{/number}","comments_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/1/comments","statuses_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/statuses/78948a292008dafb4c1a5642e4782ecf4e92c88d","head":{"label":"Sergey-Ubogov:master","ref":"master","sha":"78948a292008dafb4c1a5642e4782ecf4e92c88d","user":{"login":"Sergey-Ubogov","id":19286511,"avatar_url":"https://avatars.githubusercontent.com/u/19286511?v=3","gravatar_id":"","url":"https://api.github.com/users/Sergey-Ubogov","html_url":"https://github.com/Sergey-Ubogov","followers_url":"https://api.github.com/users/Sergey-Ubogov/followers","following_url":"https://api.github.com/users/Sergey-Ubogov/following{/other_user}","gists_url":"https://api.github.com/users/Sergey-Ubogov/gists{/gist_id}","starred_url":"https://api.github.com/users/Sergey-Ubogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sergey-Ubogov/subscriptions","organizations_url":"https://api.github.com/users/Sergey-Ubogov/orgs","repos_url":"https://api.github.com/users/Sergey-Ubogov/repos","events_url":"https://api.github.com/users/Sergey-Ubogov/events{/privacy}","received_events_url":"https://api.github.com/users/Sergey-Ubogov/received_events","type":"User","site_admin":false},"repo":{"id":72762192,"name":"javascript-task-5","full_name":"Sergey-Ubogov/javascript-task-5","owner":{"login":"Sergey-Ubogov","id":19286511,"avatar_url":"https://avatars.githubusercontent.com/u/19286511?v=3","gravatar_id":"","url":"https://api.github.com/users/Sergey-Ubogov","html_url":"https://github.com/Sergey-Ubogov","followers_url":"https://api.github.com/users/Sergey-Ubogov/followers","following_url":"https://api.github.com/users/Sergey-Ubogov/following{/other_user}","gists_url":"https://api.github.com/users/Sergey-Ubogov/gists{/gist_id}","starred_url":"https://api.github.com/users/Sergey-Ubogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sergey-Ubogov/subscriptions","organizations_url":"https://api.github.com/users/Sergey-Ubogov/orgs","repos_url":"https://api.github.com/users/Sergey-Ubogov/repos","events_url":"https://api.github.com/users/Sergey-Ubogov/events{/privacy}","received_events_url":"https://api.github.com/users/Sergey-Ubogov/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Sergey-Ubogov/javascript-task-5","description":"Задача «Пора на лекцию»","fork":true,"url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5","forks_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/forks","keys_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/teams","hooks_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/hooks","issue_events_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/issues/events{/number}","events_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/events","assignees_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/assignees{/user}","branches_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/branches{/branch}","tags_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/tags","blobs_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/statuses/{sha}","languages_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/languages","stargazers_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/stargazers","contributors_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/contributors","subscribers_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/subscribers","subscription_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/subscription","commits_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/contents/{+path}","compare_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/merges","archive_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/downloads","issues_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/issues{/number}","pulls_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/pulls{/number}","milestones_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/milestones{/number}","notifications_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/labels{/name}","releases_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/releases{/id}","deployments_url":"https://api.github.com/repos/Sergey-Ubogov/javascript-task-5/deployments","created_at":"2016-11-03T15:59:31Z","updated_at":"2016-11-03T15:59:32Z","pushed_at":"2016-11-09T19:14:10Z","git_url":"git://github.com/Sergey-Ubogov/javascript-task-5.git","ssh_url":"git@github.com:Sergey-Ubogov/javascript-task-5.git","clone_url":"https://github.com/Sergey-Ubogov/javascript-task-5.git","svn_url":"https://github.com/Sergey-Ubogov/javascript-task-5","homepage":"","size":12,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"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-2016:master","ref":"master","sha":"563654f35c98e52f1903ca1d4781372abdfb400e","user":{"login":"urfu-2016","id":22170529,"avatar_url":"https://avatars.githubusercontent.com/u/22170529?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2016","html_url":"https://github.com/urfu-2016","followers_url":"https://api.github.com/users/urfu-2016/followers","following_url":"https://api.github.com/users/urfu-2016/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2016/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2016/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2016/subscriptions","organizations_url":"https://api.github.com/users/urfu-2016/orgs","repos_url":"https://api.github.com/users/urfu-2016/repos","events_url":"https://api.github.com/users/urfu-2016/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2016/received_events","type":"Organization","site_admin":false},"repo":{"id":72473952,"name":"javascript-task-5","full_name":"urfu-2016/javascript-task-5","owner":{"login":"urfu-2016","id":22170529,"avatar_url":"https://avatars.githubusercontent.com/u/22170529?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2016","html_url":"https://github.com/urfu-2016","followers_url":"https://api.github.com/users/urfu-2016/followers","following_url":"https://api.github.com/users/urfu-2016/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2016/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2016/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2016/subscriptions","organizations_url":"https://api.github.com/users/urfu-2016/orgs","repos_url":"https://api.github.com/users/urfu-2016/repos","events_url":"https://api.github.com/users/urfu-2016/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2016/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/urfu-2016/javascript-task-5","description":"Задача «Пора на лекцию»","fork":false,"url":"https://api.github.com/repos/urfu-2016/javascript-task-5","forks_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/forks","keys_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/keys{/key_id}","collaborators_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/teams","hooks_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/hooks","issue_events_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/events{/number}","events_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/events","assignees_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/assignees{/user}","branches_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/branches{/branch}","tags_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/tags","blobs_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/git/refs{/sha}","trees_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/git/trees{/sha}","statuses_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/statuses/{sha}","languages_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/languages","stargazers_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/stargazers","contributors_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/contributors","subscribers_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/subscribers","subscription_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/subscription","commits_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/commits{/sha}","git_commits_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/git/commits{/sha}","comments_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/comments{/number}","issue_comment_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/comments{/number}","contents_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/contents/{+path}","compare_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/compare/{base}...{head}","merges_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/merges","archive_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/downloads","issues_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues{/number}","pulls_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls{/number}","milestones_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/milestones{/number}","notifications_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/labels{/name}","releases_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/releases{/id}","deployments_url":"https://api.github.com/repos/urfu-2016/javascript-task-5/deployments","created_at":"2016-10-31T20:11:32Z","updated_at":"2016-11-03T13:58:41Z","pushed_at":"2016-11-10T03:04:29Z","git_url":"git://github.com/urfu-2016/javascript-task-5.git","ssh_url":"git@github.com:urfu-2016/javascript-task-5.git","clone_url":"https://github.com/urfu-2016/javascript-task-5.git","svn_url":"https://github.com/urfu-2016/javascript-task-5","homepage":"","size":158,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":69,"mirror_url":null,"open_issues_count":46,"forks":69,"open_issues":46,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1"},"html":{"href":"https://github.com/urfu-2016/javascript-task-5/pull/1"},"issue":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/1"},"comments":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/urfu-2016/javascript-task-5/statuses/78948a292008dafb4c1a5642e4782ecf4e92c88d"}}}}
{"actor":{"display_login":"bratva"}}