iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Software Development

AI 驅動的 Code Review:MCP 與 n8n 自動化實踐系列 第 16

[Day16] n8n + AI + MCP 整合流程 - Part 6:透過 HTTP Request Tool 實現 GitLab 自動化 Code Review

  • 分享至 

  • xImage
  •  

n8n + AI + MCP 整合流程 - Part 6:透過 HTTP Request Tool 實現 GitLab 自動化 Code Review

前言

在前一篇文章中,我們發現內建的 GitLab Tool 功能有限,無法滿足我們的需求。因此,今天我們將採用 HTTP Request Tool 來完成自動化 Code Review 的功能。

整合架構圖

三種實作方案比較

針對 GitLab 整合,我們有以下三種選擇:

  1. n8n 內建 GitLab Tool
  2. 使用 HTTP Request Tool(本篇重點)
  3. 自建 MCP Server

本篇文章將詳細介紹第二種方案的完整實作過程。

使用 HTTP Request Tool 直接調用 GitLab API

當內建工具無法滿足特定需求時,直接調用 GitLab API 是一個靈活且強大的解決方案。讓我們一步步來實現這個功能。

步驟 1:新增 HTTP Request Tool

首先,在 n8n 工作流程中選擇 HTTP Request Tool 作為我們的自定義 API 調用工具:

選擇 HTTP Request Tool

步驟 2:詳細配置 API 請求參數

接下來,我們需要設定以下關鍵參數來確保 API 調用能夠正常運作:

基本配置:

  • Description: Get Merge Request Diff
  • Method: GET

API URL 動態設定:

https://{gitlab-url}/api/v4/projects/{{ $json["body"]["project"]["id"] }}/merge_requests/{{ $json["body"]["object_attributes"]["iid"] }}/changes

身份認證設定:

  • Header Key: PRIVATE-TOKEN
  • Header Value: 您的 GitLab Access Token

HTTP Request 配置

⚠️ 安全提醒:關於 Access Token 的權限管理和安全最佳實務,我們將在後續章節中詳細說明。

步驟 3:驗證 API 連接

配置完成後,點擊「Execute Step」來測試 API 調用是否能夠成功執行:

API 測試結果

整合 AI Agent 實現智能 Code Review

優化 AI Agent Prompt 設定

回到 AI Agent 節點,我們需要更新 Prompt 內容以充分利用新的 HTTP Request Tool:

請使用 http request tool - get diff merge request 工具取得合併請求的差異內容,並進行全面的 code review。

請求參數配置:
- project_id: {{ $json.body.project.id }}
- merge_request_iid: {{ $json.body.object_attributes.iid }}
- source_branch: {{ $json.body.object_attributes.source_branch }}
- view: "parallel"

請針對程式碼變更提供詳細且具建設性的審查意見,重點包括:

1. **程式碼品質分析** - 評估代碼的可讀性、結構和風格
2. **潛在問題識別** - 找出可能的錯誤、安全漏洞或性能問題
3. **改善建議** - 提供具體可行的優化方案
4. **最佳實務檢查** - 確認是否符合團隊的編程規範

請以專業且友善的語調提供回饋,幫助開發者提升代碼品質。

執行 AI Agent 測試

更新 Prompt 後,執行 AI Agent 來驗證整個流程:

AI Agent Prompt 更新

完整工作流程展示

以下是完整的工作流程示意圖:

完整工作流程

本篇小結

今天我們成功地透過 HTTP Request Tool 讓 AI Agent 能夠直接存取 GitLab API,實現了功能完整的自動化 Code Review 系統。這種實作方法的主要優勢包括:

  • 靈活性高 - 可以調用任何 GitLab API 端點
  • 控制權完整 - 能夠精確控制請求參數和回應處理
  • 擴展性強 - 容易根據需求調整和優化

雖然這種方法需要手動配置 API 調用的細節,但它提供了比內建工具更大的彈性和控制能力。


下一篇預告: 我們將更進一步,建立屬於自己的 MCP Server,實現更強大的多工具整合功能,讓 MCP Client 能夠一次性存取多個不同的工具和服務,打造更加完善的自動化工作流程。


上一篇
[Day 15] n8n + AI + MCP 整合流程 - Part 5:內建 GitLab Tool
下一篇
[Day17] n8n + AI + MCP 整合流程 - Part 7 最終篇:自建 MCP Server 讓 MCP Client 連線
系列文
AI 驅動的 Code Review:MCP 與 n8n 自動化實踐22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言