Skip to the content.

👨‍💻 開発者へ

Workflow の内部構成やスクリプトの詳細など、開発者向けの技術情報をまとめています。

(ここをクリック)目次

🗺️ Workflow 全体像

flowchart TD
    root["GitHub Actions"]

    root --> A
    root --> B
    root --> G
    root --> C
    root --> D
    root --> F

    subgraph projects ["GitHub Projects 用"]
        A["① Project 新規作成"]
        B["② Project 拡張"]
        D["⑤ Issue/PR 一括紐付け"]
        F["⑥ 統合 Project 分析"]
    end

    subgraph repos ["GitHub Repository 用"]
        G["③ 特殊 Repository 一括作成"]
        C["④ Issue Label 一括追加"]
    end

📁 構成ファイル

.github/
  ├── actions/
  │   └── workflow-summary/
  │       └── action.yml                    # Workflow サマリー出力アクション
  └── workflows/
      ├── 01-create-project.yml             # ① Project 新規作成 Workflow
      ├── 02-extend-project.yml             # ② Project 拡張 Workflow
      ├── _reusable-extend-project.yml      # Project 拡張(Reusable Workflow)
      ├── 03-create-special-repos.yml       # ③ 特殊 Repository 一括作成 Workflow
      ├── 04-setup-repository-labels.yml    # ④ Issue Label 一括追加 Workflow
      ├── 05-add-items-to-project.yml       # ⑤ Issue/PR 一括紐付け Workflow
      └── 06-analyze-project.yml            # ⑥ 統合 Project 分析 Workflow
scripts/
  ├── config/
  │   ├── project-status-options.json          # カスタム Status 定義
  │   ├── project-field-definitions.json       # カスタム Field 定義
  │   ├── project-view-definitions.json        # View 定義
  │   ├── repository-label-definitions.json    # Issue Label 定義
  │   ├── special-repo-definitions-user.json   # 個人アカウント用特殊 Repository定義
  │   └── special-repo-definitions-org.json    # Organization 用特殊 Repository定義
  ├── lib/
  │   └── common.sh                    # 共通関数ライブラリ
  ├── setup-github-project.sh          # Project 作成スクリプト
  ├── setup-project-status.sh          # カスタム Status 作成スクリプト
  ├── setup-project-fields.sh          # カスタム Field 作成スクリプト
  ├── setup-project-views.sh           # View 作成スクリプト
  ├── create-special-repos.sh          # 特殊 Repository 一括作成スクリプト
  ├── setup-repository-labels.sh       # Issue Label 一括作成スクリプト
  ├── add-items-to-project.sh          # Item 一括追加スクリプト
  ├── export-project-items.sh          # Item エクスポートスクリプト
  ├── detect-stale-items.sh            # 滞留 Item 検知スクリプト
  ├── generate-summary-report.sh       # Project サマリーレポート生成スクリプト
  ├── generate-effort-report.sh        # 工数集計レポート生成スクリプト
  └── generate-velocity-report.sh      # ベロシティレポート生成スクリプト

⚙️ 各 Workflow の構成

① GitHub Project 新規作成

01-create-project.yml
  ├── create-project Job
  │   └── scripts/setup-github-project.sh        # Project 作成
  ├── extend-project Job(_reusable-extend-project.yml)
  │   ├── scripts/setup-project-status.sh        # カスタム Status 作成
  │   ├── scripts/setup-project-fields.sh        # カスタム Field 作成
  │   └── scripts/setup-project-views.sh         # View 作成
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

② GitHub Project 拡張

02-extend-project.yml
  ├── extend-project Job(_reusable-extend-project.yml)
  │   ├── scripts/setup-project-status.sh        # カスタム Status 作成
  │   ├── scripts/setup-project-fields.sh        # カスタム Field 作成
  │   └── scripts/setup-project-views.sh         # View 作成
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

③ 特殊 Repository 一括作成

03-create-special-repos.yml
  ├── create-special-repos Job
  │   └── scripts/create-special-repos.sh        # オーナータイプ自動判定 → 一括作成
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

④ Issue Label 一括追加

04-setup-repository-labels.yml
  ├── setup-repository-labels Job
  │   └── scripts/setup-repository-labels.sh     # Issue Label 一括作成
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

⑤ Issue/PR 一括紐付け

05-add-items-to-project.yml
  ├── add-items Job
  │   └── scripts/add-items-to-project.sh        # Item 一括追加
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

⑥ 統合 Project 分析

06-analyze-project.yml
  ├── generate-summary-report Job(report_types: all or summary)
  │   ├── scripts/generate-summary-report.sh     # サマリーレポート生成
  │   └── actions/upload-artifact                # サマリーレポートを保存
  ├── generate-effort-report Job(report_types: all or effort)
  │   ├── scripts/generate-effort-report.sh      # 工数集計レポート生成
  │   └── actions/upload-artifact                # 工数レポートを保存
  ├── detect-stale-items Job(report_types: all or stale)
  │   ├── scripts/detect-stale-items.sh          # 滞留 Item 検知
  │   └── actions/upload-artifact                # 滞留レポートを保存
  ├── generate-velocity-report Job(report_types: all or velocity)
  │   ├── scripts/generate-velocity-report.sh    # ベロシティレポート生成
  │   └── actions/upload-artifact                # ベロシティレポートを保存
  ├── export-items Job(report_types: all or export)
  │   ├── scripts/export-project-items.sh        # Item エクスポート
  │   └── actions/upload-artifact                # エクスポートファイルを保存
  ├── workflow-summary-failure Job(失敗時)
  │   └── .github/actions/workflow-summary       # 失敗サマリー出力
  └── workflow-summary-success Job(成功時)
      └── .github/actions/workflow-summary       # 成功サマリー出力

📜 スクリプト詳細

スクリプト 概要
setup-github-project.sh Fork 先の個人用アカウント/Organization に Project を新規作成する
setup-project-status.sh BacklogTodoIn ProgressIn ReviewDone のカスタム Status を作成する
setup-project-fields.sh 見積もり工数(h)開始予定終了予定実績工数(h)開始実績終了実績終了期日依頼元 のカスタム Field を作成する
setup-project-views.sh TableBoardRoadmap の 3 種類の View を作成する
create-special-repos.sh オーナータイプを自動判定し、特殊 Repository(プロフィール README、GitHub Pages、dotfiles 等)を一括作成する
setup-repository-labels.sh 指定 Repository に対して、設定ファイルで定義した Issue Label を一括作成する
add-items-to-project.sh 指定 Repository の Issue/PR を Project に一括追加する。追加済み Item は自動スキップ
export-project-items.sh 指定 Project の Issue/PR 一覧を取得し、指定形式でエクスポートする
detect-stale-items.sh 指定 Project の Item を走査し、 Status 別の閾値に基づいて滞留 Item を検知する
generate-summary-report.sh 指定 Project の Item を Status 別・担当者別・ Label 別に集計しサマリーレポートを生成する
generate-effort-report.sh 指定 Project の見積もり工数・実績工数を多角的に集計・分析しレポートを生成する
generate-velocity-report.sh 指定 Project の Done Item を週別に集計し、ベロシティレポートを生成する