イシューの管理

イシューを作成すると、そのイシューで作業を開始することができます。

イシューの編集

イシューのタイトルと説明を編集できます。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者であるか、イシューに割り当てられている必要があります。

イシューを編集するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題のタイトルを選択して表示します。
  3. タイトルの右側にある「タイトルと説明を編集する({鉛筆})を選択します。
  4. 利用可能なフィールドを編集します。
  5. 変更を保存を選択します。

タスクリスト項目の削除

GitLab 15.9 で導入されました

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者または担当者である必要があります。

タスクリスト項目を含むイシューの説明で

  1. タスクリスト項目にカーソルを合わせ、オプションメニュー({ellipsis_v}) を選択します。
  2. 削除]を選択します。

イシューの説明からタスクリスト項目が削除されます。ネストされたタスクリスト項目は、ネストされたレベルを1つ上に移動します。

プロジェクトからのイシューの一括編集

  • GitLab 13.2 で導入されたエピックの割り当て。
  • GitLab 13.2 で導入されたヘルスステータスの編集。
  • GitLab 13.9 で導入されたイテレーションの編集。

プロジェクト内で複数のイシューを一度に編集できます。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っている必要があります。

複数のイシューを同時に編集するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択します。
  3. 一括編集を選択します。画面右側にサイドバーが表示されます。
  4. 編集したいイシューの横にあるチェックボックスを選択します。
  5. サイドバーから、利用可能なフィールドを編集します。
  6. Update allを選択します。

プロジェクト内のイシューを一括編集する場合、以下の属性を編集できます:

グループからのイシュー一括編集

  • GitLab 12.1 で導入されました
  • GitLab 13.2 で導入されたエピックの割り当て。
  • GitLab 13.2 で導入されたヘルスステータスの編集。
  • GitLab 13.9 で導入されたイテレーションの編集。

グループ内で複数のプロジェクトにまたがる複数のイシューを編集できます。

前提条件:

  • 少なくともグループのレポーターロールを持っている必要があります。

複数のイシューを同時に編集するには

  1. 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
  2. プラン > イシューを選択します。
  3. 一括編集を選択します。画面右側にサイドバーが表示されます。
  4. 編集したいイシューの横にあるチェックボックスを選択します。
  5. サイドバーから、利用可能なフィールドを編集します。
  6. Update allを選択します。

グループ内のイシューを一括編集する場合、以下の属性を編集できます:

イシューの移動

イシューを移動すると、そのイシューは閉じられ、移動先のプロジェクトにコピーされます。元のイシューは削除されません。移動元と移動先を示すシステムノートが両方のイシューに追加されます。

アクセスルールが異なるプロジェクトにイシューを移動する場合は注意してください。イシューを移動する前に、そのイシューに機密データが含まれていないことを確認してください。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っている必要があります。

イシューを移動するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーで「イシューを移動」を選択します。
  4. イシューを移動するプロジェクトを検索します。
  5. 移動]を選択します。

一括移動のイシュー

イシューリストから

GitLab 15.6で導入されました

プロジェクト内で複数のイシューを同時に移動できます。タスクやテストケースは移動できません。

前提条件

  • 少なくともプロジェクトのレポーターロールを持っている必要があります。

複数のイシューを同時に移動するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択します。
  3. 一括編集を選択します。画面右側にサイドバーが表示されます。
  4. 移動したいイシューの横にあるチェックボックスを選択します。
  5. 右側のサイドバーから「選択した号を移動」を選択します。
  6. ドロップダウンリストから、移動先のプロジェクトを選択します。
  7. 移動]を選択します。

Railsコンソールから

開いているすべてのイシューをプロジェクト間で移動できます。

前提条件:

  • GitLabインスタンスのRailsコンソールにアクセスできる必要があります。

