AI code review.
On your terms.

Your GitLab. Your model. Your rules.

Full public self-hosted release in preparation · Evaluation source on request

Illustrative review

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()
Null Review

SQL injection risk

Keep SQL and user input separate.
Pass values as parameters.

New SHA → Re-review → CI + team decision

Know what the model sees.

Code, access and rules come together in a saved context. Follow the path.

What happens to your code

From code to a finding

  1. GitLabMR · SHA

    Read the selected revision

  2. IdentityTenant · ACL

    Check current access

  3. ContextPackDiff · files · rules

    Pin source and policy versions

  4. Review modelAPI / CLI

    Send the approved context

  5. DraftPostgreSQL

    Save the finding before publishing

A model receives selected material. The team controls publication and merge.

Three kinds of stored data

  1. Source filesSHA · blob · hash

    Private read-only snapshots

  2. QdrantVectors · metadata

    A separate index for each tenant

  3. 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

  1. IdentityUser → tenant → role

    Trusted identity, checked per request

  2. Private servicesControl · Connector · Worker · Context

    Service token and exact tenant scope

  3. 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.

Explore the architecture →

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

GitLabNull ReviewPostgreSQL + QdrantYour model

Your team installs, updates and restores the system.

Enterprise

GitLabNull ReviewPostgreSQL + QdrantYour model

The same deployment. We agree on SSO, policies, acceptance and support together.

Compare responsibilities →

Start with a workflow you need.

Inspect the source, installation path and a small review first.