#!/usr/bin/env python3 import glob import os import re from commands.base import BaseGitCommand from git import add_files, commit, push from submission import Submission from utils import run_cmd class MergeRequests(BaseGitCommand): def get_files(self, submission: Submission) -> None: files = [] for file in self.hw["files"]: files.extend(glob.glob(f'{submission.path}/{self.hw["prefix"]}/{file}')) files = map(lambda f: f.split("/")[-1], files) for file in files: if ( run_cmd( "rsync", "-avzP", f"aisa:{submission.path}/{self.hw['prefix']}/{file}", "./", )[0] != 0 ): exit(1) @staticmethod def call_flake(submission: Submission) -> None: process = run_cmd("flake8", "--exit-zero", f"{submission.homework}.py")[1] with open("flake.log", "w") as f: print(process.stdout, file=f) def exec(self, submission: Submission) -> None: self.get_files(submission) # self.call_flake(submission) add_files(*self.hw["files"]) commit(f'"Add sources ({submission.branch} {submission.login})"') push("origin", submission.branch) mail = f"
\nMail\n\n
{submission.get_mail()}
" try: self.gitlab.post_mr( source_branch=submission.branch, target_branch="master", title=f"[{submission.homework}{'-opravne' if submission.correction else ''}] {submission.login}", description=mail, labels=submission.homework, remove_source_branch="true", assignee_ids=["1772"], ) except: pass