0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラベルとマイルストーン

Posted at

ラベルとマイルストーン

プロジェクトの進捗管理において、IssueやPull Requestが増えるほど全体像の把握が難しくなります。GitHubが標準で提供するラベルとマイルストーン機能を適切に使うことで、この問題を体系的に解決できます。本記事では、これらの機能の仕様と実践的な活用方法を解説します。

1. ラベル機能の本質

ラベルは、Issue、Pull Request、Discussionを分類するためのメタデータです。リポジトリスコープで管理され、他のリポジトリには影響を与えません。これにより、各プロジェクトの特性に応じた分類体系を構築できます。

1.1 デフォルトラベルの設計思想

GitHubは新規リポジトリ作成時に、以下の9つのデフォルトラベルを自動生成します。

ラベル名 用途 使用例
bug 予期しない問題や意図しない動作を示す クラッシュ、誤った計算結果、表示崩れ
documentation ドキュメントの改善や追加が必要 README不足、APIドキュメント未整備
duplicate 類似のIssue、Pull Request、Discussionを示す 既存Issue #123と同じ内容
enhancement 新機能のリクエストを示す 新しいAPI追加、UIコンポーネント拡張
good first issue 初めての貢献者に適したIssueを示す 小規模なバグ修正、タイポ修正
help wanted メンテナーが支援を求めている レビュー依頼、設計相談
invalid もはや関連性のないものを示す 重複、誤報告、仕様外
question 追加情報が必要なものを示す 再現手順不明、環境情報不足
wontfix 作業を継続しないことを示す 仕様として意図した動作、対応範囲外

これらは後から編集・削除が可能です。組織のオーナーは、組織全体のデフォルトラベルをカスタマイズすることもできます。

注目すべきはgood first issueラベルです。このラベルが付与されたIssueは、リポジトリのcontributeページに自動的に表示されます。これにより、新規コントリビューターへの導線が明確になります。

1.2 ラベルの操作

ラベルの作成、編集、削除には、リポジトリへのwrite権限が必要です。

作成手順:

  1. リポジトリのIssuesまたはPull requestsタブに移動
  2. 「Labels」ボタンをクリック
  3. 「New label」ボタンをクリック
  4. ラベル名、説明、カラー(16進数)を入力
  5. 「Create label」をクリック

編集手順:

  1. Labelsページで編集したいラベルの「Edit」をクリック
  2. 情報を修正
  3. 「Save changes」をクリック

削除手順:

  1. Labelsページで削除したいラベルの「Delete」をクリック
  2. 削除を確認

ラベルを削除すると、そのラベルが付与されていたすべてのIssueとPull Requestから削除されます。

1.3 ラベルの適用

ラベルの適用には、リポジトリへのtriageアクセス権限が必要です。これはwrite権限よりも限定的な権限で、Issueの管理に特化しています。

適用手順は以下の通りです。

  1. 対象のIssue、Pull Request、またはDiscussionに移動
  2. 右サイドバーの「Labels」をクリック
  3. 適用したいラベルを選択

2. マイルストーン機能の設計

マイルストーンは、複数のIssueやPull Requestをグループ化し、その進捗を可視化する機能です。スプリントやリリースサイクルなど、時間軸で区切られた開発フェーズの管理に適しています。

2.1 マイルストーンで確認できる情報

マイルストーンページでは、以下の情報が一元管理されます。

  • ユーザー提供の説明文: プロジェクト概要、関連チーム、予定期日などの情報
  • 期日: マイルストーンの完了予定日
  • 完了率: 進捗状況のパーセンテージ
  • 関連するIssueとPull Requestの数: オープン・クローズ別
  • 関連するIssueとPull Requestのリスト: 実際の作業項目

2.2 マイルストーンの作成と編集

作成手順:

  1. リポジトリのIssuesまたはPull requestsタブに移動
  2. 検索フィールド横の「Milestones」をクリック
  3. 「New Milestone」ボタンをクリック
  4. タイトル、説明(Markdown記法可)、期日を入力
  5. 「Create milestone」をクリック

編集手順:

  1. Milestonesページで編集したいマイルストーンの「Edit」をクリック
  2. 情報を修正
  3. 「Save changes」をクリック

削除手順:

  1. Milestonesページで削除したいマイルストーンの「Delete」をクリック
  2. 削除を確認

重要な点として、マイルストーンを削除してもIssueやPull Requestは削除されません。関連付けが解除されるだけです。

マイルストーンの説明欄ではMarkdown記法が利用できるため、以下のような構造化されたプロジェクト情報を記述できます。

## 目標
v2.0リリースに向けた主要機能の実装

## スコープ
- ユーザー認証機能の刷新
- API v2の実装
- パフォーマンス改善

