Claw
Welcome to Claw, a CLI for UofM teaching staff to help students more effectively.
Claw downloads a student's latest Autograder submission locally and then prompts the instructor to sync the students files to CAEN.
Installation
Run gem install claw
in your command line.
Usage
Obtaining a Token
Log in to autograder.io in Chrome and open up the developer tools from the Chrome menu (View->Developer->Developer Tools on a Mac). Click on a course link. In the developer console, click on a request (e.g. my_roles/ or projects/). Under Request Headers, there is an Authorization entry that looks like "Token ". Copy the hex string and save it to the file .agtoken in your home directory. -- autograder-contrib
Setting Up a Solution Repository
- Clone a solution repository (like
eecs280staff/<solution repo>
) locally viagit clone
- Ensure the solution repo Makefile has an
autograde
target (all EECS280 project repos do) - Optionally add a
sync
target to the Makefile. This target should sync the entire solution repo to CAEN. An example target would be:
# Copy files to CAEN Linux
sync :
rsync \
-rtv \
--delete \
--exclude '.git*' \
--filter=':- .gitignore' \
./ \
<your uniqname here>@login.engin.umich.edu:ia-280-p3
Running Claw
In a solution repo, run claw <project id> <student uniqname>
.
You can determine the project id by navigating to the project on autograder.io
and looking at the URL.
For instance, in Fall 2020, EECS280's Euchre project was available at https://autograder.io/web/project/721 which means the project id was 721
.
The students code will be downloaded to a folder corresponding to their uniqname.
Finally, Claw will prompt the user whether to upload to CAEN. It assumes the Makefile has a sync
target.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/neiljohari/claw.
License
The gem is available as open source under the terms of the MIT License.