Сейчас настроено несколько Github Actions, помогающих автоматизировать некоторые задачи:
- Автоматическая проверка имени Pull Request;
- Автоматическая проверка стиля;
- Автоматический запуск unittests для лабораторных работ;
- Обновление форка с помощью комментария в Pull Request.
Форк может находится в нескольких состояниях по отношению к upstream репозиторию:
- Форк и upstream выровнены по состояниям;
- В upstream появились новые изменения, которых ещё нет в форке:
- Например, при добавлении исправлений для уже существующих файлов.
- В upstream появились новые изменения, которых ещё нет в форке + были изменения в форке, которые конфликтуют с изменениями из upstream:
- Например, когда в upstream была добавлена одна из лабораторных работ как образцовая.
Для случаев 2 и 3 предусмотрены механизмы автоматического обновления через комментарий в Pull Request.
Для случая 2:
- Обновление происходит с помощью комментария, содержащего следующую подстроку:
/update:get_new
- В форке появятся изменения из upstream репозитория.
Случай 3 подразделяется на два сценария исходя из необходимости сохранения лабораторной работы студента в форке:
- Если небходимо оставить версию лабораторной работы из форка, то обновление происходит с помощью комментария, содержащего следующую подстроку:
/update:keep_fork
- В форке появятся изменения из upstream, не касающиеся
main.py
иstart.py
файлов для лабораторных работ:- Файлы
main.py
иstart.py
сохранятся так, как они есть в форке; - Все остальные конфликты будут разрешены в пользу upstream изменений.
- Файлы
- Если необходимо залить в форк версию лабораторной работы из upstream, то обновление происходит с помощью комментария, содержащего следующую подстроку:
/update:keep_upstream
- Форк будет выровнен по состоянию с upstream;
- Все конфликты будут разрешены в пользую upstream изменений.