MantisConnectを使ったIssue登録を試してみました。
MantisはPHPで動作するので、SOAPクライアントもPHPスクリプトにしてみます。
環境は以下のとおり。mantis, php等すべてDebianパッケージを使用しています。
- Debian 6.0.1 (squeeze)
- mantis 1.1.8+dfsg-10
- php5 5.3.3-7+squeeze1
- php-soap 0.12.0-2
- mysql-server 5.1.49-3
- apache2 2.2.16-6+squeeze1
結論からいうと以下のようなスクリプトでOKでした。WSDLモードで接続してmc_issue_add()を呼び出します。
#!/usr/bin/php <?php $client = new SoapClient('http://localhost/mantis/api/soap/mantisconnect.php?wsdl'); $username = "administrator"; $password = "********"; $issue = array( 'project' => array('id' => 1), 'priority' => array('id' => 10), 'severity' => array('id' => 10), 'status' => array('id' => 10), 'reproducibility' => array('id' => 10), 'resolution' => array('id' => 10), 'projection' => array('id' => 10), 'eta' => array('id' => 10), 'view_state' => array('id' => 10), 'category' => "Default", 'summary' => "要約", 'description' => "詳細\n\nこちらに詳細情報を入力します。" ); $result = $client->mc_issue_add($username, $password, $issue); echo "$result\n"; ?>
最初は username, password, summary, description だけを指定してみたのですが、やれ「project指定がない」「priority指定がない」等のエラーが返ってきますので、それらを指定していった結果、こんな状態になりました。追加していったパラメータは、とりあえず各enum値の最初の値を指定しています。
日本語部分はUTF-8でベタ書きしています。
実行後のMantis登録状態は以下のとおりで、日本語も問題ありませんでした。
最初、日本語入力は文字化けしてしまったのですが、これはMantis用のMySQLデータベースがlatin1で作成されていたためで(Debian squeezeのデフォルト状態)、utf8で作り直すと大丈夫になりました。
# echo "DROP DATABASE mantis" | mysql -u root -p # echo "CREATE DATABASE mantis DEFAULT CHARSET utf8 DEFAULT COLLATE utf8_general_ci;" | mysql -u root -p # mysql -u root -p mantis < /usr/share/dbconfig-common/data/mantis/install/mysql