Workflow Automation

Engineering Productivity チームは、GitLab の内部ワークフロー自動化のためのツールとプロセスを所有しています。Triage-ops は EP チームが管理する主要なプロジェクトの一つであり、GitLab チームメンバーが Issue、MR、epic を自動的にトリアージできるようにします。

ワンオフラベル移行

チーム構造の変更があった際に、既存の Issue、MR、epic 上のラベルを更新するためのワンオフラベル移行を実行する必要があることがよくあります。最大の効率を得るために、各チームメンバーが自分で移行を実行することを推奨します。最速の結果を得るために、以下の手順に従ってラベル移行のマージリクエストを開始してください。EP チームは必要に応じてレビューと移行の実行を支援できます。

ラベル移行の始め方

これらのワンオフラベル移行は triage-ops のパイプライン内で実行されます。ワンオフラベル移行ポリシーを含む MR を triage-ops に作成してください。

ドキュメントと例については One-off Policies を参照してください。

一般的なシナリオと MR の作成方法

グループ/カテゴリ/ステージの名前変更

例:

グループ G が新しく作成されたグループ名 A に名前変更される場合。必要なアクション:

  1. ラベルページで group::G ラベル を見つけ、タイトルと説明を更新します。
  2. 新しいラベルはそれまで存在しなかったため、古いラベル名を保持する必要はなく、ラベル移行を実行する必要はありません。

グループ/カテゴリ/ステージのマージ

例:

グループ G が既存のグループラベルである グループ B にマージされる場合。必要なアクション:

  1. group::B を適用し group::G を削除することで、グループ G でラベル付けされたすべてのリソースを移行します。
  2. タイトルに [DEPRECATED] を追加してラベルの説明を更新し、削除予定日を設定することで、group::G ラベル を非推奨にします。
  3. グループ B は既に存在するため group::Ggroup::B に単純に名前変更できないことから、ワンオフラベル移行の実行が必要です。

グループのステージまたはカテゴリ変更

例:

グループ G がステージ S に属し、カテゴリ C を担当していたが、構造変更後にグループ G がステージ T の一部となり、カテゴリ CC を担当するようになった場合。必要なアクション:

  1. グループ G でラベル付けされたすべてのリソースを見つけ、devops::SCategory:C を削除して devops::TCategory:CC を追加します。

ラベル移行の実行方法

ワンオフポリシーを含むマージリクエストが作成されたら、移行パイプライン内で作成されたドライランジョブでラベル移行を開始します。ドライランを実行すると、この移行によって影響を受けるリソースとその数をプレビューできます。MR パイプラインで dry-run ジョブを見つけて実行してください。ドライランにリストされた影響リソースが正しいことを確認したら、実際の移行ジョブに進むことができます。

ドライランジョブの見つけ方に困った場合は、パイプラインの例を参照してください。パイプラインの one-off ステージに進むと、一方が dry-run とマークされた 2 つの移行ジョブが表示されます。

ジョブ名が正しく定義されていることを確認するために、One-off Policies ドキュメント に従ってください。