Disputa
Организатору и администратору

Репозитории на 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

  1. Заведите на GitHub организацию для репозиториев студентов, это бесплатно.
  2. На экране «Репозитории» нажмите «Установить приложение Disputa» и поставьте его в эту организацию с доступом ко всем репозиториям.

Студенты входят через Яндекс ID или VK ID и привязывают GitHub: по его логину платформа зовёт в репозитории. Без привязки в курс не записаться, код курса сам попросит её следующим шагом. Входить через GitHub закон не разрешает.

GitVerse

  1. Заведите на GitVerse организацию и станьте в ней администратором.
  2. Привяжите GitVerse к своему профилю: меню профиля → «Аккаунты и вход».
  3. На экране «Репозитории», в карточке «Организация на GitVerse», нажмите «Дать доступ к организациям GitVerse» и подтвердите на GitVerse.
  4. Впишите имя организации — как в адресе gitverse.ru/имя — и нажмите «Подключить».

Студенты входят через GitVerse, и по их логину на GitVerse платформа зовёт в репозитории. Код курса сам предложит вход через нужный хостинг.

Чем GitVerse отличается

  • Действует от вашего имени. Приложения в организации у GitVerse нет, поэтому платформа работает доступом того, кто подключил организацию: комментарии в запросах на слияние пойдут от него. Удобнее завести на GitVerse отдельного пользователя, сделать его администратором организации и подключать им.
  • Шаблон репозитория. GitVerse не умеет создавать репозиторий из шаблона по запросу платформы: репозитории заводятся с README, стартовый код студенты добавляют сами.
  • Защита main. Её ставит не платформа, а правило защиты веток в самой организации на GitVerse.
  • Отметка проверки. Отметки «Автопроверка» рядом с CI на GitVerse нет: агент оставляет комментарий и пометки к строкам, а итоги CI на GitVerse не читает.

Доступ к GitVerse продлевается сам, пока идут проверки, а в каникулы — раз в сутки. Если тот, кто подключал, отозвал доступ на GitVerse, платформа скажет об этом на экране «Репозитории»: подключите организацию заново.

Свой GitLab вуза

Подходит вузу, у которого свой GitLab, а LMS нет или курс открывается не из неё: студенты входят в Disputa через GitLab вуза, и по этому входу платформа зовёт их в репозитории.

GitLab вуза должен быть доступен из интернета: платформа работает в облаке и ходит к нему сама.

Токен группы

  1. Заведите на GitLab группу для курса — например, kafedra/sii-2026 — и станьте в ней владельцем.
  2. В группе откройте «Настройки → Токены доступа» и выпустите токен: роль 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.

  1. В этой организации Yandex Cloud заведите сервисный аккаунт.
  2. Дайте ему роль Maintainer или Admin в организации на SourceCraft и право приглашать пользователей в организацию — роль organization-manager.passportUserAdmin.
  3. Создайте ему авторизованный ключ и скачайте файлом JSON.

Подключить

На экране «Репозитории», в карточке «Организация на SourceCraft», впишите имя организации — как в адресе sourcecraft.dev/имя — приложите файл ключа и нажмите «Подключить». Платформа сначала проверит, что Yandex Cloud выдаёт по ключу доступ и организация ему видна, — и только потом сохранит. Ключ хранится зашифрованным.

Код курса на SourceCraft предложит студенту «Войти через Яндекс ID». Кого ещё нет в организации на SourceCraft, платформа пригласит; роль в репозитории станет его, когда он примет приглашение.

Чем SourceCraft отличается

  • Действует сервисный аккаунт. Комментарии в запросах на слияние пишет он.
  • Шаблон репозитория. Шаблон — репозиторий организации, у которого в настройках включено «Шаблон»; указывается путём организация/репозиторий.
  • Защита main. Её ставит не платформа, а правило веток в самой организации — файл .sourcecraft/branches.yaml. В закрытых репозиториях на бесплатном тарифе правил веток нет.
  • Вебхуки и отметка проверки. Через API SourceCraft их не даёт: запросы на слияние платформа перечитывает кнопкой и при сдаче, итог автопроверки приходит комментарием.
  • Отмена приглашения — только в самой организации на SourceCraft.

Если ключ удалили или выключили сервисный аккаунт, на экране «Репозитории» подключение станет «ключ не действует»: выпустите новый ключ и подключите организацию заново.

На этой странице