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 |
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:
jartify 'myapp-*.tar.gz' --repo pypi-local --repo 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 pattern → Enter, 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.2
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.2.tar.gz | 12.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jartify-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.3 kB
Release files / jartify-0.1.2.tar.gz
| Download URL | jartify-0.1.2.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12509436566a744519b4892e7cdd288c61aa4e35ec22533d586844910bfc55a0
|
|
BLAKE2b-256 checksum How to use checksums |
84587cc2e6279724429b54a009d105a8740941420bab61f9e1b1178880b8f11b
|
| 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.2-py3-none-any.whl
| Download URL | jartify-0.1.2-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d8bd6e92c260abb00aceb6778625701a58c513710af0de8ffa496a6a012a145
|
|
BLAKE2b-256 checksum How to use checksums |
344ff75ed3f20738f40d888478f4449b07af95d03fbe01ceb1342e28923c3006
|
| 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.2
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.