Class: Resource::Artifact
- Inherits:
-
Object
- Object
- Resource::Artifact
- Defined in:
- lib/packaging/artifactory.rb
Class Method Summary collapse
-
.pattern_search(options = {}) ⇒ Array<Resource::Artifact>
Search for an artifact in a repo using an Ant-like pattern.
Class Method Details
.pattern_search(options = {}) ⇒ Array<Resource::Artifact>
Search for an artifact in a repo using an Ant-like pattern. Unlike many Artifactory searches, this one is restricted to a single repository.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/packaging/artifactory.rb', line 38 def self.pattern_search( = {}) client = extract_client!() params = Util.slice(, :pattern, :repo) pattern_search_parameter = { :pattern => "#{params[:repo]}:#{params[:pattern]}" } response = client.get('/api/search/pattern', pattern_search_parameter) return [] if response['files'].nil? || response['files'].empty? # A typical response: # { # "repoUri"=>"https:<artifactory endpoint>/<repo>", # "sourcePattern"=>"<repo>:<provided search pattern>", # "files"=>[<filename that matched pattern>, ...] # } # # Inserting '/api/storage' before the repo makes the 'from_url' call work correctly. # repo_uri = response['repoUri'] unless repo_uri.include?('/api/storage/') # rubocop:disable Style/PercentLiteralDelimiters repo_uri.sub!(%r(/#{params[:repo]}$), "/api/storage/#{params[:repo]}") end response['files'].map do |file_path| from_url("#{repo_uri}/#{file_path}", client: client) end end |