Tooling to define repository specific retention policies in Artifactory. Allows highly customizable retention policies via Python plugins.
See Lavatory Documentation for the full docs.
- Python 3.5+
- Artifactory user with API permissions
This tool looks for 3 enviroment variables in order to authenticate:
ARTIFACTORY_URL
- Base URL to use for Artifactory connections
ARTIFACTORY_USERNAME
- Username to Artifactory
ARTIFACTORY_PASSWORD
- Password for Artifactory
These will be loaded in at the beginning of a run and raise an exception if missing.
From pypi:
pip install lavatory
Or install directly from the code:
git clone https://github.com/gogoair/lavatory
cd lavatory
pip install -U .
$ lavatory --help
Usage: lavatory [OPTIONS] COMMAND [ARGS]...
Lavatory is a tool for managing Artifactory Retention Policies.
Options:
-v, --verbose Increases logging level.
--help Show this message and exit.
Commands:
purge Deletes artifacts based on retention policies.
stats Get statistics of a repo.
version Print version information.
lavatory purge --policies-path=/path/to/policies
$ lavatory purge --help
Usage: lavatory purge [OPTIONS]
Deletes artifacts based on retention policies.
Options:
--policies-path TEXT Path to extra policies directory.
--dryrun / --nodryrun Dryrun does not delete any artifacts.
[default: True]
--default / --no-default Applies default retention policy. [default:
True]
--repo TEXT Name of specific repository to run against.
Can use --repo multiple times. If not
provided, uses all repos.
--repo-type [local|virtual|cache|any]
The types of repositories to search for.
[default: local]
--help Show this message and exit.
If you want to run Lavatory against a specific repository, you can use --repo <repo_name>
. You can specify --repo
as multiple times to run against multiple repos. If --repo
is not provided, Lavatory will run against all repos in Artifactory.
lavatory stats --repo test-local
$ lavatory stats --help
Usage: lavatory stats [OPTIONS]
Get statistics of a repo.
Options:
--repo TEXT Name of specific repository to run against. Can
use --repo multiple times. If not provided, uses
all repos.
--help Show this message and exit.
See the Creating Retention Policies docs for more details on how to create and use retention policies with Lavatory.
Lavatory looks at a policy functions docstring in order to get a description. You can list all repos and a description of the policy that would apply to them with the lavatory policies
command.
$ lavatory policies --help
Usage: lavatory policies [OPTIONS]
Prints out a JSON list of all repos and policy descriptions.
Options:
--policies-path TEXT Path to extra policies directory.
--repo TEXT Name of specific repository to run against.
Can use --repo multiple times. If not
provided, uses all repos.
--repo-type [local|virtual|cache|any]
The types of repositories to search for.
[default: local]
--help Show this message and exit.
pip install -r requirements-dev.txt
tox