Utilities to bridge Canvas-generated course rosters with GitLab's API.

Overview

gitlab-canvas-utils

A collection of scripts originally written for CSE 13S. Oversees everything from GitLab course group creation, student repository creation, all the way to cloning repos and adding users to a shared resources repository.

Installation

To install the included scripts, run:

./install --all

To install the scripts and man pages for development, run:

./install --symlink

To uninstall the scripts, run:

$ ./uninstall.sh

Utilities

There are currently 7 scripts/utilities:

  1. addtorepos - adds students to a set of specified repositories as reporters
  2. checkout - checks out cloned student repositories to commit IDs submitted for a specific assignment.
  3. clone - clones student repositories.
  4. createrepos - creates course GitLab course and student repos.
  5. pushfiles - adds files to cloned student repositories, pushing the changes.
  6. rmfiles - removes files from cloned student repositories, pushing the changes.
  7. roster - scrapes Canvas for a CSV of the student roster.

Read the supplied man pages for more information on each of these utilities.

Creating GitLab course, student repos, and adding students to resources repository
$ roster | createrepos | addtoresources
Cloning all student repos and checking them out to submitted commit IDs
$ roster | clone | checkout --asgn=5

Paths

To get (arguably) the full experience of these utilities, you should add the installed scripts directory to your $PATH and the installed man page directory to your $MANPATH.

To add the scripts directory:

$ export PATH=$PATH:$HOME/.config/gcu/scripts

To add the man directory (the double colon is intentional):

$ export MANPATH=::$MANPATH:$HOME/.config/gcu/man

You may want to add these exports to your shell configuration files.

Course Configuration

After running the installation script, a configuration file will need to be modifed for the specific course that these utilities will be used for. To modify the configuration file, run:

vi $HOME/.config/gcu/config.toml

A template configuration file will be supplied during installation if one does not already exist. The configuration file should have this basic structure:

canvas_url = "https://canvas.ucsc.edu"
canvas_course_id = 42878
canvas_token = "<your token here>"
course = "cse13s"
quarter = "spring"
year = "2021"
gitlab_server = "https://git.ucsc.edu"
gitlab_token = "<your token here>"
gitlab_role = "developer"
template_repo = "https://git.ucsc.edu/euchou/cse13s-template.git"
  • canvas_url: the Canvas server that your course is hosted on.
  • canvas_course_id: the Canvas course ID for your course. The one in the template is for the Spring 2021 offering of CSE 13S. You can find any course ID directly from the course page's url on Canvas.
  • canvas_token: your Canvas access token as a string. To generate a Canvas token, head to your account settings on Canvas. There will be a button to create a new access token under the section titled Approved Integrations. Note that you must have at least TA-level privilege under the course you want to use these scripts with.
  • course, quarter, and year should reflect, as one can imagine, the course, quarter, and year in which the course is held.
  • gitlab_server: the GitLab server that you want to create the course group and student repos on.
  • gitlab_token: your GitLab token as a string. Your token should have API-level privilege.
  • gitlab_role: the default role of students for their individual or shared repositories.
  • template_repo: the template repository to import and use as a base for student repositories. Note that this template repository will need to be publically visible.

Contributing

If you are interested in contributing to these scripts, send an email to [email protected]. Questions are welcomed as well.

Owner
Eugene Chou
Eugene Chou
Visual Tracking by TridenAlign and Context Embedding

Visual Tracking by TridentAlign and Context Embedding (TACT) Test code for "Visual Tracking by TridentAlign and Context Embedding" Janghoon Choi, Juns

Janghoon Choi 32 Aug 25, 2021
DanceTrack: Multiple Object Tracking in Uniform Appearance and Diverse Motion

DanceTrack DanceTrack is a benchmark for tracking multiple objects in uniform appearance and diverse motion. DanceTrack provides box and identity anno

260 Dec 28, 2022
Image-retrieval-baseline - MUGE Multimodal Retrieval Baseline

MUGE Multimodal Retrieval Baseline This repo is implemented based on the open_cl

47 Dec 16, 2022
Caffe-like explicit model constructor. C(onfig)Model

cmodel Caffe-like explicit model constructor. C(onfig)Model Installation pip install git+https://github.com/bonlime/cmodel Usage In order to allow usi

