You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
4.1 KiB
88 lines
4.1 KiB
# -*- coding: utf-8 -*-
|
|
|
|
# Сервис может
|
|
# интерфейс учителя:
|
|
# - логин
|
|
# - выбор курса для работы
|
|
# - привязка (или создание) репы для курса (можно через веб)
|
|
# - прописывание соответствий ДЗ курса <-> путь в репе (можно через веб)
|
|
# - clone всех реп учеников данного курса и базовой репы
|
|
# - pull всех изменений реп студентов данного курса
|
|
# - push всех новых коммитов учителя в репы студентов (+ save point опционально)
|
|
# - changes по всем репам студентов данного курса с момента последнего save point (можно через веб)
|
|
# - save point состояния реп студентов (можно через веб)
|
|
# - разнесение изменений в базовой репе по репам студентов
|
|
|
|
# соотвтествие путей в гите к курсам/домашкам храним у себя, какая домашка следующая для ученика - спрашиваем ЛМС
|
|
|
|
# запросы к ЛМС
|
|
# - get по токену получить ИД учителя, емейл и имя
|
|
# - get по ИД учителя список его курсов (ИД, название)
|
|
# - get по ИД курса список всех опубликованных домашек (ИД, название)
|
|
# - get по ИД учителя и ИД курса список всех его студентов (ИД, емейл, имя)
|
|
# - get по ИД курса + ИД студента + ИД домашки дай следующую доамашку (ИД, название)
|
|
# - post ИД студента, ИД домашки - ДЗ принято
|
|
|
|
|
|
# запросы к сервису
|
|
# - get получение пользователя
|
|
# - get
|
|
|
|
def register_user(email, name):
|
|
""" Создает пользователя в сервисе и возвращает токен пользователя для последующей работы """
|
|
user_token = '...'
|
|
return user_token
|
|
|
|
|
|
def get_user(email):
|
|
""" Выбирает пользователя сервиса возвращает токен пользователя для последующей работы """
|
|
user_token = '...'
|
|
return user_token
|
|
|
|
|
|
def create_git_user(user):
|
|
""" Создает пользователя в GitLab"""
|
|
pass
|
|
|
|
|
|
def get_users(emails):
|
|
""" Выбирает пользователей GitLab и возвращает токены для последующей работы """
|
|
tokens = ['...', '...', '...', ]
|
|
return tokens
|
|
|
|
|
|
def create_repository(user, project_name):
|
|
""" Создает проект (репу) в GitLab и возвращает токен репу """
|
|
repository_token = '...'
|
|
return repository_token
|
|
|
|
|
|
def get_repository(user, project_name):
|
|
""" Возвращает токен репы """
|
|
repository_token = '...'
|
|
return repository_token
|
|
|
|
|
|
def make_user_project_master(user, project):
|
|
""" Делает пользователя мастером в проекте """
|
|
pass
|
|
|
|
|
|
def copy_files_to_repository(base_repository, files_path, target_repository, autor):
|
|
""" Копирует файлы из базовой репы в целевую от имени автора """
|
|
pass
|
|
|
|
|
|
def approve_homework(teacher, base_repository, student, target_repository, files_path):
|
|
""" Принять домашку у студента, копировать новые файлы """
|
|
pass
|
|
|
|
|
|
def make_save_point(teacher, students):
|
|
""" зафиксировать точку в репах с принятыми домашками """
|
|
pass
|
|
|
|
|
|
def get_last_changes(teacher, students, save_point=None):
|
|
""" показать последние изменения в репах учеников относительно save point (последнего, если None) """
|
|
pass
|
|
|