jartify
jartify is a small toolkit for querying a JFrog Artifactory instance
from a terminal. It exposes two entry points:
| Command | Purpose |
|---|---|
jartify |
One-shot CLI: find a file, print version / filename / sha256 |
jartify-tui |
Textual TUI for interactive searching |
jartify-setup |
Interactive first-run: writes exports to .zshrc/.bashrc |
jartify-repos |
List visible repositories (filter by type / package type) |
Both share the same ~/.local/etc/jartify/config.yaml and
$ARTIFACTORY_TOKEN env var (name is configurable).
Install
pip install jartify
Configure
Quickest: jartify-setup
jartify-setup
Prompts for URL, username, token (hidden), and default repo, then
writes a managed export block to your .zshrc or .bashrc:
# >>> jartify setup >>>
export ARTIFACTORY_URL="..."
export ARTIFACTORY_USER="..."
export ARTIFACTORY_TOKEN="..."
export ARTIFACTORY_REPOSITORY="..."
# <<< jartify setup <<<
Re-running updates the block in place (no duplicates). The rc file is
chmod'd to 600 since it now contains a token. Reload with
source ~/.zshrc (or open a new terminal).
Alternative: config file
Env vars take precedence, but ~/.local/etc/jartify/config.yaml works
too:
artifactory:
url: https://artifactory.example.com
repos: "" # optional comma-separated allowlist
authentication:
token_env: ARTIFACTORY_TOKEN # name of env var holding your token
# username: your.name # uncomment for basic auth instead of bearer
CLI usage
# Find all requests wheels and print version / filename / sha256:
jartify 'requests-*.whl'
# Restrict to specific repos (-R is a short alias):
jartify 'myapp-*.tar.gz' -R pypi-local -R pypi-releases
# Machine-readable output:
jartify 'myapp-*.whl' --json
Output:
VERSION FILENAME SHA256
------- ------------------------------------- ----------------------------------------------------------------
2.31.0 requests-2.31.0-py3-none-any.whl 4c491f82b8a8b4...
2.32.3 requests-2.32.3-py3-none-any.whl 70761cfe03c773...
Exit codes: 0 on at least one hit, 1 on no hits, 2 on config / auth errors.
TUI usage
jartify-tui
Keys:
- Type a pattern → Enter runs the search.
- Ctrl+R focuses the Repo field. Comma-separate names to search multiple repos; leave blank to search all. Enter in the Repo field re-runs the last search with the new filter.
- Ctrl+F jumps back to the Search field.
- r repeats the last search, y copies the highlighted row's sha256, q quits.
Releasing
One-time: register the PyPI trusted publisher
PyPI has no API for this — the form is behind your login + 2FA. The helper script opens the right page and prints the values to type:
python scripts/register-pypi-publisher.py
It reads the project name from pyproject.toml and the GitLab
namespace/repo from git remote get-url origin, so there's nothing to
look up. In PyPI's "Add a new pending publisher" form, pick the GitLab
tab and paste the printed values.
Each release
Push to main with a bumped version in pyproject.toml. GitLab CI
runs python -m build, mints a short-lived PyPI token via OIDC
trusted publishing, and uploads with twine upload --skip-existing.
Pushes that do not bump the version are no-ops.
Metadata
Release files for jartify 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| jartify-0.1.5.tar.gz | 14.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jartify-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.0 kB
Release files / jartify-0.1.5.tar.gz
| Download URL | jartify-0.1.5.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ccad72890e536966b647e5cfe76fc272bc8ffc89493c1732453d79fc4449b643
|
|
BLAKE2b-256 checksum How to use checksums |
78bbdec855b735836124133eabc9d3874c7b68484d259e4c019e9bc330db40e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / jartify-0.1.5-py3-none-any.whl
| Download URL | jartify-0.1.5-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a5fb8eb2d3ff33cfde01b54cba4920f31456c113bb1ae753cfea907aec61f5d
|
|
BLAKE2b-256 checksum How to use checksums |
a875baed89d6457a61bc9b441f6e6d447ea46379f7433c42dfb39e820a24bc81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for jartify 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.