104 - エピックテンプレート - 繰り返し利用できる Issue セット

目的

一貫して繰り返し発生するイベントのセットを管理する必要がある場面はよくあります。たとえば、チームの活動全体を追跡するために複数の Issue を使うようなケースです。このページでは、GitLab Issue Import と少しのスプレッドシート技を活用して、将来のプロジェクトで再利用できる Issue セットを作成する方法を説明します。

Issue の Import CSV ボタンは、GitLab プロジェクトの Issue 一覧の上部にあります。この機能は、似たような Issue / 作業のグループを持つ繰り返しプロジェクトで非常に役立ちます。

0 - Import CSV

プロジェクトに Issue をインポートする前に、必ず「ヒントとコツ」セクションをお読みください

前提条件

  1. GitLab のプロジェクト、グループ、エピック、マイルストーン、Issue、ラベルがどう機能するかという構造に習熟していること。もしご存じない場合は、GitLab 101- No Tissues with Issues をご確認ください。

  2. スプレッドシートで作業し、数式を使ってセルにテキストを 連結 することに慣れていること。注: 例では concat 関数と同じである & 演算子を使用しています。

  3. プロジェクトで Developer 以上の権限レベルを持っていること。(Issue のインポートに必要です)

  4. Issue は同じプロジェクト内に作成されます。プロジェクトをまたぐテンプレートでもこれを行うことはできますが、その場合は Issue を移動先のプロジェクトに移動するか(自動化可能)、より手動的にプロジェクトごとに別の CSV をアップロードする必要があります。Issue を別のプロジェクトに自動で移動する方法については、自動化チュートリアル をご覧ください。


背景

  1. Issue の Import CSV本当にシンプル です。必要なカラムは2つだけです。

    • title
    • description

    Issue はカンマ区切りファイルに格納します。最初の行はヘッダーで、その後の行にデータが入ります。

  2. Issue の Import CSV本当にパワフル です。クイックアクション (/Quick Actions) を使うと、新規 Issue に対して以下のようなクールなことができます。

  • ラベルの追加
  • 期日の設定
  • マイルストーンへの追加
  • エピックへの追加
  • 重み付けの設定
  • 工数見積もりの設定
  • 個人への割り当て


注: GitLab ドキュメントの CSV からの Issue インポート を参照してください。


手順

1. Issue 用スプレッドシートの作成

Issue セットのプロジェクト構造を決めます。具体的には、

  • このプロジェクトで使う labels は何か、
  • 作業を追跡するために使う epics および sub-epics は何か、
  • この作業で使う milestones は何か、を決めます。

これらの構造が GitLab にまだ存在しない場合は、今すぐ設定 してください。

1.1 スプレッドシートのセットアップ

  1. 必要なカラムは2つ(Title と Description)だけですが、Issue の詳細を別々にして管理しやすくするために、複数のカラムを持っておくと便利です。次のカラムを持つスプレッドシートを構成します。

1つ目: - Issue タイトルと説明の基本テキストを入れる2つのカラム。

  • raw title,
  • raw description, これら2つのカラムには、Issue のタイトルと説明のテキストを入力します。

2つ目: Issue タイトルと説明の実際のテキストが「組み立てられる」2つのカラム。

  • title,
  • description これら2つのカラムは実際には、Issue の TitleDescription を構成するために異なるセルを組み合わせる数式です。

3つ目: Issue 固有の クイックアクション を保持する1つ以上の追加カラム。これらのカラムには epicsestimateslabels などのコンテンツを格納できます。サンプルのスプレッドシートでは、各 Issue に対する個別データを持つカラムが以下のようにあります。 Team LabelTypeEffortSizeEpicMilestoneIteration

完成すると、このようになります。

1 - spreadsheet columns

4つ目: すべての Issue に同じ Labelクイックアクション を持たせたい場合は、スプレッドシート上部のセルが共通の クイックアクション を置く場所になります。

2- Common Quick Actions

1.2 最初の Issue をドラフトする

  1. ヘッダー行の下の行で、以下を記述してください。
    1.1 - Raw Title - Issue タイトルのテキスト
    1.2 - Raw Description - Markdown で書いた Issue の説明

    注: Google スプレッドシートでは、Formula バーで作業すると複数行のテキストをセルに入力しやすくて便利です。

    3- issue title and description

  2. クイックアクション カラムには、ラベル追加、工数設定、マイルストーンやエピックへの追加など、適切なクイックアクションを追加してください。ここで、GitLab で追跡される各 Issue をカスタマイズできます。

4- Quick Actions

注: 自動化を使っている場合は、Issue をエピックに昇格させるラベルや、Issue を別プロジェクトに移動する、機密にする、その他クイックアクションでやりたいことを自動化するためのラベルを使うことができます。自動化が Issue をどのように更新できるかについて、より詳しくは 自動化チュートリアル をお読みください。

公開されている サンプルインポートスプレッドシート をご覧ください。

2. Issue をインポートする

  1. titledescription のセル(カラムヘッダーを含む)を選択して内容をコピーしてください。
  2. 新しい空のスプレッドシートに移動して 値として貼り付け してください。これで数式は除去され、実際の値だけが保持されます。
  3. 新しいスプレッドシートを CSV ファイルとして保存してください。ファイルは 必ず titledescription の2カラムだけにしてください。
  4. プロジェクトの Issue 一覧に行き、Import CSV ボタンをクリックしてください。 0 - Import CSV
  5. ダイアログボックスで、ファイル名ボタンをクリックして CSV ファイルを選択してください。 10 - Import issue screen
  6. Import Issues ボタンをクリックして、インポートが完了するのを待ってください。 10 - Import issue message

重要 - ヒント、コツ、メモ - 最初に読んでください

  1. インポートファイルを テスト するために別のプロジェクトを作成してください。GitLab には Issue を削除する方法はありませんクローズ することはできますが、削除はできません。なので、20 個の Issue をインポートしてミスをした場合、テストプロジェクトが GitLab 階層のどこにあるかによって、以下のことが必要になります。

    • すべてのラベル、マイルストーン、エピックなどを削除する(ラベルとエピックは上位グループに伝播します)
    • 個人に割り当てられた Issue の割り当てを解除する
    • Issue をクローズする
  2. GitLab プロジェクトの 実際の Issue を使って クイックアクション のコードを記述します。次にその クイックアクション をスプレッドシートにコピー&ペーストしてください。そうすることで、クイックアクション にタイポやエラーが入りません。

  3. Issue の 順序 は、最初の行から最後の行まで順次に並びます。つまりスプレッドシートの最初の行は GitLab で(デフォルトの issue created date でソートされた場合)最後 に表示されます。一方、スプレッドシートを逆順に並べた場合は、最後の Issue が最初に読み込まれます。それらは 古く なるため、GitLab Issue 一覧では最後にリストされることになります。