Возможность перезаписать артефакт выпуска без разрешения

#maven #gradle #artifactory

Вопрос:

сегодня я столкнулся со следующей ситуацией:

  1. Опубликуйте артефакт с версией, отличной от моментального снимка, в репозитории artifactory maven
  2. Когда я публикую его снова с помощью плагина maven-publish gradle, он возвращает мне 403, что нормально, но
  3. Когда я публикую тот же артефакт в том же репозитории с помощью id("com.jfrog.artifactory") version "4.24.20" плагина gradle, он перезаписывает артефакт (и я вижу время последнего изменения для него).

Разрешения пользователя для этого репозитория являются

  • Читать
  • Аннотировать
  • Развертывание/Кэширование

Я что-то упускаю, или это действительно не должно так работать?

Комментарии:

1. Можете ли вы проверить, есть ли у пользователя какие-либо другие разрешения, перейдя на страницу пользователя и проверив разрешения на ней?

Ответ №1:

Кажется, из-за известной проблемы RTFACT-26398, где плагин использует тот же вызов rest.

Ответ №2:

Добавление к ответу @sankar-dunga:

Плагин использует механизм развертывания контрольной суммы. Эта функция позволяет ускорить загрузку, пропуская загрузку файлов, которые уже существуют в Artifactory. Артефакт на самом деле не переопределяется, меняется только его метка времени — вы не можете изменить или удалить артефакт без разрешений на перезапись/удаление.

Если вы хотите отключить эту функцию, вы можете установить minChecksumDeploySizeKb значение 0:

 artifactoryPublish {
    clientConfig.publisher.minChecksumDeploySizeKb = 0 
}
 

Для получения дополнительной информации:

  1. Выпуск 341
  2. Документация
  3. REST API