这个项目能做什么
cb365 提供对 Microsoft 365 服务的命令行访问,是编写自定义 Graph API 应用程序或手动 UI 操作的替代方案。它能够实现任务创建、发送邮件、管理日历、在 Teams 中发布消息以及与 SharePoint、OneDrive、Planner 和 Loop 进行交互等任务的自动化。该工具提供结构化的 JSON 输出,非常适合脚本和 AI 智能体使用。
主要功能和目标受众包括:
* **DevOps 和平台工程师**:用于对 M365 操作进行脚本化,例如从 CI 创建任务或将构建结果发布到 Teams。
* **AI 智能体构建者**:专为自主工作流设计,配备 `--json` 输出和安全标志。
* **IT 管理员**:用于 Graph API 操作的 PowerShell 命令行替代方案。
* **开发人员**:减少了处理常见 M365 任务时所需的 Graph SDK 样板代码。
cb365 封装了 Microsoft Graph API,处理了以下复杂性:
* **身份验证**:支持设备代码 (device-code)、客户端凭据 (client credentials) 和证书流,并将令牌安全地存储在操作系统的钥匙串中。
* **安全性**:包含 44 条硬编码规则,删除操作需要 `--force`,广播操作需要 `--confirm`,所有写入操作均提供 `--dry-run` 选项。令牌绝不会在输出中暴露。
* **输出**:提供 `--json`、`--plain` (TSV) 和人类可读的表格格式,专为流水线集成而设计。
* **配置文件 (Profiles)**:并行管理委托身份验证和仅限应用的身份验证,允许轻松切换租户。
* **无依赖性**:单个 Go 二进制文件,无需运行时环境。
可以通过 `go install` 或预构建的发布二进制文件进行安装。用户必须注册一个 Entra ID 应用并配置必要的 API 权限。身份验证支持用于交互式使用的委托模式(设备代码),以及用于无人值守自动化的仅限应用模式(客户端密钥或证书),出于安全性考虑,客户端密钥仅接受来自标准输入的值。
针对各种 M365 工作负载提供了命令:
* **Auth**:登录、状态、登出、配置文件管理。
* **To Do**:列出、创建、更新、完成和删除任务列表及任务。
* **Mail**:列出、获取、标记已读、移动、永久删除、草拟、发送和搜索邮件。
* **Calendar**:列出、获取、创建、更新和删除事件。
* **Contacts**:列出、获取、搜索、创建和更新联系人。
* **Planner**:列出计划、创建计划、管理容器 (buckets) 和管理任务。
* **Teams**:列出频道、向频道和聊天发送消息、软删除频道消息。
* **SharePoint**:列出/搜索站点、获取站点详情、管理列表和列表项、管理文件(列出、获取、上传)。
* **OneDrive**:列出、获取、上传、删除文件以及创建文件夹。
* **Loop**:列出工作区和页面、下载/导出页面、删除页面、上传文件以及创建文件夹。
全局标志包括 `--json`、`--plain`、`--profile`、`--dry-run` 和 `--verbose`。该工具强调通过支持从文件或 stdin 获取间接值,避免将业务内容放入进程参数中。安全规则是硬编码的,涵盖了写入保护、日历特定规则(例如时区验证、重复检测、参与者人数限制)、邮件安全(例如发送时需要 `--confirm`、收件人人数限制)以及令牌安全(安全存储、不暴露输出)。
对于 AI 智能体集成,`--json` 输出提供了结构化数据。建议智能体将 M365 内容视为不可信数据,并对命令使用显式的白名单,对副作用使用确认标志。错误处理使用标准的 Unix 退出码,错误信息打印到 stderr。
评论
0 评分人数达到10人后显示
登录后参与讨论。