{"action":"created","comment":{"url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/comments/244644876","pull_request_review_id":188564973,"id":244644876,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDY0NDg3Ng==","diff_hunk":"@@ -0,0 +1,159 @@\n+# Heroku - облачная платформа для хостинга приложений\n+Heroku - удобная платформа для разворачивания \"правильных\" приложений. Что такое облачная платформа и что такое \"правильные\" приложения - далее.\n+\n+## Что такое облачная платформа. Как это работает?\n+И так. Начнём с того, что такое облако. Облако - большое количество серверов, которыми занимается кто-то другой. Вам же на этих серверах можно делать что-то, что хотите сами, но по строгим правилам лицензирования. Например если владелец серверов не хочет иметь проблем с ФСБ, он может просто не разрешать использовать свои сервера для создания проксей Телеграма или какого-ниудь Tor. Но это уже политика...\n+\n+Чем же это удобно для нас? Тем что нам не нужно руками трогать сервер и понимать как и какие провода соединять чтобы оно работало. Мы можем просто заказать процессоры определённой мощьности или время работы на этих процессорах или диски определённого объёма. Нам не нужно ничего самим трогать и думать о физической составляющей - этим занимается хостер. Даже больше того, вы можете сказать: \"Мне сегодня понадобятся 300 серверов, потому что сегодня будет праздник\", и хостер в автоматическом режиме просто отдаст вам 300 серверов.\n+\n+### Чем это отличается от VDS?\n+Ну в основном тем, что все облачные сервисы принимают только \"правильные\" приложения, иначае просто не заработает. \"Правильные\" приложение - которые можно запускать в автоматическом режиме без участия человека. Это нужно как раз для того, чтобы хостер мог без особых трудностей развернуть для вас 300 серверов за 10 секунд и точно так же за 2 секунды без лишних проблем отдать эти сервера другому человеку, если они ему будут нужнее.\n+\n+Каждый сервис предлагает свои способы организации \"правильных\" приложений:\n+- [Firebase](https://firebase.google.com/) - Платформа, которая даёт свой времворк для взаимодействия. Если вы знаете что такое VM или какой-нибудь Node.js, то по сути вы просто пишите код для этой платформы и он просто вызывается тогда, когда это надо, без лишних прогреваний или запуска виртуального сервера. _Оплата по количеству запросов_.\n+- [Amazon Web Services](https://aws.amazon.com/ru/) - Вы создаёте своё приложение каким хотите, разделяете его на небольшие кусочки (ноды) и отдаёте это всё Амазону. Он сам знает когда и сколько чего развернуть. _Оплата по времени работы и объёму*время хранения данных в хранилищах_.\n+- [Heroku](https://heroku.com) - Обёртка над AWS. Вы создаёте приложение на любимом языке (Node.js, Ruby, PHP, Python) и рассказываете в небольшом файле Procfile как именно ваше приложение можно запустить. Вся остальная рутина по объяснению AWS как всё запускать остаётся на серверах самого Heroku. _Оплата по времени работы_.\n+\n+## Почему Heroku?\n+И так какие есть плюсы вот какие плюсы есть у Heroku:\n+1. Бесплатно: 570 часов работы каждый месяц (19 часов/день), 10k строчек в БД (Postgree) и Redis - достаточно неплохо для школьного проекта\n+2. Переносимость на свой сервер при необходимости - в отличии от Firebase вам не нужно будет из кода выпиливать половину специальных конструкций. В отличии от AWS, все необходимые вещи для запуска приложение вы вполоне сможете выполнить и руками на своём собственном сервере, ведь \"правильное\" приложение уже сделано.\n+3. При регистрации не нужно никаких кредитных карточек.\n+\n+Для какого рода приложений хорошо:\n+- Веб сайт или блог\n+- Боты\n+- Панелька какая-нибудь администраторская\n+- Чатик\n+\n+Для него неоч:\n+- Бекэнд для мобильных приложений - тут лучше посмотреть в сторону [Firebase](https://firebase.google.com/), там для мобильных приложений очень много интересных плюшек предусмотрено.\n+- Сервер для чего-то, что должно работать 24/7 - вам может не хватить бесплатного пакета услуг...\n+\n+## Немного подробнее\n+И так, как же работает Heroku. В отличии от AWS, ваше приложение не работает всё время, оно включается тогда, когда к нему пришёл какой-то запрос и работает после этого ещё 30 минут, вдруг ещё придёт. \n+\n+Плюсы такого подхода - экономия времени работы для хостера, плюсы для нас - можно растянуть удовольствие чуть дольше) \n+\n+Минусы - приложение запускается на самом деле не очень быстро, так что может возникунть проблема того, что пользователь будет минутку другую ждать пока ему придёт ответ от нашего сервера, но зато остальное время будет достаточно шустро раотать. Это называется разогревом. Для разного рода ботов проблема не большая - сервера телеги или вк всегда пришлют ещё один запросик, чтобы уж точно дошёл. А вот для системы слежения за хомячками - уже больше проблем.\n+\n+Так же платформа имеет \"пресеты\" для разных языков (Node.js, Python, Ruby, PHP, Java, Closure, Scala, Go). Это всё из **бесплатных** пресетов, так же вы можете \"докупить\" пресет под что-то относительно экзотическое, например MySQL базу данных или RabbitMQ очередь для своего проекта. Ну или, например, C++ среду для какой-то своей очень очень ресурсоёмкой задачи.\n+\n+Но для нас вполне хватит Python + Postgree + Redis, остальное в проектах ШИР не встречается)\n+\n+Так же платформа позволяет [выполнять какие-то команды по расписанию](https://devcenter.heroku.com/articles/scheduler). Вещь работает достаточно стабильно, хотя сами **разработчики предупреждают**, что иногда может давать осечки... Работает она так же как и простое приложение - как только запустилось, **начались вычитываться месячные часы работы**, как только закончило что-то выполнять - всё, списываться ничего не будет.\n+\n+Ещё можно запускать worker процессы - которые будут работать постоянно. Но эти процессы **будут так же есть часы в месяц**, которые можно было использовать для работы основного приложения. Поэтому эта фича просто достойна упоминаний. \n+\n+Все необходимые настройки приложению передаются через ENV. Это скорее стандарт для всех приложений у больших компаний, так что при разработке приложения сразу советую все необходимые настройки брать из окуржения.\n+\n+# Перейдём к развёртыванию!\n+Для примера возьмём вот такое сферическое приложение в вакууме:\n+- Наше приложение наприсано на Python\n+- Мы используем Flask\n+- Нам нужна БД\n+- Приложение является блогом\n+- Все исходники приложения хранятся на GitHub\n+\n+## Регистрация\n+Для того, чтобы воспользоваться чем-то, нужно зарегистрироваться.\n+\n+1. Заходим на [страницу регистрации](https://signup.heroku.com/)\n+2. Первые 3 поля - обязательные для честного заполнения. Остальное - для статистики внутри хероку. Но компанией вы моежет назвать свою команду, себя представить студентом, а любимый язык выбрать по вкусу.\n+3. **Не забудьте прочитать Правила!**\n+\n+## Создание приложения\n+После регистрации и подтверждения email адреса нас должно впустить в Dashboard. Это панель управления. Тут будут находится все наши приложения.\n+\n+1. Теперь мы можем нажать на кнопку \"New\" и выбрать \"Create New App\"\n+2. Каким-то образом называем наше приложение. Это нужно потому, что потом наше приложение будет доступно по адресу `https://<appname>.herokuapp.com`, ну и приложение должно иметь какое-то уникальное имя.\n+3. Страна развёртывания - где будет ваше приложение храниться, в каком датацентре. На самом деле интернет не такой уж и большой, но от нас ближе Европа, так что давайте выберем её.\n+\n+\n+Нас сразу перекинуло на вкладку \"Deploy\". Так что продолжим\n+\n+## Развёртывание\n+Способов передачи приложения серверам хероку очень много - и ручные, и специальные git репозитории, и Docker образа. Нам всё это не интересно, потому что это всё сложные технологии для бородатых дядек, которые едят на завтрак материнские платы, запивая смуззи из пива.\n+\n+Мы люди простые, нам хочется чтобы всё делалось автоматом, поэтому мы **привяжем GitHub-репозиторий**!\n+1. Выбираем вкладку \"GitHub\"\n+2. Проходим процесс \"привязки\" GitHub-аккаунта\n+3. Находим свой репозиторий с помощью специального поля поиска\n+4. Нажимаем кнопку \"Connect\"\n+\n+Теперь давайте включим автоматическое развёртывание. Для этого в секции **\"Automatic deploys\"** нажимаем кнопку **\"Enable Automatic Deploys\"**.\n+\n+Всё! Теперь когда мы даем какой-то коммит в `master` ветку нашего репозитория хероку автоматически будет забирать все исходники из репозитория и разворачивать приложение.\n+\n+## Инструкции к разворачиванию\n+### - А какой язык ты используешь, расскажи?\n+На самом деле сейчас Heroku не сможет ничего развернуть. Потому что он даже не знает даже как к нашему приложению подойти, может это Ruby приложение, может вообще Java!\n+\n+Давайте сделаем файл-индикатор. В нашем случае (Python) файлом-индикатором является `requirements.txt`, в котором должны храниться названия и версии всех пакетов, которые необходимы для работы нашего приложения. Создать этот файл очень просто:\n+```bash\n+pip3 freeze > requirements.txt","path":"tutorial/heroku_deployment.md","position":90,"original_position":94,"commit_id":"c640bdf023fdb3717e8d124e8e17e71a50cf1e28","original_commit_id":"5cd5636839cac574c4ce825efe052539b5bb407b","user":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"body":"И pip freeze - команда как раз для создания requirements.txt. Так что эта команда вполне оправдана. А учитывая, что никаким другим образом получить такой файл нельзя нормально, то лучше оставить как есть.","created_at":"2019-01-01T18:44:47Z","updated_at":"2019-01-01T18:45:00Z","html_url":"https://github.com/BANOnotIT/helpdesk/pull/137#discussion_r244644876","pull_request_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/comments/244644876"},"html":{"href":"https://github.com/BANOnotIT/helpdesk/pull/137#discussion_r244644876"},"pull_request":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137"}},"in_reply_to_id":244644118},"pull_request":{"url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137","id":241642595,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxNjQyNTk1","html_url":"https://github.com/BANOnotIT/helpdesk/pull/137","diff_url":"https://github.com/BANOnotIT/helpdesk/pull/137.diff","patch_url":"https://github.com/BANOnotIT/helpdesk/pull/137.patch","issue_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/137","number":137,"state":"open","locked":false,"title":"docs: Add Heroku tutorial","user":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"body":"","created_at":"2019-01-01T17:02:28Z","updated_at":"2019-01-01T18:45:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e2ee3987557bfaf6439978fcd857c026d58ed793","assignee":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"assignees":[{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"lariliel","id":3223323,"node_id":"MDQ6VXNlcjMyMjMzMjM=","avatar_url":"https://avatars0.githubusercontent.com/u/3223323?v=4","gravatar_id":"","url":"https://api.github.com/users/lariliel","html_url":"https://github.com/lariliel","followers_url":"https://api.github.com/users/lariliel/followers","following_url":"https://api.github.com/users/lariliel/following{/other_user}","gists_url":"https://api.github.com/users/lariliel/gists{/gist_id}","starred_url":"https://api.github.com/users/lariliel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lariliel/subscriptions","organizations_url":"https://api.github.com/users/lariliel/orgs","repos_url":"https://api.github.com/users/lariliel/repos","events_url":"https://api.github.com/users/lariliel/events{/privacy}","received_events_url":"https://api.github.com/users/lariliel/received_events","type":"User","site_admin":false},{"login":"Khazbs","id":15271295,"node_id":"MDQ6VXNlcjE1MjcxMjk1","avatar_url":"https://avatars2.githubusercontent.com/u/15271295?v=4","gravatar_id":"","url":"https://api.github.com/users/Khazbs","html_url":"https://github.com/Khazbs","followers_url":"https://api.github.com/users/Khazbs/followers","following_url":"https://api.github.com/users/Khazbs/following{/other_user}","gists_url":"https://api.github.com/users/Khazbs/gists{/gist_id}","starred_url":"https://api.github.com/users/Khazbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khazbs/subscriptions","organizations_url":"https://api.github.com/users/Khazbs/orgs","repos_url":"https://api.github.com/users/Khazbs/repos","events_url":"https://api.github.com/users/Khazbs/events{/privacy}","received_events_url":"https://api.github.com/users/Khazbs/received_events","type":"User","site_admin":false},{"login":"MarmaladeKnight","id":22205395,"node_id":"MDQ6VXNlcjIyMjA1Mzk1","avatar_url":"https://avatars2.githubusercontent.com/u/22205395?v=4","gravatar_id":"","url":"https://api.github.com/users/MarmaladeKnight","html_url":"https://github.com/MarmaladeKnight","followers_url":"https://api.github.com/users/MarmaladeKnight/followers","following_url":"https://api.github.com/users/MarmaladeKnight/following{/other_user}","gists_url":"https://api.github.com/users/MarmaladeKnight/gists{/gist_id}","starred_url":"https://api.github.com/users/MarmaladeKnight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarmaladeKnight/subscriptions","organizations_url":"https://api.github.com/users/MarmaladeKnight/orgs","repos_url":"https://api.github.com/users/MarmaladeKnight/repos","events_url":"https://api.github.com/users/MarmaladeKnight/events{/privacy}","received_events_url":"https://api.github.com/users/MarmaladeKnight/received_events","type":"User","site_admin":false},{"login":"olpyhn","id":36367305,"node_id":"MDQ6VXNlcjM2MzY3MzA1","avatar_url":"https://avatars2.githubusercontent.com/u/36367305?v=4","gravatar_id":"","url":"https://api.github.com/users/olpyhn","html_url":"https://github.com/olpyhn","followers_url":"https://api.github.com/users/olpyhn/followers","following_url":"https://api.github.com/users/olpyhn/following{/other_user}","gists_url":"https://api.github.com/users/olpyhn/gists{/gist_id}","starred_url":"https://api.github.com/users/olpyhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olpyhn/subscriptions","organizations_url":"https://api.github.com/users/olpyhn/orgs","repos_url":"https://api.github.com/users/olpyhn/repos","events_url":"https://api.github.com/users/olpyhn/events{/privacy}","received_events_url":"https://api.github.com/users/olpyhn/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137/commits","review_comments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137/comments","review_comment_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/137/comments","statuses_url":"https://api.github.com/repos/BANOnotIT/helpdesk/statuses/c640bdf023fdb3717e8d124e8e17e71a50cf1e28","head":{"label":"BANOnotIT:BANOnotIT-patch-1","ref":"BANOnotIT-patch-1","sha":"c640bdf023fdb3717e8d124e8e17e71a50cf1e28","user":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"repo":{"id":155566596,"node_id":"MDEwOlJlcG9zaXRvcnkxNTU1NjY1OTY=","name":"helpdesk","full_name":"BANOnotIT/helpdesk","private":false,"owner":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"html_url":"https://github.com/BANOnotIT/helpdesk","description":null,"fork":false,"url":"https://api.github.com/repos/BANOnotIT/helpdesk","forks_url":"https://api.github.com/repos/BANOnotIT/helpdesk/forks","keys_url":"https://api.github.com/repos/BANOnotIT/helpdesk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BANOnotIT/helpdesk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BANOnotIT/helpdesk/teams","hooks_url":"https://api.github.com/repos/BANOnotIT/helpdesk/hooks","issue_events_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/events{/number}","events_url":"https://api.github.com/repos/BANOnotIT/helpdesk/events","assignees_url":"https://api.github.com/repos/BANOnotIT/helpdesk/assignees{/user}","branches_url":"https://api.github.com/repos/BANOnotIT/helpdesk/branches{/branch}","tags_url":"https://api.github.com/repos/BANOnotIT/helpdesk/tags","blobs_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/refs{/sha}","trees_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BANOnotIT/helpdesk/statuses/{sha}","languages_url":"https://api.github.com/repos/BANOnotIT/helpdesk/languages","stargazers_url":"https://api.github.com/repos/BANOnotIT/helpdesk/stargazers","contributors_url":"https://api.github.com/repos/BANOnotIT/helpdesk/contributors","subscribers_url":"https://api.github.com/repos/BANOnotIT/helpdesk/subscribers","subscription_url":"https://api.github.com/repos/BANOnotIT/helpdesk/subscription","commits_url":"https://api.github.com/repos/BANOnotIT/helpdesk/commits{/sha}","git_commits_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/commits{/sha}","comments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/comments{/number}","issue_comment_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/comments{/number}","contents_url":"https://api.github.com/repos/BANOnotIT/helpdesk/contents/{+path}","compare_url":"https://api.github.com/repos/BANOnotIT/helpdesk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BANOnotIT/helpdesk/merges","archive_url":"https://api.github.com/repos/BANOnotIT/helpdesk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BANOnotIT/helpdesk/downloads","issues_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues{/number}","pulls_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls{/number}","milestones_url":"https://api.github.com/repos/BANOnotIT/helpdesk/milestones{/number}","notifications_url":"https://api.github.com/repos/BANOnotIT/helpdesk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BANOnotIT/helpdesk/labels{/name}","releases_url":"https://api.github.com/repos/BANOnotIT/helpdesk/releases{/id}","deployments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/deployments","created_at":"2018-10-31T13:58:26Z","updated_at":"2018-11-24T15:50:13Z","pushed_at":"2019-01-01T18:41:58Z","git_url":"git://github.com/BANOnotIT/helpdesk.git","ssh_url":"git@github.com:BANOnotIT/helpdesk.git","clone_url":"https://github.com/BANOnotIT/helpdesk.git","svn_url":"https://github.com/BANOnotIT/helpdesk","homepage":null,"size":70,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":8,"license":null,"forks":2,"open_issues":8,"watchers":0,"default_branch":"master"}},"base":{"label":"BANOnotIT:master","ref":"master","sha":"368089c08d3ce603a07218fb620943b8ec2fa9e1","user":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"repo":{"id":155566596,"node_id":"MDEwOlJlcG9zaXRvcnkxNTU1NjY1OTY=","name":"helpdesk","full_name":"BANOnotIT/helpdesk","private":false,"owner":{"login":"BANOnotIT","id":11363215,"node_id":"MDQ6VXNlcjExMzYzMjE1","avatar_url":"https://avatars1.githubusercontent.com/u/11363215?v=4","gravatar_id":"","url":"https://api.github.com/users/BANOnotIT","html_url":"https://github.com/BANOnotIT","followers_url":"https://api.github.com/users/BANOnotIT/followers","following_url":"https://api.github.com/users/BANOnotIT/following{/other_user}","gists_url":"https://api.github.com/users/BANOnotIT/gists{/gist_id}","starred_url":"https://api.github.com/users/BANOnotIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BANOnotIT/subscriptions","organizations_url":"https://api.github.com/users/BANOnotIT/orgs","repos_url":"https://api.github.com/users/BANOnotIT/repos","events_url":"https://api.github.com/users/BANOnotIT/events{/privacy}","received_events_url":"https://api.github.com/users/BANOnotIT/received_events","type":"User","site_admin":false},"html_url":"https://github.com/BANOnotIT/helpdesk","description":null,"fork":false,"url":"https://api.github.com/repos/BANOnotIT/helpdesk","forks_url":"https://api.github.com/repos/BANOnotIT/helpdesk/forks","keys_url":"https://api.github.com/repos/BANOnotIT/helpdesk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BANOnotIT/helpdesk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BANOnotIT/helpdesk/teams","hooks_url":"https://api.github.com/repos/BANOnotIT/helpdesk/hooks","issue_events_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/events{/number}","events_url":"https://api.github.com/repos/BANOnotIT/helpdesk/events","assignees_url":"https://api.github.com/repos/BANOnotIT/helpdesk/assignees{/user}","branches_url":"https://api.github.com/repos/BANOnotIT/helpdesk/branches{/branch}","tags_url":"https://api.github.com/repos/BANOnotIT/helpdesk/tags","blobs_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/refs{/sha}","trees_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BANOnotIT/helpdesk/statuses/{sha}","languages_url":"https://api.github.com/repos/BANOnotIT/helpdesk/languages","stargazers_url":"https://api.github.com/repos/BANOnotIT/helpdesk/stargazers","contributors_url":"https://api.github.com/repos/BANOnotIT/helpdesk/contributors","subscribers_url":"https://api.github.com/repos/BANOnotIT/helpdesk/subscribers","subscription_url":"https://api.github.com/repos/BANOnotIT/helpdesk/subscription","commits_url":"https://api.github.com/repos/BANOnotIT/helpdesk/commits{/sha}","git_commits_url":"https://api.github.com/repos/BANOnotIT/helpdesk/git/commits{/sha}","comments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/comments{/number}","issue_comment_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/comments{/number}","contents_url":"https://api.github.com/repos/BANOnotIT/helpdesk/contents/{+path}","compare_url":"https://api.github.com/repos/BANOnotIT/helpdesk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BANOnotIT/helpdesk/merges","archive_url":"https://api.github.com/repos/BANOnotIT/helpdesk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BANOnotIT/helpdesk/downloads","issues_url":"https://api.github.com/repos/BANOnotIT/helpdesk/issues{/number}","pulls_url":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls{/number}","milestones_url":"https://api.github.com/repos/BANOnotIT/helpdesk/milestones{/number}","notifications_url":"https://api.github.com/repos/BANOnotIT/helpdesk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BANOnotIT/helpdesk/labels{/name}","releases_url":"https://api.github.com/repos/BANOnotIT/helpdesk/releases{/id}","deployments_url":"https://api.github.com/repos/BANOnotIT/helpdesk/deployments","created_at":"2018-10-31T13:58:26Z","updated_at":"2018-11-24T15:50:13Z","pushed_at":"2019-01-01T18:41:58Z","git_url":"git://github.com/BANOnotIT/helpdesk.git","ssh_url":"git@github.com:BANOnotIT/helpdesk.git","clone_url":"https://github.com/BANOnotIT/helpdesk.git","svn_url":"https://github.com/BANOnotIT/helpdesk","homepage":null,"size":70,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":8,"license":null,"forks":2,"open_issues":8,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137"},"html":{"href":"https://github.com/BANOnotIT/helpdesk/pull/137"},"issue":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/137"},"comments":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/issues/137/comments"},"review_comments":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137/comments"},"review_comment":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/pulls/137/commits"},"statuses":{"href":"https://api.github.com/repos/BANOnotIT/helpdesk/statuses/c640bdf023fdb3717e8d124e8e17e71a50cf1e28"}},"author_association":"OWNER"}}
{"actor":{"display_login":"BANOnotIT"}}