Skip to content

Latest commit

 

History

History
159 lines (125 loc) · 5.99 KB

File metadata and controls

159 lines (125 loc) · 5.99 KB

mr-size

MR 規模分析,檢視規模分佈並識別過大的 MR。

用途

  • 分析 MR 規模分佈(XS / S / M / L / XL)
  • 識別過大的 MR(L 和 XL)
  • 追蹤團隊小批量工作模式

使用方式

# 分析最近 30 天
gitlab-mr mr-size -p your-team/your-project

# 分析最近 60 天
gitlab-mr mr-size -p your-team/your-project --days 60

# 指定日期範圍
gitlab-mr mr-size -p your-team/your-project \
  --since 2025-11-01 --until 2025-11-30

# 顯示過大 MR 清單
gitlab-mr mr-size -p your-team/your-project --oversized

# 顯示月度趨勢
gitlab-mr mr-size -p your-team/your-project --trend

# JSON 輸出
gitlab-mr mr-size -p your-team/your-project --json

參數說明

參數 說明
-p, --project GitLab 專案(ID 或路徑)
-t, --token GitLab Token(或用環境變數 GITLAB_TOKEN
-h, --host GitLab URL(預設 https://gitlab.com
-d, --days 分析最近 N 天(預設 30)
--since 開始日期(YYYY-MM-DD)
--until 結束日期(YYYY-MM-DD)
-l, --limit 限制 MR 數量(預設 100)
-o, --oversized 顯示過大 MR 清單
--trend 顯示月度趨勢
-j, --json JSON 格式輸出
-v, --verbose 詳細輸出

輸出範例

基本輸出(預設)

gitlab-mr mr-size -p your-team/your-project
═══════════════════════════════════════════════════════════════════════════════
MR 規模分析(最近 30 天)
═══════════════════════════════════════════════════════════════════════════════

規模分佈
────────────────────────────────────────────────────────────────────────────────
  XS (1-10 行):      12 (27%)  ████████████
  S  (11-50 行):     18 (40%)  ██████████████████
  M  (51-200 行):    10 (22%)  ██████████
  L  (201-500 行):    4 (9%)   ████
  XL (500+ 行):       1 (2%)   █

健康度評估
────────────────────────────────────────────────────────────────────────────────
  小型 MR 比例 (XS+S): 67% ✓
  建議: 維持 70% 以上為健康

加上 --oversized(過大 MR 清單)

gitlab-mr mr-size -p your-team/your-project --oversized

額外顯示:

過大 MR 清單(L + XL)
────────────────────────────────────────────────────────────────────────────────
┌──────┬────────────────────────┬──────────┬────────┬─────────┐
│ MR   │ 標題                   │ 作者     │ 規模   │ 行數    │
├──────┼────────────────────────┼──────────┼────────┼─────────┤
│ 120  │ Refactor entire module │ dev1     │ XL     │ 850     │
│ 118  │ Add new feature set    │ dev2     │ L      │ 420     │
│ 115  │ Database migration     │ dev1     │ L      │ 380     │
│ 112  │ UI component library   │ dev3     │ L      │ 290     │
│ 108  │ API restructure        │ dev2     │ L      │ 250     │
└──────┴────────────────────────┴──────────┴────────┴─────────┘

⚠️ 建議:大型 MR 應拆分為多個小型 MR,降低審查難度

加上 --trend(月度趨勢)

gitlab-mr mr-size -p your-team/your-project --trend

額外顯示:

月度規模趨勢
────────────────────────────────────────────────────────────────────────────────
  月份        MR 數    小型比例    平均行數    變化
  2025-09      42      58%        145         -
  2025-10      38      62%        120         ↓ 改善
  2025-11      35      67%        95          ↓ 改善

趨勢分析: 小型 MR 比例持續提升 ✓

加上 --verbose(詳細模式)

gitlab-mr mr-size -p your-team/your-project --verbose

額外顯示:

詳細統計
────────────────────────────────────────────────────────────────────────────────
  總 MR 數: 45
  總變更行數: 4,520
  平均行數: 100.4
  中位數行數: 65
  最大行數: 850 (MR #120)
  最小行數: 3 (MR #142)

  按作者分佈:
    dev1: 平均 85 行 (12 MRs)
    dev2: 平均 145 行 (10 MRs)  ⚠️ 偏大
    dev3: 平均 62 行 (8 MRs)

輸出格式比較

參數 輸出內容
(預設) 規模分佈 + 健康度評估
--oversized + 過大 MR 清單(L + XL)
--trend + 月度趨勢變化
--verbose + 詳細統計 + 按作者分佈
--json JSON 格式(適合自動化)

規模分類標準

規模 變更行數
XS 1-10 行
S 11-50 行
M 51-200 行
L 201-500 行
XL 500+ 行