Поскольку у меня есть аналогичное требование в одной из моих сред, я хотел бы предоставить возможный подход к решению.
Предполагается, что экземпляр JFrog Artifactory имеет локальный репозиторий с именем JFROG-ARTIFACTORY
, в котором хранится последняя версия JFrog Artifactory. Установочные RPM Pro. Для перечисления и удаления я создал следующий сценарий:
#!/bin/bash
# The logged in user will be also the admin account for Artifactory REST API
A_ACCOUNT=$(who am i | cut -d " " -f 1)
LOCAL_REPO=$1
PASSWORD=$2
STAGE=$3
URL="example.com"
# Check if a stage were provided, if not set it to PROD
if [ -z "$STAGE" ]; then
STAGE="repository-prod"
fi
# Going to list all files within the local repository
# Doc: https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-FileList
curl --silent \
-u"${A_ACCOUNT}:${PASSWORD}" \
-i \
-X GET "https://${STAGE}.${URL}/artifactory/api/storage/${LOCAL_REPO}/?list&deep=1" \
-w "\n\n%{http_code}\n"
echo
# Going to delete all files in the local repository
# Doc: https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-DeleteItem
curl --silent \
-u"${A_ACCOUNT}:${PASSWORD}" \
-i \
-X DELETE "https://${STAGE}.${URL}/artifactory/${LOCAL_REPO}/" \
-w "\n\n%{http_code}\n"
echo
Итак, после вызова
./Scripts/deleteRepository.sh JFROG-ARTIFACTORY Pa\$\$w0rd! repository-dev
для экземпляра разработки он перечислил мне все файлы в локальном репозитории с именем JFROG-ARTIFACTORY
, установочные RPM-пакеты JFrog Artifactory Pro удалили их, но оставили сам локальный репозиторий.
Вы можете изменить и улучшить сценарий для своих нужд, а также изучить Как я могу полностью удалить артефакты из Artifactory?