哪个perl模块用于在Bugzilla 4.0.1上创建/更新错误?

时间:2011-06-06 13:58:07

标签: perl cpan bugzilla

我有来自Jira和Github的大量错误,我想转移到Bugzilla。我可以通过Net :: Github API轻松地通过xml和Github获取Jira错误。问题在于在Bugzilla上创建错误。我有100%正确的登录信息,但错误不会提交。

我正在使用http://search.cpan.org/~bmc/WWW-Bugzilla-1.5/WWW/Bugzilla.pm

处找到的模块

我注意到还有其他一些Bugzilla模块,比如WWW :: Bugzilla3,我认为它是Bugzilla的3.0.0版本。我是否使用错误的Bugzilla 4.0.1?

如果我只使用服务器,电子邮件和密码创建一个Bugzilla对象,该对象似乎正在正确登录,但之后无法获取任何产品,组件或版本。

编辑:我决定尝试使用Bugzilla3模块,但它确实有效。

2 个答案:

答案 0 :(得分:1)

解决方案是使用Bugzilla3模块,但并非所有功能都可以100%使用Bugzilla 4.0.1 ...它也缺乏更新提交的错误的能力,因此我们只是将所有错误移动到新组件,删除该组件,并再次运行脚本以进行补偿。

答案 1 :(得分:1)

我已经回答了一些可能对另一个SO问题有帮助的事情:How to use bugzilla API in existing bugzilla code?对于我找到的Google群组:https://groups.google.com/forum/#!topic/mozilla.support.bugzilla/7KEs5HqUtgo

这两个来源都是关于更新现有的bug,但我发现如果你查看Bugzilla源代码的bug.pm文件,你应该能够找到一些如何创建新bug的例子 - 我可以看到你UPDATING有问题,但是能够使用BZ3模块创建错误。


这里是我修改的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?