JIRA

SwarmのJIRA反映機能により、コードレビューやコミット済み変更をJIRAの問題に関連付けることができます。これにより、関連する問題や、コードレビューとコミット済み変更のステータスをJIRAで簡単に確認できるようになります。コードレビューをJIRAの問題に関連付けるには、「SW-1234」などのように、JIRAの問題IDをレビューの説明に含めます。Swarmは、その問題にアクセスし、Swarmのコードレビューに戻るためのリンクをその問題内に作成します。複数のJIRAの問題をチェンジリストの記述に含めることができます。Swarmは、コードレビューの進行状況に合わせて、関連するJIRAの各問題のステータスを更新します。

基本的なJIRA反映機能の設定方法については、「JIRAの反映」を参照してください。

JIRAの問題にPerforceジョブを反映するようにHelix Defect Tracking Gateway (P4DTG)が設定されている場合、JIRAの問題内のPerforceジョブへのリンクを追加するようにSwarmを設定することができます。JIRAやジョブの作成または更新を行うと、Perforceジョブのリンクが作成されます。これにより、JIRAの問題の[問題のリンク]セクションのリンクから、Perforceジョブに直接アクセスできるようになります。

JIRAの反映機能とPerforceジョブリンクの設定方法については、「JIRA反映機能とPerforceジョブリンク」を参照してください。

JIRAの反映

基本的なJIRA反映機能により、以下の処理が実行されます。

  • Swarm内での処理: チェンジリストの説明、レビューの説明、コメントで参照されるJIRAの問題のハイパーリンクが作成されます。例えば、SW-1234というJIRAの問題がテキスト内で見つかった場合、そのテキストがSwarmのJIRAの問題にリンクされます。

  • JIRAの問題の[問題のリンク]セクションでの処理: 関連するSwarmのチェンジリスト(コミット)ページとレビューページへのハイパーリンクが作成されます。

注意

Swarmはワーカーを使用して、1つのワーカープロセスにつき、JIRAのプロジェクトIDを1回フェッチします。詳細については、「ワーカーの構成」を参照してください。プロジェクトIDが更新されるまで、新しいJIRAプロジェクトがJIRAに自動的にリンクされることはありません。デフォルトでは、プロジェクトIDは10分に1度更新されます。

基本的なJIRA反映機能の前提条件

JIRAモジュールを有効にする

デフォルトでは、JIRAモジュールは有効になっていません。JIRAモジュールを有効にするには、以下の構成ブロックをSWARM_ROOT/data/config.phpファイルに追加します。

<?php
// this block should be a peer of 'p4' 'jira' => array( 'host' => '', // URL for your installed Jira web interface 'api_host' => '', // URL for Jira API access, 'host' is used for Jira API access if 'api_host' is not set 'user' => '', // the username required for Jira API access 'password' => '', // the password required for Jira API access 'relationship' => '', // Jira subsection name links are added to defaults to empty, links added to the "links to" subsection ),
注意

JIRAのWebインタフェースでHTTPSが使用されている場合は、Swarmを正常に接続できるように、HTTPクライアントのオプションを設定しなければならないことがあります。

  • host: JIRAのWebインタフェースのURL。

  • api_host (任意指定): JIRA API にアクセスするためのURL。api_hostが設定されていない場合は、JIRA APIへのアクセスでhost URLが使用されます。

  • user: JIRA APIにアクセスするためのユーザ名。

  • password: JIRA APIにアクセスするためのパスワード。

  • relationship: JIRAの[問題のリンク]セクションのサブセクションに追加されるSwarmコミットリンク、Swarmレビューリンク、Perforceジョブリンクを設定します。Perforceジョブリンクの場合は、P4DTGが必要になります。詳しくは、「JIRA反映機能とPerforceジョブリンク」を参照してください。
    • '' (空白): JIRAの問題の[問題のリンク]セクションの[リンク先]サブセクションにリンクが追加されます。これがデフォルト値です。
    • <JobLinksSubsectionName>: JIRAの問題の[問題のリンク]セクション内に新しいサブセクションが作成されます。リンクは、このサブセクションに追加されます。
  • 注意

    既存のリンクは、relationship構成変数によって定義されたサブセクションには移動されません。ただし、リンクが更新された場合や新しいリンクが追加された場合は、新しいサブセクションにリンクが追加されます。このリンクが元の場所から削除されることはありません。

