...
DTP から静的解析違反を取り出す
このフローは、DTP の /staticAnalysisViolation
REST API によって静的解析データを取得します。詳細については「Using DTP REST APIs」を参照してください。
Get violations for Build ノードをダブルクリックします。このノードは DTP REST API ノードであり、DTP REST API にリクエストを送るための特別な種類のノードです (利用できるノードの一覧については「Working with Nodes」を参照)。このノードのエンドポイントは、/v1.2/staticAnalysisViolations?buildId={{payload}}
を指します。このノードは、フローを設定 したときに指定したビルド IDに基づいてデータを取得します。また、msg.staticAnalysis
に静的解析違反ペイロードを返します。
...
5 行目は、staticAnalysisViolations
配列をそれぞれ 100 件の違反を持つ複数の配列に分割します。この分割によって、DTP REST API にデータを送り返すときにペイロードの量が安全なサイズまで削減されます。膨大なペイロードを 1 回の呼び出しで処理すると、Extension Designer が予想外のエラーを起こすことがあります (「ノードの使用Working with Nodes#dtp-rest-api-node」を参照)。
7 行目から 16 行目は、次の Prioritization API の呼び出しに備えて新しい msg 配列を作成します。この API は JSON オブジェクトを期待します。各サンプルは Violations メタデータのフィールドを異なる方法で設定します。許容されるペイロードの詳細については API のドキュメントを参照してください。
この例では、"担当者" は johndoe に設定されます。このフローを処理すると、API で呼び出されるすべての違反が johndoe に割り当てられます。必要に応じて、独自のロジックを追加して別の担当者を追加できます。
...
11 行目から 15 行目は、違反に対するアクションを定義する JavaScript です。この例では、violationAction
が Fix
に設定されます。
アクションは DTP で定義します。/v1.4/metadata/violationAction
API を検索して、violationAction を検索して、violationAction
フィールドで利用できる値を確認できます。レスポンスで指定された、利用できる任意の値を使用できます。
...
このメタデータはカスタマイズできます。また、DTP Server ごとにアクションが異なる場合もあります。詳細については /metadata/violationAction API ドキュメントを参照してください。
例 4 - リスク/影響の設定
この例は「Example 例 2 - Set Priority優先度の設定」と「Example 例 3 - Set Actionアクションの設定」に似ています。この例では、すべての違反が "Extreme" に分類されます。Find and set the classificationId function ノードをクリックて JavaScript を確認してください。
...
Group violations and set relevant priorityId function ノードをクリックて JavaScript を確認してください。msg 配列から配列を返すのではなく、node.send()
メソッドを使って次のノードに非同期的に msg オブジェクトをプッシュします (メッセージを非同期に送る方法の詳細については https://nodered.org/docs/writing-functions#sending-messages-asynchronously を参照してください)。
/v1.4/metadata
DTP REST API を検索して、DTP で利用できるメタデータの値を確認できます。