## 担当チーム
- @backend-team
- @frontend-team

## 期日
2025-12-31

2.3 IssueとPull Requestの関連付け

マイルストーンへの関連付けは、以下の手順で行います。

  1. リポジトリのIssuesまたはPull requestsタブに移動
  2. 関連付けたい項目のチェックボックスを選択(複数選択可能)
  3. リスト上部の「Milestone」ドロップダウンメニューを選択
  4. 「Filter milestones」フィールドで既存マイルストーン名を入力
  5. 該当するマイルストーン名をクリック

2.4 優先順位の管理

マイルストーン内のIssueとPull Requestは、優先順位を設定できます。

操作方法は直感的です。

  1. マイルストーンページにアクセス
  2. IssueまたはPull Requestのチェックボックス左側をクリック
  3. 新しい位置にドラッグ&ドロップ

制約事項: マイルストーン内にオープン状態のIssueが500件を超える場合、優先順位付け機能は利用できません。

この制約に直面した場合、以下の対応を検討します。

  • マイルストーンの分割: 「v2.0-Phase1」「v2.0-Phase2」のように、時系列や機能単位で分割
  • Issueのクローズ: 完了済みだが未クローズのIssueを整理
  • 別リポジトリへの移動: 独立性の高い機能を別リポジトリで管理

3. フィルタリングによる効率的な検索

3.1 マイルストーンによるフィルタリング

マイルストーンに関連付けられたIssueやPull Requestは、以下の方法でフィルタリングできます。

UIベースの方法:

  1. リポジトリのIssuesまたはPull requestsタブに移動
  2. 「Milestones」を選択してマイルストーン一覧を表示
  3. 目的のマイルストーンを選択

検索構文の利用:

検索バーでmilestone:"マイルストーン名"という構文を使用できます。

例: milestone:"v2.0リリース"

フィルタ選択をクリアするには、「Clear current search query, filters, and sorts」をクリックします。

3.2 GitHub CLIでのフィルタリング

コマンドラインから操作したい場合、GitHub CLIが利用できます。

# Issueのフィルタリング
gh issue list --milestone "v2.0リリース"

# Pull Requestのフィルタリング
gh pr list --milestone "v2.0リリース"

4. 進捗の可視化

マイルストーンの進捗状況を確認する手順は以下の通りです。

  1. リポジトリのIssuesまたはPull requestsタブに移動
  2. 右上の「Milestones」をクリック
  3. 詳細を確認したいマイルストーンを選択

4.1 マイルストーンページで確認できる指標

マイルストーンページでは、以下の情報が視覚的に表示されます。

進捗バー

  • 完了率がパーセンテージで表示
  • クローズ済みとオープンのIssue/Pull Requestの割合が視覚化

数値情報

  • オープンのIssue数
  • クローズ済みのIssue数
  • オープンのPull Request数
  • クローズ済みのPull Request数

期日情報

  • 設定された期日までの残り日数
  • 期日超過の場合は警告表示

これらの情報により、スプリント計画やリリース判断の重要な指標が得られます。例えば、期日まで5日で完了率が60%の場合、スコープ調整やリソース追加を検討できます。

5. 実践的な活用例

5.1 ラベル体系の設計

デフォルトラベルに加えて、以下のようなカスタムラベルを追加することで、より詳細な分類が可能になります。

# カスタムラベルの例
labels:
  - name: "priority: high"
    color: "d73a4a"
    description: "優先度が高い作業"
  
  - name: "priority: medium"
    color: "fbca04"
    description: "優先度が中程度の作業"
  
  - name: "priority: low"
    color: "0e8a16"
    description: "優先度が低い作業"
  
  - name: "area: frontend"
    color: "1d76db"
    description: "フロントエンド関連"
  
  - name: "area: backend"
    color: "5319e7"
    description: "バックエンド関連"
  
  - name: "area: infrastructure"
    color: "fbca04"
    description: "インフラストラクチャ関連"

5.2 マイルストーン構成例

6. まとめ

GitHubのラベルとマイルストーン機能は、シンプルでありながら強力なプロジェクト管理ツールです。

ラベルは分類と検索性を提供し、マイルストーンは時間軸での進捗管理を実現します。これらを組み合わせることで、以下が達成できます。

  • IssueとPull Requestの体系的な整理
  • プロジェクト進捗の定量的な把握
  • チーム内での情報共有の効率化
  • 新規コントリビューターへの明確な導線

重要なのは、これらの機能がGitHubの標準機能であり、追加のツールやサービスを必要としない点です。既存のワークフローに自然に組み込むことができます。

プロジェクトの規模や特性に応じてラベル体系とマイルストーン構成をカスタマイズすることで、より効果的なプロジェクト管理が実現します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?