それには

  1. オプション(ただし推奨)。コンソールで変更を試みる前に、バックアップを作成してください。
  2. Railsコンソールを開きます。
  3. 以下のスクリプトを実行します。project,admin_user,target_project をあなたの値に変更してください。

    project = Project.find_by_full_path('full path of the project where issues are moved from')
    issues = project.issues
    admin_user = User.find_by_username('username of admin user') # make sure user has permissions to move the issues
    target_project = Project.find_by_full_path('full path of target project where issues moved to')
       
    issues.each do |issue|
       if issue.state != "closed" && issue.moved_to.nil?
          Issues::MoveService.new(container: project, current_user: admin_user).execute(issue, target_project)
       else
          puts "issue with id: #{issue.id} and title: #{issue.title} was not moved"
       end
    end; nil
    
  4. Railsコンソールを終了するには、quitと入力します。

イシューの説明のリスト項目の順序を変更します。

GitLab 15.0 で導入されました

説明文にリストがあるイシューを表示する際、リスト項目を並び替えることもできます。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者であるか、イシューに割り当てられている必要があります。
  • イシューの説明には、順序付き、順序なし、またはタスクリストが必要です。

リスト項目を並べ替えるには、イシューを表示する際に

  1. リスト項目の行にカーソルを合わせると、グリップアイコン({grip}) が表示されます。
  2. グリップアイコンを選択したままにします。
  3. 行をリスト内の新しい位置にドラッグします。
  4. グリップアイコンをリリースします。

イシューを閉じる

イシューが解決済みまたは不要になったと判断した場合、そのイシューを閉じることができます。イシューはクローズとしてマークされますが、削除されません。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者であるか、イシューに割り当てられている必要があります。

イシューをクローズするには、以下のいずれかを実行します:

  • issueボードで、issueカードをリストから「クローズ」リストにドラッグします。
  • GitLab UI の他のページから:
    1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
    2. プラン > イシューを選択し、課題を選択して表示します。
    3. 課題の上部で「課題を閉じる」を選択します。

イシューの最上部にこのアクションが表示されない場合、プロジェクトまたはインスタンスが機能フラグを有効にしてアクション・メニューに移動させている可能性があります。

クローズしたイシューの再開

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者であるか、イシューに割り当てられている必要があります。

クローズしたイシューを再開するには、イシューの上部にある「イシューを再開する」を選択してください。再開されたイシューは、他の未解決イシューと変わりません。

イシューの最上部にこのアクションが表示されない場合、プロジェクトまたはインスタンスが機能フラグを有効にしてアクション・メニューに移動させている可能性があります。

イシューの自動クローズ

コミットメッセージやマージリクエストの説明で、_クロージングパターンと_呼ばれる特定の単語を使うことで、イシューを自動的に閉じることができます。自分で管理するGitLabインスタンスの管理者は、デフォルトのクロージングパターンを変更することができます。

コミットメッセージやマージリクエストの説明にクロージングパターンにマッチするテキストが含まれている場合、マッチしたテキストで参照されているすべてのイシューがクローズされます:

  • コミットはプロジェクトのデフォルトブランチにプッシュされます。
  • コミットやマージリクエストはデフォルトブランチにマージされます。

たとえば、マージリクエストの説明にCloses #4, #6, Related to #5 を含めた場合:

  • MR がマージされると、イシュー#4#6 は自動的にクローズされます。
  • イシュー#5関連イシューとしてマークされていますが、自動的にクローズされません。

また、ある課題からマージリクエストを作成すると、その課題のマイルストーンとラベルが継承されます。

パフォーマンス上の理由から、既存のリポジトリからの最初のプッシュでは、課題の自動クローズは無効になります。

デフォルトのクロージングパターン

イシューを自動的にクローズするには、以下のキーワードの後にイシュー参照を続けます。

使用可能なキーワード

  • Close, Closes, Closed, Closing, close, closes, closed, closing
  • Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing
  • Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving
  • Implement, Implements, Implemented, Implementing, implement, implements, implemented, implementing

