Frequently Asked Questions
Everything you need to know about the syncing process, XP calculations, and security.
Setup
Yes, 100%. Octogriffin is a passion project and I intend to keep it free forever. However, servers aren't free and coffee is essential fuel. If you'd like to support development and help cover hosting costs, you can sponsor me on GitHub Sponsors or buy me a coffee on Ko-fi.
Sponsorships start as low as $2/month. At $5/month, you'll be listed in our project README, and at $15/month, you get a dedicated mention on this website plus priority status for your feature requests!
Check out the Sponsors page for more information!
It is a simple two-step process. First, install our GitHub App on the repositories you want to track. Second, log in to the Dashboard and enter your Habitica User ID and API Token (found in your Habitica Settings API).
You're now ready to configure your triggers and start earning Gold/XP!
Once linked, head to the Dashboard to create Triggers. You decide the rules: "When I [Push Code] to [This Repo], score a [Medium] task". You can create as many triggers as you want for different events and repositories.
Absolutely. Since Octogriffin works as a GitHub App, you explicitly grant it access to specific repositories - whether they are public or private. We process the webhooks securely regardless of visibility.
We use GitHub Webhooks to listen for activity on your connected repositories. When you push code, open a pull request, or close an issue, GitHub notifies our servers.
We then analyze the event metadata (like commit size or issue complexity) to calculate a fair XP reward. Finally, we use the Habitica API to score a custom task on your account, instantly granting you Gold and Experience.
Data Privacy
Your API credentials are encrypted at rest in our database using industry-standard encryption (AES-256). We never expose them in the frontend, and they are only decrypted momentarily by our server to send requests to Habitica on your behalf.
No. We strictly request the minimum permissions required to function. We do not request access to your code contents (`contents: read`), so we technically cannot see or store your actual source code.
We take data sovereignty seriously. Our primary database is hosted in Frankfurt, Germany (via Neon), ensuring your data remains within the EU and is protected by strict privacy standards.
You remain in control. You can uninstall the GitHub App from your repository settings at any time, which immediately stops all data flow. You can also regenerate your Habitica API Token by resetting the password of your Habitica account to invalidate the old credentials instantly.
Gameplay
Currently, we operate on the "honor system." However, Smart Spam Detection and Daily Caps are top priorities in our upcoming Anti-Cheese update to help keep you honest.
Yes! In the Control Freak update, you can set the Trigger Action to "Punish" (Down). This is perfect for discouraging bad habits, like pushing directly to the main branch or breaking the build.
First, check if your trigger is set to Active in the dashboard. Second, ensure the GitHub App is actually installed on that specific repository. Finally, GitHub webhooks can sometimes have a delay of a few seconds.
No. Deleting a trigger in Octogriffin only stops future events from processing. We do not delete your history or the associated task in Habitica. You can keep the task as a record or delete it manually in the Habitica app.
Troubleshooting
First, check if your trigger is set to Active in the dashboard. Second, ensure the GitHub App is actually installed on that specific repository. Finally, GitHub webhooks can sometimes have a delay of a few seconds.
Did you recently reset your password or regenerate your API Token in Habitica? If so, your old credentials are invalid. Please go to the Settings page and update your API Token to resume syncing.
Octogriffin tries to find a task with the exact title you specified. If you have multiple tasks with the same name (e.g. two tasks named "Coding"), we might score the wrong one. We recommend giving your tasks unique names or using the Task Alias feature in the Advanced Settings of your trigger for 100% precision.
Check your Dashboard. You might have created two overlapping triggers (e.g., one Global trigger and one Repository-specific trigger) that both fire on "Push" events. Disable one of them to fix the issue.