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
Data Augmentation Using Keras and Python

Data-Augmentation-Using-Keras-and-Python Data augmentation is the process of increasing the number of training dataset. Keras library offers a simple

Happy N. Monday 3 Feb 15, 2022
Code for "SRHEN: Stepwise-Refining Homography Estimation Network via Parsing Geometric Correspondences in Deep Latent Space"

SRHEN This is a better and simpler implementation for "SRHEN: Stepwise-Refining Homography Estimation Network via Parsing Geometric Correspondences in

1 Oct 28, 2022
RoadMap and preparation material for Machine Learning and Data Science - From beginner to expert.

ML-and-DataScience-preparation This repository has the goal to create a learning and preparation roadMap for Machine Learning Engineers and Data Scien

33 Dec 29, 2022
The Simplest DCGAN Implementation

DCGAN in TensorLayer This is the TensorLayer implementation of Deep Convolutional Generative Adversarial Networks. Looking for Text to Image Synthesis

TensorLayer Community 310 Dec 13, 2022
Codes and scripts for "Explainable Semantic Space by Grounding Languageto Vision with Cross-Modal Contrastive Learning"

Visually Grounded Bert Language Model This repository is the official implementation of Explainable Semantic Space by Grounding Language to Vision wit

17 Dec 17, 2022
Born-Infeld (BI) for AI: Energy-Conserving Descent (ECD) for Optimization

Born-Infeld (BI) for AI: Energy-Conserving Descent (ECD) for Optimization This repository contains the code for the BBI optimizer, introduced in the p

G. Bruno De Luca 5 Sep 06, 2022
TabNet for fastai

TabNet for fastai This is an adaptation of TabNet (Attention-based network for tabular data) for fastai (=2.0) library. The original paper https://ar

Mikhail Grankin 116 Oct 21, 2022
Architecture Patterns with Python (TDD, DDD, EDM)

architecture-traning Architecture Patterns with Python (TDD, DDD, EDM) Chapter 5. 높은 기어비와 낮은 기어비의 TDD 5.2 도메인 계층 테스트를 서비스 계층으로 옮겨야 하는가? 도메인 계층 테스트 def

minsung sim 2 Mar 04, 2022
[CVPR2021] Look before you leap: learning landmark features for one-stage visual grounding.

LBYL-Net This repo implements paper Look Before You Leap: Learning Landmark Features For One-Stage Visual Grounding CVPR 2021. Getting Started Prerequ

SVIP Lab 45 Dec 12, 2022
Genshin-assets - 👧 Public documentation & static assets for Genshin Impact data.

genshin-assets This repo provides easy access to the Genshin Impact assets, primarily for use on static sites. Sources Genshin Optimizer - An Artifact

Zerite Development 5 Nov 22, 2022
Training Structured Neural Networks Through Manifold Identification and Variance Reduction

Training Structured Neural Networks Through Manifold Identification and Variance Reduction This repository is a pytorch implementation of the Regulari

0 Dec 23, 2021
Food Drinks and groceries Images Multi Lingual (FooDI-ML) dataset.

Food Drinks and groceries Images Multi Lingual (FooDI-ML) dataset.

41 Jan 04, 2023
PyTorch-centric library for evaluating and enhancing the robustness of AI technologies

Responsible AI Toolbox A library that provides high-quality, PyTorch-centric tools for evaluating and enhancing both the robustness and the explainabi

24 Dec 22, 2022
Joint Unsupervised Learning (JULE) of Deep Representations and Image Clusters.

Joint Unsupervised Learning (JULE) of Deep Representations and Image Clusters. Overview This project is a Torch implementation for our CVPR 2016 paper

Jianwei Yang 278 Dec 25, 2022
Finite Element Analysis

FElupe - Finite Element Analysis FElupe is a Python 3.6+ finite element analysis package focussing on the formulation and numerical solution of nonlin

Andreas D. 20 Jan 09, 2023
[NeurIPS 2020] Blind Video Temporal Consistency via Deep Video Prior

pytorch-deep-video-prior (DVP) Official PyTorch implementation for NeurIPS 2020 paper: Blind Video Temporal Consistency via Deep Video Prior TensorFlo

Yazhou XING 90 Oct 19, 2022
AugLy is a data augmentations library that currently supports four modalities (audio, image, text & video) and over 100 augmentations

AugLy is a data augmentations library that currently supports four modalities (audio, image, text & video) and over 100 augmentations. Each modality’s augmentations are contained within its own sub-l

Facebook Research 4.6k Jan 09, 2023
Refactoring dalle-pytorch and taming-transformers for TPU VM

Text-to-Image Translation (DALL-E) for TPU in Pytorch Refactoring Taming Transformers and DALLE-pytorch for TPU VM with Pytorch Lightning Requirements

Kim, Taehoon 61 Nov 07, 2022
Graph-Refined Convolutional Network for Multimedia Recommendation with Implicit Feedback

Graph-Refined Convolutional Network for Multimedia Recommendation with Implicit Feedback This is our Pytorch implementation for the paper: Yinwei Wei,

17 Jun 10, 2022
Easy to use Python camera interface for NVIDIA Jetson

JetCam JetCam is an easy to use Python camera interface for NVIDIA Jetson. Works with various USB and CSI cameras using Jetson's Accelerated GStreamer

NVIDIA AI IOT 358 Jan 02, 2023