Sha256: a7b2415a7b70a679034abd6a98d63934750ceecc6909f1458adbb603474fc9a4
Contents?: true
Size: 1.38 KB
Versions: 20
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true require 'json' module Diffend # Module responsible for fetching diffend verdict on local context module RequestVerdict # Exceptions that we handle when there is a resolve issue RESOLVE_EXCEPTIONS = [ ::Bundler::GemNotFound, ::Bundler::GitError, ::Bundler::PermissionError, ::Bundler::VersionConflict ].freeze class << self # @param config [Diffend::Config] # @param definition [::Bundler::Definition] definition for your source def call(config, definition) payload = Diffend::LocalContext.call(config, definition) response = Diffend::Request.call( build_request_object(config, payload) ) JSON.parse(response.body) rescue *RESOLVE_EXCEPTIONS raise ::Diffend::Errors::DependenciesResolveException rescue StandardError => e Diffend::HandleErrors::Report.call( exception: e, payload: payload || {}, config: config, message: :unhandled_exception, report: true ) end # @param config [Diffend::Config] # @param payload [Hash] # # @return [Diffend::RequestObject] def build_request_object(config, payload) Diffend::RequestObject.new( config, config.commands_url, payload, :post ) end end end end
Version data entries
20 entries across 20 versions & 2 rubygems