feat: cli with typer
This commit is contained in:
parent
4cd3bf3285
commit
8aec08f7d1
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -294,3 +294,5 @@ dmypy.json
|
|||
*.code-workspace
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/vscode,python
|
||||
|
||||
repos/
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
from joint_teapot.__main__ import run
|
||||
from joint_teapot.teapot import Teapot as Teapot
|
||||
from joint_teapot.workers import Canvas as Canvas
|
||||
from joint_teapot.workers import Git as Git
|
||||
from joint_teapot.workers import Gitea as Gitea
|
||||
|
||||
|
||||
def main() -> None:
|
||||
run()
|
||||
|
|
|
@ -1 +1,51 @@
|
|||
__version__ = "0.0.0"
|
||||
|
||||
from datetime import datetime
|
||||
from typing import List
|
||||
|
||||
import typer
|
||||
|
||||
from joint_teapot.teapot import Teapot
|
||||
|
||||
app = typer.Typer(add_completion=False)
|
||||
teapot = Teapot()
|
||||
|
||||
|
||||
@app.command("create-personal")
|
||||
def create_personal_repos_for_all_canvas_students() -> None:
|
||||
teapot.create_personal_repos_for_all_canvas_students()
|
||||
|
||||
|
||||
@app.command("create-teams")
|
||||
def create_teams_and_repos_by_canvas_groups() -> None:
|
||||
teapot.create_teams_and_repos_by_canvas_groups()
|
||||
|
||||
|
||||
@app.command("get-public-keys")
|
||||
def get_public_key_of_all_canvas_students() -> None:
|
||||
typer.echo(teapot.get_public_key_of_all_canvas_students())
|
||||
|
||||
|
||||
@app.command("archieve")
|
||||
def archieve_all_repos() -> None:
|
||||
teapot.archieve_all_repos()
|
||||
|
||||
|
||||
@app.command("create-issues")
|
||||
def create_issue_for_repos(repo_names: List[str], title: str, body: str) -> None:
|
||||
teapot.create_issue_for_repos(repo_names, title, body)
|
||||
|
||||
|
||||
@app.command("get-release")
|
||||
def checkout_to_repos_by_release_name(
|
||||
repo_names: List[str], release_name: str, due: datetime = datetime(3000, 1, 1)
|
||||
) -> None:
|
||||
teapot.checkout_to_repos_by_release_name(repo_names, release_name, due)
|
||||
|
||||
|
||||
def run() -> None:
|
||||
app()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
|
|
|
@ -17,7 +17,7 @@ class Settings(BaseSettings):
|
|||
org_name: str = ""
|
||||
|
||||
# git
|
||||
repos_dir: str = ""
|
||||
repos_dir: str = "./repos"
|
||||
|
||||
class Config:
|
||||
env_file = ".env"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from datetime import datetime
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from joint_teapot import Canvas, Git, Gitea
|
||||
from joint_teapot.utils import first
|
||||
from joint_teapot.workers import Canvas, Git, Gitea
|
||||
|
||||
|
||||
class Teapot:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
canvasapi>=2.2.0
|
||||
focs_gitea>=1.0.0
|
||||
pydantic[dotenv]>=1.8.1
|
||||
typer[all]>=0.3.2
|
||||
|
|
Loading…
Reference in New Issue
Block a user