ワークフローのトリガー設定
このページで説明しているトリガーについての説明はすべての Jira 製品に適用されますが、トリガーは開発ツールと密接に連動するように設計されており、Jira Software とともに使用したときに最大の効果を発揮します。
トリガーとは、開発ツール(FishEye/Crucible、Bitbucket、GitHub)の情報と Jira 課題の同期を維持するための強力なツールです。コードのコミット、レビューの完了、またはブランチの作成後に課題のステータスを手動で更新することを開発者に任せる代わりに、開発ツールでこれらのイベントが生じたら、自動的に課題をトランジションするようワークフローにトリガーを設定することができます。たとえば、ブランチが作成されたら課題を「作業前」から「進行中」に自動的にトランジションするようにトリガーを設定することもできます。
このページは、トリガーの使用を開始するのに役立ちます。ワークフローのトリガーを設定する方法と、自動遷移を動作させる方法を示します。トリガーのベストな設定方法と、トリガーのトラブルシューティングに役立ついくつかのガイダンスを提供しています。
はじめる前に
現在、チーム管理対象プロジェクトでワークフロー トリガーを設定できません。このページの説明は、企業管理対象プロジェクトにのみ適用されます。
トリガーの使用を開始する前に、開発ツールを Jira に接続する必要があります。最小構成として、以下のいずれかが必要となります。
- Bitbucket Cloud
- GitHub (アプリを使用)
- Bitbucket Server (すべての 最新バージョン)
- FishEye/Crucible (すべての 最新バージョン)
- GitHub Enterprise 11.10.290 (以上)
これらのツールを Jira に接続する方法の手順については、「開発ツールと連携する」を参照してください。このページには、アトラシアンの開発ツールを接続することで有効化できる他の機能の詳細な説明も含まれます。
ガイド: トリガーのセットアップ
この例では、トリガーを持つ Jira ワークフローを設定します。このセクションを終了すると、トリガーの設定方法と、トリガーを持つ一般的な開発ワークフローがどのように見えるか理解することができます。
はじめに
次のスクリーンショットと表は、以降で構成する内容と同様のワークフローとトリガーを示しています。これらは、ソフトウェア開発のライフサイクルでの Jira と開発ツール間の一般的な連携を反映しています。この例では Jira Software、Bitbucket Server および Fisheye/Crucible (3.5.2) が使用されていますが、他のサポートされている開発ツールを使用して同様に構成することができます。
トランジション | トリガー |
---|---|
作業開始 | ブランチの作成(Bitbucket Server) |
レビュー開始 | プルリクエストの作成 (Bitbucket Server) |
作業再開 | プルリクエストの拒否 (Bitbucket Server) |
完了 | プル リクエストのマージ (Bitbucket Server) |
ステップ 1.ワークフローを作成/編集する
ソフトウェア開発ワークフローを作成する最も簡単な方法は、新しいプロジェクトの作成で関連するプロジェクト タイプを選択することです。これにより、上記で示したものと同一のソフトウェア開発ワークフローを持つ新しいプロジェクトをセットアップします。
既に同様のワークフローがある場合、そこに移動して編集します。
- > [課題] を選択します。
- [ワークフロー] で [ワークフロー] を選択します。
- 編集するワークフローの横にある [編集] をクリックします。
ステップ 2.トランジションにトリガーを追加する
「コミットの作成」トリガーを「開始」トランジションに追加することで始めます。ワークフローを編集(表示ではなく)していることを確認します。
- ダイアグラム モードで、ワークフローで "作業開始" トランジションを選択します ("To Do" から "進行中" への線)。パネルにトランジションの詳細が表示されます。
- パネルの [トリガー] をクリックします。[トランジション: 作業開始] 画面に [トリガー] タブが表示されます。
- [トリガーの追加] をクリックし、表示されるダイアログで [Commit created] を選択します。診断ウィンドウが表示されます。Jira が接続されているすべての開発ツールにトリガーが追加されることがわかります。
- [トリガーの追加] をクリックし、トリガーを追加します。このトリガーが [トリガー] タブの一番下にある一覧に表示されるようになります。[詳細を表示する] をクリックすると、トリガーが動作しているかどうかを確認できます。
これで完了です。ワークフローの下書きを公開することを忘れないようにしてください。
ステップ 3.トリガーをテストする
これで「開始」トランジションに「コミットの作成」トリガーを追加したので、コミットしてテストしてみます。
- Jira プロジェクトで課題を作成します。このプロジェクトでは、先ほど編集したワークフローを使用する必要があります。新しい課題のステータスは "To Do" になっているはずです。次のステップで必要になるので、課題キーを記録しておきます。
- Bitbucket リポジトリにコードをコミットします。任意のコードをコミットできますが、コミット メッセージに課題キーを含める必要があります。
この例では、課題のキーはTIS-1
であり、スクリーンショットに表示されているコミット メッセージでこれを参照しています。 - Jira で再度課題を確認します。ステータスが "To Do" から "進行中" に変更されました。[履歴] タブまたは [アクティビティ] タブをクリックすると、課題のステータスを変更した自動トランジションを確認できます。
ステップ 4.トリガーの残りを追加する
これでトリガーを追加し、テストすることができました。同様の手順で上記の一覧の残りのトリガーを追加します。
おめでとうございます! これで、トリガーを含むワークフローをセットアップできました。
トリガーの設定または動作に問題がある場合、以下の「トラブルシューティング」セクションを確認してください。
トリガーの仕組みについて詳細を知りたい場合は、以下の「トリガーの理解」セクションを参照してください。
トリガーの理解
以下のトピックでは、トリガーの仕組みについての詳細を説明しているため、これらをより効率的に使用することができます。
トリガー イベント
特定の開発ツールを Jira と連携するか、アプリを使用することで、イベント (例: コミット作成) をトリガーとして使用できるようになります。以下の表は、各開発ツールで有効になるイベントの一覧です。
開発ツール | Bitbucket、GitHub Enterprise、GitHub (アプリ) | Crucible | Fisheye |
---|---|---|---|
イベント |
|
|
|
トリガーとグローバル トランジション
トリガーによる課題の動作への影響を正確に把握している場合を除き、グローバル トランジションにはトリガーを設定しないことをおすすめします。
グローバル トランジションは、ワークフローの任意のステータスを特定のステータスに遷移できます。これはワークフロー ビューア/エディタで、グローバル トランジションの対象となるステータスを指すすべての黒いひし型で表されます。グローバル トランジションの詳細については、「ワークフローの詳細設定」を参照してください。
グローバル トランジションにトリガーを設定すると、グローバル トランジションの対象のステータスに予期せず遷移するという問題がよく発生するようになります。例えば、「進行中」ステータスに遷移するグローバル トランジションに「コミットの作成」トリガーを設定する場合を考えます。多くの段階で、課題のライフサイクル(例:初期コード作成、レビュー後のコード変更など)中にコードをコミットすることがあります。これにより、「レビュー中」や「完了」などのステータスから「進行中」に不正に遷移するという問題を引き起こす可能性があります。
ワークフローにグローバル トランジションを使用する場合、複数のトランジションが 1 つのステータスに遷移する場合があります。これはユーザが課題で複数のワークフロー オプション (例: 「開始」と「進行中」) を持つことを意味しています。このオプションを非表示にするには、「ユーザからトランジションを非表示にする」条件を、関連するトランジションに追加します。
コミット、ブランチ、プル リクエスト、レビューで Jira 課題を参照する
以下の表では、コミット、ブランチ、プル リクエスト、レビューで Jira 課題を、これらのイベントが課題への遷移を開始するように、照する方法を説明しています(トランジションにトリガーをセットアップする方法を提供しています)。
イベント | 手順 |
---|---|
コミットの作成 | コミットメッセージに課題キーを含めます。 たとえば、"TIS-1 最初のコミット" のようなコミットメッセージは、TIS-1 課題を「作業前」から「進行中」に自動的に移行します 。 |
ブランチの作成 | ブランチを作成する際に、ブランチ名に課題キーを含めます。 たとえば、ブランチに "TIS-2 feature" と名前をつけると、 TIS-2 課題は「作業前」から「進行中」に自動的に移行します 。 |
マージプルリクエストの作成/再オープン/拒否 | プル リクエストに(コミット メッセージで)課題を参照するコミットを含めます。 たとえば、タイトルが "TIS-3 " のプルリクエストを作成すると、"TIS-3" 課題は「進行中」から「レビュー」に自動的にトランジションします 。プルリクエストを再オープン、却下、またはマージすると、それに応じて "TIS-3" 課題はトランジションします。 |
レビューの開始/拒否/廃棄/クローズ | レビューを作成するときに、課題キーをレビュータイトルに含めます。 たとえば、レビューに "TIS- 4New story" という名前をつけて、レビューを開始すると、TIS-4 課題は「進行中」から「レビュー」に自動的に遷移します。レビューを拒否、放棄、またはクローズすると、それに応じて "TIS-4" 課題は遷移します。 |
開発ツールから Jira へユーザをマッピングする
以下のプロセスでは、開発ツールのユーザをワークフロー トリガー用に、Jira ユーザにマッピングする方法を説明しています。これはすべてのイベントに適用されますが、各開発ツールではマッピングに異なるメール アドレスとユーザ名を使用します(以下のプロセスの説明に続く箇条書きを参照してください)。
- プロセス: 開発ツールのイベントを初期化するユーザは、まずメールアドレスでマッチングし、その後ユーザ名でマッチングして Jira にマッピングされます。つまり、
- メールアドレスが一致する Jira ユーザが1人 — Jira ユーザとして課題を遷移させます。
- メールアドレスが一致する Jira ユーザがいない — 匿名ユーザとして課題を遷移させます。
- メールアドレスが一致する Jira ユーザが複数 — ユーザのグループで一致するユーザ名を検索します。ユーザ名が一致するユーザがいる場合、Jira ユーザとして課題を遷移させます。ユーザ名が一致するユーザがいない場合、匿名ユーザとして課題を遷移させます。
ユーザ マッピング用のメールアドレスとユーザ名
イベントのハンドリングとイベントの制限
多くの場合、開発ツールから自動課題遷移へのイベントの処理はシームレスにする必要があります。しかし、時折、イベントのがハンドリングされたりイベントが制限されたりすることで、課題の遷移が遅延したり、課題が全く遷移しなかったりする場合があります。
イベントのハンドリング — イベントは、開発ツールが Jira に DVCS コネクタ経由で接続しているかアプリケーション リンクで接続しているかによって異なるようにハンドリングされます。これは、Jira が利用できない場合にイベントが遅延または消失するかどうかに影響する場合があります。
- イベントの制限 — Jira が多数のイベントで過負荷にならないよう、すべての開発ツールにイベント制限が設定されています。イベントの制限を超えた後に送信されたイベントは失われます。各開発ツールのイベント制限については、以降の一覧をご確認ください。
トリガーと他のワークフロー操作/制約との関連
トランジションが自動で開始される場合、トランジションに設定されているすべての条件、バリデータ、権限が無視されます。
ただし、事後操作はそのまま実行されます。事後操作がユーザを必要とする場合、そのトランジションは匿名ユーザには実行されないことに注意する必要があります(上記の「ユーザ マッピング」セクションを参照してください)。
トラブルシューティング
トリガーの設定や動作に問題がある場合、以下の手順に従い問題をトラブルシューティングしてください。
1. トリガー診断を使用する
トリガーのトラブルシューティングの最初の手順は JIRA のトリガー診断を確認することです。診断は開発ツールとの接続に問題がある場合や、課題が期待通りに自動的に遷移しない場合に、問題を教えてくれます。
- Jira 管理コンソール > 課題 > ワークフロー > ワークフローの検索に移動し、表示(操作列)をクリックします。
- テキストモード(図表モードではなく)で、目的のトランジションをクリックします。
- トランジション画面(トリガータブが表示されます)で、目的のトリガの詳細を表示をクリックし、診断情報を表示します。
- 「トリガー ソース」セクションには Jira と開発ツール間の統合に関する問題が一覧表示されます。たとえば、設定された認証のタイプが正しいかどうか、などが表示されます。
- 「トランジション失敗」セクションにはトリガーが発火したにも関わらず自動遷移が失敗した課題が一覧表示されます。たとえば、匿名ユーザがトランジションにマッピングされているがトランジションが非匿名ユーザを要求する事後操作を持っているものなどが表示されます。
2. 一般的な問題を確認する
トリガー診断からの情報で問題が解決できない場合、以下の一般的な問題のリストの考えられる原因と解決方法を確認します。
トリガーをトランジションに追加できない:
課題が遷移しない:
課題のトランジションが期待したように実行されません。
トランジションについて記録された情報が正しくありません:
3. ヘルプを活用する
If you still cannot resolve your problem, there are a number of other help resources available, including our applications forums, Atlassian community, and our support team.