Scan a private repo without
trusting us with it.
To tell you whether a repository is hostile, something has to read it — which means holding a token with access to your private repositories, and sending your employer's source code to an LLM. Confidential mode does all of that inside a hardware-isolated enclave. Our servers never see your code. Neither does the node operator running the enclave.
Untrusted
RepoShield servers · CRE node operator
- Sees the repo name
- Sees the verdict
- Sees nothing else
Inside the enclave
AWS Nitro TEE · attested
- GitHub token, decrypted
- Gemini key, decrypted
- Your repository's source
- Every finding, with evidence
What crosses the boundary
Goes in
- GitHub token — from the Vault DON, decrypted only in the enclave
- Gemini API key — same
- Your repository's source, fetched over confidential-http
Comes out
- threatScore, verdict
- findingCount, criticalCount
- commit, scannedAt
Seven scalar fields. Findings quote your source verbatim, so they never leave — that is the trade you are making.
Where it stands
Workflow compiles against @chainlink/cre-sdk
SDK 1.20.0, registered with handlerInTee and driven by Runner.
Confidential body executes
The real handler logic runs against a mocked vault and a recorded transport, asserting that both secrets are read, that every GitHub request carries the vault token, and that no repository source appears in the DON payload.
log: analyzing reposhield-samples/senior-web3-frontend-task@5ff5b0d — 8 of 8 files read log: verdict "danger" (100/100) from 19 findings PASS every GitHub request carries the vault token PASS leaks no repository source in the DON payload
Compiles to a CRE WASM binary
Not built on this machine. Run `npm run build` in cre/reposhield.
Simulated in an enclave
Blocked: cre workflow simulate requires a Chainlink account. Create an API key at app.chain.link → Account Settings, then set CRE_API_KEY and run npm run simulate in cre/reposhield.
Deployed and wired to this app
Deploy the workflow, then set CRE_WORKFLOW_URL to its HTTP trigger to turn on the confidential option.
Run it yourself
Nothing here needs our infrastructure.
cd cre/reposhield npm install npm test # execute the confidential body npm run build # compile to WASM, prints the binary hash npm run simulate # needs CRE_API_KEY