2012-04-26 52 views
1

那麼,目前我有兩個目標。如何在現有的bugzilla代碼中使用bugzilla API?

  1. 用戶沒有在bugzilla中編輯錯誤權限,但他/她應該在該錯誤上編寫/發表評論。我認爲這可以通過以下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包含bug信息。

    即perl的-TC:\ Bugzilla的\ Bugzilla的\ importxml.pl -v C:\ Bugzilla的\ Bugzilla的\ mybugs \ bug.xml

可能是下面的API可能是有益的,但我不是當然。

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


那麼,什麼是可能的方式來實現這些目標?

正如我在想,可能是我應該使用這些API的方法到現有Bugzilla的代碼和我的夢想是:

  1. 意見會爲沒有bug的編輯權限誰的用戶啓用。
  2. 我將通過傳遞一些參數來從命令行運行importxml.pl腳本,並修改現有錯誤的一些字段。

但我不確定,無論我是對還是錯。我也不知道如何使用這些API的方法?

回答

0

我可以與第一點幫助:

下面是我已經修改了我使用SVN提交更新的Bugzilla註釋的一個svn_bz_append.pl腳本(http://www.telegraphics.com.au/svn/svn_bz/trunk/)的摘錄。請注意,我將這個腳本與Bugzilla安裝在同一臺機器上運行,因爲它使用了Bugzilla目錄中的模塊。我對Bugzilla v 4.2.3有效。

我省略了相當多的此腳本的拉出摘錄如下:

use strict; 
use warnings; 

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

use Data::Dumper; 

...創建/獲取用戶名和一些bug IDS對工作...

例如:

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

...現在通過錯誤號環路,並添加評論...

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! 

}

請注意,自卸車功能只是用出色的數據::自卸車模塊:http://perldoc.perl.org/Data/Dumper.html - 你不需要他們除了調試。

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