JIRA SSLクライアント設定

(missing or bad snippet)

JIRA反映機能とPerforceジョブリンク

JIRA反映機能とPerforceジョブリンクにより、以下の処理が実行されます。

  • Swarm内での処理:

    • チェンジリストの説明、レビューの説明、コメントで参照されるJIRAの問題のハイパーリンクが作成されます。例えば、SW-1234というJIRAの問題がテキスト内で見つかった場合、そのテキストがSwarmのJIRAの問題にリンクされます。

    • Swarmジョブページ上のJIRAの問題に関連するハイパーリンクが作成されます。

  • JIRAの問題の[問題のリンク]セクションでの処理:

    • 関連するSwarmのチェンジリスト(コミット)ページとレビューページへのハイパーリンクが作成されます。

    • Perforceジョブを作成すると、Swarmジョブページのハイパーリンクが作成されます。

    • レビュー対象のジョブを追加すると、Swarmレビューページのハイパーリンクが作成されます。

    • ジョブに対する修正コマンド(p4 fix)の場合、job_fieldを設定すると、Swarmチェンジリスト(コミット)ページのハイパーリンクが作成されます。

    • 問題に対する変更がP4DTGの複製によって検出されると、関連するJIRAの問題のジョブリンクが作成されます(まだ作成されていない場合)。

JIRA反映機能とジョブリンクのワークフローについては、「JIRA反映機能とPerforceジョブリンクのワークフロー」を参照してください。

JIRA反映機能とPerforceジョブリンクの前提条件

  • Swarm、JIRA、P4Dに対して、Helix Defect Tracking Gateway (P4DTG)が設定されている必要があります。詳しくは、Helix Defect Tracking Gatewayガイドを参照してください。
  • Swarmのワーカーが稼働している必要があります。詳細については、「ワーカーのステータス」を参照してください。
  • JIRAモジュールが有効になっている必要があります。詳細については、「JIRAモジュールを有効にする」を参照してください。
  • PerforceジョブリンクをJIRAの問題に追加するには、ジョブリンクを有効にしてJIRAのjob_fieldを設定する必要があります。詳しくは、「JIRAモジュールを有効にする」を参照してください。

JIRAモジュールを有効にする

重要

関連するJIRAの問題が存在しないために、SwarmPerforceジョブのリンクをその問題に追加できない場合は、Swarmによってエラーログが記録されます。それ以降、SwarmにっよてそのJIRAの問題にジョブリンクが追加されることはありません。

注意

Perforceジョブが更新され、DTG_DTISSUEフィールドの値が変更されると、新しいJIRAの問題にジョブリンクが追加されます。Perforceジョブリンクが元のJIRAの問題から削除されることはありません。

デフォルトでは、JIRAモジュールは有効になっていません。JIRAの問題でPerforceジョブのリンクを有効にするには、以下の構成ブロックをSWARM_ROOT/data/config.phpファイルに追加します。

