/classroom_sparsecheckout_test

Scripts to download repositories from github classroom, check the integrity of the tests files and launch a plagiarism test

Primary LanguagePython

Description

Scripts to download repositories from github classroom, check the integrity of the tests files, extract the grades and put them linked to the github ids in a file and launch a plagiarism test

Partially based on the repository jdestefani https://github.com/jdestefani/github-orgbatclone which download batch repository from an assignment on github classroom with a specific deadline.

There is an additional script to archive in batch repositories from an organisation to avoid students to push on old repositories.

Arguments and Usage

Usage

For the grades and plagiarism script :

usage: python main.py [-h] [-a ASSIGNMENT_NAME] [-d CHECKOUT_DATE] -f CHECKOUT_FILE
               -o ORGANISATION_NAME [-t TOKEN] [-s] [-m]
               [--files_to_check [FILES_TO_CHECK [FILES_TO_CHECK ...]]]
               [--test_directory TEST_DIRECTORY] -u USER
               [--expression [GLOB_EXPRESSION [GLOB_EXPRESSION ...]]]
               [-l LANGUAGE] [--template-files [BASE_FILES [BASE_FILES ...]]]

For the archive in batch script, everything is asked in input:

usage: python batch_archive.py

Arguments

Quick reference table

Short Long Default Description
-h --help show this help message and exit
-a name --assignment_name name Specify the assignment name on Github Classroom
-d "YYYY-MM-DD HH:MM +XXXX" --checkout_date "YYYY-MM-DD HH:MM +XXXX" Specify the checkout date (format "YYYY-MM-DD HH:MM +XXXX") to which the Git repositories should be moved
-f name --checkoutfile name None Path to the text file with the list of directories to be downloaded. One directory per line. Must be placed in the original directory where the repositories will be downloaded.
-o name --organisation name Specify the organization name on Github.
-t XXX --token XXX Specify your personal token on Github
-s --ssh Use ssh instead of default https connection to clone
-m --master Use master as the name of the branch instead of main
--files_to_check path Path(s) of the test files to check the integrity of.
--test_directory name Name of the directory in the repository where you can find the test files to check.
-u int --user int User id for MOSS.
--expression glob None Wildcard expression for the student code, for example '*/submission/a01-*.py' for all files begining with 'a01-' and finishing with '.py' in the submission folders of all directories
-l name --language name python Language of the code submitted.
--template-files path None Path(s) of the base files for the plagiarism check to ignore