What is NOT Stored
Commits, blobs, or refs you send
GitHub tokens or access keys
@gitgost-anonymous) to create PRs.
Your IP or logs containing it
Emails, names, usernames, or SSH fingerprints
Request histories or session metadata
What IS Stored (and Why)
gitGost stores minimal aggregate metrics for anti-abuse and service health. No personal identifiers.
1. Minimal Aggregate Metrics
What: PR count, push timestamps (aggregated), service health metrics. Why: Anti-abuse detection, service monitoring, and public statistics. Retention: Short windows with automatic rotation. Example from database schema:2. Ephemeral Logs (No Personal Identifiers)
What: Operational logs for debugging failures. Why: Diagnose service issues (e.g., GitHub API errors, fork failures). Retention: Aggressive rotation. No IP addresses or user identifiers. Example from code:3. Optional Supabase Config
What: Anonymous persistent statistics if Supabase is enabled. Why: Long-term service metrics and public transparency. Retention: As configured by operator. Still no personal identifiers. Example:4. Rate Limiting (In-Memory, Transient)
What: Per-IP counters for rate limiting (5 PRs/IP/hour). Why: Prevent abuse and botnet attacks. Retention: Sliding window, in-memory only, not logged. Implementation:Retention Policies
| Data Type | Retention | Storage |
|---|---|---|
| Git objects (commits, blobs) | None—stream-only | Temporary directory, deleted immediately |
| IP addresses | Transient (rate limit window) | In-memory only |
| Aggregate metrics | Short windows, auto-rotated | Supabase (if enabled) |
| Ephemeral logs | Aggressive rotation | Platform-dependent (stdout) |
| User tokens | Never stored | N/A |
Scenario: Server Compromise
No stored tokens or user data to exfiltrate:- No GitHub tokens (service uses its own bot account)
- No user credentials or SSH keys
- No session tokens or authentication state
- Attacker gains no user identity from logs
- Aggregate metrics reveal service usage patterns but no individual users
- Deployment keys are rotated
- Traffic is cut and service reinstalled from clean code
- No user notification required (no user data compromised)
Scenario: Legal Order
If gitGost receives a legal order to disclose user data:
- No IP logs (not recorded)
- No user accounts or registration data
- No authentication tokens or credentials
- Already-anonymized aggregate metrics (PR counts, timestamps)
- Public data (PR URLs, repositories)
Scenario: Database Loss
The service keeps running
- Optional aggregate metrics are lost
- No personal data to restore (there was none)
- Service continues processing PRs normally
What gitGost Cannot Know (Even If It Wanted To)
Your Identity
No accounts, no registration, no user tokens. gitGost cannot know who you are.
Your IP Address
Not recorded in logs. Used transiently for rate limiting, then discarded.
Commit Authorship
Author metadata stripped before push. PRs come from
@gitgost-anonymous.Usage History
No persistent traces. No request history. Stateless operation.
Data Flow Diagram
Credibility Over Features
Less data = less risk
- No authentication system → No user accounts to compromise
- Stateless operation → No session data to leak
- Stream-only git processing → No repository data to exfiltrate
- No IP logging → No request correlation
- Open source → Auditable by anyone
Operator Responsibilities
- No custom telemetry: Operator does not add tracking or analytics
- Log rotation: Platform logs are rotated and do not persist long-term
- No reverse proxy IP logging: If behind a proxy, IP forwarding headers are not trusted (
SetTrustedProxies([]string{})) - Secure deployment: Standard security practices (HTTPS, firewall, patching)
Trust Model
| Party | What They Can See | What They Cannot See |
|---|---|---|
| GitHub | PR from @gitgost-anonymous, timing, content | Your identity (unless you reveal it in diff/comments) |
| gitGost Operator | Aggregate push volume, service metrics | Your IP (if not logged), your identity, your local git history |
| Network Observer | Encrypted traffic to gitGost (HTTPS) | Push contents, your identity (if using VPN/Tor) |
| Target Repo Maintainer | PR content, timing, code style | Your identity (unless inferable from style/timing) |
Comparison with Alternatives
| Feature | gitGost | Direct GitHub PR | Throwaway Account |
|---|---|---|---|
| No identity link | ✅ | ❌ | ⚠️ Weak (email, IP) |
| Metadata stripped | ✅ | ❌ | ⚠️ Manual |
| No registration | ✅ | ❌ | ❌ |
| No IP exposure | ⚠️ Requires VPN/Tor | ❌ | ❌ |
| Auditable | ✅ Open source | ❌ Proprietary | N/A |
Related Documentation
Threat Model
What gitGost protects against and attack vectors
Anonymity Limits
When gitGost is NOT sufficient
Rate Limits
Abuse prevention measures
Source Code
Audit the implementation yourself