May 212011
 

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

Sorry, the comment form is closed at this time.