✨💖 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: runsgit pullif there is a configured remote and clean workdir. If the working directory is dirty but there's a remote, runsgit fetchinstead.uv: runsuv sync --upgradein order to updateuv.lockIf thecommitoption is enabled, also git commit's the change.prek: runsprek auto-updatein order to updateprek.tomlhooks If thecommitoption is enabled, also git commit's the change.push: runsgit pushif there is a configured remote. If theverifyoption 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3656947707c43ffc06769ab5f614b19b98ecb56ff64be3d1859ca651bbae03c
|
|
| MD5 |
3a7966ffe4f02e75d96728dcfbc8350a
|
|
| BLAKE2b-256 |
78e4e297a8d33adc8d5b9bfc8cf51fc50ad9f7f77d741a11987c55c8609696d7
|
Provenance
The following attestation bundles were made for fate_casino-0.1.0.tar.gz:
Publisher:
release.yml on vEnhance/fate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fate_casino-0.1.0.tar.gz -
Subject digest:
f3656947707c43ffc06769ab5f614b19b98ecb56ff64be3d1859ca651bbae03c - Sigstore transparency entry: 1155881753
- Sigstore integration time:
-
Permalink:
vEnhance/fate@d95d7cd2263b665d4b802e3deda3423415487ecf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vEnhance
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d95d7cd2263b665d4b802e3deda3423415487ecf -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2091f79a2f977cf874eb3c40f473b18bb7edaf687c81a60cef01eb510f7f5b1
|
|
| MD5 |
340643f6976a11e6a3a5df14ab94c69b
|
|
| BLAKE2b-256 |
5052819a693517e075490e628500226eb49eb3e69a7f43e68fb43d8211d6c6c7
|
Provenance
The following attestation bundles were made for fate_casino-0.1.0-py3-none-any.whl:
Publisher:
release.yml on vEnhance/fate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fate_casino-0.1.0-py3-none-any.whl -
Subject digest:
c2091f79a2f977cf874eb3c40f473b18bb7edaf687c81a60cef01eb510f7f5b1 - Sigstore transparency entry: 1155881776
- Sigstore integration time:
-
Permalink:
vEnhance/fate@d95d7cd2263b665d4b802e3deda3423415487ecf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vEnhance
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d95d7cd2263b665d4b802e3deda3423415487ecf -
Trigger Event:
release
-
Statement type: