Effective date: September 10, 2026
GateTest reads code so that it can tell you what is wrong with it. This policy says exactly what we keep, what we send to which provider, and what we throw away — in the same detail we would want from a tool we pointed at our own repositories.
GateTest ("we", "us", "our") operates gatetest.io, the GateTest command-line tool, the GateTest MCP server and the GateTest apps for GitHub and Gluecron. We are based in New Zealand.
This Privacy Policy explains what personal data we collect, why, how long we keep it, who we share it with, and the rights you have over it. It is written to meet the disclosure requirements of the New Zealand Privacy Act 2020, the EU and UK General Data Protection Regulation (GDPR), and the California Consumer Privacy Act as amended by the CPRA.
Our role. For the data you give us to run your account, take payment and deliver scans, we are the controller (the "agency" under New Zealand law). For personal data that happens to be inside the repositories you ask us to scan, you are the controller and we are your processor: that processing is governed by our Data Processing Addendum, which forms part of the Terms of Service.
Contact. For any question, request or complaint about your personal data, e-mail support@gatetest.io. We do not currently have a separate privacy or security mailbox; that address reaches the people who run the service.
This policy applies to everyone who visits gatetest.io, signs in, buys a scan or subscription, installs one of our git-host apps, runs the CLI or MCP server, or writes to us. It covers the hosted service and the telemetry the CLI can send; it does not cover what the CLI does entirely on your own machine with your own keys, which never leaves your computer.
It does not cover the practices of the git hosts, payment provider or other services we integrate with when they act on their own account. Their policies apply to the accounts you hold with them.
When you sign in with GitHub, GitLab or Google we receive your login name, display name and e-mail address from that provider, plus an OAuth access token. We request only the read:user and user:email scopes. The token is kept inside your encrypted session cookie (see the Cookie Policy) and is not stored in our database.
Checkout is hosted by Stripe. Your card number is entered on Stripe's pages and never reaches our servers. We keep your e-mail address, Stripe customer and payment identifiers, the tier you bought and the repository URL the scan is for. So that a receipt describes what was delivered, the module names that ran and the number of issues found are attached to the payment record.
To scan a repository we fetch an archive of it from your git host into memory (memoised for 120 seconds so a burst of pushes is not fetched repeatedly) and, for the hosted engine, into a temporary workspace on our server. The workspace is deleted when the scan finishes. We do not retain your source code after a scan.
We do retain the results: each finding (rule, message, file path, line number and a short excerpt, all capped in length), the pass/fail verdict, the score and the summary. We also keep scan-queue records: repository, commit SHA, ref and, for pull-request scans, the PR number.
We do not execute your code. Modules that would run customer-controlled programs (mutation, chaos, unitTests, integrationTests, e2e, lint) are skipped by the hosted engine and only run when you invoke them yourself in your own CI.
The CLI and hosted engine send a small usage signal after each scan: module names, rule identifiers, integer counts, verdict, duration, the source (CLI, MCP server, editor extension, CI or hosted) and a random per-scan identifier that lets us recognise a batch sent twice. It never includes code, file paths, repository names, finding text or any customer identifier, and the telemetry store keeps none attached. If you set GATETEST_API_KEY, that same upload also carries the key, so that the scan counts (never the findings) appear in your own account's usage meter; without it nothing is tied to you. It exists so that noisy rules can be found and quietened. Switch it off with GATETEST_NO_TELEMETRY=1 in your environment or "telemetry": false in .gatetest.json.
Our servers see your IP address and ordinary request metadata (URL, method, user agent, timestamps). We use it in memory for rate limiting and, through Sentry, for error monitoring. Sentry also records sampled browser session replays: 10% of sessions, and 100% of sessions in which an error occurs. Request bodies, source code, prompts, keys and cookies are scrubbed before anything is sent.
We set the minimum needed to keep you signed in and nothing for advertising. Every cookie and storage key is listed in the Cookie Policy.
If you e-mail us we keep the correspondence, including anything you choose to attach, so we can help you and refer back to it. Please do not send secrets or full source files unless we ask.
We do not sell personal data, use it for advertising, build profiles for third parties, or use your source code to train any model.
Where the EU or UK GDPR applies, we rely on the following bases under Article 6(1):
GATETEST_NO_TELEMETRY=1. Withdrawing consent does not affect processing that already happened.The deterministic scan — the modules that produce the verdict — uses no AI and sends nothing to any model provider.
AI review and auto-fix (Scan + Fix, Forensic, the fix_issue and explain_finding MCP tools, and gatetest fix in the CLI) send the complete contents of each file being reviewed or fixed, its path and the finding text to Anthropic (Anthropic, PBC). We send whole files rather than snippets because a fix that cannot see the surrounding code is usually a wrong fix.
Anthropic holds API inputs and outputs under its standard 30-day retention. We are not on a zero-data-retention arrangement, and we say so plainly so that you can decide which repositories to point the AI features at. Under Anthropic's commercial terms your content is not used to train its models.
Bring your own key. If you supply your own API key (the CLI and MCP server always use yours; the hosted fix route accepts one per request) it is used for that request only and is never stored, logged or echoed back.
Second opinion. On a Forensic scan you may opt in to a consensus pass that also sends the files being fixed to OpenAI (OpenAI, L.L.C.). Nothing goes there unless you turn it on.
AI output is a suggestion. Every fix is delivered as a branch or pull request for a human to review; we never merge to your default branch.
We are in New Zealand and most of our providers are in the United States, so personal data leaves the country in which it was collected. We rely on:
You can ask us for a copy of the transfer terms that apply to your data.
Each window below is either enforced by code or requires an action by you. We do not delete customer data without your instruction; we do not currently run an automatic purge of scan findings.
| Data | Retention |
|---|---|
| Session cookie | 30 days from sign-in |
| Sign-in state cookie | 10 minutes |
| In-memory repository snapshot | 120 seconds |
| Scan workspace on our server | The duration of the scan, then deleted |
| Account records, scan findings, scan-queue records | Until you ask us to delete them |
| Payment records | Held by Stripe and in our database for as long as tax and accounting law requires |
| Audit log | 7 years |
| Error reports and session replays | Per Sentry's retention; contain no code, bodies or secrets |
| Transactional e-mail | Delivery records held by Resend; we keep the address and the message we sent |
| Telemetry | Indefinitely — it is anonymous and cannot be linked back to you |
| AI provider inputs and outputs | 30 days at Anthropic |
All traffic is encrypted in transit. Your session cookie is encrypted and signed, HttpOnly and Secure. Secrets live in environment configuration, never in code. Git-host access uses short-lived installation tokens with the narrowest permissions the feature needs. Scan workspaces are deleted when the scan ends, and the hosted engine does not execute your code. Error reports are scrubbed of bodies, code, prompts, keys and cookies before they leave our process.
What we do and do not have — including which certifications we hold — is set out on Trust & Security. No transmission or storage is perfectly secure; if you believe your data has been compromised, e-mail us immediately.
Wherever you are, you can ask us to:
How. E-mail support@gatetest.io from the address on your account, saying which right you are exercising. Requests are handled by e-mail; there is no self-serve export or deletion tool yet. We may ask for enough information to confirm you are the account holder.
When. Within 20 working days under the New Zealand Privacy Act 2020, and within one month under the GDPR and UK GDPR (extendable by two further months for complex requests, in which case we will tell you why). Requests are free unless they are manifestly unfounded or excessive.
This section is the notice at collection for California residents under the CCPA as amended by the CPRA. In the preceding 12 months we have collected these categories of personal information:
| Category | Examples | Purpose |
|---|---|---|
| Identifiers | Name, e-mail address, git-host login, IP address | Account, delivery, security |
| Commercial information | Tier purchased, payment identifiers, repository URL on the receipt | Payment, records |
| Internet or network activity | Request logs, error reports, sampled session replays | Security, error monitoring |
| Professional information | Git-host organisation and repository names | Delivering scans to the right place |
Sources are you, your git host and your browser. We disclose these categories only to the service providers on the sub-processor list for the purposes above. We do not sell or share personal information, have not done so in the preceding 12 months, and do not use sensitive personal information for any purpose that would trigger a right to limit.
GateTest is a developer tool for adults and organisations. It is not directed at anyone under 16, and we do not knowingly collect personal data from anyone under 16. If you believe a child has created an account, e-mail us and we will delete it.
Scan verdicts are produced automatically by rules and, where you choose it, by AI. They describe code, not people, and have no legal or similarly significant effect on you. Whether a verdict blocks a merge is a setting you control in your own CI. If you want a person to look at a result, e-mail us and one will.
If a security incident affects your personal data we will notify you without undue delay, and where the GDPR applies within 72 hours of becoming aware, with what happened, what data was involved, what we have done and what you should do. Where the New Zealand Privacy Act 2020 requires it, we will also notify the Office of the Privacy Commissioner. Where we are your processor, we will give you what you need to meet your own notification obligations under the DPA.
When we change what we collect, who we share it with or how long we keep it, we update this page and its effective date and e-mail account holders before the change takes effect. Clarifications and corrections may be published without notice. The current version is always the one at this address.
GateTest — support@gatetest.io. Contact is by e-mail.
Include the e-mail address on your account so we can find your records.