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

# -*- 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