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.4+
- 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