Module: StillActive::ArtifactoryClient::AqlClient
Overview
AQL stands for Artifactory Query Language docs.jfrog.com/artifactory/docs/artifactory-query-language
Constant Summary collapse
- SOURCE_URL_PATTERN =
%r{\A(https?://[^/]+\.jfrog\.io/[^/]+)/api/gems/([^/]+)/?\z}- AQL_PATH =
"/api/search/aql"
Instance Method Summary collapse
Instance Method Details
#versions(gem_name:, source_uri:, headers: {}) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/still_active/artifactory_client.rb', line 95 def versions(gem_name:, source_uri:, headers: {}) artifactory_base, repo_key = parse_source_url(source_uri) return [] if artifactory_base.nil? base = URI(artifactory_base) path = "#{base.path}#{AQL_PATH}" query = { "name" => { "$match" => "#{gem_name}-*.gem" }, "repo" => repo_key, } body = %(items.find(#{JSON.generate(query)}).include("repo", "path", "name", "created")) response = HttpHelper.post_json(base, path, body: body, headers: headers.merge("Content-Type" => "text/plain")) return [] if response.nil? results = response["results"] || [] build_version_hashes(results: results, gem_name: gem_name) end |