feat: GitHub完全活用ガイド - 包括的な解説書とWebサイトを追加

🎯 主要機能:
- GitHub機能の網羅的解説書 (10章構成)
- 外部ツール代替戦略とコスト分析
- 実践的な設定例とベストプラクティス
- 実務ケーススタディと段階的移行計画

🌐 GitHub Pages Webサイト:
- Jekyll設定とレスポンシブデザイン
- 自動デプロイワークフロー
- 美しいランディングページ
- SEO最適化とモバイル対応

📊 期待効果:
- 年間37%のコスト削減
- 開発効率2倍向上
- セキュリティ強化

🚀 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
marketing-shibata50 2025-07-20 11:21:37 +09:00
commit 1e2b71e1b3
17 changed files with 4250 additions and 0 deletions

View file

@ -0,0 +1,413 @@
# 📁 GitHub リポジトリ基礎
GitHubリポジトリの基本的な機能と操作方法を網羅的に解説します。
## 🎯 学習目標
- リポジトリの作成から管理まで一連の操作をマスター
- ブランチ戦略の理解と実践
- タグとリリースの効果的な活用
- 外部ツールとの違いを理解
## 📚 目次
1. [リポジトリ作成・初期設定](#1-リポジトリ作成初期設定)
2. [ブランチ管理](#2-ブランチ管理)
3. [コミット管理](#3-コミット管理)
4. [タグ・リリース管理](#4-タグリリース管理)
5. [リポジトリ設定](#5-リポジトリ設定)
6. [外部ツールとの比較](#6-外部ツールとの比較)
---
## 1. リポジトリ作成・初期設定
### 🚀 新規リポジトリ作成
#### Web UIでの作成
```markdown
1. GitHub.com にログイン
2. 右上の「+」→「New repository」
3. 必要な設定を入力:
- Repository name: プロジェクト名
- Description: プロジェクトの説明
- Public/Private: 公開範囲
- README: 初期化オプション
- .gitignore: 言語・フレームワーク選択
- License: ライセンス選択
```
#### CLI (GitHub CLI) での作成
```bash
# 基本的なリポジトリ作成
gh repo create my-project --public --description "プロジェクトの説明"
# README、.gitignore、ライセンス付きで作成
gh repo create my-project --public --add-readme --gitignore Node --license MIT
# ローカルディレクトリから作成
gh repo create --source=. --public --push
```
### 🔧 初期設定のベストプラクティス
#### 1. README.md の充実
```markdown
# プロジェクト名
## 概要
プロジェクトの目的と機能の簡潔な説明
## インストール
```bash
npm install
```
## 使用方法
基本的な使い方のサンプル
## 貢献方法
コントリビューションガイドライン
## ライセンス
ライセンス情報
```
#### 2. .gitignore の設定
```bash
# GitHub提供のテンプレートを使用
curl -s https://api.github.com/gitignore/templates/Node > .gitignore
# 独自の設定を追加
echo "# Custom ignores
*.log
.env.local
dist/" >> .gitignore
```
---
## 2. ブランチ管理
### 🌳 ブランチ戦略
#### Git Flow
```mermaid
graph LR
A[main] --> B[develop]
B --> C[feature/login]
B --> D[feature/payment]
C --> B
D --> B
B --> E[release/v1.0]
E --> A
E --> B
A --> F[hotfix/security-fix]
F --> A
F --> B
```
#### GitHub Flow (推奨)
```mermaid
graph LR
A[main] --> B[feature/new-component]
B --> C[Pull Request]
C --> D[Code Review]
D --> E[Merge to main]
E --> F[Deploy]
```
### 📋 ブランチ操作
#### ローカルでのブランチ作成
```bash
# 新しいブランチを作成して切り替え
git checkout -b feature/user-authentication
# またはGit 2.23以降)
git switch -c feature/user-authentication
# リモートにプッシュ
git push -u origin feature/user-authentication
```
#### GitHub Web UIでのブランチ作成
```markdown
1. リポジトリページで「main」ブランチ選択部分をクリック
2. 新しいブランチ名を入力
3. 「Create branch: branch-name from main」をクリック
```
#### GitHub CLI でのブランチ作成
```bash
# ブランチ作成とチェックアウト
gh repo fork --clone
cd repository-name
git checkout -b feature/new-feature
# 変更をプッシュ
git push origin feature/new-feature
```
### 🛡️ ブランチ保護設定
#### main ブランチの保護
```markdown
1. Settings → Branches
2. 「Add rule」をクリック
3. Branch name pattern: `main`
4. 設定項目:
✅ Require a pull request before merging
✅ Require approvals (推奨: 1人以上)
✅ Dismiss stale PR approvals when new commits are pushed
✅ Require status checks to pass before merging
✅ Require branches to be up to date before merging
✅ Require conversation resolution before merging
✅ Restrict pushes that create files larger than 100MB
```
---
## 3. コミット管理
### 📝 効果的なコミットメッセージ
#### Conventional Commits 形式
```bash
# 形式: <type>[optional scope]: <description>
git commit -m "feat(auth): add user authentication system"
git commit -m "fix(api): resolve timeout issue in user endpoint"
git commit -m "docs: update README with installation guide"
git commit -m "refactor(utils): simplify date formatting function"
```
#### タイプ一覧
- `feat`: 新機能
- `fix`: バグ修正
- `docs`: ドキュメント変更
- `style`: コードスタイル変更(機能に影響なし)
- `refactor`: リファクタリング
- `test`: テスト追加・修正
- `chore`: ビルド・設定ファイル変更
### 🔍 コミット履歴の管理
#### 履歴の確認
```bash
# グラフィカルな履歴表示
git log --graph --oneline --all
# 特定のファイルの履歴
git log --follow -- path/to/file
# GitHub CLI での履歴確認
gh repo view --web
```
#### コミットの修正
```bash
# 最後のコミットメッセージを修正
git commit --amend -m "corrected commit message"
# 複数のコミットを整理(インタラクティブリベース)
git rebase -i HEAD~3
```
---
## 4. タグ・リリース管理
### 🏷️ タグの作成と管理
#### セマンティックバージョニング
```bash
# アノテートタグの作成
git tag -a v1.0.0 -m "Version 1.0.0 - Initial release"
# ライトウェイトタグの作成
git tag v1.0.1
# タグをリモートにプッシュ
git push origin v1.0.0
# すべてのタグをプッシュ
git push origin --tags
```
#### GitHub CLI でのタグ作成
```bash
# タグ作成とリリース同時作成
gh release create v1.0.0 --title "Version 1.0.0" --notes "初回リリース"
# プレリリース作成
gh release create v1.1.0-beta --prerelease --title "Beta Release" --notes "ベータ版"
```
### 📦 リリース管理
#### GitHub Releases の活用
```markdown
1. リポジトリページ → Releases → Create a new release
2. 設定項目:
- Tag version: v1.0.0
- Release title: Version 1.0.0 - New Features
- Description: リリースノート(変更点、新機能など)
- Attach binaries: ビルド成果物のアップロード
- Pre-release: ベータ版の場合はチェック
```
#### 自動リリースノート生成
```yaml
# .github/release.yml
changelog:
exclude:
labels:
- ignore-for-release
categories:
- title: Breaking Changes 🛠
labels:
- Semver-Major
- breaking-change
- title: Exciting New Features 🎉
labels:
- Semver-Minor
- enhancement
- title: Bug Fixes 🐛
labels:
- Semver-Patch
- bug
```
---
## 5. リポジトリ設定
### ⚙️ 一般設定
#### 基本情報の設定
```markdown
Settings → General:
- Repository name: 名前変更
- Description: 説明文
- Website: プロジェクトURL
- Topics: 検索用タグ
- Include in the home page: 個人ページでの表示設定
```
#### 機能の有効/無効
```markdown
Features:
✅ Wikis: プロジェクトドキュメント
✅ Issues: バグ報告・機能要望
✅ Sponsorships: スポンサー機能
✅ Preserve this repository: アーカイブ設定
✅ Discussions: コミュニティディスカッション
Pull Requests:
✅ Allow merge commits
✅ Allow squash merging
✅ Allow rebase merging
✅ Always suggest updating pull request branches
✅ Automatically delete head branches
```
### 🔐 セキュリティ設定
#### セキュリティ機能の有効化
```markdown
Settings → Security:
✅ Dependency graph: 依存関係の可視化
✅ Dependabot alerts: 脆弱性アラート
✅ Dependabot security updates: 自動セキュリティアップデート
✅ Dependabot version updates: 依存関係の自動更新
```
---
## 6. 外部ツールとの比較
### 📊 機能比較表
| 機能 | GitHub | GitLab | Bitbucket | SVN | 備考 |
|------|--------|--------|-----------|-----|------|
| リポジトリホスティング | ✅ | ✅ | ✅ | ❌ | GitHubは最大規模 |
| ブランチ管理 | ✅ | ✅ | ✅ | ❌ | SVNはtrunk/branches |
| タグ・リリース | ✅ | ✅ | ✅ | ✅ | GitHubのReleasesが最も充実 |
| Web UI | ✅ | ✅ | ✅ | ❌ | GitHubが最もユーザーフレンドリー |
| CLI ツール | ✅ | ✅ | ❌ | ❌ | GitHub CLIが最も強力 |
| ブランチ保護 | ✅ | ✅ | ✅ | ❌ | セキュリティルールの充実度 |
### 🔄 移行時のポイント
#### SVN → Git 移行
```bash
# SVNリポジトリをGitに変換
git svn clone http://svn.example.com/project
# GitHubリポジトリを作成
gh repo create migrated-project --public
# コードをプッシュ
git remote add origin https://github.com/username/migrated-project.git
git push -u origin main
```
#### 他のGitホスティングサービスからの移行
```bash
# 既存リポジトリをクローン
git clone --mirror https://gitlab.com/user/old-repo.git
# GitHubに新しいリポジトリを作成
gh repo create new-repo --public
# ミラーをプッシュ
cd old-repo.git
git remote set-url origin https://github.com/user/new-repo.git
git push --mirror
```
---
## 🎓 実践演習
### 演習1: リポジトリ作成から保護設定まで
1. 新しいリポジトリを作成
2. README、.gitignore、ライセンスを設定
3. developブランチを作成
4. main ブランチに保護ルールを設定
### 演習2: ブランチ戦略の実践
1. feature ブランチを作成
2. 機能を実装してコミット
3. プルリクエストを作成
4. マージ後のブランチクリーンアップ
### 演習3: リリース管理
1. セマンティックバージョンでタグ作成
2. リリースノートを作成
3. バイナリファイルの添付
4. 自動リリースノート設定
---
## 🔗 関連リソース
- [GitHub Docs - Repositories](https://docs.github.com/en/repositories)
- [GitHub CLI Manual](https://cli.github.com/manual/)
- [Git Documentation](https://git-scm.com/doc)
- [Semantic Versioning](https://semver.org/)
- [Conventional Commits](https://www.conventionalcommits.org/)
---
## 📝 まとめ
GitHub リポジトリの基本機能をマスターすることで:
**効率的なコード管理** - ブランチ戦略によるチーム開発の最適化
**品質保証** - ブランチ保護とレビュープロセスによる品質維持
**リリース管理** - タグとリリース機能による体系的なバージョン管理
**セキュリティ** - 適切な設定による安全なコード管理
次は[Issue管理編](02-issues-management.md)で、プロジェクト管理の基礎を学習しましょう。

View file

@ -0,0 +1,593 @@
# 🎫 GitHub Issues 管理
GitHub Issuesを活用したプロジェクト管理とタスク追跡の完全ガイド。外部のプロジェクト管理ツールを使わずに、効率的な開発プロセスを構築する方法を学習します。
## 🎯 学習目標
- Issuesを使った効果的なタスク管理
- ラベル・マイルストーン・プロジェクトとの連携
- テンプレートによる標準化
- 自動化による効率向上
- 外部ツールJira等との比較理解
## 📚 目次
1. [Issues基本操作](#1-issues基本操作)
2. [ラベル管理](#2-ラベル管理)
3. [マイルストーン管理](#3-マイルストーン管理)
4. [Issueテンプレート](#4-issueテンプレート)
5. [プロジェクトとの連携](#5-プロジェクトとの連携)
6. [自動化・効率化](#6-自動化効率化)
7. [外部ツールとの比較](#7-外部ツールとの比較)
---
## 1. Issues基本操作
### 📝 Issue作成
#### Web UIでの作成
```markdown
1. リポジトリページ → Issues → New issue
2. 入力項目:
- Title: 簡潔で分かりやすいタイトル
- Comment: 詳細な説明Markdown記法使用可能
- Assignees: 担当者の指定
- Labels: 分類用ラベル
- Projects: 関連プロジェクト
- Milestone: 対象マイルストーン
```
#### GitHub CLI での作成
```bash
# 基本的なIssue作成
gh issue create --title "バグ修正: ログイン機能が動作しない" --body "ログインボタンをクリックしても反応がない"
# テンプレートを使用してIssue作成
gh issue create --template bug_report.md
# ラベルと担当者を指定
gh issue create --title "新機能: ユーザープロフィール" --label "enhancement,frontend" --assignee username
```
### 🔍 Issue検索・フィルタリング
#### 高度な検索クエリ
```bash
# オープンなIssuesのみ
is:open is:issue
# 自分が担当のIssues
is:issue assignee:@me
# 特定のラベルが付いたIssues
is:issue label:bug
# 複数条件の組み合わせ
is:issue is:open label:enhancement assignee:username
# 作成日でフィルタ
is:issue created:>2024-01-01
# コメント数でフィルタ
is:issue comments:>5
# マイルストーンでフィルタ
is:issue milestone:"Version 2.0"
```
#### GitHub CLI での検索
```bash
# オープンなバグIssuesを表示
gh issue list --label bug --state open
# 自分が担当のIssuesを表示
gh issue list --assignee @me
# JSONで出力スクリプト処理用
gh issue list --json number,title,labels,assignees
```
### 💬 Issue管理
#### コメントとやり取り
```markdown
# メンション機能
@username こちらの件、確認をお願いします。
# 他のIssue参照
この問題は #123 と関連があります。
# コミット参照
この修正は a1b2c3d で対応済みです。
# PR参照
修正は #45 で対応中です。
```
#### Issue状態管理
```bash
# CLI でIssueをクローズ
gh issue close 123 --comment "修正が完了しました"
# 理由を指定してクローズ
gh issue close 123 --reason "completed" # または "not planned"
# Issueを再オープン
gh issue reopen 123
# 担当者を変更
gh issue edit 123 --add-assignee newuser --remove-assignee olduser
```
---
## 2. ラベル管理
### 🏷️ 効果的なラベル体系
#### 推奨ラベル構成
```yaml
# 種類別Type
- bug: バグ報告
- enhancement: 新機能・改善
- documentation: ドキュメント関連
- question: 質問・サポート
- duplicate: 重複Issue
# 優先度別Priority
- priority:high: 緊急度高
- priority:medium: 通常優先度
- priority:low: 低優先度
# 状態別Status
- status:ready: 作業可能
- status:in-progress: 作業中
- status:blocked: ブロックされている
- status:review: レビュー待ち
# 領域別Area
- area:frontend: フロントエンド
- area:backend: バックエンド
- area:api: API関連
- area:ui-ux: UI/UX
- area:performance: パフォーマンス
- area:security: セキュリティ
# サイズ別Effort
- size:small: 小規模1-2日
- size:medium: 中規模3-5日
- size:large: 大規模1週間以上
```
#### ラベル作成と管理
```bash
# GitHub CLI でラベル作成
gh label create "priority:high" --color "FF0000" --description "緊急度の高いタスク"
# 既存ラベルの編集
gh label edit "bug" --color "FF6B6B" --description "バグ報告"
# ラベル一覧表示
gh label list
# ラベル削除
gh label delete "outdated-label"
```
### 🎨 ラベルの色分けとベストプラクティス
#### 色分けの推奨方式
```markdown
🔴 高優先度・緊急: #FF0000 (赤)
🟠 中優先度: #FFA500 (オレンジ)
🟡 低優先度: #FFFF00 (黄)
🟢 完了・承認: #00FF00 (緑)
🔵 情報・質問: #0000FF (青)
🟣 進行中: #800080 (紫)
⚫ ブロック・問題: #000000 (黒)
```
---
## 3. マイルストーン管理
### 🎯 マイルストーンの設計
#### 効果的なマイルストーン例
```markdown
# バージョンベース
- v1.0.0 - 初回リリース (2024-03-01)
- v1.1.0 - 機能追加 (2024-04-15)
- v2.0.0 - メジャーアップデート (2024-06-30)
# 機能ベース
- User Authentication System
- Payment Integration
- Mobile App Support
# 時期ベース
- Q1 2024 Goals
- Summer Release
- Year-end Cleanup
```
#### マイルストーン作成と管理
```bash
# マイルストーン作成
gh issue create-milestone "v1.0.0" --description "初回リリース" --due-date "2024-03-01"
# マイルストーン一覧
gh issue list-milestones
# Issueをマイルストーンに割り当て
gh issue edit 123 --milestone "v1.0.0"
```
### 📊 進捗管理
#### マイルストーン進捗の可視化
```markdown
# マイルストーンページで確認できる情報:
- 全体の進捗率(パーセンテージ)
- オープン・クローズされたIssue数
- 期限までの残り時間
- 各Issueの状態
```
---
## 4. Issueテンプレート
### 📄 テンプレート作成
#### バグ報告テンプレート
```yaml
# .github/ISSUE_TEMPLATE/bug_report.yml
name: 🐛 バグ報告
description: バグを報告するためのテンプレート
title: "[BUG] "
labels: ["bug", "needs-triage"]
assignees:
- maintainer-username
body:
- type: markdown
attributes:
value: |
バグを報告いただき、ありがとうございます。以下の情報を詳しく記入してください。
- type: textarea
id: bug-description
attributes:
label: 🐛 バグの説明
description: バグの詳細な説明を記入してください
placeholder: 何が起こっているか、期待される動作との違いを説明
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: 🔄 再現手順
description: バグを再現する手順を記入してください
placeholder: |
1. ○○のページに移動
2. ○○をクリック
3. ○○を入力
4. エラーが発生
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: ✅ 期待される動作
description: 本来はどのような動作を期待していましたか?
validations:
required: true
- type: textarea
id: environment
attributes:
label: 🖥️ 環境情報
description: 環境に関する情報
placeholder: |
- OS: [例: Windows 10, macOS 13.0, Ubuntu 20.04]
- ブラウザ: [例: Chrome 108, Firefox 107, Safari 16]
- バージョン: [例: v1.2.3]
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: 📋 追加情報
description: スクリーンショット、ログ、その他関連情報があれば記入してください
placeholder: エラーメッセージ、スクリーンショットなど
```
#### 機能要求テンプレート
```yaml
# .github/ISSUE_TEMPLATE/feature_request.yml
name: ✨ 機能要求
description: 新機能や改善の要求
title: "[FEATURE] "
labels: ["enhancement", "needs-discussion"]
body:
- type: markdown
attributes:
value: |
新機能の提案をありがとうございます!
- type: textarea
id: problem-description
attributes:
label: 🎯 解決したい問題
description: この機能によってどのような問題を解決したいですか?
placeholder: 現在困っていることや、改善したい点を説明してください
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: 💡 提案する解決策
description: どのような機能や改善を提案しますか?
placeholder: 具体的な機能の説明や実装案があれば記入してください
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: 🔄 代替案
description: 他に考えられる解決策があれば記入してください
placeholder: 別のアプローチや既存の回避策など
- type: textarea
id: additional-context
attributes:
label: 📋 追加情報
description: 参考資料、モックアップ、外部リンクなど
placeholder: 関連するリンクやファイルがあれば記入してください
```
### ⚙️ テンプレート設定
#### 設定ファイルの作成
```yaml
# .github/ISSUE_TEMPLATE/config.yml
blank_issues_enabled: false
contact_links:
- name: 💬 Q&A ディスカッション
url: https://github.com/username/repo/discussions
about: 質問がある場合はこちらをご利用ください
- name: 📖 ドキュメント
url: https://docs.example.com
about: 使い方やAPIドキュメントはこちら
```
---
## 5. プロジェクトとの連携
### 📋 GitHub Projects 連携
#### Issueの自動プロジェクト追加
```yaml
# .github/workflows/add-to-project.yml
name: Add Issue to Project
on:
issues:
types: [opened]
jobs:
add-to-project:
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.4.0
with:
project-url: https://github.com/users/username/projects/1
github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }}
```
#### ラベルベースの自動ワークフロー
```yaml
# ラベルに応じて列を移動
name: Move Issue Based on Label
on:
issues:
types: [labeled]
jobs:
move-issue:
runs-on: ubuntu-latest
if: github.event.label.name == 'in-progress'
steps:
- name: Move to In Progress
uses: leonsteinhaeuser/project-beta-automations@v2.0.1
with:
gh_token: ${{ secrets.GITHUB_TOKEN }}
user: username
project_id: 1
resource_node_id: ${{ github.event.issue.node_id }}
status_value: "In Progress"
```
---
## 6. 自動化・効率化
### 🤖 GitHub Actions による自動化
#### Issue自動ラベリング
```yaml
# .github/workflows/label-issues.yml
name: Auto Label Issues
on:
issues:
types: [opened]
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/labeler.yml
```
```yaml
# .github/labeler.yml
"area:frontend":
- "**/*.js"
- "**/*.vue"
- "**/*.css"
"area:backend":
- "**/*.py"
- "**/*.go"
- "**/*.java"
"documentation":
- "**/*.md"
- "docs/**/*"
```
#### 古いIssueの自動クローズ
```yaml
# .github/workflows/stale-issues.yml
name: Close Stale Issues
on:
schedule:
- cron: '0 0 * * 0' # 毎週日曜日
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: |
このIssueは60日間活動がありません。
7日以内に活動がない場合、自動的にクローズされます。
close-issue-message: |
このIssueは非アクティブのため自動的にクローズされました。
days-before-stale: 60
days-before-close: 7
```
### 📊 Issue分析・レポート
#### CLI による統計取得
```bash
# Issue統計を取得するスクリプト
#!/bin/bash
echo "=== Issue Statistics ==="
echo "Total Issues: $(gh issue list --limit 1000 --json number | jq length)"
echo "Open Issues: $(gh issue list --state open --limit 1000 --json number | jq length)"
echo "Closed Issues: $(gh issue list --state closed --limit 1000 --json number | jq length)"
echo -e "\n=== Issues by Label ==="
gh issue list --limit 1000 --json labels | jq -r '.[].labels[].name' | sort | uniq -c | sort -nr
echo -e "\n=== Issues by Assignee ==="
gh issue list --limit 1000 --json assignees | jq -r '.[].assignees[].login' | sort | uniq -c | sort -nr
```
---
## 7. 外部ツールとの比較
### 📊 機能比較表
| 機能 | GitHub Issues | Jira | Trello | Linear | 備考 |
|------|---------------|------|--------|--------|------|
| 基本的なIssue管理 | ✅ | ✅ | ✅ | ✅ | 全て対応 |
| カスタムフィールド | ❌ | ✅ | ❌ | ✅ | GitHubはラベルで代用 |
| ワークフロー管理 | ⚠️ | ✅ | ⚠️ | ✅ | GitHubはActionsで実現 |
| 時間トラッキング | ❌ | ✅ | ⚠️ | ✅ | 外部サービス連携が必要 |
| レポート機能 | ⚠️ | ✅ | ❌ | ✅ | APIやInsightsを活用 |
| マイルストーン | ✅ | ✅ | ❌ | ✅ | GitHubのマイルストーン機能 |
| サブタスク | ❌ | ✅ | ✅ | ✅ | GitHubはタスクリストで代用 |
| コード連携 | ✅ | ⚠️ | ❌ | ⚠️ | GitHubが最も強力 |
| コスト | 無料〜 | 有料 | 無料〜 | 有料 | GitHubがコスト効率良い |
### 🔄 Jira からの移行
#### 移行チェックリスト
```markdown
✅ Issue種別 → ラベルでの分類方法決定
✅ ワークフロー → GitHub Projects V2 での再現
✅ カスタムフィールド → ラベルやマイルストーンでの代替
✅ レポート → GitHub API + スクリプトでの実現
✅ 時間管理 → 外部サービス連携の検討
✅ 権限管理 → リポジトリレベルでの設定調整
```
#### 移行スクリプト例
```python
# jira_to_github.py
import requests
import json
def migrate_issues(jira_url, github_repo, token):
# Jira API からIssue取得
jira_issues = fetch_jira_issues(jira_url)
for issue in jira_issues:
# GitHub Issue 形式に変換
github_issue = {
'title': issue['fields']['summary'],
'body': convert_description(issue['fields']['description']),
'labels': map_jira_labels(issue['fields']['labels'])
}
# GitHub API でIssue作成
create_github_issue(github_repo, github_issue, token)
```
---
## 🎓 実践演習
### 演習1: Issue管理システム構築
1. バグ報告と機能要求のテンプレートを作成
2. 体系的なラベル分類を設計
3. マイルストーンを設定してIssueを分類
### 演習2: 自動化ワークフロー作成
1. 新しいIssueの自動ラベリング設定
2. 古いIssueの自動クローズ設定
3. プロジェクトボードとの連携設定
### 演習3: レポート・分析
1. Issue統計取得スクリプトの作成
2. 進捗レポートの自動生成
3. チームパフォーマンス分析
---
## 🔗 関連リソース
- [GitHub Docs - Issues](https://docs.github.com/en/issues)
- [GitHub Issues Templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests)
- [GitHub Projects Documentation](https://docs.github.com/en/issues/planning-and-tracking-with-projects)
- [GitHub CLI Issues](https://cli.github.com/manual/gh_issue)
---
## 📝 まとめ
GitHub Issues を効果的に活用することで:
**統一されたタスク管理** - 外部ツール不要でプロジェクト管理
**コードとの密接な連携** - コミット・PRとのシームレスな連携
**自動化による効率化** - GitHub Actions による作業自動化
**コスト削減** - 有料ツールからの移行によるコスト最適化
**チーム協調** - 透明性の高い情報共有とコミュニケーション
次は[Pull Request編](03-pull-requests.md)で、コードレビューとマージプロセスを学習しましょう。