スマート コミットで作業項目を処理する
Bitbucket または GitHub でスペースのリポジトリを管理する場合、または FishEye を使用してリポジトリの参照や検索を行う場合、コミット メッセージで「スマート コミット」と呼ばれる特別なコマンドを使用して Jira Software の作業項目を処理できます。
以下のことが可能です。
作業項目にコメントを追加する
作業項目に対する時間管理情報を記録する
ソフトウェア スペース ワークフローに定義されているいずれかのステータスに作業項目をトランジションします。
There are other actions available if you use Crucible for software reviews. See Using Smart Commits in the Crucible documentation.
スマート コミット コマンドは 1 行に収める必要があります (コマンドでキャリッジ リターンを使用できません) が、1 つの行に複数のコマンドを追加できます。以下の例を参照してください。
スマートコミット コマンド
スマート コミット コマンドでは、「課題」は作業項目を指します。作業項目とは
スマート コミット メッセージの基本的な構文は次のとおりです。
<ignored text> <ISSUE_KEY> <ignored text> #<COMMAND> <optional COMMAND_ARGUMENTS>
作業項目キーとコマンドの間のテキストは無視されます。
スマート コミット メッセージでは次の 3 つのコマンドを使用できます。
commenttimetransition
コメント
説明 | Jira Software 作業項目にコメントを追加します。 |
|---|---|
構文 |
|
例 | JRA-34 #comment corrected indent issueJRA-34 #comment: 修正済みのインデントの問題 |
注意 | コミッターのメール アドレスが、その特定のスペースの作業項目にコメントする権限を持つ単一の Jira Software ユーザーのメール アドレスと一致する必要があります |
時間
説明 | 作業項目に対する時間管理情報を記録します。 |
|---|---|
構文 |
|
例 | JRA-34 #time 1w 2d 4h 30m Total work loggedJRA-34 #time 1w 2d 4h 30m Total work logged |
注意 | この例では、作業項目に対して 1 週間、2 日、4 時間と 30 分を記録し、作業項目の [作業ログ ] タブに「
|
ワークフローのトランジション
説明 | Jira Software 作業項目を特定のワークフロー状態に移行します。 |
|---|---|
構文 |
|
例 | JRA-090 #close #comment Fixed this todayJRA-090 #close #comment 本日修正 |
注意 | この例では、作業項目に対してクローズ作業項目ワークフロー トランジションを実行し、作業項目にコメント「
この構文にはいくつかの例外があります。
Jira Software の作業項目にアクセスし、利用可能なワークフロー トランジションを見ることで、スマート コミットと併用可能なカスタム コマンドを確認できます。
Smart Commit は、最初のスペースの前のトランジション名の部分のみを考慮します。したがって、 次のように、ワークフローに2つの有効なトランジションがある場合:
アクション
|
Jira 作業項目の開発情報を表示する
リンクされた開発情報を Jira 作業項目で表示するには、次の手順に従います。
作業項目に移動します。
[開発] で、追加情報を表示する件のプル リクエスト、ブランチ、またはコミットの数を選択します。
高度な例
単一の作業項目に対する複数のコマンド
構文 | <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> |
|---|---|
コミット メッセージ | JRA-123 #time 2d 5h #comment Task completed ahead of schedule #resolveJRA-123 #time 2d 5h #comment 期限前にタスクを完了 #resolve |
結果 | 作業項目 JRA-123 に対して 2 日と 5 時間作業を記録し、コメント「Task completed ahead of schedule」を追加し、作業項目を解決します。 |
単一の課題に対して複数行にわたる複数のコマンド
構文 | <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> |
|---|---|
コミット メッセージ | JRA-123 #comment Imagine that this is a really, and I JRA-123 #comment これがものすごく
mean really, long comment #time 2d 5h長いコメントだとお考えください #time 2d 5h |
結果 | コメント「Imagine that this is a really, and I」は追加されますが、残りのコメントは削除されます。2 行目の # この例では、以下のように設定すると、想定通りに動作します。 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
JRA-123 #time 2d 5hJRA-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> など |
|---|---|
コミット メッセージ | JRA-123 JRA-234 JRA-345 #resolveJRA-123 JRA-234 JRA-345 #resolve |
結果 | 作業項目 JRA-123、JRA-234 および JRA-345 を解決します。 複数の作業項目キーはホワイトスペースまたはコンマで区切る必要があります。 |
複数の作業項目に対する複数のコマンド
構文 | <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> |
|---|---|
コミット メッセージ | JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment Task completed ahead of scheduleJRA-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 フラグを含めて送信されるようになりました。したがって、次のような既定のマージ コミット形式を使用してください。
Merged in <branch name> (pull request #<PR id>)
<PR title>Merged in <branch name> (pull request #<PR id>)
<PR title>
マージ後、マージ コミット メッセージに追加される PR タイトルには、スマート コミット コマンドを追加しないことをお勧めします。代わりに、マージ コミット メッセージを手動で編集して、スマート コミットが再び機能するようにしてください。
この内容はお役に立ちましたか?