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.

You might also like...
Fast and robust clustering of point clouds generated with a Velodyne sensor.
Fast and robust clustering of point clouds generated with a Velodyne sensor.

Depth Clustering This is a fast and robust algorithm to segment point clouds taken with Velodyne sensor into objects. It works with all available Velo

Convolutional neural network that analyzes self-generated images in a variety of languages to find etymological similarities

This project is a convolutional neural network (CNN) that analyzes self-generated images in a variety of languages to find etymological similarities. Specifically, the goal is to prove that computer vision can be used to identify cognates known to exist, and perhaps lead linguists to evidence of unknown cognates.

Lucid Sonic Dreams syncs GAN-generated visuals to music.

Lucid Sonic Dreams Lucid Sonic Dreams syncs GAN-generated visuals to music. By default, it uses NVLabs StyleGAN2, with pre-trained models lifted from

simple artificial intelligence utilities

Simple AI Project home: http://github.com/simpleai-team/simpleai This lib implements many of the artificial intelligence algorithms described on the b

A simplified framework and utilities for PyTorch
A simplified framework and utilities for PyTorch

Here is Poutyne. Poutyne is a simplified framework for PyTorch and handles much of the boilerplating code needed to train neural networks. Use Poutyne

Bayesian-Torch is a library of neural network layers and utilities extending the core of PyTorch to enable the user to perform stochastic variational inference in Bayesian deep neural networks

Bayesian-Torch is a library of neural network layers and utilities extending the core of PyTorch to enable the user to perform stochastic variational inference in Bayesian deep neural networks. Bayesian-Torch is designed to be flexible and seamless in extending a deterministic deep neural network architecture to corresponding Bayesian form by simply replacing the deterministic layers with Bayesian layers.

Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

Utilities and information for the signals.numer.ai tournament

dsignals Utilities and information for the signals.numer.ai tournament using eodhistoricaldata.com eodhistoricaldata.com provides excellent historical

🛠️ SLAMcore SLAM Utilities
🛠️ SLAMcore SLAM Utilities

slamcore_utils Description This repo contains the slamcore-setup-dataset script. It can be used for installing a sample dataset for offline testing an

Owner
Eugene Chou
Eugene Chou
This is the code repository for the paper A hierarchical semantic segmentation framework for computer-vision-based bridge column damage detection

Bridge-damage-segmentation This is the code repository for the paper A hierarchical semantic segmentation framework for computer-vision-based bridge c

Jingxiao Liu 5 Dec 7, 2022
[CVPR2022] Bridge-Prompt: Towards Ordinal Action Understanding in Instructional Videos

Bridge-Prompt: Towards Ordinal Action Understanding in Instructional Videos Created by Muheng Li, Lei Chen, Yueqi Duan, Zhilan Hu, Jianjiang Feng, Jie

null 58 Dec 23, 2022
[ICLR 2021] Rank the Episodes: A Simple Approach for Exploration in Procedurally-Generated Environments.

[ICLR 2021] RAPID: A Simple Approach for Exploration in Reinforcement Learning This is the Tensorflow implementation of ICLR 2021 paper Rank the Episo

Daochen Zha 48 Nov 21, 2022
Official Pytorch implementation of paper "Reverse Engineering of Generative Models: Inferring Model Hyperparameters from Generated Images"

Reverse_Engineering_GMs Official Pytorch implementation of paper "Reverse Engineering of Generative Models: Inferring Model Hyperparameters from Gener

null 100 Dec 18, 2022
BARTScore: Evaluating Generated Text as Text Generation

This is the Repo for the paper: BARTScore: Evaluating Generated Text as Text Generation Updates 2021.06.28 Release online evaluation Demo 2021.06.25 R

NeuLab 196 Dec 17, 2022
Tracing Versus Freehand for Evaluating Computer-Generated Drawings (SIGGRAPH 2021)

Tracing Versus Freehand for Evaluating Computer-Generated Drawings (SIGGRAPH 2021) Zeyu Wang, Sherry Qiu, Nicole Feng, Holly Rushmeier, Leonard McMill

Zach Zeyu Wang 23 Dec 9, 2022
GAN-generated image detection based on CNNs

GAN-image-detection This repository contains a GAN-generated image detector developed to distinguish real images from synthetic ones. The detector is

Image and Sound Processing Lab 17 Dec 15, 2022
A Nim frontend for pytorch, aiming to be mostly auto-generated and internally using ATen.

Master Release Pytorch - Py + Nim A Nim frontend for pytorch, aiming to be mostly auto-generated and internally using ATen. Because Nim compiles to C+

Giovanni Petrantoni 425 Dec 22, 2022
Rename Images with Auto Generated Neural Image Captions

Recaption Images with Generated Neural Image Caption Example Usage: Commandline: Recaption all images from folder /home/feng/Downloads/images to folde

feng wang 3 May 1, 2022