wick-ed/timely

时间跟踪的控制台界面

3.0.2 2023-02-23 12:18 UTC

README

一个简单的PHP控制台工具,用于跟踪您的用时并将它们推送到远程时间记录工具,如Jira。

Travis (.org) branch Scrutinizer Code Quality Code Coverage

简介

语义化版本控制

此工具遵循语义化版本控制,其公共API定义如下

  • 它在命令行界面暴露的命令
  • 其存储文件的格式
  • 其配置文件的格式以及提供的配置选项

用法

作为别名

alias timely="php /<DIR_TO_TIMELY>/timely/bin/timely $*"

使用方式

timely track FOO-127 bar

命令

有几种简单的命令可用,用于跟踪您每天的工作

track

NAME

show 命令跟踪您刚刚开始的活动。此活动必须与标识符相关联,例如来自您的票务系统的票据ID。尽管这只是为了结构化您跟踪的时间,但它在与实际的票务系统交互时将被使用。

一个示例调用可能是

timely show FOO-42 正在做一些事情

track -- 跟踪您刚刚开始工作的票据

SYNOPSIS

timely track ticket-id comment

DESCRIPTION

track 命令跟踪您刚刚开始的活动。此活动必须与标识符相关联,例如来自您的票务系统的票据ID。尽管这只是为了结构化您跟踪的时间,但它将在与实际的票务系统交互时被使用。

EXAMPLES

开始跟踪您在票据 FOO-42 上的工作,并留下注释

timely track FOO-42 Doing some stuff now

show

NAME

show -- 显示跟踪的任务,可按票据ID筛选

SYNOPSIS

timely show [yesterday|today|current] [-t|f|s] [--to|from|specific] [ticket-id]

DESCRIPTION

show 命令用于显示您已经跟踪的时间。默认情况下,这些时间按您用于跟踪的(票据)标识符分组。示例输出如下

FOO-42     2019-11-28 17:41:17 -> 2019-11-29 15:59:25
====================================================
    * | 2019-11-28 17:41:17 | FOO-42 | 1h 15m | Doing some stuff now
    -------------------------------------------------
    1h 15m

仅显示已经持续或持续超过15分钟的活动。

EXAMPLES

有关的问题跟踪时间也可以通过提供可选的(票据)标识符进行筛选

timely show FOO-42

您还可以通过缩小时间间隔进行进一步筛选。这可以通过使用提供的过滤器关键词current,today或yesterday来完成

timely show current

timely show yesterday

这将筛选出当前正在跟踪的活动(例如“您正在做的事情”)或昨天的所有跟踪时间。

通过 fromtospecific 选项也可以通过处理的时间跟踪进行筛选。这些选项支持此处描述的PHP日期和时间格式:[链接](https://php.ac.cn/manual/en/datetime.formats.php)。这允许进行如以下示例所示的精细筛选。

筛选特定日期

timely show -s 2019-11-28

筛选给定的时间范围

timely show -f 2019-11-28 -t 2019-11-30

筛选上周的时间

timely show -f"-1 week"

筛选去年十月内的所有内容

timely show -f"first day of october" -t"last day of october"

pause

NAME

pause -- 暂停当前跟踪,直到显式恢复

SYNOPSIS

timely pause [-r|--resume|comment]

DESCRIPTION

pause 命令允许暂停当前任务的跟踪。例如,这对于小憩、午餐或简单地离开工作以便第二天继续工作很有意义。

timely pause going for lunch

暂停结束后,必须恢复当前跟踪

timely pause -r

如果您开始做其他事情,在暂停期间使用 track 命令也会自动结束暂停。

EXAMPLES

参见上述内容。

push

NAME

push -- 将预定时间推送到配置的远程服务器

SYNOPSIS

timely push [yesterday|today|current] [-t|f|s] [--to|from|specific] [ticket-id]

DESCRIPTION

使用 push 命令可以将跟踪时间推送到外部时间跟踪服务。Jira 是一个支持的服务示例。使用 push 命令需要配置服务的端点,并在 .env 配置文件中进行可能的身份验证。

该命令的语法和可用性与 show 命令相同。在执行时,该命令将使用服务内部格式处理所有类似 show 命令会显示的所有跟踪时间。

以下命令可以创建例如昨天的任务的 Jira 工作日志

timely push yesterday

push 命令会跟踪已推送的时间跟踪,因此不会重复推送。

EXAMPLES

有关的问题跟踪时间也可以通过提供可选的(票据)标识符进行筛选

timely push FOO-42

您还可以通过缩小时间间隔进行进一步筛选。这可以通过使用提供的过滤器关键词current,today或yesterday来完成

timely push current

timely push yesterday

这将筛选出当前正在跟踪的活动(例如“您正在做的事情”)或昨天的所有跟踪时间。

通过 fromtospecific 选项也可以通过处理的时间跟踪进行筛选。这些选项支持此处描述的PHP日期和时间格式:[链接](https://php.ac.cn/manual/en/datetime.formats.php)。这允许进行如以下示例所示的精细筛选。

筛选特定日期

timely push -s 2019-11-28

筛选给定的时间范围

timely push -f 2019-11-28 -t 2019-11-30

筛选上周的时间

timely push -f"-1 week"

筛选去年十月内的所有内容

timely push -f"first day of october" -t"last day of october"

存储格式

默认情况下,跟踪数据存储在 data 目录下名为 timely-log.txt 的简单文本文件中。有意保持这种简单性,以便只使用文本编辑器即可操作跟踪。这提供了最大的灵活性,但缺乏数据库会给我们的一些更复杂的功能。跟踪按时间顺序保存,最新跟踪位于顶部。也便于手动操作。

始终需要了解跟踪保存的格式才能使用存储文件。

跟踪基于以下概要

<date and time a tracking occured> |<identifier e.g. a ticket number> | <comment> | [<push status for remote services>];

一个示例跟踪如下所示

2019-11-28 17:41:17 | FOO-42 | Doing some stuff now | ;

已推送到远程时间跟踪服务(本例中的 Jira)的示例跟踪如下所示

2019-11-28 17:41:17 | FOO-42 | Doing some stuff now | jira 2019-11-28 19:27:17;

这包含服务名称和实际推送的时间戳。

pause 命令使用的暂停具有相同的格式,但使用特定的标识符,以便它们可以被视为元信息。以下是一个包含开始和结束的暂停示例(例如午餐休息时间)

2019-11-28 12:41:17 | --pe-- |  | ;
2019-11-28 12:00:17 | --ps-- | lunch | ;