No description
  • Python 98.5%
  • Dockerfile 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
zevaryx 612ee4a48c
All checks were successful
CI / image (push) Successful in 21s
CI / precommit (push) Successful in 39s
CI / test (3.12) (push) Successful in 31s
CI / test (3.13) (push) Successful in 26s
CI / test (3.14) (push) Successful in 34s
CI / test (3.15) (push) Successful in 25s
build: bump the version to 3.2.0 and pin the jarvis-core 3.2.0
2026-11-06 00:58:31 -07:00
.forgejo/workflows ci: drop the interactions-py override now that the lock uses 6.0.0rc1 2026-11-02 21:40:44 -07:00
.vscode Add prometheus 2022-06-10 09:54:54 -06:00
jarvis_tasks feat: leave a heartbeat after every pass of every loop 2026-11-04 06:30:29 -07:00
tests feat: leave a heartbeat after every pass of every loop 2026-11-04 06:30:29 -07:00
.dockerignore build: switch from Poetry to uv 2026-11-02 14:02:38 -07:00
.flake8 Migrate to beanie 2023-08-27 14:13:20 -06:00
.gitattributes chore: normalise line endings to LF 2026-11-03 10:23:48 -07:00
.gitignore Add gitignore 2022-02-19 16:55:36 -07:00
.pre-commit-config.yaml build(pre-commit): update hooks to their latest releases 2026-11-02 14:13:29 -07:00
Dockerfile build: use Python 3.14 in the Docker images 2026-11-04 09:43:29 -07:00
LICENSE Add LICENSE, PRIVACY, TERMS 2022-03-10 22:54:47 -07:00
PRIVACY.md docs: say operators can see which accounts are signed in to the website 2026-11-04 10:48:20 -07:00
pyproject.toml build: bump the version to 3.2.0 and pin the jarvis-core 3.2.0 2026-11-06 00:58:31 -07:00
README.md chore(release): 3.0.0 2026-11-02 23:26:07 -07:00
requirements.precommit.txt build(pre-commit): update hooks to their latest releases 2026-11-02 14:13:29 -07:00
run.py style: format with black 26 and fix the flake8 findings 2026-11-02 20:41:41 -07:00
sample.env fix(config): read Mongo settings from MONGO_* variables and ignore unrelated keys 2026-11-02 14:04:48 -07:00
TERMS.md docs: describe the website, its cookies and sessions in the privacy policy and terms 2026-11-03 07:40:30 -07:00
uv.lock build: bump the version to 3.2.0 and pin the jarvis-core 3.2.0 2026-11-06 00:58:31 -07:00

JARVIS tasks

JARVIS background processes and synchronizations. Runs alongside jarvis-bot against the same MongoDB, using a REST-only Discord client.

Versions

jarvis-bot, jarvis-tasks and jarvis-core are released together and share a version number: 3.x of each work with 3.x of the others. A change that needs matching releases of the other two bumps the major version of all three.

Current Modules

🔨 Ban

Lifts temporary bans when they expire, unless the user has been banned again since

🔒 Lock and Lockdown

Restores channel and @everyone permissions when a lock or server lockdown expires

⏰ Reminder

Delivers reminders by DM, falling back to the channel they were set in

🎭 Temporary Role

Removes temporary roles when they expire

⚠️ Warning

Expires warnings after their duration

👢 Autokick

Kicks members who still have the unverified role a configured number of days after joining

Configuration

Copy sample.env to .env and fill in TOKEN and the MONGO_* values.

Development

Requires Python 3.11+ and uv.

uv sync
uv run python run.py
uv run pytest

Tests that need a database run against a real MongoDB and are skipped otherwise. Every collection in the test database is dropped before and after each test:

export JARVIS_TEST_MONGO_URI="mongodb://user:pass@localhost:27017/?authSource=admin"
export JARVIS_TEST_MONGO_DB="jarvis_test"
uv run pytest