Axiu Blog
要帮助开发一个bug追踪的小工具,才第一次接触到它。主要功能很简单,找到超期1天以上的bug,并发信件给bug相应的负责人。 抓html肯定是最蛋疼的,而且内容一直在变,很容易搞错。不如直接调用api,按说这种开发了十多年的程序,肯定应该有详实,并且实例丰富的api供用户参考。但是我错了。。。 这是[Bugzilla的API](http://bugzil
Bugzilla是一款用于软件缺陷追踪管理的网络应用程序,由Mozilla计划开发和应用。大约已经存在十几二十年了,目前公司开发主要使用的还是这款网络应用,由于功能多样,并且是网页版,所以十分方便多地共同使用。我之前也没怎么接触过,直到最近要帮助开发一个bug追踪的小工具,才第一次接触到它。主要功能很简单,找到超期1天以上的bug,并发信件给bug相应的负责人。 抓html肯定是最蛋疼的,而且内
Bugzilla是一款用于软件缺陷追踪管理的网络应用程序,由Mozilla计划开发和应用。大约已经存在十几二十年了,目前公司开发主要使用的还是这款网络应用,由于功能多样,并且是网页版,所以十分方便多地共同使用。我之前也没怎么接触过,直到最近要帮助开发一个bug追踪的小工具,才第一次接触到它。主要功能很简单,找到超期1天以上的bug,并发信件给bug相应的负责人。 抓html肯定是最蛋疼的,而且内
Bugzilla使用API方式查询bug
Max

Bugzilla是一款用于软件缺陷追踪管理的网络应用程序,由Mozilla计划开发和应用。大约已经存在十几二十年了,目前公司开发主要使用的还是这款网络应用,由于功能多样,并且是网页版,所以十分方便多地共同使用。我之前也没怎么接触过,直到最近要帮助开发一个bug追踪的小工具,才第一次接触到它。主要功能很简单,找到超期1天以上的bug,并发信件给bug相应的负责人。

抓html肯定是最蛋疼的,而且内容一直在变,很容易搞错。不如直接调用api,按说这种开发了十多年的程序,肯定应该有详实,并且实例丰富的api供用户参考。但是我错了。。。

这是Bugzilla的API页面。由于只是小工具,没必要从头到尾看,直接进入 6.1.3.3. Search Bugs,这一部分。貌似很简单嘛,bug方法加几个参数就可以了。

GET /rest/bug?product=Foo&product=Bar

然而,直接输入之后,发现啥都找不到……尝试了几次之后,想到大概是没有登录的原因?往下继续翻翻翻,6.1.13.1. Login写了如何登录,并且在6.1.1.3. Authentication这一部分,也找到了You can use Login to log in as a Bugzilla user. This issues a token that you must then use in future calls. Just use the value for token and pass as either Bugzilla_token or simply token as arguments to an API call.

login

登录:

/rest/login?login=foo@example.com&password=toosecrettoshow

Response

login

可以验证一下登录:

/rest/valid_login?login=foo@example.com&token=186-OLZWWOoOoOoO 返回true 否则返回 { "code" : 32000, "documentation" : "http://www.bugzilla.org/docs/tip/en/html/api/", "error" : true, "message" : "The cookies or token provide were not valid or have expired. You may login again to get new cookies or a new token." }

记住这个token,然后在任何地方,加入参数token(Bugzilla_token)=xxx即可。

bz-search

API提供方式:

http://bugzilla.yourhost.com/bugzilla/rest/bug?token=186-OLZWWOoOoOoO&bug_status=Need_Info&resolution=---&creator=foo&list_id=11111111

基本上就这么几个参数,但是当想加上时间的时候,有点犯难了,它在查询页面的效果是这样的。

bz-advance-search

并且,api也没有看到任何关于days_elapsed的关键字。最后没办法,只能回滚到f+o+v的老方式里了:f3=days_elapsed&o3=greaterthan&v3=1,个别单词可能需要替换一下,基本的结构类似下面这样

http://bugzilla.yourhost.com/bugzilla/rest/bug?f1=token&v1=186-OLZWWOoOoOoO&f2=bug_status&v2=Need_Info&f3=resolution&f3=---&f4=reporter&v4=foo&f5=days_elapsed&o3=greaterthan&v3=1&f6=list_id&v6=10781644&f7=query_format&v7=advanced

蛋疼,收工。

Comments