



























简而言之,【MatrixChannel】是一个定时同步 Tapd(来自腾讯的敏捷研发协作平台)到 Notion 的开源工具。
本篇文章主要根据一个软件开发从业人员的个人经历,介绍了工作任务纪录的痛点,并提出、开发、开源了自己的解决方案,也就是本文章分享介绍的工具。
最后,通过这个解决方案,除了能够更统一更高效的管理个人日常事务,同时,还能以更个人、更自由的方式管理自己的 Tapd 需求、任务的数据展示与数据记录,并记录个人关于需求的临时数据与需求分析,提高生产力。
工具 Github 地址:https://github.com/copriwolf/MatrixChannel

开篇先来一个烂梗。自从众多互联网公司落实了 985 规定后,生产力他妈妈更早下班了,今天刚回来,就听到有人敲门,打开门一看,嚯,原来是生产力到家了。
当然了,这是一个来自互联网从业人员的自嘲,不过确实越来越有趋势,需要在非办公时间段处理公司业务的需求。(就如同微信也拥有了 QQ 的多终端登录,趋向工作生活一体化一样)。而为了应对在家里更快的了解自己的任务进度、需求变更,我个人更迫切的需要一个工具去整合我的工作数据,而这个工具也就应运而生了。
从本人的工作经历中,使用过的公司指定项目管理工具包括 Redmine/JIRA/Tapd 等,都存在一些让使用者非常不爽的地方。
而针对每一个需求任务的上下文相关数据,亟需一个统一的位置进行维护,且在需要时能够快速根据关键信息(标题、需求目的)检索处理,并有详实的时间线历程与状态扭转记录。
在过去的时间段,跨越了我的几段工作经历,为了记录我的工作任务的上下文。我尝试了【Wiz】【印象笔记】【Angenda.】等知识管理类软件服务、【Trello】等看板类工具以及【Typora+github/dropbox】的 Geek 模式等等等的模式。


我始终觉得,有几个痛点横跨在我的知识管理软件之上,无法解决:
在一路的尝试历程,发现 Notion 是比较符合选型要求的。其提出横空出世的 All-In-One Workspace 模式,开创了一个崭新的在线文档记录模式。
它在几个方面的特性,能够尝试解决以上提到的痛点:


如上图所示,通过细分数据的维度,能够非常容易管理任务的进度,同时,附带一些个人用到的需求上下文数据。(请原谅我,为了脱敏工作数据,进行了大批量的打码,打码工具好用推荐给你👌)
当然了,解决了需求的上下文关联,数据的统一管理检索,数据的状态扭转后。
就还有一个比较棘手的问题需要解决:「每次 Tapd 新来了需求都需要手工录入,能不能自动联动起来?」
仍然需要,手工更新、录入数据,这是一个繁琐而且容易疲倦的操作,也会因为落后于 Tapd 的更新速度,最后废弃了 Notion 上下文的维护,乃至于废弃了个人的工作便签记录。
而解决这个自动更新的契机,则是部门的其他同事、领导也同样拥有对新事物探索的热情与无尽的宽容,容许成为我开发自动更新插件的首批试用玩家。
也就有了,今天隆重介绍的「MatrixChannel」—— 一个自动定时同步 Tapd 到 Notion 的工具。
解决了个人以及领导的需求:在 Notion 以更自由更个性化的方式,并准实时的情况,管理自己的 Tapd 需求与任务。

MatrixChannel 作为一个 Notion 与 Tapd 的中介,
由于 MatrixChannel 并不会落地任何用户数据,故每次触发时,都会重新获取 Notion/Tapd 的数据。
首先,我们需要创建一个 Notion 机器人用于后续把 Tapd 数据保存到 Notion 中。同时,我们通过拷贝一个 Tapd Notion 模版(预设了 Tapd 数据相关的字段),用来创建一个用来记载 Tapd 数据的页面。最后,把 Notion 机器人配置到这个插件上,跑起来,即可自动同步数据。
1. 在官方的开发者页面,点击右上角的 My integrations 按钮

