一个从 Phabricator 中抓出任务生成周报的东西

缘起

自然是我司每周都要完成的周报。

背景

我司重度依赖“不存在网站”:Facebook 开源出来的项目:Phabricator,我们的每项工作也来自于其中的 Maniphest(不知道是什么语言,不像英语,反正应该就是 task 的意思),每周的工作周报里提到的事情如果有 task 的(一般都有),都还要附上其 task id。

同时,Phabricator 目前的运营公司: Phacility 同时也放出了一套 php 的类似于 SDK 的东西:libphutil,所以我就开始尝试着用 php 来撸一个自动生成、发布周报的东西。

about Pha_WR_SRE

Pha_WR_SRE
不许说项目名称起的很雷人。:(

这个东西怎么做的就不说了,这里主要说下大概实现了哪些功能。

输出的信息

输出的信息分三种:“completed”、”ongoing” 和 “other”,分别对应着“已完成”、“未完成”和“其他”。

输出的目标

已实现的是四种:

  1. Console
  2. OneNote
  3. Evernote
  4. Phabircator’s Phame

第一种就不用说了,如果在控制台运行,运行结果会被直接输出到控制台的;

第二种也简单,OneNote 支持用 Email 的方式发布 Note,不过需要先在 OneNote 里设置下发邮件的地址白名单(具体见 README 文件);

第三种跟 OneNote 差不多,不过 Evernote 需要一定级别的帐号才支持这种功能,而且他的目标 email 地址是隐藏的,需要自己去找,而且不建议让别人知道;

第四种是我自己想的,反正 Phabricator 也支持 blog 功能(Phame),不过这个需要先在 Phabricator 中新建一个 blog 获得其的 phid 并配置在 config.ini 中;

macOS

对于用 macOS 的用户,这里还有个特殊的新功能:可以直接设置定时运行这个任务。具体方法就是把项目里那个 .plist.example 文件稍稍修改下(也可以不修改),改名去掉“.example”,放到 ~/Library/LaunchAgents 目录下,然后可以用命令:

1
2
3
4
# load .plist file if U have not change it's name
launchctl load gs.theyan.phawrsre.plist;
# start job manually
launchctl launchctl start GenerateReport.job;