Smart Commit を使用する

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

以下のことが可能です。

  • 作業項目にコメントする

  • 作業項目に対する時間管理情報を記録する

  • Jira プロジェクトのワークフローで定義されているいずれかのステータスに作業項目をトランジションします。

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

スマート コミット コマンドは 1 行に収める必要があります (例えば、コマンドではキャリッジ リターンを使用できません) が、詳細な例で示されるように、同じ行に複数のコマンドを追加できます。1 行に複数のコマンドを入れる例は次を参照してください。

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

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

<ignored text> <WORK_ITEM_KEY> <ignored text> #<COMMAND> <optional COMMAND_ARGUMENTS>

作業項目キーとコマンドの間のテキストは無視されます。

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

  • comment

  • time

  • transition

コメント

説明

Jira 作業項目にコメントを追加します。

構文

<ignored text> <WORK_ITEM_KEY> <ignored text> #comment <comment_string>

JRA-34 #comment corrected indent work item

注意

コミッターのメール アドレスが、その特定のプロジェクトの作業項目にコメントする権限を持つ単一の Jira ユーザーのメール アドレスと一致する必要があります

GitHub 使用時に関する詳細

  • GitHub のメール アドレスが、その特定のプロジェクトの作業項目にコメントする権限を持つ単一の Jira ユーザーのメール アドレスと一致する必要があります

  • スマート コミットが正しく機能するためには、GitHub で [メールアドレスを非公開にする] のチェックをオフにします

時間

説明

作業項目に対する 時間管理情報 を記録します。

構文

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

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

注意

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

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

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

  • コミッターのメール アドレスは、作業項目の作業を記録する権限を持つ単一の Jira ユーザーのメール アドレスと一致する必要があります。

  • システム管理者が

    Jira インスタンス

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

説明

Jira 作業項目を特定のワークフロー状態に移行します。

構文

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

JRA-090 #close #comment Fixed this today

注意

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

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

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

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

Smart Commit と併用可能なカスタムコマンドを確認するには、

Jira 作業項目と利用可能なワークフロー トランジションを確認します。

  1. プロジェクトで作業項目を開きます。

  2. [ワークフローの表示] (作業項目のステータスの近く) を選択します。

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

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

  • Start Progress

  • Start Review

アクション #start を含むスマート コミットは 2 つのトランジションのいずれかを意味することになるため、曖昧であると見なされます。これら 2 つのトランジションの 1 つを指定するには、#start-review または #start-progress のいずれかを使用して、使用したいトランジションを完全修飾します。

  • 作業項目を #resolve コマンドで解決する場合、スマート コミットで解決状況フィールドを設定することはできません。

  • コミット実施者のメール アドレスは、対象のプロジェクトでの課題へのコメント追加権限を持つ

    Jira

    ユーザー (作業項目をトランジションするための適切なプロジェクト権限を持つユーザー)

高度な例

単一の作業項目に対する複数のコマンド

構文

<WORK_ITEM_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

JRA-123 #time 2d 5h #comment Task completed ahead of schedule #resolve

結果

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

単一の作業項目に対して複数行にわたる複数のコマンド

構文

<WORK_ITEM_KEY> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

JRA-123 #comment Imagine that this is a really, and I 
mean really, long comment #time 2d 5h

結果

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

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

JRA-123 #comment Imagine that this is a really, and I mean really, long comment 
JRA-123 #time 2d 5h

複数の作業項目に対する 1 つのコマンド

構文

<WORK_ITEM_KEY1> <WORK_ITEM_KEY2> <WORK_ITEM_KEY3> #<COMMAND> <optional COMMAND_ARGUMENTS> etc

コミット メッセージ

JRA-123 JRA-234 JRA-345 #resolve

結果

Resolves work items JRA-123, JRA-234 and JRA-345.

Multiple work item keys must be separated by whitespace or commas.

複数の作業項目に対する複数のコマンド

構文

<WORK_ITEM_KEY1> <WORK_ITEM_KEY2> ... <WORK_ITEM_KEYn> #<COMMAND_1> <optional COMMAND_1_ARGUMENTS> #<COMMAND_2> <optional COMMAND_2_ARGUMENTS> ... #<COMMAND_n> <optional COMMAND_n_ARGUMENTS>

コミット メッセージ

JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment Task completed ahead of schedule

結果

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

Multiple work item keys must be separated by whitespace or commas.

Smart Commit の活用

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

ツール

接続の手順

Bitbucket Cloud

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

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

GitHub

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

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

Bitbucket Data Center

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

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

Fisheye

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

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

Crucible

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

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

注意

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

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

 

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。