2. 登陆后,点击 New integration 新建一个机器人。

3. 填写机器人的名字, 即可进行提交。

4. 机器人创建成功后,保存机器人的 Secrets(密钥),这是操作这个机器人的唯一凭证或者说是钥匙。

5. 机器人类型选择 Internal Integration(自用类型),然后保存即可。
后续需要制作给多个用户同步 tapd 时,可用到 Public Integration。

我为你准备了一份预设的 Tapd Notion 模版,其中包含了【Story 需求表】以及【Task 任务表】。

每个表都预设了 Tapd 数据需要落地的字段(如 Task 表中的关键数据:「标题」「迭代」「任务状态」「需求Url」「TaskUrl」等等)

操作方式如下:
1. 点击右方链接,拷贝模版到你自己的 Notion 中。 [📍 Tapd 模版]
2. 授权你的机器人访问与修改该页面数据。(选中刚刚你在上一步创建的机器人名称。)
3. 获取页面的 PageID
由于 Notion Api 处于 Beta 版本,未开放处理 Database 级别权限,所以需要你手动复制 DataBase 的 ID。
分别进去【TapdStory需求表】与【TapdTask任务表】页面中,在右上角的 【Share】-【Copy Link】,在第两个 / 与 ?v=之间的即为 DataBaseID。
https://www.notion.so/copriwolf/84999c421caf4eeeab8bc66bc044408a?v=9...
<---------- DataBaseID --------->复制 Github 项目中的 config/demo.conf.yaml 为 conf.yaml,并在其中填充自定义的数据。你也可以复制下面的配置数据保存为 conf.yaml 即可。
Service:
# 数据同步间隔
refreshInterval: 10m0s
# 请求失败的睡眠时间
httpRequestFailSleepTime: 5s
# 最大请求失败重试次数
httpRequestAttempts: 5
# Tapd Api 用户名
tapdApiUser: vvvvvv
# Tapd Api 密码
tapdApiPassword: B8888888-8888-9999-0000
# Tapd 公司 ID
tapdCompanyID: "0000700"
User:
# 用户 A 的昵称/电邮(任意..)
copriwolf:
# 按需开启需要同步的内容(task-任务/story-需求)
enable:
- task
- story
# 该用户在 Tapd 中的用户名
tapdOwner: copriwolf
# Notion 访问密钥(私有机器人使用 Bot Secret)
notionBotSecret: secret_xxxxxxxxxxxxxxxxxx
# Notion Database 任务页面的 ID
notionDbTaskID: 84999c421caf4ee
# Notion Database 需求页面的 ID
notionDbStoryID: 77777777777777具体的插件,各系统执行文件,在 Github Release 页面可以下载,但是我更推荐你使用 Docker 运行。
原因是,你不需要沾污你的系统,把插件轻量化的跑在一个虚拟容器中,更方便省心。
$ docker run -it \
-v "$PWD/conf.yaml:/app/config/conf.yaml"
ghcr.io/copriwolf/matrixchannel:master
如果你觉得独乐乐不如众乐乐,希望帮助同事也同步他们最新的 Tapd 数据到他们各自的 Notion 中,不要着急,MatrixChannel 也同样支持,去看看源码吧~后期作者完善后会同样分享教程。
同时 MatrixChannel 还为你实现了,官方对于公共机器人的强制要求 OAuth 鉴权与回调功能模块,你只需要稍微配置数据,即可完成公共机器人配置,实现多用户 Tapd 同步能力。
📍 简述了我对工作记录的思考,以及对其中的优化方案。这也正是我目前运用到实际工作的解决方案。
🕹 如果你对工具有任何不满意或者改进的地方,欢迎评论或者直接在 Github 中提交 Issues。
👏 如果本文章对你的工作上下文记载有新的思考与启发,那就太好了。如果你觉得有不同的思路,更好的解决方案或者是批评,请留言告诉我,谢谢你。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。