利用可能なイシュー参照形式:

  • プロジェクトローカルのイシュー(#123)。
  • プロジェクト横断的なイシュー(group/project#123)。
  • イシューの完全なURL (https://gitlab.example.com/group/project/issues/123)。

使用例:

Awesome commit message

Fix #20, Fixes #21 and Closes group/otherproject#22.
This commit is also related to #17 and fixes #18, #19
and https://gitlab.example.com/group/otherproject/issues/23.

#18 #19 #20#21 #22 #23 group/otherproject#17 はパターンにマッチしないのでクローズされません。

複数行のコミットメッセージやgit commit -m を使ってコマンドラインから行う一行コミットでは、クローズパターンを使うことができます。

デフォルトのイシューのクロージングパターンは正規表現です:

\b((?:[Cc]los(?:e[sd]?|ing)|\b[Ff]ix(?:e[sd]|ing)?|\b[Rr]esolv(?:e[sd]?|ing)|\b[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?: *,? +and +| *,? *)?)|([A-Z][A-Z0-9_]+-\d+))+)

イシューの自動終了を無効にします。

  • GitLab 12.7から導入されました
  • GitLab 15.4 で変更:コミットやマージリクエストのプロジェクトではなく、参照されたイシューのプロジェクト設定をチェックするようになりました。

プロジェクトの設定で、プロジェクトごとにイシューの自動クローズ機能を無効にすることができます。

前提条件:

  • 少なくともプロジェクトのメンテナーのロールを持っている必要があります。

イシューの自動クローズを無効にするには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定] > [リポジトリ]を選択します。
  3. ブランチのデフォルトを展開します。
  4. デフォルトブランチで参照されたイシューを自動的にクローズする]チェックボックスをオフにします。
  5. 変更を保存を選択します。

参照されたイシューは表示されたままですが、自動的にクローズされません。

この設定を変更することは、新しいマージリクエストやコミットにのみ適用されます。すでにクローズされたイシューはそのまま残ります。課題の自動クローズを無効にすると、その設定を無効にしたプロジェクトのイシューにのみ適用されます。このプロジェクトのマージリクエストやコミットは、別のプロジェクトのイシューを閉じることができます。

イシューのクローズパターンのカスタマイズ

前提条件:

デフォルトのイシューのクローズパターンを変更する方法をご覧ください。

閉じるボタンをアクションメニューに移動します。

GitLab 16.2 でmove_close_into_dropdownというフラグで導入されました。デフォルトでは無効になっています。

フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がmove_close_into_dropdownという機能フラグを有効にします。GitLab.comでは、この機能は利用できません。

この機能フラグを有効にすると、右上のイシューアクション({ellipsis_v})に、イシューを閉じるアクションとイシューを再開するアクションが表示されます。

GitLab 16.2以降では、同様のアクションメニューがインシデントやエピックでも利用できます。

この機能フラグが無効になっている場合、issueを閉じるや issueを再開するはアクションメニューの外側のトップバーに表示されます。

イシュータイプの変更

前提条件:

  • イシューの作成者であるか、少なくともプロジェクトのレポーターロールを持っているか、イシューの作成者であるか、イシューに割り当てられている必要があります。

イシューの種類を変更するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. タイトルの右側にある「タイトルと説明を編集する({鉛筆})を選択します。
  4. イシューを編集し、イシュー・タイプのドロップダウンリストからイシュー・タイプを選択します:

  5. 変更を保存を選択します。

イシューの削除

GitLab 14.6で導入された垂直省略記号メニューから削除します。

前提条件:

  • プロジェクトのオーナーロールを持っている必要があります。

イシューを削除するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右上で、イシューのアクション({ellipsis_v})を選択します。
  4. イシューの削除を選択します。

または

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題のタイトルを選択して表示します。
  3. タイトルと説明を編集する({鉛筆})を選択します。
  4. イシューの削除を選択します。

イシューをエピックに昇格させる

  • GitLab 11.6から導入されました
  • 12.8でGitLab UltimateからGitLab Premiumに移行。
  • GitLab 13.6で導入されたUIでイシューをエピックに昇格させることができます。

イシューをすぐ親グループのエピックに昇格させることができます。

issueをエピックに昇格させるには:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右上で、イシューのアクション({ellipsis_v})を選択します。
  4. エピックに昇格させるを選択します。

または、/promote クイックアクションを使用することもできます。

イシューをエピックに昇格させる方法については、こちらをご覧ください。

