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 |
Both share the same ~/.local/etc/jartify/config.yaml and
$ARTIFACTORY_TOKEN env var (name is configurable).
Install
pip install jartify
Configure
The first run writes a template config:
jartify --configure # interactive
# or just:
jartify foo # writes a template, prints path, exits
Edit ~/.local/etc/jartify/config.yaml:
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
Export your token:
export ARTIFACTORY_TOKEN=...
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.1
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.1.tar.gz | 11.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jartify-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.6 kB
Release files / jartify-0.1.1.tar.gz
| Download URL | jartify-0.1.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd5214999777f38946a61af5b9f79cb1275763f24970d253f291ed321aad7c81
|
|
BLAKE2b-256 checksum How to use checksums |
07613d442863d77ca29d2c60a6869547ff74f0622eaeb6e74bd0798e224b207a
|
| 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.1-py3-none-any.whl
| Download URL | jartify-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e92b8d9193983bfa7d097024a5ec717965c69cb7639db600bbfc319f9d8a612
|
|
BLAKE2b-256 checksum How to use checksums |
1ec090f823ad166a13c881800f14fff0b61ebd235e01fe5734953aa6633d5b5a
|
| 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.1
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.