Невозможно передать переменную в JQL-файле AQL с помощью Jfrog CLI

Используя AQL-запрос и Jfrog CLI, мы планируем обнаружить устаревшие артефакты в нашей версии корпоративного артефакта.

Для этого я хотел бы передать переменную в JQL-файл AQL, чтобы удалить артефакты с помощью Jfrog CLI.

Потому что значение переменной не будет статическим и будет динамическим. Поэтому мне нужно передать переменную в Json-файл и подсвеченную ниже переменную, которую мне нужно использовать.

Команда:

./jfrog rt del --spec /xxxxxxxx.json --dry-run=true --quiet=true

xxxx.Json:

{
 "files":[
  {
     "aql":{
        "items.find":{
           "type":"file",
           "$or":[
              {
                 "$and":[
                    {
                       "stat.downloads":{
                          "$eq":null
                       }
                    },
                    {
                       "modified":{
                          "$before":"1s"
                       }
                    },
                    {
                       "@retention.RetDate":{
                          "$lt":"$RetDate"
                       }
                    }
                 ]
              },
              {
                 "$and":[
                    {
                       "stat.downloads":{
                          "$gt":"0"
                       }
                    },
                    {
                       "stat.downloaded":{
                          "$before":"1s"
                       }
                    },
                    {
                       "modified":{
                          "$before":"1s"
                       }
                    },
                    {
                       "@retention.RetDate":{
                          "$lt":"$RetDate"
                       }
                    }
                 ]
              }
           ]
        }
     }
  }
 ]
}

1 ответ

Если вы хотите переменные в вашем spec-файле, вы должны определить переменные в вызове:

./jfrog rt del --spec /xxxxxxxx.json --spec-vars "RetDate=2018-01-01" --dry-run=true --quiet=true

И если я не ошибаюсь, переменные идентифицируются как ${key} в файле спецификации, так что-то вроде

                [...]
                {
                   "@retention.RetDate":{
                      "$lt":"${RetDate}"
                   }
                }
                [...]

Помогает ли это вашему тесту?

Другие вопросы по тегам