このセクションの内容:
このワークフロー アーティファクトは、Atlassian JIRA インポーターを使って、テスト/解析時に発見された JIRA のバグあるいは問題タスク (たとえば静的解析の違反または単体テストの失敗) を作成および管理する方法を示します。
新しい問題がレポートされたときに、インポーターは JIRA バグ トラッキング システムで課題またはタスクを作成し、ユーザーを割り当てることができます。
このドキュメントでは課題とタスクを異なるエンティティとして言及します。
- 課題は、1 つのレポートされた問題を追跡します。ステータスの変化に伴い、関連する結果を更新できます。
- タスクは、関連する問題グループのための 1 つのエントリです。各実行において担当者につき 1 つのタスクが作成されます。関連する問題が変化する際にタスクは更新されません。問題が再発した場合、新しいタスクが作成されます。
要件
- REST クライアント API が利用可能な Atlassian JIRA 6.1.x 以降
- Extension Designer 5.4.0 および DTP 5.4.0
- プロジェクトの課題を作成および変更できる権限を持った JIRA ユーザー アカウントへのアクセス (通常は管理者)。認証情報については JIRA 管理者に問い合わせてください。
アップグレード
Static Analysis Violation Reporter for JIRA を推進する API がバージョン 2.2 で更新されました。このアーティファクトの以前のバージョンを無効化し、新しいワークフローとしてこのバージョンをインストールします。
追加されるコンポーネント
JIRA Importer アーティファクトと共にインストールされる新規ノードはありません。追加されるファイルは、ドキュメント、サンプル フロー、サンプル プロファイルだけです。
モデル構成
JIRA Importer フローはデータ モデルを使用します。データ モデルは、目的に合うように JIRA Importer をカスタマイズするために使用できます。アーティファクトをインストールおよびデプロイするときに、モデルおよびサンプル プロファイルが自動的に追加されます。一般的なモデルの構成方法について モデル プロファイルの使用 も参照してください。
プロファイル属性
[モデル プロファイル] タブで、モデルをクリックして属性を参照します。属性は、JIRA への課題の追加方法を定義します。
[編集] をクリックしてモデルを構成します。以下の属性があります。
Model name | モデルには JIRA という名前が付けられているはずです。これがモデルのデフォルト名です。 |
---|---|
Profile name | プロファイル名は、フローの構成時に Profile Search ノードで指定した名前に一致しなければなりません。「Flow Configuration」を参照してください。 |
DTP Project | プロファイルが属する DTP プロジェクト。特定の DTP プロジェクトとフローを関連付けたくない場合、Model Settings ノードから検索パラメーターを削除できます。「Flow Configuration」を参照してください。 |
JIRA Project Key | JIRA プロジェクト キー (Sample Project に SP を使用)。通常、JIRA プロジェクト キーは JIRA ID/課題番号と共に定義されます。たとえば、プロジェクト キーが Sample Project で JIRA 課題番号が 1234 の場合、SP-1234 と入力します。 |
JIRA Component | 課題の JIRA コンポーネントの名前。 |
Issue Type | Bug および Task が現在サポートされています。 |
Closed Status | 対応する違反が修正されたとき、フローは Bug をこのステータスに遷移させようとします。 |
Default Priority | すべての新規 Task、およびプロファイル モデルに一致しない違反がある新規 Bug に設定される優先度。 |
Issue Type や Status といった定義済みの値はすべて大文字と小文字を区別します。大文字と小文字を正しく指定するよう注意してください。
プロファイル データ
プロファイル データは DTP 静的解析違反の重要度を JIRA の重要度にマッピングします。サンプル プロファイル データは DTP のデフォルト プロジェクト用に提供されています。このプロファイルはデフォルトの重要度およびプロジェクトの優先度データをインポートします。JIRA と関連付けたい DTP プロジェクトのデータを提供する必要があります。
すべての JIRA プロジェクトに対して 1 つのモデルを構成する
サンプル フローは DTP プロジェクトごとに 1 つのモデルを設定することを期待します。すべての DTP プロジェクトで使用できる 1 つのモデルを構成して 1 つの JIRA プロジェクトにレポートしたい場合、空の DTP プロジェクトを持つモデルを構成し、DTP Project ノードの Find JIRA Profile から DTP Project パラメーターを削除します。
そうすると、すべてのプロジェクトのすべての必要なオプションを持った 1 つの JIRA プロジェクトが返却されます。
フロー構成
サーバーと認証情報
フローをインポートした後、有効な認証情報で正しい JIRA サーバーを指すようにすべての HTTP Request ノードを変更する必要があります。プロジェクトの課題を追加/変更する権限を持った JIRA ユーザーを使ってすべての HTTP Request ノードを適切に設定してください。ユーザーは未設定のフローをデプロイできます。その場合、Extension Designer は設定が必要な HTTP Request ノードの一覧を表示します。
HTTP Request ノードを設定するには、以下の操作を行います。
- ノードをダブルクリックし、Configuration フィールドを編集します。
設定パネルが表示されたら、JIRA サーバーと認証情報を指定し、[追加] をクリックします。
Extension Designer 用の専用の JIRA ユーザーを作成する
ユーザーが複数のマシンからリクエストを行っていることを検出した場合、JIRA はそのユーザーをロックします。JIRA によるロックを回避するために、Extension Designer のための専用ユーザーを作成することを推奨します。
- [Done] をクリックし、他の HTTP Request ノードについて操作を繰り返します。
重要度で違反をフィルタリングする
特定の違反重要度を処理するように Severity Filter ノードを設定できます。
Rules フィールドで、違反のフィルタリング パターンを設定します。必要に応じて [+add] をクリックしてさらにルールを設定します。
新しい JIRA フィールドの設定
JIRA のサマリーまたは説明を設定できるだけでなく、JIRA の課題を作成するときにフィールドを追加できます。それには、[Create JIRA New Issue] セクションで Process New Static Analysis Results ノードを設定します。
ノードをダブルクリックし、ret
オブジェクトを変更します。
JIRA Importer フローは、JIRA REST API を使って JIRA バグ トラッキング システムの課題を作成および変更します。このオブジェクトの値は、JIRA POST /rest/api/2/issue エンドポイントの期待されるペイロードに対応します。たとえば、新規作成した JIRA 課題のラベルとして “staticAnalysis” を追加したい場合、ret
オブジェクトに以下を追加します。
今後作成される JIRA 課題にはラベル “staticAnalysis” が付きます。
JIRA バグで課題コメントを設定する
JIRA バグを修正するときにどのコメントを追加するかを変更するには、Create Comment ノードの msg オブジェクトを変更します。
違反が修正されると、対応する JIRA バグに適切なメッセージが追加されます。