AI code review.
On your terms.
Your GitLab. Your model. Your rules.
Full public self-hosted release in preparation · Evaluation source on request
payments/query.py
39def get_payment(cursor, user_input):40 sql = "SELECT * FROM payments WHERE id = "4142− cursor.execute(sql + user_input)43+ cursor.execute(sql + "%s", [user_input])4445 return cursor.fetchone()SQL injection risk
Keep SQL and user input separate.
Pass values as parameters.
New SHA → Re-review → CI + team decision
Choose how you start.
Know what the model sees.
Code, access and rules come together in a saved context. Follow the path.
From code to a finding
- GitLabMR · SHA
Read the selected revision
- IdentityTenant · ACL
Check current access
- ContextPackDiff · files · rules
Pin source and policy versions
- Review modelAPI / CLI
Send the approved context
- DraftPostgreSQL
Save the finding before publishing
A model receives selected material. The team controls publication and merge.
Three kinds of stored data
- Source filesSHA · blob · hash
Private read-only snapshots
- QdrantVectors · metadata
A separate index for each tenant
- PostgreSQLContextPack · review
Separate databases and service logins
Qdrant stores retrieval vectors and metadata. Source files stay in snapshots; selected context and review records stay in PostgreSQL.
One tenant, its own data owners
- IdentityUser → tenant → role
Trusted identity, checked per request
- Private servicesControl · Connector · Worker · Context
Service token and exact tenant scope
- Separate ownersPostgreSQL · files · Qdrant
Separate logins, paths, volumes and keys
Repository scope is enforced by the API. Repositories inside one service share its SQL role; a compromised process is a separate threat boundary.
Product architecture. Validate your deployment separately.
One real MR.
A visible outcome.
In recorded MR3, the model found a SQL risk. The fix received a separate review.
Inspect the receipt and limits →- Before → after
- 1 SQL finding → 0 findings
- CI
- Passed with operator involvement
- Task acceptance
- Some criteria remain open
One product.
Two ways to operate it.
Run it with your team, or agree on deployment and support together.
Self-hosted
Your team installs, updates and restores the system.
Enterprise
The same deployment. We agree on SSO, policies, acceptance and support together.
Start with a workflow you need.
Inspect the source, installation path and a small review first.