スマート コミットで課題を処理する

Bitbucket または GitHub でプロジェクトのリポジトリを管理する場合、または FishEye を使用してリポジトリの参照や検索を行う場合、コミット メッセージで「スマート コミット」と呼ばれる特別なコマンドを使用して Jira Software の課題を処理できます。

以下のことが可能です。

  • 課題にコメントする

  • 課題の時間管理情報を記録する

  • Jira Software プロジェクトのワークフローに定義されているいずれかのステータスに課題を移行します。

ソフトウェアのレビューに Crucible を使用する場合、ほかにもアクションを利用できます。Crucible ドキュメントの「Smart Commit を使用する」を参照してください。

スマート コミット コマンドは 1 行に収める必要があります (コマンドでキャリッジ リターンを使用できません) が、1 つの行に複数のコマンドを追加できます。以下の例を参照してください。

スマートコミット コマンド

スマート コミット メッセージの基本的な構文は次のとおりです。

<無視されるテキスト> <ISSUE_KEY> <無視されるテキスト> #<コマンド> <optional COMMAND_ARGUMENTS>

課題キーとコマンドの間にあるテキストは無視されます。

スマート コミット メッセージでは次の 3 つのコマンドを使用できます。

  • comment

  • 時間

  • transition

コメント

説明

Jira Software 課題にコメントを追加します。

構文

<無視されるテキスト> <ISSUE_KEY> <無視されるテキスト> #comment <comment_string>

1 JRA-34 #comment corrected indent issue
JRA-34 #comment: 修正済みのインデントの問題

注意

コミット実行者のメール アドレスは、その特定のプロジェクトで課題にコメントする権限を持つ Jira Software ユーザーのうち 1 人のメール アドレスと一致する必要があります。

時間

説明

課題に対する 時間管理情報を記録します。

構文

<ignored text> <ISSUE_KEY> <ignored text> #time <value>w <value>d <value>h <value>m <comment_string>

1 JRA-34 #time 1w 2d 4h 30m Total work logged
JRA-34 #time 1w 2d 4h 30m Total work logged

注意

この例では、課題に対して 1 週間、2 日、4 時間と 30 分と記録し、課題の [作業ログ] タブに「Total work logged」というコメントを追加します。

  • wdh および m の値には、小数も使用できます。

  • コメントは、#comment コマンドを使用しなくても自動的に追加されます。

  • コミット実行者のメールアドレスが、課題に対する作業を記録する権限を持つ単一の Jira Software ユーザーのメールアドレスと一致する必要があります。

  • システム管理者があなたの Jira Software インスタンスの時間管理を有効にしていなければなりません。

ワークフローのトランジション

説明

Jira Software 課題を特定のワークフロー状態に移行します。

構文

<ignored text> <ISSUE_KEY> <ignored text> #<transition_name> #comment <comment_string>

1 JRA-090 #close #comment Fixed this today
JRA-090 #close #comment 本日修正

注意

この例は、課題に対して課題のクローズワークフロー トランジションを実行し、コメント「Fixed this today」を課題に追加します。 

 

この構文にはいくつかの例外があります。

  • Jira 管理者がコメントを必須フィールドに設定している場合、コマンドに #comment を追加しないでください。

  • その他のいずれかのフィールドが必須に設定されている場合、トランジション コマンドは通知なしで失敗します。

Jira Software の課題にアクセスし、利用可能なワークフロー トランジションを見ることで、スマート コミットと併用可能なカスタム コマンドを確認できます。

  1. プロジェクト内の課題を開きます。

  2. ワークフローの表示 (課題のステータスの近く) をクリックします。

Smart Commit は、最初のスペースの前のトランジション名の部分のみを考慮します。したがって、finish work などのトランジション名の場合、#finish と指定すれば十分です。トランジション名について曖昧さが問題になりそうな場合、スペースの代わりにハイフンを使用する必要があります。たとえば、#finish-work などです。

次のように、ワークフローに2つの有効なトランジションがある場合:

  • Start Progress

  • Start Review

アクション #start を含む Smart Commit は 2 つのトランジションのいずれかを意味することになるため曖昧です。これら 2 つのトランジションの 1 つを指定するには、#start-review または#start-progress のいずれかを使用することで必要なトランジションを完全修飾します。

  • 課題を #resolve コマンドで解決する場合、解決状況フィールドには Smart Commit を設定できません。

  • コミット実行者のメールアドレスは、課題をトランジションできる適切なプロジェクト権限を持つ単一の Jira Software ユーザーのメールアドレスと一致する必要があります。

View development information on your Jira issues

リンクされた開発情報を Jira Software で表示するには、次の手順を実行します。

  1. 課題に移動します。

  2. [開発] で、ブランチの数またはコミットの数を選択して、追加情報を表示します。

高度な例

単一の課題に複数のコマンド

構文

1 <ISSUE_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>
<ISSUE_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

1 JRA-123 #time 2d 5h #comment Task completed ahead of schedule #resolve
JRA-123 #time 2d 5h #comment 期限前にタスクを完了 #resolve

結果

課題 JRA-123 に対して、2 日と 5 時間作業を記録し、コメント「Task completed ahead of schedule」を追加して
課題を解決します。

単一の課題に対して複数行にわたる複数のコマンド

構文

1 <ISSUE_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>
<ISSUE_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

