Joint-Teapot/README.md

54 lines
2.3 KiB
Markdown

# Joint Teapot
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/352635b2c8534b0086b5a153db7c82e9)](https://app.codacy.com/gh/BoYanZh/Joint-Teapot?utm_source=github.com&utm_medium=referral&utm_content=BoYanZh/Joint-Teapot&utm_campaign=Badge_Grade_Settings)
A handy tool for TAs in JI to handle works through [Gitea](https://focs.ji.sjtu.edu.cn/git/), [Canvas](https://umjicanvas.com/), and [JOJ](https://joj.sjtu.edu.cn/). Joint is related to JI and also this tool which join websites together. Teapot means to hold Gitea, inspired by [@nichujie](https://github.com/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)
```bash
python3 -m venv env # you only need to do that once
source env/Scripts/activate # each time when you need this venv
```
### Install
```bash
pip3 install -e .
cp .env.example .env && vi .env # configure environment
joint-teapot --help
```
### For developers
```bash
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