- Improveme exception handling
- Commit clearly to handling any unexpected exceptions (non-AssignerExceptions are now a bug)
- Change default Canvas git-backend username column to 'login_id'
- Add option to
canvas import
to select column used for git-backend username
- Fix bug where
assigner commit -S
would not commit staged changes - Official support for Python 3.9!
- Minor changes to certain exception messages
- Add
-S
option tocommit
command to allow for GPG-signed commits - Change
score
command defaults to be more generic - Fix a bug in
score
that occurred when a student's repo did not exist
- Add auto-uploading functionality with
score
command to grab autograder results from repo CI artifacts and upload them to Canvas. Also checks for student tampering with grading-related files. - Tidy up some docs, clarifying new features and making things more informative
- Fix bugs with and severely de-cruft Gitlab timestamp parsing
- Fix issue where ASCII-only terminals cannot display progress bars
- Added 'commit' command to commit changes to student repos
- Added 'push' command to push commits to student repos
- Retry clones that fail with 'Connection reset by peer' using exponential backoff
- Offer to create GitLab group in
assigner init
- Version configuration; automatically upgrade old configs to latest version
- Make GitLab backend configuration generic
- Tidy up progress bars with logging output
- Test all supported python versions (3.4-3.7) automatically
- Added
BackendBase
,RepoBase
,StudentRepoBase
, andTemplateRepoBase
. - Base Repos are now called Template Repos.
- Separated Gitlab backend from most of the code. Added Base implementations for Gitlab.
- Added
requires_backend_and_config
decorator with backend config option to load the desired backend. - Renamed
config_context
decorator torequires_config
. - pyflakes 1.6.0 upgrade for type annotations fixes.
- Improved canvas error handling.
- Branch names are shown each on their own line in
assigner status
to make output more legible - Send GitLab authentication token in HTTP header rather than request parameters
- Print informative message if
git
is not installed - Use a shared HTTPS session for API calls to speed up operations
- Add
--version
flag to Assigner
- Fixed
get
failing to clone new repos with errorRemote branch ['master'] not found in upstream origin
- Warn when an assignment is already open for a student when running
open
- Calling
assign
with the--open
flag assigns and opens an assignment in one step - Removed remaining lint as specified by pylint.
- Removed old baserepo standalone code.
- Added Travis CI config for pylint and pyflakes.
- Added unittest scaffolding with nose
- Added
AssignerTestCase
, tests forassigner
,assigner get
, and all--help
uses.
- Rename
token
togitlab-token
in the configuration file - Display push time, rather than commit time, in
status
output - Show push time in human-readable format in the current locale's timezone
- Display an informative error message when attempting to push an empty base repo
- Allow users to assign multiple branches in one call to
assign
- Print help for the subcommand when
assigner help <command>
is run - Fetch and pull branches when
get
is run if student repositories have already been cloned
This is the """"initial release""" that's been in use for a couple years now. If you want to know what happened prior to this, sorry, you're going to have to read the commit log.