Skip to main content

✨💖 Don't ask, just pull! 🎰🪙

Project description

fate

Pull makes happy!

fate is a Python program that helps git pull a bunch of Git repositories in your home directory or similar. (The name comes from Fate's Thread Casino in Mystery Hunt 2026, in which the protagonists become addicted to the Keeper's gacha machines.)

Installation

It's fate-casino on PyPi, so e.g.

uv tool install fate-casino
fate --help

Usage

See the argparse help for full options.

fate init (or fate i)

For every directory you want to use with fate, you need to create a .faterc or faterc (the latter takes precedence) in the root of that Git repository. You can do this by running fate init.

This is a TOML 1.1 file that specifies which actions fate performs when run on that repository, and looks something like this:

[config]
branch = "main"
venv = ".venv" # path to the virtual environment, if using uv

[actions]
pull = {enabled = true}
uv = {enabled = true, commit = true}
prek = {enabled = true, commit = true}
push = {enabled = true, verify = true}

fate run (or fate r)

Once a directory has .faterc set up, you can use fate run. The actions supported right now, if you have a clean working state:

  • pull: runs git pull if there is a configured remote and clean workdir. If the working directory is dirty but there's a remote, runs git fetch instead.
  • uv: runs uv sync --upgrade in order to update uv.lock If the commit option is enabled, also git commit's the change.
  • prek: runs prek auto-update in order to update prek.toml hooks If the commit option is enabled, also git commit's the change.
  • push: runs git push if there is a configured remote. If the verify option is turned off, adds --no-verify.

fate multirun (or fate m)

This recursively runs fate run on every directory under the specified one which has a .faterc file. By default it runs all enabled tasks; but you can also use -o/--only or -e/--exclude to restrict the list. Note that fate will never run a task not actually enabled in .faterc.

You can throttle the run with -t/--throttle to sleep a bit between repositories.

Shortcuts for fate multirun

  • fate ls (or fate l, or fate list): shows the status of each repository without running any tasks. It doesn't make any network queries, so it's the fastest.
  • fate pull: equivalent to fate multirun --only pull
  • fate gamble (or fate g): equivalent to fate multirun --exclude push.
  • fate push: equivalent to fate multirun --only push

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fate_casino-0.1.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fate_casino-0.1.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file fate_casino-0.1.0.tar.gz.

File metadata

  • Download URL: fate_casino-0.1.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fate_casino-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f3656947707c43ffc06769ab5f614b19b98ecb56ff64be3d1859ca651bbae03c
MD5 3a7966ffe4f02e75d96728dcfbc8350a
BLAKE2b-256 78e4e297a8d33adc8d5b9bfc8cf51fc50ad9f7f77d741a11987c55c8609696d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for fate_casino-0.1.0.tar.gz:

Publisher: release.yml on vEnhance/fate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fate_casino-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fate_casino-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fate_casino-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2091f79a2f977cf874eb3c40f473b18bb7edaf687c81a60cef01eb510f7f5b1
MD5 340643f6976a11e6a3a5df14ab94c69b
BLAKE2b-256 5052819a693517e075490e628500226eb49eb3e69a7f43e68fb43d8211d6c6c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for fate_casino-0.1.0-py3-none-any.whl:

Publisher: release.yml on vEnhance/fate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page