gogcli 实战:使用 `gog classroom guardians delete` 删除 Google Classroom 守护者

gogcli 实战:使用 `gog classroom guardians delete` 删除 Google Classroom 守护者 gogcli 实战使用gog classroom guardians delete删除 Google Classroom 守护者【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli导读本指南聚焦 gogcli 项目中gog classroom guardians delete命令的完整使用方式。Google Classroom 的守护者Guardian是学生账号的监护人负责接收学生作业动态邮件。当家长与学生的监护关系结束或需要更正错误指派时管理员需要从 Classroom 中移除守护者。阅读本文后你将掌握该命令的语法、位置参数含义、破坏性操作保护机制dry-run 与确认提示、JSON 脚本化输出以及它背后的 Classroom API 调用链与源码实现。命令概述gog classroom guardians delete用于删除一个守护者Delete a guardian是 gogcli Classroom 守护者管理命令族gog classroom guardians下的三个子命令之一同族命令还包括gog classroom guardians delete — 删除守护者本文主题gog classroom guardians get — 获取单个守护者gog classroom guardians list — 列出守护者该文档为gog schema --json自动生成与命令实现保持同步若需重新生成可运行make docs-commands。基本用法与命令别名命令完整语法如下gog classroom (class) guardians (guardian) delete (rm,del,remove) studentId guardianId命令接受两个必填位置参数参数含义studentId学生 ID即守护者所关联的学生标识guardianId守护者 ID即待删除的守护者记录标识命令的层级别名让输入更灵活class可替代classroomguardian可替代guardiansrm/del/remove均可替代delete。以下命令等价gog classroom guardians delete 10001 g12345 gog class guardian rm 10001 g12345 gog classroom guardians del 10001 g12345 gog classroom guardians remove 10001 g12345从源码 classroom_guardians.go 可以看到ClassroomGuardiansDeleteCmd通过 kong 参数标签arg:声明了studentId与guardianId两个位置参数并在Run中委托给通用的runClassroomDelete辅助函数执行type ClassroomGuardiansDeleteCmd struct { StudentID string arg: name:studentId help:Student ID GuardianID string arg: name:guardianId help:Guardian ID } func (c *ClassroomGuardiansDeleteCmd) Run(ctx context.Context, flags *RootFlags) error { return runClassroomDelete(ctx, flags, c.StudentID, c.GuardianID, classroomDeleteOperation{ op: classroom.guardians.delete, parentName: studentId, parentPayloadKey: student_id, parentResultKey: studentId, childName: guardianId, childPayloadKey: guardian_id, childResultKey: guardianId, successResultKey: deleted, action: func(studentID, guardianID string) string { return fmt.Sprintf(delete guardian %s for student %s, guardianID, studentID) }, delete: func(svc *classroom.Service, studentID, guardianID string) error { _, err : svc.UserProfiles.Guardians.Delete(studentID, guardianID).Context(ctx).Do() return err }, }) }删除前的保护机制dry-run 与确认提示由于删除属于破坏性操作runClassroomDelete在真正调用 Classroom API 之前会依次执行两道防线实现见 classroom_mutation_helpers.go参数校验对studentId与guardianId去除首尾空白后判空任一为空则返回usage(empty studentId)或usage(empty guardianId)错误dry-run 与破坏性确认调用dryRunAndConfirmDestructive见 confirm.go它先执行dryRunExit再执行确认检查。Dry-run 模式通过-n/--dry-run/--dryrun/--noop/--preview任一标志开启。此时命令不会发起任何 API 调用也不会触碰认证与 keyring源码注释明确说明Call this from mutating commands early to avoid touching auth/keyring or making API calls只打印预期操作并以退出码 0 结束。JSON 模式下的输出形如{dry_run: true, op: classroom.guardians.delete, request: {student_id: 10001, guardian_id: g12345}}文本模式则输出dry_run、op、request_json三个字段实现见 dryrun.go。这是批量脚本或 CI 中安全预览删除效果的标准姿势。交互确认与 --force未加--force时命令会以Proceed to delete guardian g12345 for student 10001? [y/N]:提示用户确认输入y或yes才继续否则以退出码 1 取消。confirmDestructiveChecked还做了两条关键限制confirm.go在--no-input/ 非交互环境stdin 非终端下拒绝执行并提示需要--force交互提示读取到 EOF 或用户未确认时返回ExitError{Code: 1, Err: errors.New(cancelled)}。因此自动化场景必须显式使用-y/--force/--assume-yes/--yes例如gog classroom guardians delete 10001 g12345 --force常用 Flags 详解以下为本命令完整可用的 Flags与整个 gogcli CLI 全局一致由 kong 框架统一解析Flag类型默认值说明--access-tokenstring直接使用提供的访问令牌绕过存储的 refresh token令牌约 1 小时过期-a/--account/--acctstring指定账户邮箱、别名或autoGoogle API 认证命令通用--clientstringOAuth 客户端名称选择存储的凭据与令牌桶--colorstringauto颜色输出auto|always|never--disable-commandsstring逗号分隔的禁用命令列表支持点路径-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输出稳定可解析文本到 stdoutTSV无颜色--quota-projectstring用于 API 计费的 Google Cloud 项目作为X-Goog-User-Project发送部分 API 配合--access-token或 ADC 时需要--readonlyboolfalse运行时阻止变更型 API 请求auth add也会请求只读 OAuth scope--results-onlyboolJSON 模式下仅输出主结果丢弃 nextPageToken 等信封字段--select/--pick/--projectstringJSON 模式下选择逗号分隔的字段尽力而为支持点路径-v/--verbosebool启用详细日志--versionkong.VersionFlag打印版本并退出--wrap-untrustedboolfalseJSON/raw 输出中将获取的文本字段包裹在外部不可信内容标记中脚本化输出JSON 与 TSV删除操作成功后runClassroomDelete通过writeResult输出deleted、studentId、guardianId三个键值。TSV 文本模式输出类似deleted true studentId 10001 guardianId g12345配合--json可获得结构化输出便于在jq、GitHub Actions、Python 脚本等自动化链路中消费gog classroom guardians delete 10001 g12345 --json --force底层实现Classroom API 调用链删除守护者的核心 API 调用是svc.UserProfiles.Guardians.Delete(studentID, guardianID).Context(ctx).Do()即 Google Classroom API 的userProfiles.guardians.delete端点。整个调用链如下ClassroomGuardiansDeleteCmd.Run组装classroomDeleteOperationclassroom_guardians.gorunClassroomDelete校验参数 → dry-run/确认 → 通过requireClassroomService获取服务实例service_helpers.go内部经requireAccount解析账户、classroomService创建带认证的classroom.Service见 runtime_services.go执行operation.delete调用 Google Classroom API成功则写出结果失败则经wrapClassroomError包装后返回见 classroom_helpers.go。wrapClassroomError对常见错误给出了可操作的提示值得特别注意Classroom API 未启用accessNotConfigured/ Classroom API has not been used提示在 Google Cloud Console 的 Classroom API 库页面启用 API权限不足insufficientPermissions/insufficient authentication scopes提示使用gog auth add account --services classroom重新认证以获取 Classroom scope。这意味着执行删除前应确认账号已通过gog auth add完成 Classroom 服务授权且当前账户对该学生具有管理员权限仅拥有对应学生 guardian 管理权限的账户可执行删除。关联命令与完整工作流守护者管理通常与以下命令配合使用完整索引见 Command index查询确认先用gog classroom guardians list studentId列出某学生的全部守护者拿到确切的guardianId或用gog classroom guardians get studentId guardianId校验单条记录删除确认后执行gog classroom guardians delete studentId guardianId建议先加--dry-run预览相关概念守护者与被邀请但未接受的状态区分管理邀请侧由gog classroom guardian-invitations系列命令处理创建邀请见 gog-classroom-guardian-invitations-create。一个安全的典型工作流示例# 1. 预览将要执行的操作不会发请求 gog classroom guardians delete 10001 g12345 --dry-run --account adminexample.com # 2. 交互确认删除或加 --force 跳过确认 gog classroom guardians delete 10001 g12345 # 3. 验证删除结果此时 list 不应再出现该守护者 gog classroom guardians list 10001注意事项该命令只删除守护者记录不会删除学生账号或课程数据删除是不可恢复操作请务必在批量执行前通过--dry-run确认studentId与guardianId无误非交互环境CI下必须显式携带--force否则命令会因无法确认而拒绝执行相关文档由gog schema --json自动生成命令的 flags 变化会同步反映到 gog-classroom-guardians-delete.md以实际仓库内容为准。【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考