Security at PRNeuron

A code reviewer sees your most sensitive asset. This page explains exactly what PRNeuron can access, what it keeps, and how it keeps one customer's data away from another's.

What PRNeuron can see

PRNeuron is a GitHub App, so you choose which repositories it can access, and you can change or revoke that from GitHub at any time. It asks for:

  • Contents: read — to read the files around a change and your repository rules.
  • Pull requests: read & write — to read the diff and post the review. Write access is used for nothing else: PRNeuron never pushes code, merges, or changes settings.
  • Metadata: read — required by GitHub for every App.

GitHub access uses installation tokens that expire after an hour. No long-lived GitHub credential is stored.

What we keep, and what we don't

We do not keep a copy of your repository. When a review runs, the diff and the files around it are fetched from GitHub, sent to the model, and discarded. What we store is the output:

  • The review: its summary, verdict and inline comments, with the commit it was about.
  • Explanations of commits and pull requests that someone opened in the history view, so they are not generated twice.
  • Coding-standard documents your organisation chooses to index, and Jira ticket text when Jira is connected, so reviews can refer to them.
  • Usage records — tokens and cost per review — for your usage dashboard and billing.

No training on your code

Reviews run on Claude through Anthropic's commercial API. Under Anthropic's commercial terms, data sent through the API is not used to train its models. PRNeuron does not train models of its own.

Isolation between customers

Every customer table in our database carries the organisation it belongs to, and Postgres row-level security enforces it on every query — including for the application's own database user. A query that forgot to filter by organisation returns nothing, not someone else's data. This isolation is covered by automated tests that run before every deploy.

Encryption

  • In transit: browser and GitHub webhook traffic uses TLS. The database accepts connections only from our application server, over a private network, and requires TLS for anything else.
  • Credentials: integration secrets such as Jira API tokens are envelope-encrypted with keys held in AWS KMS. The plaintext is never written to the database, and only a masked hint is ever shown back.
  • At rest: database storage is on encrypted AWS volumes.
  • Passwords are hashed with Argon2; session and email tokens are stored only as hashes.

Webhooks

Every webhook from GitHub is checked against its HMAC-SHA256 signature before anything else happens, and each delivery is processed once — a redelivered event never triggers a second review or a second charge.

Prompt injection

Repository content is untrusted input. Diffs, files and rules are passed to the model as clearly delimited data that cannot break out of its block, the model must answer in a fixed structure, and rules are read from the pull request's base branch — so a pull request cannot rewrite the rules it is being reviewed against.

Your data, your call

An organisation owner can export everything PRNeuron holds about the organisation, or delete it permanently. Deletion removes reviews, comments, usage records, saved explanations, indexed documents and encrypted credentials. See the Privacy Policy for retention details.

Where it runs

PRNeuron is hosted on Amazon Web Services in the United States (us-east-1). Subprocessors are listed in the Privacy Policy.

Reporting a vulnerability

If you believe you have found a security issue, email [security@your-domain]. Please include steps to reproduce, and give us a reasonable chance to fix it before disclosing it publicly. We will acknowledge your report within [2 business days]. Please do not access other customers' data or degrade the service while testing.