项目管理平台Kanboard
发现这个平台真的挺好用的。部署特别简单,就是Plugin有坑。
首先,github webhook有两个,一个是webhook,很全面,但是有坑;另一个是release notification,只能响应release事件。在这里说一下我设置的平台搭建方法。另外加上一些使用方式。
平台搭建 #
使用 官网上的教程可以很容易搭建起来,个人挺推荐docker方式,挺简单,配置也全。试用一下的话,用下面这个指令就可以了。官方给的是.8版本,最新是40。
docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:v1.2.40
Github webhook插件的配置 #
这个简直就是有点坑了。从 官方文档来看,里面分为3个步骤:
- 在plugin目录下下载解压。
- 在github里配置webhook。kanboard会生成一套webhook的token,然后各插件会根据这个token生成一个链接,在github里配置上就可以了。注意这里需要公网访问权限。另外,Kanboard里的每个项目,会有一个独立的链接。在每个项目的integration里能查到。
- 在kanboard里,配置github发event过来之后的响应。这一步是在各项目中单独配置的。配置是在
Automatic Actions
里面,新增Action。注意这里是先选择Action,再选择触发条件,很反直觉。
整体来说确实能够帮助整理流程,能够与github更好的互动。下面是一些配置,以及安装时候的坑。
Github webhook插件支持的动作 #
- Create a task from an external provider
- Change the assignee based on an external username
- Change the category based on an external label
- Create a comment from an external provider
- Close a task
- Open a task
Github webhook插件提供的事件 #
- Github commit received:这个比较重要,commit提交的内容里,加上#ID,就可以设定某项任务完成(但只能设置完成,这个不太方便,其实最想的做的是给它换一个栏目)
- Github issue comment created:issue相关的任务很好用,在issue里提出问题,能直接把问题加到Kanboard里。
- Github issue opened
- Github issue closed
- Github issue reopened
- Github issue assignee change
- Github issue label change
无法正常响应Github事件的解决方案(大坑) #
通过docker logs -f kanboard
定位,找到了WebhookHandler.php
中的一个错误,
PHP message: PHP Fatal error: Uncaught TypeError: Symfony\Component\EventDispatcher\EventDispatcher::dispatch(): Argument #1 ($event) must be of type object, string given, called in /var/www/app/plugins/GithubWebhook/WebhookHandler.php on line 203 and defined in /var/www/app/vendor/symfony/event-dispatcher/EventDispatcher.php:48"
研究代码后发现dispatcher的定义与调用是刚好相反的。定义里,先输入event,再输入参数;调用的时候,先输入了参数,再输入了event。这样的地方很多,因此,让小秘书Chatgpt做如下操作:
下面这段代码中,$this->dispatcher->dispatch调用中的两个参数全部都写反了,请帮我在更正回来。注意!需要输出完整的代码,并且只更换参数顺序,不做其他改变。代码如下: …
再把输出的代码替换到WebhookHandler.php
中即可。
自动行为的设置 #
待定
项目管理流程 #
基于Kanboard的项目管理,已经在使用了,感觉确实比较简单方便又直观。做了一些约定,列在 项目管理流程 中了。