尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

gogcli `gog classroom coursework delete` 命令完全指南:删除 Google Classroom 作业

gogcli `gog classroom coursework delete` 命令完全指南:删除 Google Classroom 作业 gogcligog classroom coursework delete命令完全指南删除 Google Classroom 作业【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli本指南以docs/commands/gog-classroom-coursework-delete.md为骨架结合internal/cmd/classroom_coursework.go、internal/cmd/classroom_mutation_helpers.go与internal/cmd/dryrun_e2e_test.go等源码系统讲解 gogcliGoogle Workspace in your terminal中删除 Classroom 作业coursework的命令用法、参数体系、安全防护机制与底层实现。读完你将掌握如何通过一条 CLI 命令删除指定课程下的指定作业如何用别名简化输入如何利用 dry-run、强制确认、只读模式与 JSON/TSV 输出在多场景下安全、可控地执行删除操作以及该命令在源码中的完整调用链与测试验证方式。命令概述gog classroom coursework delete用于删除 Google Classroom 中某个课程course下的某个作业coursework。它对应 Google Classroom API 的courses.courseWork.delete接口属于典型的破坏性destructive写操作——删除后作业不可恢复因此 gogcli 在命令设计上叠加了多道安全防护dry-run 预演、交互确认、--force跳过确认、--readonly全局拦截、--disable-commands禁用等。该命令的定位文档为 docs/commands/gog-classroom-coursework-delete.md。同族命令包括gog classroom coursework父命令覆盖 coursework 的 list / get / create / update / delete / assignees 全生命周期gog classroom coursework create/get/update/list/assignees作业的增、查、改、列、分配对象操作gog classroomClassroom 整体命令入口还包括 courses、topics、materials、announcements、students、teachers、invitations、guardians、submissions、profile 等子命令。用法与别名基本语法gog classroom (class) coursework (work) delete (rm,del,remove) courseId courseworkId两个位置参数都是必填参数含义示例courseId课程 ID 或课程别名alias1234567890或d:meexample.comcourseworkId作业 ID4567890123从源码结构看classroom_coursework.go命令结构体中两个arg:字段严格按顺序解析先courseId再courseworkId。执行时会先对两者做strings.TrimSpace去除首尾空白任一为空都会立即返回usage(empty courseId)/usage(empty courseworkId)报错避免空参数打到 API见 classroom_mutation_helpers.go。别名系统命令名本身支持多级别名便于快速输入父级别名coursework可用work替代class可替代classroomdelete 子命令别名rm、del、remove与delete完全等价源码中aliases:rm,del,remove定义于 classroom_coursework.go。因此下面几种写法完全等效gog classroom coursework delete 1234567890 4567890123 gog classroom coursework rm 1234567890 4567890123 gog classroom work del 1234567890 4567890123 gog class coursework remove 1234567890 4567890123获取 courseId 与 courseworkId课程 ID用gog classroom courses list列出全部课程或用gog classroom courses get courseId精确查询作业 ID用gog classroom coursework list courseId列出课程下的全部作业gog classroom coursework get courseId courseworkId查看作业详情ID、标题、状态、类型、截止时间、topic、满分、链接等见 classroom_coursework.go。全局 Flags 详解命令文档列出的全部 flag 均为 gogcli 全局 flag对所有子命令生效。核心 flag 及说明如下Flag类型默认值说明--access-tokenstring直接使用提供的访问令牌绕过存储的 refresh token令牌约 1 小时过期-a/--account/--acctstring指定账户邮箱、别名或auto用于已认证的 Google API 命令--clientstringOAuth 客户端名称选择对应存储的凭据与令牌桶--colorstringauto彩色输出auto/always/never--disable-commandsstring禁用的命令列表逗号分隔支持点路径如classroom.coursework.delete-n/--dry-run/--dryrun/--noop/--previewbool不实际变更仅打印预期操作并以成功状态退出--enable-commandsstring启用的命令前缀列表逗号分隔支持点路径限制 CLI 可用范围--enable-commands-exactstring精确启用的命令列表点路径父命令不会自动启用子命令-y/--force/--assume-yes/--yesbool跳过破坏性命令的确认提示--gmail-no-sendboolfalse阻止 Gmail 发送操作Agent 安全-h/--helpkong.helpFlag显示上下文相关帮助--homestring覆盖 gogcli 配置/数据/状态/缓存根目录等价于GOG_HOME环境变量-j/--json/--machineboolfalse以 JSON 输出到 stdout适合脚本处理--no-input/--non-interactive/--noninteractivebool绝不交互提示无法继续时直接失败适合 CI-p/--plain/--tsvboolfalse输出稳定、可解析的纯文本TSV无颜色--quota-projectstring用于计费的 Google Cloud 项目以X-Goog-User-Project头发送部分 API 配合--access-token或 ADC 时需要--readonlyboolfalse运行时拦截所有变更型 API 请求auth add也只会请求只读 OAuth 权限--results-onlyboolJSON 模式下只输出主结果丢弃nextPageToken等信封字段--select/--pick/--projectstringJSON 模式下按逗号分隔选择字段尽力而为支持点路径-v/--verbosebool开启详细日志--versionkong.VersionFlag打印版本并退出--wrap-untrustedboolfalseJSON/raw 输出中将获取的文本字段包裹在外部不可信内容标记中说明命令行解析基于 Kongkong.helpFlag、kong.VersionFlag多别名 flag如-n/--dry-run/--dryrun/--noop/--preview是 gogcli 面向人机交互与 Agent 场景设计的统一入口。安全防护机制从 dry-run 到确认删除是不可逆操作runClassroomDeleteclassroom_mutation_helpers.go的执行流程在调用 Google API 前依次经过两道闸门dry-run 预演调用dryRunExit(ctx, flags, op, request)若传入--dry-run或其别名命令只打印预期操作描述delete coursework courseworkId from courseId并附带course_id/coursework_id载荷然后以成功状态退出不会触碰 API破坏性确认调用confirmDestructiveChecked(ctx, flagsWithoutDryRun(flags), action)在非 dry-run 模式下弹出确认提示只有用户确认后才真正执行删除。dryRunAndConfirmDestructive的定义位于 confirm.go其内部先执行 dry-run 检查再以去掉 dry-run 标记的 flags 做确认校验。这意味着想先看再删gog classroom coursework delete courseId courseworkId --dry-run想自动跳过确认CI 或脚本中追加-y/--force想彻底禁止交互追加--no-input命令在需要确认时会直接失败而非挂起等待。删除成功后writeResult输出结构化结果deleted true courseId courseId courseworkId courseworkId在 JSON 模式下则以{deleted: true, courseId: ..., courseworkId: ...}的形式输出successResultKey: deleted、parentResultKey: courseId、childResultKey: courseworkId见 classroom_coursework.go。底层 API 调用链delete闭包直接调用 Google Classroom Go SDKdelete: func(svc *classroom.Service, courseID, courseworkID string) error { _, err : svc.Courses.CourseWork.Delete(courseID, courseworkID).Context(ctx).Do() return err }对应 REST 接口为DELETE https://classroom.googleapis.com/v1/courses/{courseId}/courseWork/{courseworkId}。在真正发请求前requireClassroomService(ctx, flags)service_helpers.go会完成解析账户--account/ 默认账户初始化 OAuth 凭据选择--client对应的凭据与令牌桶构造带读写权限的classroom.Service实例。所有来自 API 的错误都会被wrapClassroomError统一包装转换成用户可读的错误信息权限不足、404、配额超限等。从源码结构看该删除逻辑并非单独实现而是复用了classroomDeleteOperation这个通用删除模板classroom_mutation_helpers.go同一模板还被classroom.topics.delete、classroom.materials.delete、classroom.announcements.delete、classroom.courses.delete等命令复用保证整个 Classroom 删除类命令在参数校验、dry-run、确认、结果输出上行为一致。测试验证仓库中的端到端测试 internal/cmd/dryrun_e2e_test.go 直接覆盖了本命令的 dry-run 契约{ name: classroom coursework delete, args: []string{classroom, coursework, delete, course123, work123}, op: classroom.coursework.delete, },该用例验证以course123与work123调用classroom coursework delete时生成的 dry-run 操作标识为classroom.coursework.delete与源码中op: classroom.coursework.delete完全一致。类似的用例还覆盖了 topics、materials、announcements、courses、students、teachers、invitations 等删除命令共同构成了 Classroom 写操作 dry-run 契约的回归保护网。仓库中另有 execute_classroom_more_commands_test.go 等测试对 Classroom 命令族做执行层验证。实战示例1. 查看将要执行的操作安全预演gog classroom coursework delete 1234567890 4567890123 --dry-run输出预期动作后立即退出不发任何 API 删除请求适合在批量脚本前做演练。2. 实际删除交互确认gog classroom coursework delete 1234567890 4567890123命令会先打印将要执行的动作并请求确认输入确认后删除随后输出deleted true courseId 1234567890 courseworkId 45678901233. 脚本 / CI 中静默删除gog classroom coursework delete 1234567890 4567890123 --force --json--force跳过交互确认--json输出{deleted:true,...}便于程序解析。若希望更保守可加上--no-input在需要交互确认的环境里直接失败而不是挂死。4. 只读环境下验证命令不被执行gog classroom coursework delete 1234567890 4567890123 --readonly--readonly会在运行时拦截变更型 API 请求删除操作将被拒绝执行该模式同时要求auth add只请求只读 OAuth scope。这是 Agent 或审计场景下的硬性保护。5. 与别名组合使用gog class work rm 1234567890 4567890123利用父级别名class/work与子命令别名rm输入最精简。常见问题QcourseId可以填课程别名吗可以。参数名注释为Course ID or aliasGoogle Classroom API 支持用课程别名如d:meexample.com定位课程。Q删除后作业还能恢复吗不能。courses.courseWork.delete是硬删除。gogcli 层面也没有回收站逻辑因此务必先get确认 ID 无误再配合--dry-run预演。Q为什么命令会提示确认删除属于破坏性操作gogcli 通过confirmDestructiveChecked在默认交互模式下强制确认脚本场景用--force显式跳过。Q如何彻底禁用此命令如 Agent 场景使用全局--disable-commands classroom.coursework.delete或仅用--enable-commands白名单模式只放开允许的命令前缀。Q删除时提示empty courseId/empty courseworkId检查位置参数是否缺失或仅含空白字符两个参数都必须非空才会发起 API 请求。关联文档命令文档gog-classroom-coursework-delete.md父命令gog classroom coursework命令索引README.md源码实现classroom_coursework.go通用删除模板classroom_mutation_helpers.go确认与 dry-run 逻辑confirm.go服务初始化service_helpers.go端到端测试dryrun_e2e_test.go【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表