{"action":"created","comment":{"url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/comments/89701640","pull_request_review_id":10239896,"id":89701640,"diff_hunk":"@@ -0,0 +1,263 @@\n+require 'telegram/bot'\n+require 'redis'\n+\n+# The general class to send messages\n+class BotMain\n+  attr_reader :bot, :user_id\n+\n+  def initialize(bot, message_chat_id)\n+    @bot = bot\n+    @user_id = message_chat_id\n+\n+    @redis = Redis.new\n+  end\n+\n+  def telegram_send_message(text)\n+    @bot.api.send_message(chat_id: @user_id, text: text)\n+  end\n+\n+  def telegram_send_keybord(text, marker, subjects_numlabs = nil)\n+    case marker\n+    when 'reset'\n+      kb = [\n+        Telegram::Bot::Types::InlineKeyboardButton.new(text: 'Удаляем', callback_data: 'delete'),\n+        Telegram::Bot::Types::InlineKeyboardButton.new(text: 'Отмена', callback_data: 'cancel')\n+      ]\n+    when 'submit_list'\n+      kb = []\n+      subjects_hash = @redis.hgetall(\"#{@user_id}-subject\")\n+      subjects_hash.each do |key, value|\n+        kb.push(Telegram::Bot::Types::InlineKeyboardButton.new(text: key, callback_data: key))\n+      end\n+    when 'submit_numlabs'\n+      array_numlabs = @redis.hget(\"#{@user_id}-subject-numlab\", subjects_numlabs).delete('[,]').split\n+      kb = []\n+      array_numlabs.each do |count|\n+        kb.push(Telegram::Bot::Types::InlineKeyboardButton.new(text: count, callback_data: count))\n+      end\n+    end\n+    markup = Telegram::Bot::Types::InlineKeyboardMarkup.new(inline_keyboard: kb)\n+    @bot.api.send_message(chat_id: @user_id, text: text, reply_markup: markup)\n+  end\n+end\n+\n+# Class command '/start'\n+class StartMessage < BotMain\n+  def start_command\n+    telegram_send_message(\"Привет.\\n#{Command_list}\")\n+  end\n+end\n+\n+# Class command '/semester'\n+class BotSemester < BotMain\n+  def semester_message\n+    telegram_send_message('Когда начинаем учиться (ДД-ММ-ГГГГ) ?')\n+    bot.listen do |answer|\n+      if check_date(answer.text).nil?\n+        telegram_send_message(\"'#{answer.text}' - некорректная дата. Соберись и введи дату как положено.\")\n+      else\n+        @semestr_begin = Date.parse(answer.text)\n+        telegram_send_message(\"ОК.\\nКогда надо сдать все лабы? (ДД-ММ-ГГГГ) ?\")\n+        break\n+      end\n+    end\n+\n+    bot.listen do |answer|\n+      if check_date(answer.text).nil?\n+        telegram_send_message(\"'#{answer.text}' - некорректная дата. Соберись и введи дату как положено.\")\n+      else\n+        @semestr_end = Date.parse(answer.text)\n+        break\n+      end\n+    end\n+\n+    if timing(@semestr_begin, @semestr_end) == true\n+      @redis.hmset(\"#{@user_id}-semestr\", 'days_remain', @days_remain, 'days_semestr', @days_semestr, 'days_passed', @days_passed)\n+      telegram_send_message(\"Продолжительность семестра с #{@semestr_begin.strftime('%d-%m-%Y')} по #{@semestr_end.strftime('%d-%m-%Y')} составляет #{@days_semestr} дней.\\nПо состоянию на сегодня, осталось #{@days_remain} дней.\")\n+    else telegram_send_message(\"Смотри, какая штука...\\nЛибо ты ошибся при вводе конца семестра, либо время сдачи уже прошло.\\nКонец семестра: #{@semestr_end.strftime('%d-%m-%Y')}, а сегодня уже #{@today.strftime('%d-%m-%Y')}.\")\n+    end\n+  end\n+\n+  def check_date(date_string)\n+    if date_string.scan(/\\d/).size.between?(7, 8)\n+      date_hash = Date._parse(date_string)\n+      if Date.valid_date?(date_hash[:year].to_i, date_hash[:mon].to_i, date_hash[:mday].to_i) && date_hash[:year].to_i.between?(Date.today.year, Date.today.year + 7)\n+        true\n+      end\n+    end\n+  end\n+\n+  def timing(begin_date, last_date)\n+    @today = Date.today\n+    if last_date > @today\n+      @days_remain = (last_date - @today).to_i\n+      @days_semestr = (last_date - begin_date).to_i\n+      @days_passed = (@today - begin_date).to_i\n+      true\n+    end\n+  end\n+end\n+\n+# Class command '/subject'\n+class BotSubject < BotMain\n+  def subject_message\n+    telegram_send_message('Какой предмет учим?')\n+    bot.listen do |answer|\n+      if /^[a-zA-Z]+$|^[а-яА-Я]+$/ =~ answer.text\n+        @lesson = answer.text\n+        break\n+      else telegram_send_message('Подход, конечно оригинальный,только название нужно вводить буквами.')\n+      end\n+    end\n+\n+    telegram_send_message('Сколько лабораторных работ по нему нужно сдать?')\n+    bot.listen do |answer|\n+      if /^\\d(\\d)*?$/ =~ answer.text && answer.text.to_i <= 28\n+        @lesson_numlab = answer.text\n+        telegram_send_message('Ок, записал.')\n+        @redis.hset(\"#{@user_id}-subject\", @lesson, @lesson_numlab)\n+        break\n+      elsif /^\\d(\\d)*?$/ =~ answer.text && answer.text.to_i > 28\n+        telegram_send_message('Ух ты, а в универе знают об этом?.')\n+      else\n+        telegram_send_message('Подход, конечно оригинальный,только количество нужно вводить цифрами.')\n+      end\n+    end\n+  end\n+end\n+\n+# Class command '/status'\n+class BotStatus < BotMain\n+  def status_message\n+    @days_remain = @redis.hget(\"#{@user_id}-semestr\", 'days_remain')\n+    @days_passed = @redis.hget(\"#{@user_id}-semestr\", 'days_passed')\n+    @days_semestr = @redis.hget(\"#{@user_id}-semestr\", 'days_semestr').to_i\n+\n+    if @redis.hgetall(\"#{@user_id}-subject\") == {}\n+      telegram_send_message(\"Определи задачу.\\nДобавить предмет и количество лабораторных работ по нему можно с помощью '/subject'\")\n+    elsif @days_remain.nil?\n+      telegram_send_message(\"Давай обозначим сроки.\\nУстановить начало и конец семестра можно с помощью команды '/semester'\")\n+    else\n+      telegram_send_message(\"Сегодня #{Date.today.strftime('%d-%m-%Y')}. Прошло #{@days_passed}, осталось #{@days_remain} дней.\\n\\nК этому времени у тебя должны быть сдано:\")\n+      @redis.hgetall(\"#{@user_id}-subject\").each do |key, value|\n+        lesson_complete(value.to_i)\n+        telegram_send_message(\"#{key} - #{@accomplished} из #{value} работ\")\n+      end\n+      telegram_send_message('Так держать!')\n+    end\n+  end\n+\n+  def lesson_complete(workshops)\n+    days_per_workshop = @days_semestr / workshops\n+    days_gone = @days_semestr - @days_remain.to_i\n+    @accomplished = if days_per_workshop.positive?\n+                      days_gone / days_per_workshop\n+                    else 0\n+                    end\n+  end\n+end\n+\n+# Class command '/submit'\n+class BotSubmit < BotMain\n+  def submit_message\n+    if @redis.hgetall(\"#{@user_id}-subject\") == {}\n+      telegram_send_message(\"Список пуст.\\nДобавить предмет и количество лабораторных работ по нему можно с помощью '/subject'\")\n+    else\n+      telegram_send_keybord('Молодец! Какой предмет сдал(а)?', 'submit_list')\n+    end\n+  end\n+\n+  def submit_hundler(input)\n+    input_submit = input\n+    if /^[a-zA-Z]+$|^[а-яА-ЯЁё]+$/ =~ input_submit\n+      @subject_name = input\n+      if @redis.hget(\"#{@user_id}-subject-numlab\", input).nil?\n+        num_lab(input_submit)\n+      elsif @redis.hget(\"#{@user_id}-subject-numlab\", input) == '[]'\n+        telegram_send_message('Ты уже рассчитался по этому предмету!')\n+      else\n+        telegram_send_keybord('Какая лаба?', 'submit_numlabs', input)\n+      end\n+    elsif /^\\d(\\d)*?$/ =~ input_submit\n+      lab_remove(@subject_name, input)\n+      telegram_send_message('Красавчег!')\n+    end\n+  end\n+\n+  def num_lab(name)\n+    num = @redis.hget(\"#{@user_id}-subject\", name).to_i\n+    numlabs = (1..num).to_a\n+    @redis.hset(\"#{@user_id}-subject-numlab\", name, numlabs.to_s)\n+    telegram_send_keybord('Какая лаба?', 'submit_numlabs', name)\n+  end\n+\n+  def lab_remove(name, num_labs)\n+    array_numlabs = @redis.hget(\"#{@user_id}-subject-numlab\", name).delete('[,]').split\n+    array_numlabs.delete(num_labs)\n+    array_numlabs_numbers = []\n+    array_numlabs.each { |unit| array_numlabs_numbers.push(unit.to_i) }\n+    @redis.hset(\"#{@user_id}-subject-numlab\", name, array_numlabs_numbers.to_s)\n+  end\n+end\n+\n+# Class command '/reset'\n+class BotReset < BotMain\n+  def reset_message\n+    if @redis.hgetall(\"#{@user_id}-semestr\") == {} && @redis.hgetall(\"#{@user_id}-subject\") == {}\n+      telegram_send_message(\"Что бы что-то удалить, сначала надо что-то добавить...\\nПодробнее смотри '/start'\")\n+    else\n+      telegram_send_keybord('Твои данные будут удалены безвозвратно. Продолжить?', 'reset')\n+    end\n+  end\n+\n+  def reset_command\n+    @redis.del(\"#{@user_id}-subject\", \"#{@user_id}-semestr\", \"#{@user_id}-subject-numlab\")\n+    telegram_send_message('Готово. Все успешно очищено.')\n+  end\n+end\n+\n+token = '241685650:AAGzEF3j8-Eck5N-itfwm4W65JIOtosk-5g'\n+\n+Command_list = \"Я могу тебе помочь сдать вовремя все лабы.\n+Вот список того, что я умею:\\n\n+/start - Приветствие и отображение всех доступных команд\n+/semester - Ввод даты начала и конца семестра\n+/subject - Добавляет предмет и количество лабораторных работ по нему\n+/status - Отображает список лабораторных работ, которые нужно сдать\n+/submit - Учитывает сдачу лабораторной работы ( Я сдал(а) )\n+/reset - Сбрасывает и удаляет все пользовательские данные\".freeze\n+\n+Telegram::Bot::Client.run(token) do |bot|\n+  bot.listen do |message|\n+    case message\n+    when Telegram::Bot::Types::Message\n+      case message.text\n+      when '/start'\n+        StartMessage.new(bot, message.chat.id).start_command\n+      when '/semester'\n+        BotSemester.new(bot, message.chat.id).semester_message\n+      when '/subject'\n+        BotSubject.new(bot, message.chat.id).subject_message\n+      when '/status'\n+        BotStatus.new(bot, message.chat.id).status_message\n+      when '/submit', 'я сдал', 'я сдала', 'Я сдал', 'Я сдала'\n+        @submit_class = BotSubmit.new(bot, message.chat.id)\n+        @submit_class.submit_message\n+      when '/reset'","path":"2016/AlexeyVarvashevich/2/3.2.0.rb","position":245,"original_position":246,"commit_id":"6a388370ce534922c6279d4440fa200a9be12eda","original_commit_id":"6a388370ce534922c6279d4440fa200a9be12eda","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.","created_at":"2016-11-27T22:28:44Z","updated_at":"2016-11-27T22:28:44Z","html_url":"https://github.com/rubyroidlabs/bsuir-courses/pull/489#discussion_r89701640","pull_request_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489","_links":{"self":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/comments/89701640"},"html":{"href":"https://github.com/rubyroidlabs/bsuir-courses/pull/489#discussion_r89701640"},"pull_request":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489"}}},"pull_request":{"url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489","id":91874436,"html_url":"https://github.com/rubyroidlabs/bsuir-courses/pull/489","diff_url":"https://github.com/rubyroidlabs/bsuir-courses/pull/489.diff","patch_url":"https://github.com/rubyroidlabs/bsuir-courses/pull/489.patch","issue_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/489","number":489,"state":"open","locked":false,"title":"Homework 2","user":{"login":"Amix047","id":22978562,"avatar_url":"https://avatars.githubusercontent.com/u/22978562?v=3","gravatar_id":"","url":"https://api.github.com/users/Amix047","html_url":"https://github.com/Amix047","followers_url":"https://api.github.com/users/Amix047/followers","following_url":"https://api.github.com/users/Amix047/following{/other_user}","gists_url":"https://api.github.com/users/Amix047/gists{/gist_id}","starred_url":"https://api.github.com/users/Amix047/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amix047/subscriptions","organizations_url":"https://api.github.com/users/Amix047/orgs","repos_url":"https://api.github.com/users/Amix047/repos","events_url":"https://api.github.com/users/Amix047/events{/privacy}","received_events_url":"https://api.github.com/users/Amix047/received_events","type":"User","site_admin":false},"body":"## Фамилия Имя\r\nВарвашевич Алексей\r\n\r\n## Email\r\nRHL@tut.by\r\n\r\n## Номер домашнего задания\r\n2\r\n\r\n## Ссылка на видео с демо работы\r\nhttps://youtu.be/3FlpM06Y2SY\r\n\r\n## Комментарии\r\nTelegram bot\r\nНа текущий момент обладает функционал Level 1.\r\nВ планах развить до уровня 2, а затем до 3.\r\nДобавлено, т.к. наступило время сдачи","created_at":"2016-11-01T22:14:25Z","updated_at":"2016-11-27T22:28:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"30e96cb1f421d4071acde0404b4f0b707a8011e0","assignee":{"login":"FUT","id":965875,"avatar_url":"https://avatars.githubusercontent.com/u/965875?v=3","gravatar_id":"","url":"https://api.github.com/users/FUT","html_url":"https://github.com/FUT","followers_url":"https://api.github.com/users/FUT/followers","following_url":"https://api.github.com/users/FUT/following{/other_user}","gists_url":"https://api.github.com/users/FUT/gists{/gist_id}","starred_url":"https://api.github.com/users/FUT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FUT/subscriptions","organizations_url":"https://api.github.com/users/FUT/orgs","repos_url":"https://api.github.com/users/FUT/repos","events_url":"https://api.github.com/users/FUT/events{/privacy}","received_events_url":"https://api.github.com/users/FUT/received_events","type":"User","site_admin":false},"assignees":[{"login":"FUT","id":965875,"avatar_url":"https://avatars.githubusercontent.com/u/965875?v=3","gravatar_id":"","url":"https://api.github.com/users/FUT","html_url":"https://github.com/FUT","followers_url":"https://api.github.com/users/FUT/followers","following_url":"https://api.github.com/users/FUT/following{/other_user}","gists_url":"https://api.github.com/users/FUT/gists{/gist_id}","starred_url":"https://api.github.com/users/FUT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FUT/subscriptions","organizations_url":"https://api.github.com/users/FUT/orgs","repos_url":"https://api.github.com/users/FUT/repos","events_url":"https://api.github.com/users/FUT/events{/privacy}","received_events_url":"https://api.github.com/users/FUT/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489/commits","review_comments_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489/comments","review_comment_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/489/comments","statuses_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/statuses/6a388370ce534922c6279d4440fa200a9be12eda","head":{"label":"Amix047:homework-2","ref":"homework-2","sha":"6a388370ce534922c6279d4440fa200a9be12eda","user":{"login":"Amix047","id":22978562,"avatar_url":"https://avatars.githubusercontent.com/u/22978562?v=3","gravatar_id":"","url":"https://api.github.com/users/Amix047","html_url":"https://github.com/Amix047","followers_url":"https://api.github.com/users/Amix047/followers","following_url":"https://api.github.com/users/Amix047/following{/other_user}","gists_url":"https://api.github.com/users/Amix047/gists{/gist_id}","starred_url":"https://api.github.com/users/Amix047/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amix047/subscriptions","organizations_url":"https://api.github.com/users/Amix047/orgs","repos_url":"https://api.github.com/users/Amix047/repos","events_url":"https://api.github.com/users/Amix047/events{/privacy}","received_events_url":"https://api.github.com/users/Amix047/received_events","type":"User","site_admin":false},"repo":{"id":71554339,"name":"bsuir-courses","full_name":"Amix047/bsuir-courses","owner":{"login":"Amix047","id":22978562,"avatar_url":"https://avatars.githubusercontent.com/u/22978562?v=3","gravatar_id":"","url":"https://api.github.com/users/Amix047","html_url":"https://github.com/Amix047","followers_url":"https://api.github.com/users/Amix047/followers","following_url":"https://api.github.com/users/Amix047/following{/other_user}","gists_url":"https://api.github.com/users/Amix047/gists{/gist_id}","starred_url":"https://api.github.com/users/Amix047/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amix047/subscriptions","organizations_url":"https://api.github.com/users/Amix047/orgs","repos_url":"https://api.github.com/users/Amix047/repos","events_url":"https://api.github.com/users/Amix047/events{/privacy}","received_events_url":"https://api.github.com/users/Amix047/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Amix047/bsuir-courses","description":"This is common repository for all student to submit all their homeworks","fork":true,"url":"https://api.github.com/repos/Amix047/bsuir-courses","forks_url":"https://api.github.com/repos/Amix047/bsuir-courses/forks","keys_url":"https://api.github.com/repos/Amix047/bsuir-courses/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Amix047/bsuir-courses/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Amix047/bsuir-courses/teams","hooks_url":"https://api.github.com/repos/Amix047/bsuir-courses/hooks","issue_events_url":"https://api.github.com/repos/Amix047/bsuir-courses/issues/events{/number}","events_url":"https://api.github.com/repos/Amix047/bsuir-courses/events","assignees_url":"https://api.github.com/repos/Amix047/bsuir-courses/assignees{/user}","branches_url":"https://api.github.com/repos/Amix047/bsuir-courses/branches{/branch}","tags_url":"https://api.github.com/repos/Amix047/bsuir-courses/tags","blobs_url":"https://api.github.com/repos/Amix047/bsuir-courses/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Amix047/bsuir-courses/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Amix047/bsuir-courses/git/refs{/sha}","trees_url":"https://api.github.com/repos/Amix047/bsuir-courses/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Amix047/bsuir-courses/statuses/{sha}","languages_url":"https://api.github.com/repos/Amix047/bsuir-courses/languages","stargazers_url":"https://api.github.com/repos/Amix047/bsuir-courses/stargazers","contributors_url":"https://api.github.com/repos/Amix047/bsuir-courses/contributors","subscribers_url":"https://api.github.com/repos/Amix047/bsuir-courses/subscribers","subscription_url":"https://api.github.com/repos/Amix047/bsuir-courses/subscription","commits_url":"https://api.github.com/repos/Amix047/bsuir-courses/commits{/sha}","git_commits_url":"https://api.github.com/repos/Amix047/bsuir-courses/git/commits{/sha}","comments_url":"https://api.github.com/repos/Amix047/bsuir-courses/comments{/number}","issue_comment_url":"https://api.github.com/repos/Amix047/bsuir-courses/issues/comments{/number}","contents_url":"https://api.github.com/repos/Amix047/bsuir-courses/contents/{+path}","compare_url":"https://api.github.com/repos/Amix047/bsuir-courses/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Amix047/bsuir-courses/merges","archive_url":"https://api.github.com/repos/Amix047/bsuir-courses/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Amix047/bsuir-courses/downloads","issues_url":"https://api.github.com/repos/Amix047/bsuir-courses/issues{/number}","pulls_url":"https://api.github.com/repos/Amix047/bsuir-courses/pulls{/number}","milestones_url":"https://api.github.com/repos/Amix047/bsuir-courses/milestones{/number}","notifications_url":"https://api.github.com/repos/Amix047/bsuir-courses/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Amix047/bsuir-courses/labels{/name}","releases_url":"https://api.github.com/repos/Amix047/bsuir-courses/releases{/id}","deployments_url":"https://api.github.com/repos/Amix047/bsuir-courses/deployments","created_at":"2016-10-21T10:10:13Z","updated_at":"2016-10-21T10:10:15Z","pushed_at":"2016-11-27T22:28:36Z","git_url":"git://github.com/Amix047/bsuir-courses.git","ssh_url":"git@github.com:Amix047/bsuir-courses.git","clone_url":"https://github.com/Amix047/bsuir-courses.git","svn_url":"https://github.com/Amix047/bsuir-courses","homepage":null,"size":2107,"stargazers_count":0,"watchers_count":0,"language":"Ruby","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":"rubyroidlabs:master","ref":"master","sha":"eb75371b4d7a623651d88add7a5b61dbfcaed0d5","user":{"login":"rubyroidlabs","id":5137565,"avatar_url":"https://avatars.githubusercontent.com/u/5137565?v=3","gravatar_id":"","url":"https://api.github.com/users/rubyroidlabs","html_url":"https://github.com/rubyroidlabs","followers_url":"https://api.github.com/users/rubyroidlabs/followers","following_url":"https://api.github.com/users/rubyroidlabs/following{/other_user}","gists_url":"https://api.github.com/users/rubyroidlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/rubyroidlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubyroidlabs/subscriptions","organizations_url":"https://api.github.com/users/rubyroidlabs/orgs","repos_url":"https://api.github.com/users/rubyroidlabs/repos","events_url":"https://api.github.com/users/rubyroidlabs/events{/privacy}","received_events_url":"https://api.github.com/users/rubyroidlabs/received_events","type":"Organization","site_admin":false},"repo":{"id":14405320,"name":"bsuir-courses","full_name":"rubyroidlabs/bsuir-courses","owner":{"login":"rubyroidlabs","id":5137565,"avatar_url":"https://avatars.githubusercontent.com/u/5137565?v=3","gravatar_id":"","url":"https://api.github.com/users/rubyroidlabs","html_url":"https://github.com/rubyroidlabs","followers_url":"https://api.github.com/users/rubyroidlabs/followers","following_url":"https://api.github.com/users/rubyroidlabs/following{/other_user}","gists_url":"https://api.github.com/users/rubyroidlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/rubyroidlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubyroidlabs/subscriptions","organizations_url":"https://api.github.com/users/rubyroidlabs/orgs","repos_url":"https://api.github.com/users/rubyroidlabs/repos","events_url":"https://api.github.com/users/rubyroidlabs/events{/privacy}","received_events_url":"https://api.github.com/users/rubyroidlabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rubyroidlabs/bsuir-courses","description":"This is common repository for all student to submit all their homeworks","fork":false,"url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses","forks_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/forks","keys_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/teams","hooks_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/hooks","issue_events_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/events{/number}","events_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/events","assignees_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/assignees{/user}","branches_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/branches{/branch}","tags_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/tags","blobs_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/git/refs{/sha}","trees_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/statuses/{sha}","languages_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/languages","stargazers_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/stargazers","contributors_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/contributors","subscribers_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/subscribers","subscription_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/subscription","commits_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/commits{/sha}","git_commits_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/git/commits{/sha}","comments_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/comments{/number}","issue_comment_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/comments{/number}","contents_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/contents/{+path}","compare_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/merges","archive_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/downloads","issues_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues{/number}","pulls_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls{/number}","milestones_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/milestones{/number}","notifications_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/labels{/name}","releases_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/releases{/id}","deployments_url":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/deployments","created_at":"2013-11-14T19:55:12Z","updated_at":"2016-11-03T04:38:40Z","pushed_at":"2016-11-27T22:28:36Z","git_url":"git://github.com/rubyroidlabs/bsuir-courses.git","ssh_url":"git@github.com:rubyroidlabs/bsuir-courses.git","clone_url":"https://github.com/rubyroidlabs/bsuir-courses.git","svn_url":"https://github.com/rubyroidlabs/bsuir-courses","homepage":null,"size":12551,"stargazers_count":31,"watchers_count":31,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":174,"mirror_url":null,"open_issues_count":39,"forks":174,"open_issues":39,"watchers":31,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489"},"html":{"href":"https://github.com/rubyroidlabs/bsuir-courses/pull/489"},"issue":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/489"},"comments":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/issues/489/comments"},"review_comments":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489/comments"},"review_comment":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/pulls/489/commits"},"statuses":{"href":"https://api.github.com/repos/rubyroidlabs/bsuir-courses/statuses/6a388370ce534922c6279d4440fa200a9be12eda"}}}}
{"actor":{"display_login":"houndci-bot"}}