GitLab 開發者評估與分析技能,使用 gl-cli.py 工具分析開發者的程式碼品質、提交歷史、專案參與度與技術水平,並產生綜合評估報告。
GitLab 開發者評估與分析專家,透過 gl-cli.py 工具深度分析開發者在 GitLab 上的活動與貢獻,提供多維度的技術能力評估。
互動式需求確認
資料收集與分析
gl-cli.py user-stats 取得開發者統計資訊gl-cli.py user-projects 取得開發者專案列表gl-cli.py project-stats 取得專案詳細資訊gl-cli.py group-stats 取得群組資訊(團隊分析)多維度評估 (詳見 程式碼品質評估規範)
報告產生
# 環境設定
cd /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal/scripts
# 取得使用者統計資訊
python3 gl-cli.py user-stats \
--username <開發者名稱> \
--project-name <專案名稱> \
--start-date <開始日期> \
--end-date <結束日期> \
--group-id <群組ID> \
--output <輸出檔案.xlsx>
# 取得使用者專案列表
python3 gl-cli.py user-projects \
--username <開發者名稱> \
--group-name <群組名稱> \
--output <輸出檔案.xlsx>
# 取得專案詳細資訊
python3 gl-cli.py project-stats \
--project-name <專案名稱> \
--group-id <群組ID> \
--output <輸出檔案.xlsx>
# 取得群組資訊
python3 gl-cli.py group-stats \
--group-name <群組名稱> \
--output <輸出檔案.xlsx>
執行前需確保已安裝:
若缺少套件,引導使用者安裝:
cd /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal
source .venv/bin/activate # 如果有虛擬環境
pip install pandas openpyxl urllib3 python-gitlab
詢問使用者:
分析對象
時間範圍
專案範圍
評估維度(多選)
根據使用者選擇,依序執行:
檢查環境
# 確認 gl-cli.py 可用
test -f /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal/scripts/gl-cli.py
# 檢查相依套件
cd /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal/scripts
python3 -c "import pandas, openpyxl, urllib3" 2>&1
收集開發者資料
cd /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal/scripts
python3 gl-cli.py user-stats \
--username <username> \
--start-date <YYYY-MM-DD> \
--end-date <YYYY-MM-DD> \
--output /tmp/dev_stats_<username>.xlsx
收集專案參與資料
python3 gl-cli.py user-projects \
--username <username> \
--output /tmp/dev_projects_<username>.xlsx
讀取並解析輸出檔案
根據收集的資料,分析以下指標(完整評估標準請參考 code-quality-analysis-spec.md):
產生結構化的 Markdown 報告:
# GitLab Developer Assessment Report
## 📊 基本資訊
- **開發者**: <username>
- **分析期間**: <start_date> ~ <end_date>
- **分析專案**: <project_count> 個專案
- **報告生成時間**: <timestamp>
---
## 🎯 綜合評分
| 評估維度 | 評分 | 說明 |
|---------|------|------|
| 提交活躍度 | ⭐⭐⭐⭐☆ (4/5) | 平均每週 X 次提交,表現良好 |
| 程式碼品質 | ⭐⭐⭐⭐⭐ (5/5) | Commit message 規範,變更量合理 |
| 專案貢獻度 | ⭐⭐⭐☆☆ (3/5) | 主要集中在 2 個核心專案 |
| 技術廣度 | ⭐⭐⭐⭐☆ (4/5) | 熟悉多種技術棧 |
**總體評價**: ⭐⭐⭐⭐☆ (4/5)
---
## 📈 活躍度分析
- **總 Commit 數**: X 次
- **平均每週提交**: X 次
- **活躍天數**: X 天 (佔比 X%)
- **最活躍時段**: 週一至週五 9:00-18:00
### 趨勢圖建議
\`\`\`
[建議使用 Excel 開啟輸出檔案,查看詳細統計圖表]
\`\`\`
---
## 💻 程式碼貢獻分析
- **總變更行數**: +X / -Y 行
- **平均每次 Commit**: ~Z 行
- **主要變更類型**:
- 新增功能: X%
- Bug 修復: Y%
- 重構: Z%
### Commit Message 品質
- ✅ 規範性: 良好
- ✅ 描述性: 詳細
- ⚠️ 改善建議: 建議增加 ticket ID 引用
---
## 🚀 專案參與度
| 專案名稱 | Commit 數 | 貢獻度 | 角色 |
|---------|----------|--------|------|
| Project A | X | High | Core Developer |
| Project B | Y | Medium | Contributor |
| Project C | Z | Low | Occasional |
**核心專案**: Project A (貢獻度 X%)
---
## 🔧 技術棧分析
### 程式語言分布
- Python: X%
- JavaScript: Y%
- SQL: Z%
- Others: W%
### 專長領域
- ✅ 後端開發 (Python, API)
- ✅ 資料庫設計 (SQL)
- 🔄 前端開發 (JavaScript) - 持續學習中
---
## 💡 改善建議
1. **提升專案參與廣度**
- 建議參與更多跨團隊協作專案
- 嘗試不同領域的技術挑戰
2. **深化技術深度**
- 在核心專案中承擔更多架構設計工作
- 增加 code review 參與度
3. **知識分享**
- 建議撰寫技術文件或 README
- 參與 issue 討論,分享經驗
---
## 📌 數據來源
本報告資料來源於 GitLab,透過 `gl-cli.py` 工具收集:
- 使用者統計: `user-stats`
- 專案列表: `user-projects`
- 時間範圍: <start_date> ~ <end_date>
---
**報告結束**
\`\`\`
### 第 5 步:後續行動建議
詢問使用者是否需要:
1. **匯出詳細資料**
- Excel 檔案已儲存在: `/tmp/dev_stats_<username>.xlsx`
- 是否需要轉換為 CSV 或其他格式?
2. **進階分析**
- 與團隊平均值比較
- 時間序列趨勢分析
- 特定專案深度分析
3. **持續追蹤**
- 設定定期評估機制
- 建立績效追蹤儀表板
## 錯誤處理
### 常見問題處理
1. **缺少相依套件**
```bash
# 引導安裝
cd /mnt/d/lab/sample.dotblog/Gitlab/Lab.Personal
source .venv/bin/activate
pip install -r requirements.txt
GitLab 連線失敗
config.py 設定無資料返回
權限不足
資料保護
/tmp)效能優化
--group-id 限縮查詢範圍報告品質
使用者體驗
使用者: 幫我分析開發者 john.doe 的表現
Skill: 好的!我將協助您分析 john.doe 的開發表現。請回答以下問題:
1. 分析時間範圍?
a) 最近 1 個月
b) 最近 3 個月
c) 最近 6 個月
d) 自訂(請提供起迄日期)
使用者: b
Skill: 2. 專案範圍?
a) 所有專案
b) 特定專案(請列出專案名稱)
c) 特定群組(請提供群組 ID)
使用者: a
Skill: 3. 評估維度?(可多選)
a) 提交活躍度
b) 程式碼品質
c) 專案參與度
d) 技術棧分析
e) 完整評估(全部)
使用者: e
Skill: 收到!開始執行完整評估...
[執行 gl-cli.py 命令]
[分析資料]
[產生報告]
完成!以下是 john.doe 的評估報告:
[顯示 Markdown 報告]
是否需要:
- 查看詳細 Excel 報告?
- 與團隊平均值比較?
- 匯出報告為檔案?
若需要進階分析,可整合:
Git 本地分析 (若有 clone repository)
git log 分析 commit 歷史git blame 分析程式碼擁有權git diff 分析變更品質程式碼品質工具
視覺化工具
資料準確性
評估侷限
隱私考量
使用此 Skill 時,請確保已設定好 GitLab 環境並擁有適當權限。