2012-04-26 7 views
1

まあ、現時点で私は2つの目標を持っています。既存の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の既存のバグのいくつかのフィールドを修正したいだけです。

    すなわち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


、これらの目標を達成するための可能な方法は何ですか?

私が考えていたように、私は、既存のBugzillaコードにこれらのAPIのメソッドを使用する必要がありますすることができ、私の夢は、次のとおりです。

  1. コメントはバグ編集権限を持たないユーザーのために有効にされるだろう。
  2. いくつかのパラメータを渡してコマンドラインからimportxml.plスクリプトを実行し、既存のバグのいくつかのフィールドを修正します。

しかし、私はどちらかが正しいか間違っていると思いますか。私はまた、これらのAPIのメソッドを使用する方法を知らないのですか?

答えて

0

email_in.plスクリプトは、あなたが求めているもののタイプを行うことができます。ただし、変更を行う権限を持つユーザーを作成する必要があり、email_in.plが理解できる形式にデータを変換する必要があります。

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

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; 

ユーザーIDとIDが上で動作するようにいくつかのバグをフェッチ...

例:

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

...あなたはそれらを必要としない - http://perldoc.perl.org/Data/Dumper.html:今Dumperの機能は、単に優れたデータ:: Dumperのモジュールを使用していることに注意してくださいバグの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! 

}

してくださいデバッグを除いて。

ログイン情報は次のとおりです。How can I authenticate when using the Bugzilla Perl API in a script?

関連する問題