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