class Repol::Exporter
Public Class Methods
new(client, options = {})
click to toggle source
# File lib/repol/exporter.rb, line 4 def initialize(client, options = {}) @client = client @options = options end
Public Instance Methods
export()
click to toggle source
# File lib/repol/exporter.rb, line 9 def export export_repositories.sort_array! end
Private Instance Methods
export_repositories()
click to toggle source
# File lib/repol/exporter.rb, line 15 def export_repositories result = {} repositories = get_repositories concurrency = @options[:request_concurrency] Parallel.each(repositories, in_threads: concurrency) do |repository| name = repository.repository_name next unless matched?(name) policy = export_repository_policy(repository) result[name] = policy end result end
export_repository_policy(repository)
click to toggle source
# File lib/repol/exporter.rb, line 30 def export_repository_policy(repository) name = repository.repository_name resp = @client.get_repository_policy(repository_name: name) JSON.parse(resp.policy_text) rescue Aws::ECR::Errors::RepositoryPolicyNotFoundException nil end
get_repositories()
click to toggle source
# File lib/repol/exporter.rb, line 38 def get_repositories repositories = [] next_token = nil loop do resp = @client.describe_repositories(next_token: next_token) repositories.concat(resp.repositories) next_token = resp.next_token break unless next_token end repositories end