{"id":20589524,"url":"https://github.com/nankuf/hexlet-assignments","last_synced_at":"2025-08-20T15:41:17.390Z","repository":{"id":227249092,"uuid":"770832865","full_name":"NankuF/hexlet-assignments","owner":"NankuF","description":"Hexlet assignments","archived":false,"fork":false,"pushed_at":"2024-03-22T18:19:18.000Z","size":475,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-16T23:43:00.392Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NankuF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-12T08:41:33.000Z","updated_at":"2024-03-12T10:23:21.000Z","dependencies_parsed_at":"2024-11-16T07:39:59.966Z","dependency_job_id":null,"html_url":"https://github.com/NankuF/hexlet-assignments","commit_stats":null,"previous_names":["nankuf/hexlet-assignments"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fhexlet-assignments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fhexlet-assignments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fhexlet-assignments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fhexlet-assignments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NankuF","download_url":"https://codeload.github.com/NankuF/hexlet-assignments/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242218043,"owners_count":20091324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T07:29:40.106Z","updated_at":"2025-03-06T13:29:31.747Z","avatar_url":"https://github.com/NankuF.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Домашние задания\n\nРабота над домашними заданиями происходит на компьютере студента. \n\nДля каждого домашнего задания мы подготовили отдельный набор файлов. Обычно в нем содержится:\n\n* Текст задачи (файл README) \n* Тесты кода\n* Линтер\n* Описание зависимостей \n* Пустой файл, в который студент запишет свое решение\n\nВсе эти файлы хранятся на нашем Gitlab, а утилита *Hexlet CLI* выступает интерфейсом для работы с этой системой.\n\n## Команды в утилите Hexlet CLI\n\nУтилита вызывается по имени *hexlet*, и содержит несколько команд:\n\n* *assignments init* — создает репозиторий с именем *hexlet-assignments* в профиле студента на Github\n    \n    В этот репозиторий будут отправляться все домашние задания, которые вы выполняете на Хекслете, независимо от учебной программы. Для всех учебных программ репозиторий будет один. Имя *hexlet-assignments* для репозитория должно быть свободно.\n\n    Одновременно с созданием репозитория команда *assignments init* совершает еще два действия: \n    \n    * Создает конфигурационный файл\n    * Создает директорию *Hexlet/hexlet-assignments* в домашней директории на компьютере студента\n\n* *assignment download* — скачивает домашнее задание\n    \n    Эта команда обращается к общей директории *Hexlet/hexlet-assignments* и создает там новые файлы:\n    \n     * Поддиректорию с именем курса\n     * Поддиректорию с домашним заданием\n       \n    Теперь там будет храниться все необходимое для домашнего задания: файлы для решения, текст задачи, тесты, линтер и прочее. \n    То же самое можно сделать и без команды: надо зайти на страницу домашней работы, найти ссылку на нужное задание и скачать его.\n    \n* *assignment submit* — отправляет текущее домашнее задание в репозиторий на GitHub\n\n    Выполненное задание нужно отправить на проверку — именно это и делает команда *submit*.\n    Она выполняется из локальной директории домашней работы и пушит в ваш удаленный репозиторий все файлы, связанные с текущим заданием. Когда решение студента готово, тесты и линтер локально пройдены, то можно выполнить *submit*. На GitHub также подключены тесты и линтер. \n\n* *assignment reset* — скачивает новую версию домашнего задания.\n\n    Если уже во время выполнения домашнего задания появляется новая версия упражнения, нужно выполнить *reset*, чтобы повторно скачать ее.\n\nКоманды *assignment download* и *assignment reset* создают резервную копию домашнего задания, над которым идет работа. Если выполнить команду *assignment reset* или *assignment download*, то проделанная работа не потеряется. Старая версия с вашими наработками сохранится в новой директории с текущими датой и временем в названии.\n\n### Аргументы\n\nУ команд *assignment download* и *assignment reset* есть аргумент *lesson-url*. Ниже мы покажем, как он используется и где взять нужные значения:\n\n* *lesson-url* — адрес урока с домашним заданием. Можно взять его из адресной строки урока или скопировать уже готовую команду для скачивания на странице домашнего задания\n\n### Опции\n\n* *--github-token* – *Personal access token* из GitHub\n* *--hexlet-token* – Ваш персональный токен Хекслета\n\n### Использование\n\nПеред тем, как начать работу с домашним заданием, нужно выполнить инициализацию проекта. Это можно сделать с помощью команды *hexlet assignments init*. У нее есть несколько опций:\n\n* *--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*\n* *--hexlet-token* – Обязательная. Ваш персональный токен Хекслета. Этот токен автоматически подставлен в команду на странице домашнего задания\n* *--hexlet-dir* – Необязательная. Директория, в которую будут скачиваться домашние задания. По умолчанию это будет директория Hexlet в вашей домашней директории\n\nПерейдите на страницу домашней работы, которую нужно скачать. На странице по ссылке «Инициализация утилиты» идентификатор *hexlet-token* уже подставлен в команду для инициализации:\n\n```bash\nhexlet assignments init --github-token=\u003ctoken from github\u003e --hexlet-token=\u003cyour hexlet token\u003e\n```\n\nДля инициализации проекта остаётся скопировать команду, вставить свой Personal access token из GitHub и выполнить ее:\n\n```bash\n# Можно вызывать из любого каталога\n\nhexlet assignments init --github-token=\u003ctoken from github\u003e --hexlet-token=\u003cyour hexlet token\u003e\n```\n\nИнициализацию нужно выполнить один раз перед скачиванием первой домашней работы. Если потребуется изменить расположение локальной директории с домашними работами или восстановить настройки и конфиг локального репозитория, инициализацию нужно выполнить повторно.\n\nДалее можно переходить к выполнению домашней работы. Для команд *assignment download* и *assignment reset* аргументом нужно указать адрес урока с домашним заданием. Адрес урока можно скопировать из адресной строки. Также вы можете взять уже готовую команду на скачивание со страницы домашнего задания:\n\n```bash\n# Эта команда скачивает на компьютер домашнее задание с указанным lesson-url\nhexlet assignment download https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit\n```\n\n```bash\n# Если во время выполнения появилась новая версия\n# Эта команда скачивает новую версию домашнего задания\n# Предыдущую версию и ваши наработки она скопирует в новую директорию\nhexlet assignment reset https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit\n```\n\nКоманда *assignment submit* выполняется без аргументов из директории выполненного домашнего задания или любой его поддиректории:\n\n```bash\n# Отправляет выполненное домашнее задание на GitHub\n# Выполняются команды git add, commit, push\nhexlet assignment submit\n```\n\nЕсли вы хотите вспомнить весь список актуальных команд, можно вывести справочную информацию:\n\n```bash\nhexlet assignments --help\n```\n\n```bash\nhexlet assignment --help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnankuf%2Fhexlet-assignments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnankuf%2Fhexlet-assignments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnankuf%2Fhexlet-assignments/lists"}