イシューをインシデントに昇格させます。

  • GitLab 14.5 で導入されました
  • GitLab 15.8で導入された、作成時にイシューのタイプをインシデントに設定するクイックアクション。

/promote_to_incident クイックアクションを使って、イシューをインシデントに昇格させることができます。

イテレーションへのイシューの追加

イテレーションにイシューを追加するには:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーの「イテレーション」セクションで「編集」を選択します。
  4. ドロップダウン・リストから、このイシューを関連付けるイテレーションを選択します。
  5. ドロップダウン・リスト以外の領域を選択します。

または、/iteration クイックアクションを使用することもできます。

担当イシューをすべて表示

自分に割り当てられたすべてのイシューを表示するには

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. ドロップダウンリストで、私に割り当てられたイシューを選択します。

または:

イシューのリストをフィルタリングします。

  • GitLab 13.6 からイテレーションによるフィルタリングが導入されました。
  • 反復によるフィルタリングはGitLab UltimateからGitLab Premiumに13.9で移動しました。
  • タイプによるフィルタリングはGitLab 13.10からvue_issues_listというフラグで 導入されました。デフォルトでは無効です。
  • タイプによるフィルタリングは、GitLab 14.10でセルフマネージドで有効になりました。
  • タイプによるフィルタリングはGitLab 15.1で一般的に利用できるようになりました。機能フラグvue_issues_list を削除しました。
  • GitLab 15.5でヘルスステータスによるフィルタリングを導入

イシューのリストをフィルタリングするには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択します。
  3. イシューのリストの上で、[検索]または[結果のフィルタリング]を選択します。
  4. 表示されるドロップダウンリストで、フィルタリングしたい属性を選択します。
  5. 属性のフィルタリングに使用する演算子を選択または入力します。以下のオペレーションが使用できます:
    • =:です。
    • !=:のいずれかではありません。
  6. 属性を絞り込むテキストを入力します。属性によってはNoneや Anyで絞り込むことができます。
  7. 複数の属性でフィルタするには、このプロセスを繰り返します。複数の属性は、論理AND で連結されます。

OR 演算子によるフィルタリング

  • 作成者と担当者のORフィルタリングはGitLab 15.6からor_issuable_queriesというフラグで 導入されました。デフォルトでは無効になっています。
  • ラベルのORフィルタリングはGitLab 15.8でor_issuable_queriesというフラグで 導入されました。デフォルトでは無効。
  • GitLab.comでは有効、GitLab 15.9では自己管理

フラグ: セルフマネージドGitLabでは、デフォルトでこの機能が利用可能です。この機能を隠すには、管理者がor_issuable_queries という機能フラグを無効にします。GitLab.comでは、この機能は利用可能です。

この機能が有効な場合、イシューのリストをOR演算子(is one of:||)でフィルタリングすることができます:

  • 担当者名
  • Author
  • ラベル

is one of は包含 OR を表します。例えば、Assignee is one of Sidney JonesAssignee is one of Zhang Weiでフィルタリングした場合、GitLab はSidneyZhang、またはその両方が担当者であるイシューを表示します。

IDでイシューをフィルタリング

GitLab 12.1 で導入されました

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択します。
  3. 検索]ボックスにイシューIDを入力します。例えば、issue 10のみを返すにはフィルタ#10

filter issues by specific ID

イシュー参照をコピー

GitLab の他の場所でイシューを参照するには、その完全な URL を使うか、namespace/project-name#123 のような短い参照を使います。namespace はグループかユーザー名です。

イシューの参照をクリップボードにコピーするには、次のようにします:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーの「参照」の横にある「参照をコピー({copy-to-clipboard})」を選択します。

これでリファレンスを別の説明やコメントに貼り付けることができます。

GitLab-Flavored Markdown でのイシュー参照についてもっと読む

右サイドバーにこのアクションが表示されない場合は、プロジェクトやインスタンスで移動したアクションの機能フラグが有効になっている可能性があります。

イシューのメールアドレスをコピー

GitLab 13.8 で導入されました

メールを送信することで、イシューにコメントを作成することができます。このアドレスにメールを送信すると、メール本文を含むコメントが作成されます。

