Обновление форков студентов =========================== В течении курса в основной репозиторий добавляются лучшие реализации лабораторных работ студентов путём мержа пул реквеста студентов. Эти изменения приводят к мёрж конфликтам у студентов и их необходимо исправить путём мержа основного репозитория в форки студентов. Однако, не все студенты сдают лабораторные во время и обновление для таких студентов и студентов, сдавших лабораторные работы, должны производиться по разным стратегиям: 1. Сдавшим студентам (winners) вливаются лучшие реализации из основного репозитория 2. В форках несдавших студентов (losers) необходимо оставить их реализацию для дальнейшей сдачи лабораторной 3. В форках сдавших студентов, которые проявили желание повысить оценку, необходимо также оставить их реализацию Для автоматизации процесса обновления форков может быть использован скрипт ``config/github/update_forks.py`` и конфигурационный файл ``config/github/update_fork_config.json``. Управление стратегиями обновлений осуществляется через конфигурационный файл: **Стратегия 1** обновления сдавших студентов (winners) настраивается в конфигурационном файле в поле ``winners``. Поле ``forks`` заполняется списком форков сдавших студентов: .. code:: json "winners": { "forks": [ "https://github.com/artyomtugaryov/2024-2-level-labs" ] Например, студенты сдали лабораторную работу ``lab_1_classify_by_unigrams``. Как правило, сдавшим студентам необходимо добавить лучшую реализацию сданной лабораторной работы, вместо их собственной реализации В таком случае в поле ``upstream`` секции ``pathsToKeep`` необходимо указать локальные пути до файлов, версии которых будут взяты главного репозитория, a поле ``fork`` необходимо оставить пустым: .. code:: json "winners": { "forks": [ "https://github.com/artyomtugaryov/2024-2-level-labs" ], "pathsToKeep":{ "fork": [ ], "upstream": [ "lab_1_classify_by_unigrams" ] } } Для студентов, которые не сдали лабораторную работу предназначена секция ``losers``. В ней также необходимо указать все форки не сдавших студентов. В поле ``fork`` в секции ``pathsToKeep`` необходимо указать локальный путь до несданной лабораторной работы: .. code:: json "losers": { "forks": [ "https://github.com/demid5111/2024-2-level-labs" ], "pathsToKeep":{ "fork": [ "lab_1_classify_by_unigrams" ], "upstream": [ ] } } Также для обновления форков студентов необходимо указать имя пользователя, от которого будет сделан и запушен коммит, а также указать токен, сгенерированый на github по инструкции из :ref:``. Для успешного обновления токен можно сгенерировать с разрешениями ``repo`` и ``workflow``. Имя пользователя и токен указываются в соответствующие поля конфигурационного файла. Также необходимо указать ссылку на основной репозиторий: .. code:: json "authentication": { "user": "artyomtugaryov", "token": "ghp_mysecrettoken" }, "upstream": "https://github.com/fipl-hse/2024-2-level-labs" После заполнения конфигурационного файла необходимо запустить скрипт для обновления: .. code:: bash fiplconfig.update_forks --config config/github/update_fork_config.json