如何在现有的bugzilla代码中使用bugzilla API?

时间:2012-04-26 15:47:00

标签: perl bugzilla

好吧,目前我有两个目标。

  1. 用户在bugzilla中没有编辑bug权限,但是他/她应该在该bug上写/发表评论。我认为这可以通过以下API实现,但我不确定,因为我是bugzilla和Perl的新手。 http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bug.html#add_comment

    1. 我想使用importxml.pl导入错误,但我不希望在DB中有新的条目。我只想在bug.xml文件的基础上修改bugzilla现有bug的一些字段,其中包含bug信息。

      即。 perl -T C:\ bugzilla \ bugzilla \ importxml.pl -v C:\ bugzilla \ bugzilla \ mybugs \ bug.xml

    2. 可能会关注API可能会有所帮助,但我不确定。

      http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bug.html#update


      那么,实现这些目标的可能方法是什么?

      正如我所想,可能是我应该将这些API的方法用于现有的bugzilla代码,我的梦想是:

      1. 将为没有错误编辑权限的用户启用评论。
      2. 我将通过传递一些参数从命令行运行importxml.pl脚本,我将修改现有错误的一些字段。
      3. 但我不确定,无论是对还是错。我也不知道如何使用这些API的方法??

2 个答案:

答案 0 :(得分:0)

email_in.pl脚本可以执行您要求的类型。但是,您需要创建一个有权进行更改的用户,并且您需要将数据转换为email_in.pl可以理解的格式。

http://www.bugzilla.org/docs/4.2/en/html/api/email_in.html

答案 1 :(得分:0)

我可以帮助解决第一点:

这是我修改的svn_bz_append.pl脚本(http://www.telegraphics.com.au/svn/svn_bz/trunk/)的摘录,我用它来更新svn提交的bugzilla注释。请注意,我将此脚本与Bugzilla安装在同一台计算机上运行,​​因为它使用Bugzilla目录中的模块。我有这个适用于Bugzilla v 4.2.3。

我已经省略了相当多的这个脚本来摘录下面的摘录:

use strict;
use warnings;

use Bugzilla;
use Bugzilla::Config;
use Bugzilla::Bug;

use Data::Dumper;

...创建/获取用户ID以及一些工作的错误...

例如:

my $userid = 1;
my @bugs = ( 1, 2, 3 );
my $message = 'Say something here';

...现在循环播放错误ID并添加评论......

foreach my $bugId (@bugs) {

my $user = new Bugzilla::User({ id => $userid}) 
 || ThrowUserError('invalid_username', { id => $userid}); #get the user from bugzilla
print STDERR 'user: '. Dumper($user); #pretty prints the user object

Bugzilla->set_user($user); #this authenticates the user so that you may perform actions on bugs that the user has permissions to.

my $bug = Bugzilla::Bug->check($bugId); #gets the bug
print STDERR 'bug: '. Dumper($bug); #pretty prints the bug object

$bug->add_comment($message); #adds a comment to the bug
$bug->update(); #updated the bug - don't forget to do this!

}

请注意,Dumper功能只使用优秀的Data :: Dumper模块:http://perldoc.perl.org/Data/Dumper.html - 除了调试之外你不需要它们。

登录信息来自:How can I authenticate when using the Bugzilla Perl API in a script?