#student #class #git #repo #manage #teachers

bin+lib gitclass

Tool for teachers to manage classes using git

7 unstable releases

Uses old Rust 2015

0.8.0 Aug 26, 2018
0.7.3 Feb 7, 2018
0.7.2 Dec 29, 2017
0.7.0 Mar 19, 2017
0.5.0 Oct 2, 2016

#9 in #student

MIT license

11KB
227 lines

gitclass

Simple tool for managing student Git repositories.

WARNING

This project works, but is a learning project for me.

Getting Started

Installation

You can either download the compiled executable from the releases

Or build from source using Rust!

Install Rust

Follow the instructions here to install Rust, and here to install Cargo, Rust's build system.

Cargo

From here, you can simply use Cargo to get the project:

cargo install gitclass

This requires ~/.cargo to be in your PATH to run.

Git

Clone the repo:

git clone https://github.com/mttaggart/gitclass

Then enter the new folder. Use Cargo to build the project

cargo build --release

This will compile the project on your platform. You can then copy the result to a directory known to your PATH. For example:

sudo cp target/release/gitclass /usr/local/bin/

Creating a classroom

gitclass init 

This begins the process of creating a class. You'll be asking for a name, description, and master repository for the class. The name and description will be saved in gitclass.json, and the master repo will be cloned within the current folder.

Adding students

gitclass add

This will prompt for name and repo for the student, then clone the given repo into a folder of the name provided.

Pulling Student Repos

Perform this every time you want to ensure you have the latest commits from your students.

gitclass update

This will update all repos.

This feature is a little hacky as I figure out the git2 library for Rust.

Removing students

gitclass remove $name

Getting information

gitclass log $student

This will get the commit log from the master branch. Just vanilla git log for now. For more detailed info, run git log inside the students' folder.

Dependencies

~13MB
~291K SLoC