Module: StillActive::ArtifactoryClient::AqlClient
Overview
AQL stands for Artifactory Query Language https://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
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/still_active/artifactory_client.rb', line 121 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 |