Репозитории на GitHub, GitVerse, GitLab и SourceCraft
Где курс держит код студентов, как подключить организацию на GitHub, GitVerse, SourceCraft или группу своего GitLab и чем они различаются.
Репозитории студентов живут в вашей организации на хостинге кода, а заводит их платформа: на команду, на человека или один на курс, и сразу зовёт в них тех, кто в команде. Время сдачи платформа берёт у хостинга — когда открыт запрос на слияние, а не дату коммита.
Подключить можно четыре хостинга:
- GitHub — через приложение Disputa, которое ставится в организацию;
- GitVerse — российский хостинг, через ваш вход на GitVerse;
- свой GitLab вуза — группа на GitLab вуза, через токен доступа группы. Студенты входят в Disputa через этот GitLab;
- SourceCraft — хостинг кода Яндекса, через сервисный аккаунт организации Yandex Cloud. Студенты входят через Яндекс ID.
Экран — «Репозитории» в меню потока.
Где лежит код — настройка курса
В форме «Как заводить» выберите организацию и внизу — «Для кого»:
- Все потоки курса — правило ложится на курс, и каждый его поток без своего правила берёт его;
- Только этот поток — своё правило поверх курса, например другой хостинг для одной группы.
Под заголовком формы видно, откуда правило сейчас: своё у потока, общее для курса или для организации. Уже заведённые репозитории правило не трогает.
Свой раннер CI
В той же форме — «Свой раннер CI». Включите, если на курсе команды выкатывают работу на свой сервер: на странице работы участник получит команду, чтобы подключить раннер к репозиторию своей команды. Зарегистрировать раннер сам он не может — для этого нужны права администратора репозитория, а их участникам не дают, чтобы не сняли защиту main. Работает на GitHub и GitLab. По умолчанию выключено: курсам без деплоя это лишняя кнопка и лишние раннеры в организации. Что видит студент — Свой раннер CI.
GitHub
- Заведите на GitHub организацию для репозиториев студентов, это бесплатно.
- На экране «Репозитории» нажмите «Установить приложение Disputa» и поставьте его в эту организацию с доступом ко всем репозиториям.
Студенты входят через Яндекс ID или VK ID и привязывают GitHub: по его логину платформа зовёт в репозитории. Без привязки в курс не записаться, код курса сам попросит её следующим шагом. Входить через GitHub закон не разрешает.
GitVerse
- Заведите на GitVerse организацию и станьте в ней администратором.
- Привяжите GitVerse к своему профилю: меню профиля → «Аккаунты и вход».
- На экране «Репозитории», в карточке «Организация на GitVerse», нажмите «Дать доступ к организациям GitVerse» и подтвердите на GitVerse.
- Впишите имя организации — как в адресе gitverse.ru/имя — и нажмите «Подключить».
Студенты входят через GitVerse, и по их логину на GitVerse платформа зовёт в репозитории. Код курса сам предложит вход через нужный хостинг.
Чем GitVerse отличается
- Действует от вашего имени. Приложения в организации у GitVerse нет, поэтому платформа работает доступом того, кто подключил организацию: комментарии в запросах на слияние пойдут от него. Удобнее завести на GitVerse отдельного пользователя, сделать его администратором организации и подключать им.
- Шаблон репозитория. GitVerse не умеет создавать репозиторий из шаблона по запросу платформы: репозитории заводятся с README, стартовый код студенты добавляют сами.
- Защита main. Её ставит не платформа, а правило защиты веток в самой организации на GitVerse.
- Отметка проверки. Отметки «Автопроверка» рядом с CI на GitVerse нет: агент оставляет комментарий и пометки к строкам, а итоги CI на GitVerse не читает.
Доступ к GitVerse продлевается сам, пока идут проверки, а в каникулы — раз в сутки. Если тот, кто подключал, отозвал доступ на GitVerse, платформа скажет об этом на экране «Репозитории»: подключите организацию заново.
Свой GitLab вуза
Подходит вузу, у которого свой GitLab, а LMS нет или курс открывается не из неё: студенты входят в Disputa через GitLab вуза, и по этому входу платформа зовёт их в репозитории.
GitLab вуза должен быть доступен из интернета: платформа работает в облаке и ходит к нему сама.
Токен группы
- Заведите на GitLab группу для курса — например,
kafedra/sii-2026— и станьте в ней владельцем. - В группе откройте «Настройки → Токены доступа» и выпустите токен: роль Maintainer, право api, срок — максимальный. Платформа будет продлевать его сама.
На бесплатном gitlab.com токенов группы нет. Там заведите в группе сервисный аккаунт («Настройки → Сервисные аккаунты»), добавьте его в группу с ролью Maintainer и выпустите его токен с правом api.
Вход студентов
В той же группе откройте «Настройки → Приложения» и заведите приложение:
- адрес возврата — тот, что показан в карточке «Свой GitLab вуза» на экране «Репозитории»;
- право —
read_user; - конфиденциальное — да.
Без приложения репозитории заводятся, но студентам не войти через GitLab, и платформа не узнает их логины: приложение можно добавить и позже, подключив группу заново.
Подключить
На экране «Репозитории», в карточке «Свой GitLab вуза», впишите адрес GitLab, путь группы, токен, ID и секрет приложения и нажмите «Подключить». Платформа сначала проверит, что GitLab отвечает, у токена есть право api, а у его владельца в группе роль не ниже Maintainer, — и только потом сохранит. Токен и секрет приложения хранятся зашифрованными.
Код курса, который живёт на этом GitLab, сам предложит студенту «Войти через GitLab» — и логин GitLab придёт вместе со входом.
Чем GitLab отличается
- Действует бот группы. Комментарии в запросах на слияние пишет бот токена группы или сервисный аккаунт, а не человек.
- Шаблон репозитория. Шаблон указывается путём проекта на том же GitLab: его файлы платформа кладёт в новый репозиторий одним коммитом, без связи с шаблоном — запросы на слияние студентов не уйдут в шаблон.
- Защита main. В main пушат только сопровождающие, запросы на слияние сливают участники. Правил одобрения на бесплатном тарифе GitLab нет.
- Вебхуки. Вебхук группы в GitLab есть только в платных тарифах, поэтому платформа ставит вебхук на каждый проект сама.
- Отметка проверки. Итог автопроверки виден в запросе на слияние как статус коммита — рядом с конвейером.
- gitlab.com. В закрытой группе верхнего уровня на бесплатном gitlab.com может быть не больше пяти человек — для курса берите свой GitLab, открытую группу с закрытыми проектами или программу GitLab для образования.
Токен группы платформа продлевает сама за месяц до конца. Если GitLab отказал — токен отозвали или удалили сервисный аккаунт, — на экране «Репозитории» подключение станет «токен истёк»: выпустите новый токен и подключите группу заново, репозитории и запросы на слияние останутся.
SourceCraft
Хостинг кода Яндекса. В SourceCraft входят по Яндекс ID, поэтому студенты входят в Disputa через Яндекс ID — по нему платформа и находит их на SourceCraft.
Сервисный аккаунт
Приложений, как у GitHub, у SourceCraft нет: платформа действует сервисным аккаунтом организации Yandex Cloud, к которой привязан SourceCraft.
- В этой организации Yandex Cloud заведите сервисный аккаунт.
- Дайте ему роль Maintainer или Admin в организации на SourceCraft и право приглашать пользователей в организацию — роль
organization-manager.passportUserAdmin. - Создайте ему авторизованный ключ и скачайте файлом JSON.
Подключить
На экране «Репозитории», в карточке «Организация на SourceCraft», впишите имя организации — как в адресе sourcecraft.dev/имя — приложите файл ключа и нажмите «Подключить». Платформа сначала проверит, что Yandex Cloud выдаёт по ключу доступ и организация ему видна, — и только потом сохранит. Ключ хранится зашифрованным.
Код курса на SourceCraft предложит студенту «Войти через Яндекс ID». Кого ещё нет в организации на SourceCraft, платформа пригласит; роль в репозитории станет его, когда он примет приглашение.
Чем SourceCraft отличается
- Действует сервисный аккаунт. Комментарии в запросах на слияние пишет он.
- Шаблон репозитория. Шаблон — репозиторий организации, у которого в настройках включено «Шаблон»; указывается путём
организация/репозиторий. - Защита main. Её ставит не платформа, а правило веток в самой организации — файл
.sourcecraft/branches.yaml. В закрытых репозиториях на бесплатном тарифе правил веток нет. - Вебхуки и отметка проверки. Через API SourceCraft их не даёт: запросы на слияние платформа перечитывает кнопкой и при сдаче, итог автопроверки приходит комментарием.
- Отмена приглашения — только в самой организации на SourceCraft.
Если ключ удалили или выключили сервисный аккаунт, на экране «Репозитории» подключение станет «ключ не действует»: выпустите новый ключ и подключите организацию заново.