1 JRA-123 #comment Imagine that this is a really, and I 
JRA-123 #comment これがものすごく 

 

1 mean really, long comment #time 2d 5h
長いコメントだとお考えください #time 2d 5h

結果

コメント「Imagine that this is a really, and I」は追加されますが、残りのコメントは削除されます。2 行目の #time コマンドに課題キーがないため、作業時間の 2 日と 5 時間は課題に記録されません。つまり、コミット メッセージの各行がスマート コミット構文に準拠している必要があります。

この例では、以下のように設定すると、想定通りに動作します。

1 JRA-123 #comment Imagine that this is a really, and I mean really, long comment 
JRA-123 #comment Imagine that this is a really, and I mean really, long comment 

 

1 JRA-123 #time 2d 5h
JRA-123 #time 2d 5h

複数の課題に対して単一コマンドを使用

構文

1 <ISSUE_KEY1> <ISSUE_KEY2> <ISSUE_KEY3> #<COMMAND> <optional COMMAND_ARGUMENTS> etc
<ISSUE_KEY1> <ISSUE_KEY2> <ISSUE_KEY3> #<COMMAND> <optional COMMAND_ARGUMENTS> など

コミット メッセージ

1 JRA-123 JRA-234 JRA-345 #resolve
JRA-123 JRA-234 JRA-345 #resolve

結果

課題 JRA-123、JRA-234 および JRA-345 を解決します。

複数の課題キーはホワイトスペースまたはコンマで区切る必要があります。

複数の課題に対して複数のコマンドを使用

構文

1 <ISSUE_KEY1> <ISSUE_KEY2> ... <ISSUE_KEYn> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>
<ISSUE_KEY1> <ISSUE_KEY2> ... <ISSUE_KEYn> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

1 JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment Task completed ahead of schedule
JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment 期限前にタスクを完了

結果

課題 JRA-123、JRA-234 および JRA-345 に対して、2 日と 5 時間作業を記録し、コメントを追加します。3 つの課題すべてにコメント「Task completed ahead of schedule」を追加し、3 つの課題すべてを解決します。

複数の課題キーはホワイトスペースまたはコンマで区切る必要があります。

Smart Commit の活用

Jira Software のインスタンスでスマート コミットを使用できるようにするのは簡単です。

ツール

接続の手順

Bitbucket Cloud

まず、Jira Software と Bitbucket アカウントをリンクします。「Jira Cloud と Bitbucket Cloud の接続」を参照してください。

次に、Jira Software でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。

GitHub

まず、Jira Software と GitHub アカウントをリンクします。「Jira Cloud と GitHub の接続」を参照してください。

次に、Jira Software でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。

Bitbucket Server

Jira Software と Bitbucket Server 間のアプリケーション リンクを作成します。「Bitbucket Server を Jira にリンクする」を参照してください。

次に、Jira Software でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。

Fisheye

Jira Software と Fisheye 間のアプリケーション リンクを作成します。「別のアプリケーションにリンクする」を参照してください。

次に、Jira Software でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。

crucible

Jira Software と Crucible 間のアプリケーション リンクを作成します。「別のアプリケーションにリンクする」を参照してください。

次に、Jira Software でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。

注意

  • スマートコミットは、既定の Jira Software 課題キー形式のみをサポートします。この形式では、2 つ以上の大文字にハイフンと課題番号が続きます (例: JRA-123)。 

  • Git などの DVCS のコミット データにはユーザーのメール アドレスが含まれています。ユーザーは自分のローカル システムでこのメール アドレスを構成します。スマート コミットでは、このメール アドレスと Jira Software ユーザー ベースのメール アドレスを完全に一致させる必要があります。Jira Software の複数のユーザーとメール アドレスが一致する場合、またはリクエストした操作を実行する権限がユーザーにない場合、スマート コミット操作は失敗します。ただし、コミットそのものは成功して課題に表示されます。スマート コミットが想定どおり動作しない理由として最もよくあるのが、メール アドレスの不一致です。スマート コミットが失敗した場合、Jira Software ユーザー、または DVCS ユーザー (Jira Software ユーザーを特定できない場合) に Jira Software からメール通知が送信されます。稀なケースですが、Jira Software にどちらのメール アドレスもなく、スマート コミットが気付かないうちに失敗することがあります。

  • 実行するスマート コミット コマンドは、特定の状況下では重複して表示されます。コミット履歴を変更すると、「新しい」コミットが作成され、「古い」コミットが置き換えられます。これらの「新しい」コミットに履歴書き換え前と同じスマート コミット コマンドが含まれる場合、同じスマート コミットが再び実行されるため、重複しているように見えます。Git コマンドを変更するコミット履歴には、 git push --force および git merge --squash が含まれます。

  • Earlier Bitbucket was not sending the merge commit flag to Jira during event delivery. So ‘Smart commits’ was treating all commits as regular commits. Now, CommitEvent send to EventDelivery contains COMMIT_MERGED flag. Hence, use the below default merge commit format:

1 2 Merged in <branch name> (pull request #<PR id>) <PR title>
Merged in <branch name> (pull request #<PR id>)
<PR title>

It is recommended not to add the smart commit commands to the PR title that gets added to the merge commit message after merge. Instead, manually edit the merge commit message to get the smart commits working again.

 

 

最終更新日 2021年10月11日)
次でキャッシュ 12:24 AM on Oct 18, 2021 |

その他のヘルプ