<?php
    // this block should be a peer of 'p4'
    'jira' => array(
        'host'      => '', // URL for your installed Jira web interface
        'api_host'  => '', // URL for Jira API access, 'host' is used for Jira API access if 'api_host' is not set
        'user'      => '', // the username required for Jira API access
        'password'  => '', // the password required for Jira API access
        'job_field' => '', // if P4DTG is replicating Jira issue IDs to a job field, list that field here
        'link_to_jobs'    => false, // set to true to enable Perforce job links in Jira, P4DTG and job_field required  
        'delay_job_links' => 60, // delay in seconds, defaults to 60 seconds 
        'relationship'    => '', // Jira subsection name links are added to defaults to empty, links added to the "links to" subsection 
    ),
  • host: JIRAのWebインタフェースのURL。

  • api_host (任意指定): JIRA API にアクセスするためのURL。api_hostが設定されていない場合は、JIRA APIへのアクセスでhost URLが使用されます。

  • user: JIRA APIにアクセスするためのユーザ名。

  • password: JIRA APIにアクセスするためのパスワード。

  • job_field: P4DTGによってJIRAの問題IDがジョブフィールドに複製される場合は、そのジョブフィールドが表示されます。

  • link_to_jobs:
    • falseを指定すると、JIRA内でPerforceジョブリンクが無効になります。デフォルトの設定はfalseです。
    • trueを指定すると、JIRA内でPerforceジョブリンクが有効になります。
  • delay_job_links: 遅延時間を秒単位で指定します。新しいJIRAやジョブの作成または更新を行ってから、SwarmでジョブのリンクをJIRAの問題に追加するまでの遅延時間を設定します。この構成可能変数により、JIRAとHelixサーバが競合状態になるのを防ぐことができます。delay_job_linksのデフォルト値は60秒です。競合が発生する場合は、この値を大きくしてください。
  • relationship: JIRAの[問題のリンク]セクションのサブセクションに追加されるSwarmコミットリンク、Swarmレビューリンク、Perforceジョブリンクを設定します。Perforceジョブリンクの場合は、P4DTGが必要になります。
    • '' (空白): JIRAの問題の[問題のリンク]セクションの[リンク先]サブセクションにリンクが追加されます。これがデフォルト値です。
    • <JobLinksSubsectionName>: JIRAの問題の[問題のリンク]セクション内に新しいサブセクションが作成されます。リンクは、このサブセクションに追加されます。
  • 注意

    Perforceの既存のジョブリンクは、relationship構成変数によって定義されたサブセクションには移動されません。ただし、問題が変更されていることがP4DTGによって検出された場合、新しいサブセクションにジョブリンクが追加されます。このジョブリンクが元の場所から削除されることはありません。

JIRA SSLクライアント設定

(missing or bad snippet)

JIRA反映機能とPerforceジョブリンクのワークフロー

このセクションでは、P4Vで新しいSwarmレビューを要求した場合のJIRA反映ワークフローとJIRAの問題のジョブリンクについて説明します。

ヒント

他のクライアントの場合、Perforceジョブの作成プロセスとレビューの作成プロセスは異なりますが、SwarmワーカーとHelix Defect Tracking Gateway (P4DTG)ワークフローは同じです。

  1. JIRAシステムで、新しいJIRAの問題を作成します。
  2. 新しいJIRAの問題がP4DTGによって検出され、その問題に対して新しいPerforceジョブが作成されます。
  3. P4Vで、新しいPerforceジョブを作業中チェンジリストに追加します。詳細については、『P4Vユーザガイド』の「作業中チェンジリストにジョブを追加する」を参照してください。
  4. P4Vで、作業中チェンジリストに対して新しいSwarmレビューを要求します。詳細については、『P4Vユーザガイド』の「レビューを要求する」を参照してください。
  5. P4Vにより、レビュー要求がSwarmのワーカーキューに渡されます。
  6. 使用可能な2番目のSwarmワーカーによってレビュー要求が処理され、新しいレビューが作成されます。
  7. Swarmにより、JIRAの構成が確認されます。Perforceジョブ内にjob_fieldが存在している場合、Swarmにより、JIRAの問題の[問題のリンク]セクションに、新しいPerforceジョブへのリンクが追加されます。

上記の手順が完了しているかどうかを確認してリンクを表示するには、以下の手順を実行します。

  1. 新しいSwarmレビューを開きます。関連するPerforceジョブが、レビューページのレビューの説明の下に表示されます。
  2. Perforceジョブのリンクをクリックして、そのジョブを開きます。
  3. Swarmレビューのリンクが、ジョブページのジョブの説明の下に表示されます。
  4. Perforceジョブページの[詳細]タブをクリックして、[DTG_DTISSUE]フィールドを表示します。
  5. [DTG_DTISSUE]フィールド内のJIRAリンクをクリックして、JIRAの問題を表示します。
  6. SwarmレビューとPerforceジョブのリンクが、JIRAの問題ページの[問題のリンク]セクションに表示されます。