我们的开发过程通过大量的bash和php脚本(包括subversion钩子脚本)实现高度自动化。这些脚本可以与我们的Bugzilla 3.0安装集成很多东西。
但是当前的集成方法是一堆SQL调用直接更新bugzilla数据库 - 这显然有许多缺点 - 包括在数据库模式发生变化时让我担心升级到3.2!
例如,要为bug添加注释,我正在对longdescs表进行INSERT。
所以我(稍微啰嗦)的问题是:
答案 0 :(得分:3)
根据Bugzilla WebServices API,所需的一些功能(例如更改错误状态)尚不可用,因此目前直接SQL调用似乎是最合适的选择。
数据库架构在版本3.0和3.2之间没有显着变化,因此这是一种实用的方法。
答案 1 :(得分:2)
仅供参考,在Bugzilla 3.2发行版中,有一个contrib/bz_webservice_demo.pl
文件,其目的是“展示如何通过XMLRPC与Bugzilla对话”。
答案 2 :(得分:0)
小心!某些数据库更改也意味着其他更改。通过向longdescs添加行来为错误添加注释,但您还应该更新表错误中的delta_ts。
在Web服务可用之前,我会这样做:使用您想要从shell执行的UI执行操作。 (假设MySQL)使用'mysqlbinlog'查看数据库的二进制日志,你会看到Bugzilla在做任何事情时通常执行的语句。
如果您希望在下次有人进行更改时邮寄您添加的评论,请单独留下bugs.last_diffed。如果您不想将您添加的评论邮寄出去,请在bugs.delta_ts上更新bugs.last_diffed。
Bugzilla在数据库中有许多你必须尊重的微妙依赖,或者你可能会得到一些意想不到的结果。