Version 5 — 24 September 2026 (version 3 added Hugging Face, version 4 gitlab.com, version 5 the GitHub lookup for a redirected release asset; all three ship with extension 0.8.3). Changes are delivered through the extension's versioned-notice mechanism: it tells you a new version exists and shows what changed before it takes effect.
The single sentence. RepoGates sends the name of a GitHub
repository (owner/repo), a Hugging Face model, dataset or
Space (hf/{kind}/{org}/{name}) or a gitlab.com project
(gl/{namespace}/{project}) to its verdict service when you
visit or download from it, together with the account you
registered — and nothing else. The one request the extension makes to
anyone other than RepoGates is a lookup at GitHub, described
below.
| Question | Answer |
|---|---|
| What is collected | The identifier of the repository, model or project you view or download; the hostname of the AI site you arrived from, when there is one; your account (email address and the sign-in provider's identifier); a random device id; and your IP address, which the service's request logs record. Details: What RepoGates sends. |
| How it is used | Only to compute and show the verdict, count your checks against your plan, and run the deep scans you start. Never for advertising or profiling, and never sold. Details: Limited use disclosure. |
| Where and how long it is stored | On Google Cloud in Frankfurt, Germany (europe-west3), encrypted in transit (HTTPS) and at rest. Account data is kept until you delete your account; deep-scan findings for 90 days (the scan's name, verdict and date stay with your account); a repository's verdict timeline for 180 days; request and website access logs, with IP addresses, for 30 days. The audit log and cached verdicts stay in your browser. Details: Server-side handling. |
| Who it is shared with | Three named processors only — Google or Microsoft (sign-in), Polar (billing), Google Cloud Platform (hosting) — plus a service you connect with your own key, only if you connect one (below), and one number the extension itself sends to GitHub in the case described below. Details: Who else handles your data. |
| Your choices | Turn the page pre-check off in Options; ask for an export or deletion of everything at support@repogates.com — done within 30 days. Details: Your data, your call. |
| What | When, and why |
|---|---|
Repository identifierowner/repo,
hf/{kind}/{org}/{name} or
gl/{namespace}/{project} |
When you view a repository, model, dataset, Space or project page (pre-check, so the verdict is ready before you click Download — you can turn this off in Options) and when a download starts. Version 3 added huggingface.co and hf.co; version 4 added gitlab.com — the namespace may be a group and its subgroups, and a self-managed GitLab on another hostname is not visible to the extension. |
| Your account | A session token identifying the account you registered, so your checks can be counted against your plan. See Registration below. |
| Agent-provenance flag | If you arrived from a known AI surface, the request carries
prov=agent and that surface's hostname (e.g.
claude.ai). The hostname only — never the page URL,
never any content. |
| A command line, with the Claude Code plugin only | If you install the RepoGates plugin for Claude Code, its hook
sends the shell command line Claude Code is about to run — with
URL credentials and NAME=value assignment values
removed first — to the verdict service, which parses it for
repository names, never executes it, and does not store or log
it; the log carries the decision and the repository names only.
A package named on the line (npm install express,
pip install flask) is looked up by the verdict
service on the public npm or PyPI registry to find the repository
it declares — the lookup carries the package name and nothing
about you. Nothing is sent for a line that names neither a GitHub
repository nor an npm or PyPI package. The extension never sends
command lines. |
| Your AI-agent setup — with the check-up only | Only if you run the agent check-up yourself —
/repogates:checkup in Claude Code, or the
repogates-checkup command line served from this
site. It reads your AI-agent configuration on your machine and
sends RepoGates identifiers, never contents: the names and
versions of installed plugins and the marketplace each came from,
with its source type and repository or URL hostname; skill,
command and subagent names with where each lives and a SHA-256
of each SKILL.md; for each MCP server its name, transport, the
launch program's name and its arguments reduced to flag names,
NAME=<redacted>, URL hostnames and the package
a runner starts, every other word replaced by
<arg> and, for a remote server, the hostname
only; the names of environment variables and headers,
never their values; each hook's event, type, program name and
arguments reduced the same way; your permission rules with paths collapsed
and the on/off flags; whether CLAUDE.md, AGENTS.md or rules
files exist; the findings the served rule set produced on your
machine as a rule id and a count, never the matching text; a
random check-up id that is not derived from your hardware and
registers no device; and your API token, to name your account.
What never leaves: the contents of any file, environment-variable
values, tokens, full URLs, your machine's hostname or user name,
your home directory path, project paths or names, and any key of
~/.claude.json or
claude_desktop_config.json other than
mcpServers. The identifiers and their verdicts are
kept for your account page — the newest thirty runs — and
deleted with your account. The extension never sends any of
this, and this notice's version does not change for it: the
check-up is a separate, opt-in program you run yourself, and this
row applies only when you do. The full contract, verbatim, is on
the check-up page. |
| Device registration id | A random identifier minted per installation, so a plan can be limited to a number of machines. It is not a fingerprint: no hardware identifiers, no canvas hashing, nothing derived from the machine itself. |
RepoGates requires an account. You sign in with Google or Microsoft; we never see a password, and we request only your email address.
We store the provider's stable identifier for you, your email address,
when you registered, which distinct repositories your free trial was
spent on (their owner/repo names and when), your plan,
and your device registrations. The count lives on our server rather than
in your browser because that is the only way a free allowance can mean
anything. It is a record of the repositories your allowance was spent
on — at most ten — and nothing else about your browsing.
If you redeem a voucher, we store which voucher it was, when you redeemed it and when it ends — that record is what gives the account its plan until then. A voucher takes no payment details. It is redeemed on your account page on this website: the extension sends nothing new for it, and this notice's version does not change for it.
If you vote on the coming-soon page, we store which items your account voted for and when. Anyone may see the totals; nobody is shown who voted for what. Votes are cast on this website: the extension sends nothing new for them, and this notice's version does not change for them. Nothing is sent to you because of a vote.
If you claim a skill's page on your account page, we store which skill it is, that your account claimed it, when, and when its badge was last found in the README; the page itself shows the skill's verdict and those dates, never your name or e-mail address, and the claim is erased with your account. A repository's page is the same: we store which repository it is and the same facts, and nothing more.
The Secrets list on your account page is built from the findings of your own deep scans, which hold where a credential was found (the repository, the rule that matched and the file) and never the credential itself. If you mark one as rotated or as not a secret, we store that status with the same three names and the time you set it. It goes with the account. The extension sends nothing new for it, and this notice's version does not change for it.
Sign-in is handled by Google or Microsoft under their own privacy policies. Their sign-in pages may set cookies; RepoGates does not.
RepoGates does not sell data, and does not share it for advertising. Three named processors act on our instructions, for no purpose of their own, and only for what is described below:
GitHub, asked directly by the extension, in one
case (version 5, extension 0.8.3). When a download is a GitHub
release asset that you reached through a link that is not GitHub's own
— a URL shortener, another site — the file's address names the
repository only by a number. The extension then asks GitHub's public
API (api.github.com) which repository that number belongs
to, so the download can be checked. The request goes to GitHub, which
is already serving that download, and carries only that number;
RepoGates never receives it. If GitHub does not answer, the download is
treated as unchecked and your fail setting decides.
On your account page you can connect your own key for a third-party service. Each one is off until you connect it, and each receives only what its row below says. It acts under your own agreement with that company, which bills you, not RepoGates — so it is not one of the processors above. RepoGates stores the key encrypted, never shows it back (only its last four characters), uses it only for your own scans, and deletes it when you remove it or delete your account. With no key connected, nothing is sent to any of them.
| Service | What it receives, and when |
|---|---|
| VirusTotal | the SHA-256 hashes of files in the repository — not the files themselves; during a deep scan you start. |
| urlscan.io | URLs found in README and install scripts; during a deep scan you start. |
| AbuseIPDB | the public IP addresses referenced by scripts — private and loopback addresses are never sent; during a deep scan you start. |
| Anthropic (Claude) | the text of the files this scan read, and the paths — not the contents — of the files it could not open; only when a deep scan you start could not read every file within its limits — the AI review of that scan. |
| OpenAI | the text of the files this scan read, and the paths — not the contents — of the files it could not open; only when a deep scan you start could not read every file within its limits — the AI review of that scan. |
| Google Gemini | the text of the files this scan read, and the paths — not the contents — of the files it could not open; only when a deep scan you start could not read every file within its limits — the AI review of that scan. |
The AI providers are the one place RepoGates sends file contents anywhere. That text comes from the public repository, extension package or skill you asked RepoGates to scan — never from your machine or your browser.
The verdict service receives owner/repo, computes a trust
verdict from public GitHub metadata, caches that verdict briefly, and
logs requests per-IP for rate limiting. Verdicts describe
repositories, not people.
It also keeps a timeline per repository — the date of each answer, the verdict, the score and which checks fired, by number — for 180 days from the last time that answer was confirmed, so a repository's page can show what changed since the previous look. A timeline row records nothing about who asked: no account, device or address, and never the finding text.
This website (repogates.com) keeps standard access logs — path, referrer, user agent, IP address — for 30 days, for security and to count visits. No cookies, no advertising or analytics identifiers, and no client-side tracking script of any kind.
Ask us to export or delete your account and everything attached to it — email, the repositories your trial was spent on, device registrations, voucher redemptions, roadmap votes — at support@repogates.com. Deletion is permanent and takes effect within 30 days. You do not need a reason.
Not currently offered. The organisation tier was withdrawn in August 2026 and no managed deployments are sold today, so nothing in this section applies to any current customer. It is kept rather than deleted because the extension still contains the managed-storage mechanism, and a privacy notice should describe what the software can do, not only what we are selling this month.
If your organisation force-installs RepoGates, policy — block and warn rules, allowlist, fail mode — is set by your administrator through managed storage, and the extension marks which settings are organisation-controlled. Organisation deployments may report blocks and overrides to that organisation's console; where they do, reporting is pseudonymised and re-identification requires two administrators. The organisation tier ships with its own addendum and a DPIA template.
RepoGates' use of the information described on this page adheres to the Chrome Web Store User Data Policy's Limited Use requirements:
Questions, complaints, or a data request: support@repogates.com.