What it does
Automates code review by listening for a comment trigger on GitLab merge requests, summarising the diff, and using an LLM to post constructive, line‑specific feedback. If a JIRA ticket ID is found in the MR description, the ticket’s summary is used to inform the AI review.
Use cases
- Quickly obtain high‑quality feedback on MRs without waiting for peers.
- Highlight logic, security or performance issues that might slip through cursory reviews.
- Incorporate project context by pulling in related JIRA ticket summaries.
Good to know
- Triggered by commenting
ai-review
on a merge request.
- The LLM returns only high‑value findings; if nothing critical is detected, the workflow posts an “all clear” message.
- You can swap out the LLM (Gemini, OpenAI, etc.) or adjust the prompt to fit your team’s guidelines.
- AI usage may incur costs or be geo‑restricted depending on your provider n8n.io.
How it works
-
Webhook listener: A Webhook node captures GitLab note events and filters for the trigger phrase.
-
Fetch & parse: The workflow retrieves MR details and diffs, splitting each change into “original” and “new” code blocks.
-
Optional JIRA context: If your MR description includes a JIRA key (e.g., PROJ-123), the workflow fetches the ticket (and parent ticket for subtasks) and composes a brief context summary.
-
LLM review: The parsed diff and optional context are sent to an LLM with instructions to identify logic, security or performance issues and suggest improvements.
-
Post results: Inline comments are posted back to the MR at the appropriate file/line positions; if no issues are found, a single “all clear” note is posted.
How to use
- Import the template JSON and open the Webhook node. Replace the
REPLACE_WITH_UNIQUE_PATH
placeholder with your desired path and configure a GitLab project webhook to send MR comments to that URL.
- Select your LLM credentials in the Gemini (or other LLM) node, and optionally add JIRA credentials in the JIRA nodes.
- Activate the workflow and comment
ai-review
on any merge request to test it.
- For each review, the workflow posts status updates (“AI review initiated…”) and final comments.
Requirements
- A GitLab project with a generate Personal Access Token (PAT) stored as an environment variable (
GITLAB_TOKEN
).
- LLM credentials (e.g., Google Gemini) and optional JIRA credentials.
Customising this workflow
- Change the trigger phrase in the Trigger Phrase Filter node.
- Modify the LLM prompt to focus on different aspects (e.g., style, documentation).
- Filter out certain file types or directories before sending diffs to the LLM.
- Integrate other services (Slack, email) to notify teams when reviews are complete.