Milestone Shell - BoxPistols/nuxt3-boilerplate GitHub Wiki
title: "GitHubマイルストーン自動生成ツール - クロスプラットフォーム対応" emoji: "📅" type: "tech" topics: ["github", "bash", "cli", "milestone", "スクラム"] published: true
GitHubのマイルストーンを簡単に一括生成・管理するためのBashスクリプトです。MacとLinux(WSL含む)の両方で動作するクロスプラットフォーム対応スクリプトで、スプリント計画などのアジャイル開発に最適です。
- 指定した期間内の特定曜日に終了するマイルストーンを自動生成
- マイルストーン一覧の表示
- マイルストーンの選択削除
- マイルストーンの一括削除
- Mac・Linux(WSL含む)のクロスプラットフォーム対応
- GitHub CLI (
gh
) - jq(JSONパーサー)
- Bash 4.0以上
GitHub CLI
# MacOS
brew install gh
Ubuntu/Debian
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
jq
# MacOS
brew install jq
Ubuntu/Debian
sudo apt install jq
gh auth login
画面の指示に従ってGitHubアカウントの認証を完了させてください。
# リポジトリのクローン(または単一ファイルのダウンロード)
git clone https://github.com/your-username/milestone-generator.git
cd milestone-generator
実行権限の付与
chmod +x milestone.sh
./milestone.sh
スクリプトを実行すると、以下のメニューが表示されます:
操作を選択してください:
1) マイルストーン生成
2) マイルストーン一覧表示
3) マイルストーン選択削除
4) 全マイルストーン削除
q) 終了
このオプションを選択すると、以下の情報を順に入力するよう求められます:
開始日 (YYYY-MM-DD):
2025-01-01
終了日 (YYYY-MM-DD):
2025-03-31
スプリントの終了曜日を選択してください (月=1, 火=2, 水=3, 木=4, 金=5, 土=6, 日=7):
5
スプリントサイクルを週単位で入力してください (例: 1 または 2):
2
開始日が指定曜日と同じ場合、その日を含めますか? (y/n, デフォルトはy):
y
マイルストーンの時間を入力してください (HH:MM 形式, デフォルトは17:00):
17:00
入力が完了すると、指定した期間内の指定曜日(この例では金曜日)ごとにマイルストーンが自動生成されます。
入力項目の説明:
項目 | 説明 |
---|---|
開始日 | マイルストーン生成の開始日(例:2025-01-01) |
終了日 | マイルストーン生成の終了日(例:2025-03-31) |
スプリント終了曜日 | 曜日を数字で指定(月=1, 火=2, 水=3, 木=4, 金=5, 土=6, 日=7) |
スプリントサイクル | 1週間、2週間などスプリントの期間(週単位) |
開始日を含めるか | 開始日が指定曜日と同じ場合、その日をマイルストーンに含めるか |
マイルストーンの時間 | マイルストーンの終了時刻(HH:MM形式) |
生成される各マイルストーンには以下の情報が含まれます:
- タイトル: YY-MM-DD W週番号(例:25-01-03 W01)
- 説明: 期間: YYYY-MM-DD から YYYY-MM-DD (X曜日)
- 期限: 指定した日付と時間
現在のリポジトリに設定されているマイルストーンの一覧を表示します:
マイルストーン一覧:
番号 | リリース日 週番号
----------------------------------------
001 | 25-01-03 W01 (2025-01-03)
002 | 25-01-17 W03 (2025-01-17)
003 | 25-01-31 W05 (2025-01-31)
...
連番、タイトル、日付の形式で表示されます。
特定のマイルストーンを選択して削除します:
削除するマイルストーンを選択してください(複数選択可、スペース区切り):
161: 25-01-03 W01
162: 25-01-17 W03
163: 25-01-31 W05
...
削除したいマイルストーンの番号をスペース区切りで入力すると、選択したマイルストーンが削除されます。
リポジトリ内のすべてのマイルストーンを削除します。確認プロンプトが表示されるので、y
で確定します。
A: 現在のバージョンでは直接UIからは変更できません。カスタマイズが必要な場合はスクリプト内の create_or_update_milestone
関数内の以下の部分を編集してください:
title="$formatted_date W$week_number"
A: はい。GitHub CLIがGitHub Enterpriseに接続できるよう設定されていれば利用可能です。
A: マイルストーン生成時に上書きの確認が表示されます。既存マイルストーンの更新のみを行いたい場合は、期間を限定して実行し、上書き確認で「y」を選択してください。
A: 以下の点を確認してください:
- GitHub CLIが正しく認証されているか
- jqがインストールされているか
- 現在のディレクトリがGitHubリポジトリであるか
このスクリプトはOS検出機能を持ち、MacとLinuxの日付コマンドの違いを自動的に吸収します。uname -s
コマンドを使用してOS種別を判定し、適切な日付処理コマンドを選択します。
GitHub APIへのアクセスにはgh
コマンドを使用し、JSONの処理にはjq
を使用しています。
MITライセンスの下で公開されています。詳細はLICENSEファイルをご覧ください。
バグ報告や機能追加のリクエストは、GitHubのIssuesまたはPull Requestsでお待ちしております。