3

ビルド後のスクリプトでビルド リクエスタのユーザー名やメール アドレスを取得したいと考えています。

補足: リクエスタが必要なので、ビルド後の電子メール通知の電子メール送信者を email-ext プラグインの送信前スクリプトで動的に設定できます。

AbstractBuildAbstractBuild.getCulprits()andのサポートが組み込まれてAbstractBuild.hasParticipant(User user)いますが、リクエスターを取得する方法が見つかりません。クラスへの参照リストにも有用な参照が見つかりません。User

4

1 に答える 1

3

この回答で推奨されてCauseいるように、ビルドの を介してなんとか解決できました。

ビルド リクエスターがビルドの原因で見つかる理由は、考えてみれば完全に理にかなっています。すべてのビルドがユーザーによって直接トリガーされるわけではありません。ユーザーによってトリガーされた場合、ビルドの原因のリストにはCause.UserIdCause、ユーザーの ID と名前を含む が含まれます。

このコードスニペットは私にとってはうまくいきました。原因を介してビルドからユーザー名を抽出し、From ヘッダーと ReplyTo ヘッダーを設定します。email-ext Jenkins プラグインの送信前スクリプトで使用しています。

import javax.mail.internet.InternetAddress

cause = build.getCause(hudson.model.Cause.UserIdCause.class);
username = cause.getUserName()
id = cause.getUserId()
email = new InternetAddress(String.format("%s <%s@example.com>", username, id))

msg.setFrom(email)
msg.setReplyTo(email);
于 2014-08-18T12:59:01.173 に答える