{"id":18204735,"url":"https://github.com/s-will/gitcats","last_synced_at":"2025-04-07T19:19:03.991Z","repository":{"id":138041747,"uuid":"82704580","full_name":"s-will/GitCATS","owner":"s-will","description":"Git-based Class Assignment Testing System","archived":false,"fork":false,"pushed_at":"2019-03-03T20:11:16.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T20:44:59.155Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s-will.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-21T16:54:33.000Z","updated_at":"2019-03-03T20:11:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"e38f185a-7cfb-44bf-b8da-b5197bd5c670","html_url":"https://github.com/s-will/GitCATS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-will%2FGitCATS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-will%2FGitCATS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-will%2FGitCATS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-will%2FGitCATS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-will","download_url":"https://codeload.github.com/s-will/GitCATS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713260,"owners_count":20983683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-03T11:42:01.914Z","updated_at":"2025-04-07T19:19:03.943Z","avatar_url":"https://github.com/s-will.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/s-will/GitCATS.svg?branch=master)](https://travis-ci.org/s-will/GitCATS)\n\n# GitCATS --- Git-based Class Assignment Testing System\n\nCopyright Sebastian Will, 2017\n\nProvides travis configuration and a python script to supports\nautomatic testing of class assignments (for offline use or CI\ntesting.)\n\nThe typical usage scenario of this script is for running the\nsubmission and reviewing process of programming assignments via github\nin one central repository for a small number of students, where the\nteachers can still look at all submissions, but want to partially\nautomatize test runs and reviewing. The entire process is public such\nthat all students can see the submissions of others; intentionally, no\nattempts for privacy are made.\n\n\n----------------------------------------\nMain features:\n----------------------------------------\n\n * configurable via yml files\n     assignments.yml  languages.yml  participants.yml  submissions.yml\n   Commented examples are provided.\n\n * ready to be loaded as subtree into git repository\n\n * multiple users/\"participants\", multiple languages\n\n * potential language-specific dependencies are installed on demand via conda \n\n * multiple assignments, multiple tests per assignments\n\n * multiple submissions per assignment per participant\n\n * default testing by diff to expected output\n\n\n----------------------------------------\nInstalling the framework\n----------------------------------------\n\n* In the class repository, add this repository as subtree\n```\n    git remote add gitcats git@github.com:s-will/GitCATS.git\n    git subtree add --prefix GitCATS --squash gitcats master\n```\n* Link .travis from the GitCATS directory into the root directory of your repository\n```\n    ln -s GitCATS/.travis.yml .\n```\n* Copy all example yaml configuration files from GitCATS to the root\n  directory; remove the 'DO NOT EDIT' warning; and then edit them for\n  your purposes\n```\n    cp GitCATS/*.yml .\n    sed -i '/^#%.*/ d' assignments.yml  languages.yml  participants.yml  submissions.yml\n```\n* on Github register the repository for Travis CI\n\n\n----------------------------------------\nUsing the framework\n----------------------------------------\n\n* register participants in participants.yml (better, let them register)\n\n* edit assignments.yml to define new assignments and tests\n\n  make assignment directories\n  place test input and output in the assignment directories\n  \n* if necessary, define new languages in languages.yml (and possibly contribute to the project)\n\n* let students clone the repo and create their participants branches \n  (those branches are named by their registered short-name, usually the github name)\n\n* let students solve the assignemnts, submit, and register there submissions in submissions.yml\n\n* let students make pull requests for their participant branches into the master\n\n* discuss PRs via github; after acceptance, let students set checked to true (to avoid further tests) and merge into master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-will%2Fgitcats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-will%2Fgitcats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-will%2Fgitcats/lists"}