メール送信によるコメントの作成および必要な設定の詳細については、メール送信によるコメントの返信を参照してください。

イシューのメールアドレスをコピーするには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーの「イシューのEメール」の横にある「参照先をコピー({copy-to-clipboard})」を選択します。

Assignee

イシューは1人または複数のユーザーに割り当てることができます。

担当者は必要に応じて何度でも変更することができます。担当者はイシューの責任者です。issueが誰かに割り当てられると、そのissueは割り当てられたissueリストに表示されます。

ユーザーがプロジェクトのメンバーでない場合、課題を割り当てられるのは、ユーザー自身が課題を作成するか、他のプロジェクトメンバーが割り当てた場合のみです。

イシューの担当者を変更します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーの「担当者」セクションで「編集」を選択します。
  4. ドロップダウンリストから、担当者として追加するユーザーを選択します。
  5. ドロップダウン・リスト以外の領域を選択します。

ページを更新することなく担当者が変更されます。

同様のイシュー

同じトピックに関するイシューの重複を防ぐために、GitLabは新しいイシューを作成するときに類似したイシューを検索します。

前提条件:

  • GraphQLが有効になっている必要があります。

新規課題ページのタイトルテキストボックスに入力すると、GitLab は現在のプロジェクト内のすべてのイシューのタイトルと説明を検索します。あなたがアクセスできるイシューだけが返されます。タイトルのテキストボックスの下には、似たようなイシューが最新順に最大 5 つまで表示されます。

健康状態

  • GitLab 12.10で導入されました
  • GitLab 13.4 以降では、クローズしたイシューのヘルスステータスを編集することができません。
  • GitLab 13.6で導入された課題リストで、課題のヘルスステータスを表示できるようになりました。
  • GitLab 13.7で機能フラグが削除されました。
  • GitLab 15.4 で導入: イシューボードのイシューカードにヘルスステータスを表示。

計画を達成するためのリスクをよりよく追跡するために、各イシューにヘルスステータスを割り当てることができます。ヘルスステータスを使うことで、イシューが計画通りに進んでいるのか、それともスケジュール通りに進めるために注意が必要なのかを、組織内の他の人に知らせることができます。

課題の健全性ステータスのレビュアーは、毎日のスタンドアップ、プロジェクトステータスレポート、または週次ミーティングに組み込んで、計画された作業をタイムリーに提供するためのリスクに対処します。

前提条件:

  • 少なくともプロジェクトのレポーターロールを持っている必要があります。

イシューのヘルスステータスを編集するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プラン > イシューを選択し、課題を選択して表示します。
  3. 右サイドバーの「健康状態」セクションで「編集」を選択します。
  4. ドロップダウンリストから、このイシューに追加するステータスを選択します:

    • 進行中(緑)
    • 注意が必要(アンバー)
    • 危険(赤)

イシューの健康状態は下記で確認できます:

  • イシューリスト
  • エピックツリー
  • イシュー・ボードのイシュー・カード

イシューがクローズされると、その健全性ステータスは編集できなくなり、編集ボタンはイシューが再度オープンされるまで無効になります。

/health_status/clear_health_statusクイックアクションを使用して、ヘルスステータスを設定およびクリアすることもできます。

イシューの発行

GitLab 13.1で導入されました。

ステータスページアプリケーションがプロジェクトに関連付けられている場合、/publish クイックアクションを使ってイシューを公開することができます。

詳しくはGitLab Status Page をご覧ください。

クイックアクションを使用してイシューを管理することもできます。

一部のアクションにはまだ対応するUIボタンがありません。クイックアクションを使用することで、以下のことが可能になります:

  • Zoom ミーティングの追加または削除(/zoom および/remove_zoom)。
  • イシューの公開(/publish).
  • イシューを同じプロジェクトまたは別のプロジェクトにクローンできます (/clone)。
  • イシューをクローズし、別のイシューの複製としてマークします (/duplicate)。
  • プロジェクト内の別のマージリクエストやイシューからラベルやマイルストーンをコピーできます (/copy_metadata)。