Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nankuf/hexlet-assignments
Hexlet assignments
https://github.com/nankuf/hexlet-assignments
Last synced: about 1 month ago
JSON representation
Hexlet assignments
- Host: GitHub
- URL: https://github.com/nankuf/hexlet-assignments
- Owner: NankuF
- Created: 2024-03-12T08:41:33.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-22T18:19:18.000Z (9 months ago)
- Last Synced: 2024-03-23T08:28:41.582Z (9 months ago)
- Language: Java
- Size: 464 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Домашние задания
Работа над домашними заданиями происходит на компьютере студента.
Для каждого домашнего задания мы подготовили отдельный набор файлов. Обычно в нем содержится:
* Текст задачи (файл README)
* Тесты кода
* Линтер
* Описание зависимостей
* Пустой файл, в который студент запишет свое решениеВсе эти файлы хранятся на нашем Gitlab, а утилита *Hexlet CLI* выступает интерфейсом для работы с этой системой.
## Команды в утилите Hexlet CLI
Утилита вызывается по имени *hexlet*, и содержит несколько команд:
* *assignments init* — создает репозиторий с именем *hexlet-assignments* в профиле студента на Github
В этот репозиторий будут отправляться все домашние задания, которые вы выполняете на Хекслете, независимо от учебной программы. Для всех учебных программ репозиторий будет один. Имя *hexlet-assignments* для репозитория должно быть свободно.Одновременно с созданием репозитория команда *assignments init* совершает еще два действия:
* Создает конфигурационный файл
* Создает директорию *Hexlet/hexlet-assignments* в домашней директории на компьютере студента* *assignment download* — скачивает домашнее задание
Эта команда обращается к общей директории *Hexlet/hexlet-assignments* и создает там новые файлы:
* Поддиректорию с именем курса
* Поддиректорию с домашним заданием
Теперь там будет храниться все необходимое для домашнего задания: файлы для решения, текст задачи, тесты, линтер и прочее.
То же самое можно сделать и без команды: надо зайти на страницу домашней работы, найти ссылку на нужное задание и скачать его.
* *assignment submit* — отправляет текущее домашнее задание в репозиторий на GitHubВыполненное задание нужно отправить на проверку — именно это и делает команда *submit*.
Она выполняется из локальной директории домашней работы и пушит в ваш удаленный репозиторий все файлы, связанные с текущим заданием. Когда решение студента готово, тесты и линтер локально пройдены, то можно выполнить *submit*. На GitHub также подключены тесты и линтер.* *assignment reset* — скачивает новую версию домашнего задания.
Если уже во время выполнения домашнего задания появляется новая версия упражнения, нужно выполнить *reset*, чтобы повторно скачать ее.
Команды *assignment download* и *assignment reset* создают резервную копию домашнего задания, над которым идет работа. Если выполнить команду *assignment reset* или *assignment download*, то проделанная работа не потеряется. Старая версия с вашими наработками сохранится в новой директории с текущими датой и временем в названии.
### Аргументы
У команд *assignment download* и *assignment reset* есть аргумент *lesson-url*. Ниже мы покажем, как он используется и где взять нужные значения:
* *lesson-url* — адрес урока с домашним заданием. Можно взять его из адресной строки урока или скопировать уже готовую команду для скачивания на странице домашнего задания
### Опции
* *--github-token* – *Personal access token* из GitHub
* *--hexlet-token* – Ваш персональный токен Хекслета### Использование
Перед тем, как начать работу с домашним заданием, нужно выполнить инициализацию проекта. Это можно сделать с помощью команды *hexlet assignments init*. У нее есть несколько опций:
* *--github-token* – Обязательная. *Personal access token* из GitHub. [Создайте](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) свой Personal access token [здесь](https://github.com/settings/tokens). При создании токена сделайте его бессрочным и проставьте разрешения на *repo* и *workflow*
* *--hexlet-token* – Обязательная. Ваш персональный токен Хекслета. Этот токен автоматически подставлен в команду на странице домашнего задания
* *--hexlet-dir* – Необязательная. Директория, в которую будут скачиваться домашние задания. По умолчанию это будет директория Hexlet в вашей домашней директорииПерейдите на страницу домашней работы, которую нужно скачать. На странице по ссылке «Инициализация утилиты» идентификатор *hexlet-token* уже подставлен в команду для инициализации:
```bash
hexlet assignments init --github-token= --hexlet-token=
```Для инициализации проекта остаётся скопировать команду, вставить свой Personal access token из GitHub и выполнить ее:
```bash
# Можно вызывать из любого каталогаhexlet assignments init --github-token= --hexlet-token=
```Инициализацию нужно выполнить один раз перед скачиванием первой домашней работы. Если потребуется изменить расположение локальной директории с домашними работами или восстановить настройки и конфиг локального репозитория, инициализацию нужно выполнить повторно.
Далее можно переходить к выполнению домашней работы. Для команд *assignment download* и *assignment reset* аргументом нужно указать адрес урока с домашним заданием. Адрес урока можно скопировать из адресной строки. Также вы можете взять уже готовую команду на скачивание со страницы домашнего задания:
```bash
# Эта команда скачивает на компьютер домашнее задание с указанным lesson-url
hexlet assignment download https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit
``````bash
# Если во время выполнения появилась новая версия
# Эта команда скачивает новую версию домашнего задания
# Предыдущую версию и ваши наработки она скопирует в новую директорию
hexlet assignment reset https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit
```Команда *assignment submit* выполняется без аргументов из директории выполненного домашнего задания или любой его поддиректории:
```bash
# Отправляет выполненное домашнее задание на GitHub
# Выполняются команды git add, commit, push
hexlet assignment submit
```Если вы хотите вспомнить весь список актуальных команд, можно вывести справочную информацию:
```bash
hexlet assignments --help
``````bash
hexlet assignment --help
```