Skip to content

ArturAkhmetovSochi/hexlet-assignments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Домашние задания

Работа над домашними заданиями происходит на компьютере студента.

Для каждого домашнего задания мы подготовили отдельный набор файлов. Обычно в нем содержится:

  • Текст задачи (файл 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-tokenPersonal access token из GitHub
  • --hexlet-token – Ваш персональный токен Хекслета

Использование

Перед тем, как начать работу с домашним заданием, нужно выполнить инициализацию проекта. Это можно сделать с помощью команды hexlet assignments init. У нее есть несколько опций:

  • --github-token – Обязательная. Personal access token из GitHub. Создайте свой Personal access token здесь. При создании токена сделайте его бессрочным и проставьте разрешения на repo и workflow
  • --hexlet-token – Обязательная. Ваш персональный токен Хекслета. Этот токен автоматически подставлен в команду на странице домашнего задания
  • --hexlet-dir – Необязательная. Директория, в которую будут скачиваться домашние задания. По умолчанию это будет директория Hexlet в вашей домашней директории

Перейдите на страницу домашней работы, которую нужно скачать. На странице по ссылке «Инициализация утилиты» идентификатор hexlet-token уже подставлен в команду для инициализации:

hexlet assignments init --github-token=<token from github> --hexlet-token=<your hexlet token>

Для инициализации проекта остаётся скопировать команду, вставить свой Personal access token из GitHub и выполнить ее:

# Можно вызывать из любого каталога

hexlet assignments init --github-token=<token from github> --hexlet-token=<your hexlet token>

Инициализацию нужно выполнить один раз перед скачиванием первой домашней работы. Если потребуется изменить расположение локальной директории с домашними работами или восстановить настройки и конфиг локального репозитория, инициализацию нужно выполнить повторно.

Далее можно переходить к выполнению домашней работы. Для команд assignment download и assignment reset аргументом нужно указать адрес урока с домашним заданием. Адрес урока можно скопировать из адресной строки. Также вы можете взять уже готовую команду на скачивание со страницы домашнего задания:

# Эта команда скачивает на компьютер домашнее задание с указанным lesson-url
hexlet assignment download https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit
# Если во время выполнения появилась новая версия
# Эта команда скачивает новую версию домашнего задания
# Предыдущую версию и ваши наработки она скопирует в новую директорию
hexlet assignment reset https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit

Команда assignment submit выполняется без аргументов из директории выполненного домашнего задания или любой его поддиректории:

# Отправляет выполненное домашнее задание на GitHub
# Выполняются команды git add, commit, push
hexlet assignment submit

Если вы хотите вспомнить весь список актуальных команд, можно вывести справочную информацию:

hexlet assignments --help
hexlet assignment --help