GitHub ProjectsとIssuesでチームの開発を管理

1. はじめに

チーム開発では、タスクの可視化や進捗管理が重要です。GitHubは、IssuesやProjectsを活用することで、開発タスクを効率的に管理できます。特に、Issuesを使ったタスク管理(ラベルやマイルストーンの活用)GitHub Projectsでのカンバンボード作成・運用は、プロジェクトの進行をスムーズにします。

また、IssueテンプレートやPull Requestテンプレートの設定により、開発の標準化を進められます。さらに、ワークフロー自動化(プロジェクトへの自動追加など)を組み込めば、手作業を減らし、開発の生産性を向上できます。

本記事では、GitHubを活用したタスク管理のベストプラクティスを詳しく解説します。


2. Issuesを使ったタスク管理

2.1 Issuesとは?

GitHubのIssuesは、タスクやバグを管理するための機能です。個々のIssueを作成し、進捗を管理することで、チーム全体で作業を明確化できます。

2.2 Issueの作成と基本管理

Issueは、以下の手順で作成できます。

  1. リポジトリの「Issues」タブを開く
  2. 「New issue」ボタンをクリック
  3. タイトルと内容を記入
  4. 適切なラベルやマイルストーンを設定(詳細は後述)
  5. 「Submit new issue」をクリックして作成

2.3 ラベルを活用した分類

ラベルを使用すると、Issueをカテゴリごとに分類できます。
例えば、以下のようなラベルを設定すると、管理がしやすくなります。

ラベル名用途
bugバグ報告
feature新機能の提案
documentationドキュメント関連
high priority優先度の高いタスク
help wanted他の開発者の支援が必要

ラベルを追加するには、Issueの右側にある「Labels」セクションから適用できます。

2.4 マイルストーンを活用した進捗管理

マイルストーンを使うと、複数のIssueをまとめて管理し、期日を設定できます。

マイルストーンの作成方法

  1. リポジトリの「Issues」タブを開く
  2. 「Milestones」タブをクリック
  3. 「New milestone」を選択
  4. タイトル(例: "v1.0 Release")と期日を設定
  5. 「Create milestone」をクリック

3. GitHub Projectsでカンバンボードを作成・運用

3.1 GitHub Projectsとは?

GitHub Projectsは、カンバン方式でタスクを視覚的に管理できるプロジェクトボードです。
IssueやPull Requestと連携し、開発の進行状況をリアルタイムで確認できます。

3.2 カンバンボードの作成

  1. リポジトリの「Projects」タブを開く
  2. 「New project」をクリック
  3. テンプレート(Board, Tableなど)を選択
  4. カラム(To Do, In Progress, Done)を設定
  5. Issueをドラッグ&ドロップで管理

3.3 カスタムワークフローの活用

カンバンボードは、以下のようなカスタマイズが可能です。

  • 自動カラム移動:
    Issueのステータス変更に応じてカラムを移動
  • フィルタ機能:
    特定のラベルや担当者でフィルタリング
  • プロジェクトビューの切り替え:
    ボードビュー、テーブルビューを用途に応じて変更

4. IssueテンプレートとPull Requestテンプレートの設定

4.1 Issueテンプレートの設定

Issueのフォーマットを統一するために、.github/ISSUE_TEMPLATE/ディレクトリにテンプレートを作成します。

例: バグ報告テンプレート(bug_report.md)

---
name: 🐛 バグ報告
about: バグの詳細を記入してください
labels: bug
---

### 🐞 バグの概要
どのような問題が発生しましたか?

### ✅ 再現手順
1. **手順 1**
2. **手順 2**
3. **手順 3**

### 📷 スクリーンショット(任意)
スクリーンショットがあれば添付してください。

### 💻 環境情報
- OS: [例: Windows 11, macOS Ventura]
- ブラウザ: [例: Chrome, Firefox]

4.2 Pull Requestテンプレートの設定

Pull Requestのフォーマットを統一するために、.github/PULL_REQUEST_TEMPLATE.md を作成します。

例: PRテンプレート

## ✨ 概要
このPRの目的を記入してください。

## 🔧 変更内容
- [ ] 修正点1
- [ ] 修正点2

## ✅ チェックリスト
- [ ] コードレビューを依頼済み
- [ ] CI/CDが成功している
- [ ] ドキュメントを更新済み(必要な場合)

5. ワークフロー自動化(プロジェクトへの自動追加など)

GitHub Actionsを活用すれば、Issueの作成やPull Requestの発行時に、プロジェクトへ自動で追加できます。

5.1 Issue作成時にプロジェクトへ自動追加

name: Auto Add to Project

on:
issues:
types: [opened]

jobs:
add_to_project:
runs-on: ubuntu-latest
steps:
- name: Add issue to project
uses: actions/add-to-project@v1
with:
project-url: https://github.com/orgs/my-org/projects/1
github-token: ${{ secrets.GITHUB_TOKEN }}

5.2 PR作成時にラベルを自動適用

name: Auto Label PRs

on:
pull_request:
types: [opened]

jobs:
label_pr:
runs-on: ubuntu-latest
steps:
- name: Apply Labels
uses: actions/labeler@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/labeler.yml

6. まとめ

本記事では、GitHubを活用したチームのタスク管理方法を解説しました。

Issuesを使ったタスク管理(ラベル、マイルストーン)
GitHub Projectsでカンバンボードを作成・運用
IssueテンプレートとPull Requestテンプレートの設定
ワークフロー自動化(プロジェクトへの自動追加など)

GitHubの強力な管理機能を活用し、開発チームの生産性を向上させましょう!

採用情報 長谷川 横バージョン
SHARE