スマート コミットで課題を処理する
Bitbucket または GitHub でプロジェクトのリポジトリを管理する場合、または FishEye を使用してリポジトリの参照や検索を行う場合、コミット メッセージで「スマート コミット」と呼ばれる特別なコマンドを使用して Jira Software の課題を処理できます。
以下のことが可能です。
課題にコメントする
課題の時間管理情報を記録する
ソフトウェア プロジェクト ワークフローに定義されているいずれかのステータスに課題をトランジションします。
ソフトウェアのレビューに Crucible を使用する場合、ほかにもアクションを利用できます。Crucible ドキュメントの「Smart Commit を使用する」を参照してください。
スマート コミット コマンドは 1 行に収める必要があります (コマンドでキャリッジ リターンを使用できません) が、1 つの行に複数のコマンドを追加できます。以下の例を参照してください。
スマートコミット コマンド
スマート コミット メッセージの基本的な構文は次のとおりです。
<ignored text> <ISSUE_KEY> <ignored text> #<COMMAND> <optional COMMAND_ARGUMENTS>
課題キーとコマンドの間にあるテキストは無視されます。
スマート コミット メッセージでは次の 3 つのコマンドを使用できます。
comment
time
transition
コメント
説明 | Jira Software 課題にコメントを追加します。 |
---|---|
構文 | <ignored text> <ISSUE_KEY> <ignored text> #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」というコメントを追加します。
|
ワークフローのトランジション
説明 | 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 Software の課題にアクセスし、利用可能なワークフロー トランジションを見ることで、スマート コミットと併用可能なカスタム コマンドを確認できます。
Smart Commit は、最初のスペースの前のトランジション名の部分のみを考慮します。したがって、finish work などのトランジション名の場合、#finish と指定すれば十分です。トランジション名に曖昧さが含まれる場合、スペースの代わりにハイフンを使用する必要があります。たとえば、#finish-work などです。 次のように、ワークフローに2つの有効なトランジションがある場合:
アクション #start を含むスマート コミットは 2 つのトランジションのいずれかを意味することになるため、曖昧であると見なされます。これら 2 つのトランジションの 1 つを指定するには、#start-review または #start-progress のいずれかを使用して、使用したいトランジションを完全修飾します。
|
Jira 課題の開発情報を表示する
リンクされた開発情報を Jira 課題で表示するには、次の手順に従います。
課題に移動します。
[開発] で、追加情報を表示する件のプル リクエスト、ブランチ、またはコミットの数を選択します。
高度な例
単一の課題に複数のコマンド
構文 | 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 でスマート コミットを有効にします。「スマート コミットの有効化」を参照してください。 |
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 が含まれます。
以前の Bitbucket は、イベント配信中にマージ コミット フラグを Jira に送信していませんでした。そのため、「スマート コミット」では、すべてのコミットが通常のコミットとして扱されていました。今後は、CommitEvent が EventDelivery に対して COMMIT_MERGED フラグを含めて送信されるようになりました。したがって、次のような既定のマージ コミット形式を使用してください。
1
2
Merged in <branch name> (pull request #<PR id>)
<PR title>
Merged in <branch name> (pull request #<PR id>)
<PR title>
マージ後、マージ コミット メッセージに追加される PR タイトルには、スマート コミット コマンドを追加しないことをお勧めします。代わりに、マージ コミット メッセージを手動で編集して、スマート コミットが再び機能するようにしてください。
この内容はお役に立ちましたか?