#time-tracking #api-client #mite #mite-api

acari-lib

mite 时间跟踪 API 的实用客户端

11 个版本

0.1.12 2021 年 5 月 12 日
0.1.11 2021 年 5 月 12 日
0.1.8 2020 年 2 月 15 日

#22 in #time-tracking


用于 acari-cli

MIT 许可证

84KB
2.5K SLoC

Build

mite 时间跟踪的命令行客户端

需求

Rust >=1.41.0 (除非您使用预编译的二进制文件)

安装

简单方法

cargo install acari-cli

替代:检出项目并执行

cargo install --path cli --force --locked

或者您可以从发布页面下载预编译的静态链接二进制文件。

Shell 完成脚本

Fish

cli/shell_completions/acari.fish 复制到 ~/.config/fish/completions

Zsh

cli/shell_completions/zsh/_acari 复制到您的 $fpath 中的某个位置(通常是类似 /usr/local/share/zsh/site-functions/usr/share/zsh/site-functions 的路径)。

注意:目前这个功能测试很少,可能需要以不同的方式执行。

Bash

目前有三个选项

  • 迁移到 zsh 的稍微多彩的一边
  • 迁移到 fish 的更多多彩的一边
  • 贡献您自己的完成脚本。我将乐意接受拉取请求。

基本用法

初始化

您需要从 mite 获取一个 API 令牌。这可以在您的账户页面找到。然后您只需执行

acari init

它将询问您的 mite 域名和令牌。

或者您可以简单地创建一个 ~/.config/acari/config.toml

domain = '<your-company>.mite.yo.lk'
token = '<your-token>'
cache_ttl_minutes = 1440

之后,您可以检查您的连接

acari check

它将打印您的账户和用户信息。

查询客户/项目/服务

列出客户

acari customers

列出项目

acari projects

或者如果您对特定客户的项目的感兴趣

acari projects "<customer-name>"

列出服务

acari services

所有这些信息都将被缓存。您可以在您的 ~/.config/acari/config.toml 中修改缓存持续时间(默认:1 天)。

如果您认为缺少某些内容,您可以尝试使用带有 --no-cache 选项的上述命令,或者运行

acari clear-cache

或者简单删除 ~/.cache/acari 目录。

查询时间条目

acari entries <timespan>

其中 timespan 可以是

  • todaynow:仅今天
  • yesterday:仅昨天
  • this-weekweek:本周的所有条目
  • last-week:上周的所有条目
  • this-monthmonth:本月的所有条目
  • last-month:上月的所有条目
  • YYYY-MM-DD:特定日期的条目
  • YYYY-MM-DD/YYYY-MM-DD:从特定日期到另一个日期的所有条目

跟踪时间

开始跟踪时间

acari start <customer-name> <project-name> <service-name>

可以也选择添加起始偏移量

acari start <customer-name> <project-name> <service-name> <minutes>

分钟可以是实际分钟或以hh:mm的形式。

停止跟踪时间

acari stop

显示当前跟踪时间

acari tracking

(注意:这可能会改变,尚未找到好的命名方式)

修改时间条目

更改今天的条目

acari set <customer-name> <project-name> <service-name> <minutes>

分钟可以是实际分钟或以hh:mm的形式。

更改特定日期的条目

acari set <customer-name> <project-name> <service-name> <minutes> <date>

其中date可以是

  • todaynow:更改今天
  • yesterday:更改昨天
  • YYYY-MM-DD:更改特定日期

注意:如果指定的日期包含多个针对相同客户、项目和服务的条目,这些条目将被压缩成一个单独的条目。设置命令的目的是只为该天的任务设置整个花费时间。

或者,如果您只想添加条目而不管该项目/服务现有的任何条目,您可以使用

acari add <customer-name> <project-name> <service-name> <minutes>

修改输出

所有命令的输出都可以通过--output-o选项进行修改。例如:

acari --output=json customers

支持输出格式有

  • pretty:显示格式化的表格(这是默认值)
  • json:以json格式输出所有可用信息
  • flatpretty的非常紧凑的格式,可能有助于在shell脚本或awk中处理信息

配置文件

如果您需要跟踪多个mite账户的时间,可以使用--profile-p选项为每个额外账户创建配置文件。例如:

acari --profile=<name> init
acari --profile=<name> customers

...这是一个相当特殊的使用案例,不幸的是,这也是我的一个案例...

依赖关系

~5–17MB
~252K SLoC