wick-ed / timely
时间跟踪的控制台界面
Requires
- php: ^7.3|^8.0
- knplabs/packagist-api: ^1.5
- lesstif/php-jira-rest-client: ^2.0|^3.0
- symfony/console: ^5.0
Requires (Dev)
- phpunit/phpunit: ^10.0
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-09-20 00:31:19 UTC
README
一个简单的PHP控制台工具,用于跟踪您的用时并将它们推送到远程时间记录工具,如Jira。
简介
语义化版本控制
此工具遵循语义化版本控制,其公共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
这将筛选出当前正在跟踪的活动(例如“您正在做的事情”)或昨天的所有跟踪时间。
通过 from、to 和 specific 选项也可以通过处理的时间跟踪进行筛选。这些选项支持此处描述的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
这将筛选出当前正在跟踪的活动(例如“您正在做的事情”)或昨天的所有跟踪时间。
通过 from、to 和 specific 选项也可以通过处理的时间跟踪进行筛选。这些选项支持此处描述的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 | ;