1 Feb 18, 2022
Yet another video caption

Yet another video caption

Fan Zhimin 5 May 26, 2022
Black-Box-Tuning - Black-Box Tuning for Language-Model-as-a-Service

Black-Box-Tuning Source code for paper "Black-Box Tuning for Language-Model-as-a

Tianxiang Sun 149 Jan 04, 2023
[ICCV 2021] Amplitude-Phase Recombination: Rethinking Robustness of Convolutional Neural Networks in Frequency Domain

Amplitude-Phase Recombination (ICCV'21) Official PyTorch implementation of "Amplitude-Phase Recombination: Rethinking Robustness of Convolutional Neur

Guangyao Chen 53 Oct 05, 2022
One-Shot Neural Ensemble Architecture Search by Diversity-Guided Search Space Shrinking

One-Shot Neural Ensemble Architecture Search by Diversity-Guided Search Space Shrinking This is an official implementation for NEAS presented in CVPR

Multimedia Research 19 Sep 08, 2022
Convolutional neural network web app trained to track our infant’s sleep schedule using our Google Nest camera.

Machine Learning Sleep Schedule Tracker What is it? Convolutional neural network web app trained to track our infant’s sleep schedule using our Google

g-parki 7 Jul 15, 2022
A Blender python script for getting asset browser custom preview images for objects and collections.

asset_snapshot A Blender python script for getting asset browser custom preview images for objects and collections. Installation: Click the code butto

Johnny Matthews 44 Nov 29, 2022
This repository is for DSA and CP scripts for reference.

dsa-script-collections This Repo is the collection of DSA and CP scripts for reference. Contents Python Bubble Sort Insertion Sort Merge Sort Quick So

Aditya Kumar Pandey 9 Nov 22, 2022
Unofficial TensorFlow implementation of the Keyword Spotting Transformer model

Keyword Spotting Transformer This is the unofficial TensorFlow implementation of the Keyword Spotting Transformer model. This model is used to train o

Intelligent Machines Limited 8 May 11, 2022
Keras Implementation of The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation by (Simon Jégou, Michal Drozdzal, David Vazquez, Adriana Romero, Yoshua Bengio)

The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation: Work In Progress, Results can't be replicated yet with the m

Yad Konrad 196 Aug 30, 2022
A numpy-based implementation of RANSAC for fundamental matrix and homography estimation. The degeneracy updating and local optimization components are included and optional.

Description A numpy-based implementation of RANSAC for fundamental matrix and homography estimation. The degeneracy updating and local optimization co

AoxiangFan 9 Nov 10, 2022
PyTorch implementation code for the paper MixCo: Mix-up Contrastive Learning for Visual Representation

How to Reproduce our Results This repository contains PyTorch implementation code for the paper MixCo: Mix-up Contrastive Learning for Visual Represen

opcrisis 46 Dec 15, 2022
Luminaire is a python package that provides ML driven solutions for monitoring time series data.

A hands-off Anomaly Detection Library Table of contents What is Luminaire Quick Start Time Series Outlier Detection Workflow Anomaly Detection for Hig

Zillow 670 Jan 02, 2023
This repository is the official implementation of Unleashing the Power of Contrastive Self-Supervised Visual Models via Contrast-Regularized Fine-Tuning (NeurIPS21).

Core-tuning This repository is the official implementation of ``Unleashing the Power of Contrastive Self-Supervised Visual Models via Contrast-Regular

vanint 18 Dec 17, 2022
Object Detection and Multi-Object Tracking

Object Detection and Multi-Object Tracking

Bobby Chen 1.6k Jan 04, 2023
Code for the paper "Adversarially Regularized Autoencoders (ICML 2018)" by Zhao, Kim, Zhang, Rush and LeCun

ARAE Code for the paper "Adversarially Regularized Autoencoders (ICML 2018)" by Zhao, Kim, Zhang, Rush and LeCun https://arxiv.org/abs/1706.04223 Disc

Junbo (Jake) Zhao 399 Jan 02, 2023
3ds-Ghidra-Scripts - Ghidra scripts to help with 3ds reverse engineering

3ds Ghidra Scripts These are ghidra scripts to help with 3ds reverse engineering

Zak 7 May 23, 2022