A handy tool for TAs in JI to handle works through Gitea, Canvas, and JOJ. https://boyanzh.github.io/Joint-Teapot/
Go to file
2022-03-14 13:04:54 +08:00
.github/workflows docs: add mkdocs 2021-06-10 23:50:48 +08:00
docs docs: very simple doc 2021-10-13 02:58:50 +08:00
examples feat: joj worker 2021-12-22 23:05:10 +08:00
joint_teapot chore: fix typo & requirements & misc 2022-03-14 13:04:54 +08:00
.env.example feat: better logs 2021-09-15 04:00:23 +08:00
.gitattributes chore: fix typo & requirements & misc 2022-03-14 13:04:54 +08:00
.gitignore feat: cli with typer 2021-06-10 23:39:29 +08:00
.pre-commit-config.yaml feat: init 2021-06-09 20:55:50 +08:00
LICENSE feat: init 2021-06-09 20:55:50 +08:00
mkdocs.yml docs: add mkdocs 2021-06-10 23:50:48 +08:00
mypy.ini feat: init 2021-06-09 20:55:50 +08:00
pytest.ini feat: init 2021-06-09 20:55:50 +08:00
README.md chore: fix typo & requirements & misc 2022-03-14 13:04:54 +08:00
requirements-dev.txt feat: init 2021-06-09 20:55:50 +08:00
requirements.txt chore: fix typo & requirements & misc 2022-03-14 13:04:54 +08:00
setup.py feat: better extract assignment 2021-11-06 18:31:25 +08:00

Joint Teapot

Codacy Badge

A handy tool for TAs in JI to handle works through Gitea, Canvas, and JOJ. Joint is related to JI and also this tool which join websites together. Teapot means to hold Gitea, inspired by @nichujie.

This tool is still under heavy development. The docs may not be updated on time, and all the features are provided with the probability to change.

Getting Started

Setup venv (Optional)

python3 -m venv env # you only need to do that once
source env/Scripts/activate # each time when you need this venv

Install

pip3 install -e .
cp .env.example .env && vi .env # configure environment
joint-teapot --help

For developers

pip3 install -r requirements-dev.txt
pre-commit install
pytest -svv

Commands & Features

  • archive-all-repos archive all repos in gitea organization
  • check-issues check the existence of issue by title on gitea
  • checkout-releases checkout git repo to git tag fetched from gitea by release name, with due date
  • clone-all-repos clone all gitea repos to local
  • close-all-issues close all issues and pull requests in gitea organization
  • create-issues create issues on gitea
  • create-personal-repos create personal repos on gitea for all canvas students
  • create-teams create teams on gitea by canvas groups
  • get-no-collaborator-repos list all repos with no collaborators
  • get-public-keys list all public keys on gitea
  • get-repos-status list status of all repos with conditions
  • invite-to-teams invite all canvas students to gitea teams by team name
  • prepare-assignment-dir prepare assignment dir from extracted canvas "Download Submissions" zip
  • upload-assignment-grades upload assignment grades to canvas from grade file (GRADE.txt by default), read the first line as grade, the rest as comments

License

MIT