JIRA
SwarmのJIRA統合機能により、コードレビューやコミット済み変更をJIRAの問題に関連付けることができます。これにより、関連する問題や、コードレビューとコミット済み変更のステータスをJIRAで簡単に確認できるようになります。
JIRAの問題にコードレビューを関連付けるには、「SW-1234
」などのように、JIRAの問題IDをレビューの説明に含めます。 Swarmは、その問題にアクセスし、Swarmのコードレビューに戻るためのリンクをそのJIRAの問題内に作成します。 複数のJIRAの問題をチェンジリストの記述に含めることができます。
Swarmは、コードレビューの進行状況に合わせて、関連するJIRAの各問題のステータスを更新します。
Swarmはワーカーを使用して、1つのワーカープロセスにつき、JIRAのプロジェクトIDを1回フェッチします。 詳細については、「ワーカーの構成」を参照してください。 新規のJIRAプロジェクトは、プロジェクトIDが更新されるまでJIRAに自動的にリンクしません。 デフォルトでは、プロジェクトIDは10分に1度更新されます。
JIRAの問題内でPerforceジョブへのリンクを追加するようにSwarmを設定することもできます。 新しいJIRAまたはジョブの作成や更新を行うと、Perforceジョブのリンクが作成されます。 これにより、JIRAの問題の[問題のリンク]セクションのリンクから、Perforceジョブに直接アクセスできるようになります。
JIRAモジュールとPerforceジョブのリンクは、デフォルトで無効になっています。
これらの機能の設定方法について詳しくは、JIRAモジュールを有効にするとJIRAの問題でPerforceジョブのリンクを有効にするを参照してください。
JIRAの統合とPerforceジョブリンクのワークフローについては、JIRAの統合とPerforceジョブリンクのワークフローを参照してください。
JIRAの統合とJIRAのジョブリンクの要件
- Swarm、JIRA、P4Dに対して、Perforce Defect Tracking Gateway (P4DTG)が構成されている必要があります。詳しくは、Helix Defect Tracking Gatewayガイドで、Helix Defect Tracking Gatewayのインストールと構成のトピックを参照してください。
- Swarmのワーカーが稼働している必要があります。詳しくは、ワーカーのステータスを参照してください。
- JIRAモジュールが有効になっている必要があります。詳しくは、JIRAモジュールを有効にするを参照してください。
- PerforceジョブのリンクをJIRAの問題に追加するには、ジョブのリンクを有効にしてJIRAの
job_field
を設定する必要があります。詳しくは、JIRAの問題でPerforceジョブのリンクを有効にするを参照してください。
JIRAモジュールを有効にする
有効になると、JIRAモジュールは、変更の記述やジョブの記述、コメント、レビューで参照された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
'user' => '', // the username required for JIRA API access
'password' => '', // the password required for JIRA API access
'job_field' => '', // optional, if P4DTG is replicating JIRA issue IDs
// to a job field, list that field here
),
JIRAのWebインタフェースでHTTPSが使用されている場合は、Swarmが正常に接続できるように、HTTPクライアントのオプションを設定しなければならないことがあります。
JIRAの問題でPerforceジョブのリンクを有効にする
Perforceジョブを作成すると、そのジョブのリンクが、関連するJIRAの問題に追加されます。 説明やステータスなど、問題に関する情報が変更されたことがP4DTGの複製で検出されると、関連するJIRAの問題にジョブのリンクが追加されます(まだ追加されていない場合)。
関連するJIRAの問題が存在しないために、SwarmでPerforceジョブのリンクをその問題に追加できない場合は、Swarmによってエラーログが記録されます。 それ以降、Swarmは、そのJIRAの問題にジョブリンクを追加しようとはしません。
Perforceジョブが更新され、DTG_DTISSUE
フィールドの値が変更されると、新しいJIRAの問題にジョブリンクが追加されます。 Perforceジョブのリンクが元のJIRAの問題から削除されることはありません。
JIRAの問題におけるPerforceジョブのリンクの要件:
- JIRAモジュールが有効になっている必要があります
- JIRAの
job_field
を設定する必要があります - P4DTGを設定する必要があります。
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
'user' => '', // the username required for JIRA API access
'password' => '', // the password required for JIRA API access
'job_field' => '', // optional, 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' => '', // subsection name for Perforce job links
// defaults to empty, Perforce job links added to the "links to" subsection
),
- link_to_jobs:
- falseを指定すると、JIRA内でPerforceジョブのリンクが無効になります。 デフォルトの設定は
false
です。 - trueを指定すると、JIRA内でPerforceジョブのリンクが有効になります。
- delay_job_links: 遅延時間を秒単位で指定します。 新しいJIRAやジョブの作成または更新を行ってから、SwarmでジョブのリンクをJIRAの問題に追加するまでの遅延時間を設定します。 この構成可能変数により、JIRAとHelixサーバが競合状態になるのを防ぐことができます。
delay_job_links
のデフォルト値は60秒です。競合が発生する場合は、この値を大きくしてください。 - relationship:
- '' (空白)を値として指定すると、Perforceのジョブリンクが、JIRAの問題の[問題のリンク]セクションの[リンク先]サブセクションに追加されます。 これがデフォルト値です。
- <JobLinksSubsectionName>と指定すると、JIRAの問題の[問題のリンク]セクション内に新しいサブセクションが作成されます。 このサブセクションに、Perforceのジョブリンクが追加されます。
Perforceの既存のジョブリンクは、relationship構成変数によって定義されたサブセクションには移動されません。 ただし、問題が変更されていることがP4DTGによって検出された場合、新しいサブセクションにジョブリンクが追加されます。 このジョブリンクが元の場所から削除されることはありません。
JIRAの統合とPerforceジョブリンクのワークフロー
このセクションでは、P4Vで新しいSwarmレビューを要求した場合のJIRA統合ワークフローとJIRAの問題のジョブリンクについて説明します。
他のクライアントの場合、Perforceジョブの作成プロセスとレビューの作成プロセスは異なりますが、SwarmワーカーとPerforce Defect Tracking Gateway (P4DTG)ワークフローは同じです。
- JIRAシステムで、新しいJIRAの問題を作成します。
- 新しいJIRAの問題がP4DTGによって検出され、その問題に対して新しいPerforceジョブが作成されます。
- P4Vで、新しいPerforceジョブを作業中チェンジリストに追加します。詳しくは、P4Vユーザガイドの「作業中チェンジリストにジョブを追加する」を参照してください。
- P4Vで、作業中チェンジリストに対して新しいSwarmレビューを要求します。詳しくは、P4Vユーザガイドの「レビューを要求する」を参照してください。
- P4Vにより、レビュー要求がSwarmのワーカーキューに渡されます。
- 使用可能な2番目のSwarmワーカーによってレビュー要求が処理され、新しいレビューが作成されます。
- Swarmにより、JIRAの構成が確認されます。 Perforceジョブ内に
job_field
が存在している場合、Swarmにより、JIRAの問題の[問題のリンク]セクションに、新しいPerforceジョブへのリンクが追加されます。
上記の手順が完了しているかどうかを確認し、リンクを表示するには、以下の手順を実行します。
- 新しいSwarmレビューを開きます。関連するPerforceジョブが、レビューページのレビューの説明の下に表示されます。
- Perforceジョブのリンクをクリックして、そのジョブを開きます。
- Swarmレビューのリンクが、ジョブページのジョブの説明の下に表示されます。
- Perforceジョブページの[詳細]タブをクリックして、[DTG_DTISSUE]フィールドを表示します。
- [DTG_DTISSUE]フィールド内のJIRAリンクをクリックして、JIRAの問題を表示します。
- SwarmレビューとPerforceジョブのリンクが、JIRAの問題ページの[問題のリンク]セクションに表示されます。