JFrog Artifactory API-запрос для свойств объекта не возвращает запрошенную информацию - PullRequest
0 голосов
/ 07 мая 2018

Я запрашиваю свойства метки для артефакта докера, возможно, URL неверный? Я получаю объект ответа (JSON), но свойства метки не включены. Пример кода:

  response = Net::HTTP.get_with_headers("http://myrepo:8081/artifactory/api/storage/dockerv2-local/anonymizer/functional/manifest.json;docker.label.com.company.info.build='*'", 
                          {'Authorization' => 'Bearer <REDACTED>'})
  if response.code.to_s == "200"
    puts ("Artifactory response "+ response.body)
    puts ("response object: "+response.inspect())
  else
    puts ("Artifactory request returned "+response.code.to_s)
  end

Connecting to artifactory
Artifactory response {
  "repo" : "dockerv2-local",
  "path" : "/anonymizer/functional/manifest.json",
  "created" : "2018-03-14T14:52:22.681-07:00",
  "createdBy" : "build",
  "lastModified" : "2018-03-15T15:52:34.225-07:00",
  "modifiedBy" : "build",
  "lastUpdated" : "2018-03-15T15:52:34.225-07:00",
  "downloadUri" : "http://myrepo:8081/artifactory/dockerv2-local/anonymizer/functional/manifest.json",
  "mimeType" : "application/json",
  "size" : "1580",
  "checksums" : {
    "sha1" : "bf2a1f85c7ab8cec14b64d172b7fdaf420804fcb",
    "md5" : "9c1bbfc77e2f44d96255f7c1f99d2e8d",
    "sha256" : "53e56b21197c57d8ea9838df7cffb3d8f33cd714998d620efd8a34ba5a7e33c0"
  },
  "originalChecksums" : {
    "sha256" : "53e56b21197c57d8ea9838df7cffb3d8f33cd714998d620efd8a34ba5a7e33c0"
  },
  "uri" : "http://myrepo:8081/artifactory/api/storage/dockerv2-local/anonymizer/functional/manifest.json"
}
response object: #<Net::HTTPOK 200 OK readbody=true>

1 Ответ

0 голосов
/ 07 мая 2018

Если я вас правильно понял, вы хотите получить свойства файла manifest.json, в частности, «docker.label.com.company.info.build».

Смотря на вашу команду:

response = Net::HTTP.get_with_headers("http://myrepo:8081/artifactory/api/storage/dockerv2-local/anonymizer/functional/manifest.json;docker.label.com.company.info.build='*'", 

Похоже, что вы используете точку с запятой для получения свойств, что не является правильным способом. Как вы можете видеть в этом REST API, чтобы использовать свойства get, вы должны использовать знак амперсанда, поэтому ваша команда должна выглядеть так:

response = Net::HTTP.get_with_headers("http://myrepo:8081/artifactory/api/storage/dockerv2-local/anonymizer/functional/manifest.json&docker.label.com.company.info.build='*'", 

...