Overview
Post comments anonymously on GitHub issues and pull requests using the@gitgost-anonymous bot account. Maintain a consistent anonymous identity using user tokens, build karma, and participate in discussions without revealing who you are.
Endpoints
Issue Comments
Pull Request Comments
Both endpoints use identical request/response formats. PR comments use the same GitHub API as issue comments.
Path Parameters
GitHub repository owner (user or organization)
Repository name
Issue or pull request number (must be positive integer)
Authentication
No authentication required. No API keys, tokens, or GitHub accounts needed. Anonymous participation is the core feature.
Request Body
Comment text in Markdown format (must not be empty after trimming whitespace)
Your anonymous identity token. Omit to generate a new identity, or provide an existing token to maintain consistency across comments.
Response
Full GitHub URL of the posted commentExample:
https://github.com/owner/repo/issues/42#issuecomment-1234567898-character identity hash visible in the comment footer
Your karma score for this issue/PR (increments with each comment)
Your user token (newly generated if not provided in request). Save this to maintain identity.
Examples
Post Comment on Issue
Post Comment on Pull Request
Response Examples
Success (200 OK)
Validation Errors (400 Bad Request)
Moderation Errors
Hash Blocked (403 Forbidden)Comment Format
Your comment body is automatically appended with a footer: Your Input:Footer Components
Your 8-character identity hash for this issue/PR
Your current karma score (reputation)
Link for others to report abusive content
Karma System
Karma represents your reputation as an anonymous contributor per issue/PR. Each issue/PR has a separate karma score.
How Karma Works
Karma Benefits
- Reputation: Higher karma shows you’re a consistent contributor
- Trust: Demonstrates good-faith participation
- Visibility: Makes your comments more credible
Karma Calculation
internal/http/handlers.go:1064-1075, 1136-1147
Hash System
Hash Generation
Your hash is a deterministic HMAC-SHA256 derived from:- Deterministic: Same token = same hash per issue/PR
- Unique: Different hash for each issue/PR
- Anonymous: Not linked to any personal information
- Cryptographic: Cannot be forged or impersonated
internal/http/handlers.go:1359-1364
Hash Use Cases
Identity Tracking
Identify your comments across the issue/PR
Karma Association
Track reputation for this specific issue/PR
Moderation
Enable reporting and blocking of abusive users
Consistency
Same hash for all your comments on this thread
Moderation System
GitGost includes a community-driven moderation system to prevent abuse while maintaining anonymity.Reporting Content
Anyone can report a hash by clicking the[report] link in comment footers or visiting:
Report Thresholds
0-2 reports: Logged only
0-2 reports: Logged only
- No action taken
- Internal monitoring only
- User can continue posting
3-5 reports: Flagged
3-5 reports: Flagged
- Hash flagged as problematic
- 6-hour cooldown applied
- Karma reset to 0
- All existing comments updated to show karma=0
- Cannot post during cooldown
6+ reports: Blocked
6+ reports: Blocked
- Hash permanently blocked
- All comments by this hash automatically deleted
- Cannot post new comments
- Error 403 on future attempts
internal/http/handlers.go:1053-1075, 1125-1147, 1253-1260
Report Window
Reports expire after 30 days:internal/http/handlers.go:609-612
Anti-Spam Measures
- Per-IP deduplication: Same IP can only report a hash once
- Time-based windows: Reports older than 30 days don’t count
- Automatic deletion: Comments from blocked hashes are removed
- Cooldown periods: Prevent rapid re-offending
User Token Management
Best Practices
- Local Storage
- Environment Variable
- Browser LocalStorage
- Password Manager
Token Naming Convention
Organize tokens by repository and issue/PR:Rate Limiting
No explicit per-endpoint rate limits, but service-wide abuse detection applies.
Global Monitoring
GitGost monitors for:- Rapid comment posting patterns
- Coordinated abuse across multiple IPs
- Spam content
- Mass reporting
- Automatic hash flagging
- Service-wide panic mode
- Temporary IP blocks
Recommended Posting Frequency
- Normal participation: No limits
- Avoid: Posting >10 comments/minute
- Avoid: Identical comments across multiple issues
- Best practice: Thoughtful, substantive contributions
Implementation Details
Comment Footer Injection
The server appends the footer to your body:internal/http/handlers.go:1076-1079, 1148-1151
Karma Persistence
Karma is stored in-memory with Supabase fallback:- Check in-memory cache
- If not found, query Supabase
- Cache result in-memory
- Update both on changes
internal/http/handlers.go:1375-1405
Report Tracking
Reports stored per-hash with IP and timestamp:internal/http/handlers.go:1210-1263
Limitations
Cannot edit comments
Cannot edit comments
Posted comments cannot be edited via the API. GitHub’s edit functionality is not available to anonymous users.
Cannot delete comments
Cannot delete comments
Comments cannot be manually deleted. Only automatic deletion occurs when a hash is blocked (6+ reports).
No inline PR reviews
No inline PR reviews
This endpoint only supports general PR comments, not inline code review comments on specific lines.
No rich media uploads
No rich media uploads
Images, files, and attachments not supported. Use external hosting and Markdown links.
Token recovery impossible
Token recovery impossible
Lost tokens cannot be recovered. You’ll need to create a new identity.
Separate karma per issue/PR
Separate karma per issue/PR
Karma doesn’t carry across different issues/PRs. Each thread has independent karma tracking.
Security Considerations
Identity Protection
- No IP logging
- No user tracking
- Cryptographic hash isolation
- Open source and auditable
Abuse Prevention
- Community-driven reporting
- Automatic moderation thresholds
- Time-based cooldowns
- Permanent blocking for severe abuse
Privacy by Design
- No analytics or telemetry
- No request logging
- No user profiling
- Anonymous by default
Cryptographic Integrity
- HMAC-based hashing
- Unforgeable identities
- No token reuse across issues
- Secure random generation
Best Practices
Writing Effective Anonymous Comments
- Technical Contributions
- Bug Reports
- Review Feedback
Maintaining Consistent Identity
Related Endpoints
Anonymous Issues
Create anonymous issues to start new discussions
Anonymous PRs
Submit anonymous code contributions via Git push
Troubleshooting
”body is required”
Ensure the body field contains non-whitespace content:“invalid issue number”
The issue/PR number must be a positive integer:“hash bloqueado por reportes”
Your hash has been permanently blocked (6+ reports). This means:- Your user token is no longer valid for this issue/PR
- Past comments have been deleted
- You must create a new identity (don’t reuse the token)
“cooldown activo por reportes”
Your hash is flagged (3-5 reports) with a 6-hour cooldown:- Wait 6 hours before posting again
- Your karma has been reset to 0
- Consider whether your previous comments violated guidelines
Token doesn’t maintain identity
Ensure you’re sending the exact token:- Copy-paste without modifications
- Include in
user_tokenfield - Use same token for same issue/PR
- Don’t add quotes, spaces, or formatting
Comment not appearing
Check for:- Issue/PR number is correct
- Repository exists and is public
- Bot has access to the repository
- You’re not in cooldown period
- Hash is not blocked