Free, open source, Wakatime-compatible coding time tracker
Find a file
Mat eb3fa24315
feat: make regular api tokens revocable (#1027)
* add new icon from bounty

* feat: add hackatime normal token revocation

* chore: make linter not hate me (its always whitespace) <3

* fix: combine both revocation apis into one (as requested by mahad)

* chore: add HKA_REVOCATION_KEY to .env.example

* feat: add hackatime normal token revocation

* chore: make linter not hate me (its always whitespace) <3

* fix: combine both revocation apis into one (as requested by mahad)

* chore: add HKA_REVOCATION_KEY to .env.example

* feat: add hackatime normal token revocation

* chore: make linter not hate me (its always whitespace) <3

* fix: combine both revocation apis into one (as requested by mahad)

* chore: add HKA_REVOCATION_KEY to .env.example

* feat: add hackatime normal token revocation

* chore: make linter not hate me (its always whitespace) <3

* fix: combine both revocation apis into one (as requested by mahad)

* fix: stuff greptile suggested

* style: add final newline

* docs: apply .env.example suggestion from @skyfallwastaken

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>

* refactor: move apikey rotation to user model

* style: remove unnecessary comment

* fix: tests passing and inappropriate response codes

* refactor: fix response codes

* refactor: move key info request back into separate function

* fix: broken ci because of merge mistake :/

* refactor: remove unnecessary test line and switch to  report_error

* fix: returned name for admin & regular keys

---------

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>
2026-04-01 19:37:34 +01:00
.claude Spring cleaning (#1074) 2026-03-15 15:26:32 +00:00
.github Linguist auto-updater! (god I hate GHA) (#1059) 2026-03-12 08:48:06 +00:00
.kamal Initial commit 2025-02-16 03:21:30 -05:00
app feat: make regular api tokens revocable (#1027) 2026-04-01 19:37:34 +01:00
bin Make setup use lockfile + mandate minimum release age 2026-03-31 09:03:42 +01:00
config Leaderboard Inertia'd + use cache + util dedup (#1121) 2026-03-30 14:39:05 +00:00
db Leaderboard Inertia'd + use cache + util dedup (#1121) 2026-03-30 14:39:05 +00:00
docs fix helix docs with new image and whitespace for code blocks (#1100) 2026-03-23 22:12:49 +00:00
lib Add Sentry monitoring for previously unreported errors (#1066) 2026-03-13 11:06:12 +00:00
log Initial commit 2025-02-16 03:21:30 -05:00
public fix helix docs with new image and whitespace for code blocks (#1100) 2026-03-23 22:12:49 +00:00
script Initial commit 2025-02-16 03:21:30 -05:00
spec feat: make regular api tokens revocable (#1027) 2026-04-01 19:37:34 +01:00
storage Initial commit 2025-02-16 03:21:30 -05:00
swagger/v1 feat: make regular api tokens revocable (#1027) 2026-04-01 19:37:34 +01:00
test feat: make regular api tokens revocable (#1027) 2026-04-01 19:37:34 +01:00
tmp Initial commit 2025-02-16 03:21:30 -05:00
vendor Upgrade Inertia + new settings page (#950) 2026-02-15 17:32:26 +00:00
.dockerignore llms.txt/llms-full.txt/.md docs routes, SSR (#977) 2026-02-18 08:34:06 +00:00
.env.example feat: make regular api tokens revocable (#1027) 2026-04-01 19:37:34 +01:00
.erb_lint.yml fix application/ld+json (#832) 2026-01-25 13:11:22 -05:00
.gitattributes Add heartbeat download (#457) 2025-08-07 15:36:36 -04:00
.gitignore make leaderboards go vrooom (#1120) 2026-03-30 13:58:18 +01:00
.prettierrc.json Use Inertia deferred props + Prettier/svelte-check (#957) 2026-02-16 10:29:04 +00:00
.rspec feat: added actual api docs (rswag) + ci enforcement (#846) 2026-01-27 01:05:49 -05:00
.rubocop.yml Email layout v2 (#1015) 2026-03-01 07:18:24 +00:00
.ruby-version update ruby to 3.4.8 (#805) 2026-01-19 02:24:20 -05:00
.tokeignore Bring back Mailkick (#1021) 2026-03-01 14:26:54 +00:00
AGENTS.md Data export fix + async exports + more tests (#989) 2026-02-21 11:28:21 +00:00
bun.lock Let's set release age to 1 day? 2026-03-31 09:06:04 +01:00
bunfig.toml Let's set release age to 1 day? 2026-03-31 09:06:04 +01:00
CLAUDE.md Spring cleaning (#1074) 2026-03-15 15:26:32 +00:00
config.ru Load autotuner in config.ru 2025-06-08 19:31:09 -04:00
DEVELOPMENT.md WakaTime/Hackatime v1 imports + Settings v2 (#1062) 2026-03-12 21:27:10 +00:00
docker-compose.yml goaaaal! (#985) 2026-02-19 18:47:01 +00:00
Dockerfile Use Bun for deps (#980) 2026-02-18 09:11:15 +00:00
Dockerfile.dev Bring back Mailkick (#1021) 2026-03-01 14:26:54 +00:00
Dockerfile.production-worker Fix 10-minute asset delay 2026-02-15 10:33:05 +00:00
docs-index.png Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00
docs-vs-code.png Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00
entrypoint.dev.sh Fix notification job missing class name 2025-02-22 01:58:46 -05:00
Gemfile Bundle and package updates (#1092) 2026-03-19 12:09:09 +00:00
Gemfile.lock Leaderboard Inertia'd + use cache + util dedup (#1121) 2026-03-30 14:39:05 +00:00
LICENSE Add LICENSE 2026-03-03 15:58:43 +00:00
package.json Leaderboard Inertia'd + use cache + util dedup (#1121) 2026-03-30 14:39:05 +00:00
Procfile.dev llms.txt/llms-full.txt/.md docs routes, SSR (#977) 2026-02-18 08:34:06 +00:00
Rakefile Initial commit 2025-02-16 03:21:30 -05:00
README.md Add installer repo to README (#1036) 2026-03-04 12:45:57 +00:00
slack_manifest_harbor.yml Rename slack bot 2025-03-13 11:25:53 -04:00
slack_manifest_sailors_log.yml Add slack channel name to sailors log prefs 2025-03-11 22:05:10 -04:00
svelte.config.js Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00
tsconfig.json Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00
tsconfig.node.json Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00
tsconfig.svelte-check.json Use Inertia deferred props + Prettier/svelte-check (#957) 2026-02-16 10:29:04 +00:00
vite.config.ts Inertia migration/UI3 (#911) 2026-02-09 11:26:30 +00:00

Local development

Please read DEVELOPMENT.md for instructions on setting up and running the project locally.

Installer repo

Looking for the installer code? It's over at hackclub/hackatime-setup.