核心用法
otta-cli 是 Otta 时间追踪平台的官方命令行工具,面向开发者与运维人员设计,支持完整的工时管理、请假审批、假期日历查询等核心功能。该工具以 JSON 输出为主,天然适配 CI/CD 流水线与自动化脚本场景。
主要功能模块:
| 模块 | 典型命令 | 用途 |
|------|---------|------|
| 认证管理 | `otta auth login` | OAuth2 登录,支持 env/stdin 密码注入 |
| 工时操作 | `worktimes list/add/update/delete` | CRUD 完整生命周期管理 |
| 假期日历 | `holidays`, `calendar overview/detailed` | 工作日/节假日查询与汇总报表 |
| 请假管理 | `absence browse`, `absence comment` | 浏览请假记录、生成病假说明文本 |
| 余额查询 | `otta saldo` | 实时累计工时余额 |
| 配置诊断 | `config path`, `status` | 缓存路径、认证状态检查 |
关键设计亮点:
- 全命令支持
--format json,便于 jq 处理与日志结构化 - 12 个
OTTA_CLI_*环境变量覆盖无头自动化场景 - 内置智能缓存:
status命令自动填充user_id/worktimegroup_id默认值 - 多单位时长输出:
--duration-format支持 minutes/hours/days/hhmm
显著优点
1. API-First 设计:直接对接 Otta REST API,比 Web 抓取更稳定可靠
2. 安全最佳实践:支持 --password-stdin 避免 shell history 泄露,token 自动缓存刷新
3. Go 原生实现:单二进制文件,跨平台零依赖
4. 故障自诊断:清晰的错误码与 stderr 提示,附带标准恢复流程
潜在局限与风险
| 局限 | 说明 |
|------|------|
| 芬兰市场专属 | Otta.fi 服务主要面向芬兰企业,国际化支持有限 |
| 无内置加密 | 缓存 token 明文存储于本地文件系统,需配合 OS 级加密 |
| 并发限制 | 未明确文档化速率限制,高频自动化需自行节流 |
| 功能边界 | 请假审批流仅支持浏览与评论生成,**不支持实际提交审批** |
适合人群
- 开发者/DevOps:需要将工时追踪集成到 Git hooks、CI pipelines
- 顾问/自由职业者:批量导入历史工时、生成月度报表
- Team Leads:通过
calendar detailed导出团队工时审计数据
常规风险
- 凭证泄露:
OTTA_CLI_PASSWORD若不慎提交至 git,将导致账户完全暴露;建议改用OTTA_CLI_ACCESS_TOKEN+ secrets manager - 时区歧义:所有日期时间以 Otta 服务端(Europe/Helsinki)为准,跨国团队需注意本地转换
- 数据误删:
worktimes delete为不可逆操作,生产环境建议先list确认 ID