4

Bugzilla APIを使用して、Bugzilla製品のクローンを作成するための簡単なPerlスクリプトを作成しました(新しい製品の下にすべてのコンポーネントを再作成します)。Bugzilla Perl APIは、コマンドラインから非常に簡単に使用できます。データベースを直接操作することもできましたが、より長期的なソリューションが必要でした。もう1つのオプションはWebサービスでしたが、今回はAPIを直接使ってみようと思いました。

私が直面している問題の1つは、新しいコンポーネントを作成できるようにBz管理者ユーザーとして認証することです。BugzillaのBugzilla.pmファイルを見ると、 Bugzilla::Authオブジェクトlogin()から実行されていることがわかります。そこでユーザー名とパスワードを取得する方法がわかりません。スクリプトをBugzilla管理インターフェースに追加するだけでよいと思います...

誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

2

3.2以降、Webサービス機能にいくつかの重要なアップグレードがありましたが、アップグレードできますか?

少なくとも3.6では、このメソッドcontrib/bz_webservice_demo.plの使用方法を確認してくださいUser.login

http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html

于 2010-05-05T00:36:14.070 に答える
2

ああ、今日はかなり無知です。私は「Webサービス」に焦点を合わせ、あなたが本当に何を望んでいるのか理解できませんでした。

(データベースを直接操作するのではなく)APIを使用してデータベースと通信している場合、本当にユーザーとして認証する必要がありますか?

3.2ソースツリーでmerge-users.pl、たとえばBugzilla::Userオブジェクトを使用するものを見てください。あなたは同じことをすることができませんでしたBugzilla::Componentか?

sanitycheck.plを使用する、も確認する必要がありますBugzilla->set_user

于 2010-05-05T01:34:19.307 に答える
1

次のコードスニペットが質問を入力する可能性があります。ここでは、ユーザーが正しい「editcomponents」クレデンシャルを持っていることも確認します。

my $user = new Bugzilla::User({ name => $login })
  || ThrowUserError('invalid_username', { name => $login });


# Authenticate using this user account.
Bugzilla->set_user($user);
$user->in_group('editcomponents')
      || ThrowUserError("auth_failure", {group  => "editcomponents",
                                         action => "add",
                                         object => "products"});
于 2012-03-14T13:37:21.620 に答える