Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 2.41 KB

File metadata and controls

57 lines (41 loc) · 2.41 KB

Life@USTC CLI

终端里使用 Life@USTC 的命令行客户端 (life-ustc)。数据与权限来自 server;域与能力名与 Web / Bot / MCP 同一棵树 (interface hierarchy)。

面向谁

  • 习惯 shell 管理课表、待办、作业与订阅的同学
  • 需要脚本化调用 REST、或从官方教务站同步数据的用户
  • 做内容治理的管理员

命令域

能做什么
catalog 公开事实:学期、课程、教学班、教师、课表、校车、校园链接、元数据
workspace 个人概览、日历 / iCal、课表、考试、待办 CRUD、作业完成态、教学班订阅、校车偏好、链接置顶、上传
workspace school 直连校方站点:本科/研究生学期、课表、考试、成绩、作业,并可 sync 回 Life@USTC 订阅
community 评论(含反应)、描述、教学班作业
account 登录 / 登出、session、token、资料、语言
admin 用户、封禁、评论 / 描述 / 作业治理
api 对任意 REST 路径的逃生舱(适合脚本)
config / completion 默认 server、教务程序偏好、shell 补全

交互终端下,裸的 course / section / teacher 列表会打开 TUI;加过滤或 --no-interactive 则输出表格。机器可读输出:--json / --format json,可用 --jq

登录支持浏览器 OAuth(PKCE)与设备码;默认 server 为生产站点,也可用 --server / LIFE_USTC_SERVER 指向其它实例。

OpenAPI 契约

CLI 从仓库内的 api/openapi.json 生成。api/openapi.provenance.json 记录 对应的 server 提交和 SHA-256;make build 会先验证来源并重新生成客户端, 再开始编译。

更新契约时,先检出确定的 Life-USTC/server 提交,再运行:

make sync-openapi OPENAPI_SERVER_DIR=/path/to/server SERVER_COMMIT=<40-character-sha>
make generate

CI 会核对固定的 server 提交,不再猜测同名分支。定时同步工作流也会在 server 契约发生变化时创建更新 PR。

安装

发布包:GitHub Releases。或:

go install github.com/Life-USTC/CLI/cmd/life-ustc@latest

子命令细节以 life-ustc <cmd> --help 为准。License: MIT。