Created
June 14, 2019 13:38
-
-
Save dabonka/2d738a48cb98aaa8def89da762928dc9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Задача | |
В рамках тестового задания предлагается реализовать rest сервис на Ruby/Elixir, который позволит просматривать список репозиториев пользователей github.com, а так же коммиты в конкретном репозитории. | |
В качестве тестовых данных можно использовать имя пользователя matz и его репозиторий streem. | |
Требования к реализации | |
• Реализовать приложение с помощью Ruby/Elixir | |
• Использовать graphql api github.com (https://developer.github.com/v4/) | |
• Для формирования запросов к api github использовать любой http клиент (использовать официальные клиенты под github api нельзя) | |
• Приложение должно запускаться локально и быть доступно по порту 4000, для этого можно использовать любой web фрэймворк (Sinatra, Rails, Rack etc) | |
• Плюсом будет документация Readme.md и тесты на проект | |
Результат выполнения работы выложить на github.com. | |
Функциональные требования | |
BREQ1 Просмотр репозиториев пользователя | |
При запросе ресурса /user/:login приложение должно возвращать в ответе последние 10 репозиториев пользователя. | |
Ресурс: /user/:login | |
Тип запроса: GET | |
Формат ответа: JSON | |
Структура ответа: | |
{ | |
"response": { | |
"user": { | |
"name": "user name" | |
}, | |
"repositories": [ | |
{ | |
"name": "repo name", | |
"created_at": "repo created at date" | |
} | |
] | |
} | |
} | |
В противном случае, если искомого логина не существует, необходимо вернуть ошибку. | |
Структура ответа: | |
{ | |
"response": { | |
"error": “<Reason>" | |
} | |
} | |
BREQ2 Отображение коммитов в репозитории | |
При запросе ресурса GET /user/:login/:repo приложение должно возвращать в ответе последние 10 коммитов из master ветки запрашиваемого репозитория. | |
Ресурс: /user/:login/:repo | |
Тип запроса: GET | |
Формат ответа: JSON | |
Структура ответа: | |
{ | |
"response": { | |
"repo": { | |
"name": "repo name", | |
"commits": [ | |
{ | |
"message": "commit message", | |
"commit_date": "date-of-commit" | |
} | |
] | |
} | |
} | |
} | |
В противном случае, если искомого репозитория не существует, необходимо вернуть ошибку. | |
Структура ответа: | |
{ | |
"response": { | |
"error": “<Reason>" | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment