From 243078b49579fd298512322ab9fe432be8bd4f3a Mon Sep 17 00:00:00 2001 From: Koen Sengers Date: Fri, 2 Feb 2024 14:29:36 +0100 Subject: [PATCH] fix: Change appsignal info method based presence --- .github/workflows/reviewdog.yml | 3 ++- appsignal-sourcemap.gemspec | 3 ++- lib/appsignal/sourcemap/base.rb | 14 ++++++++++++++ lib/appsignal/sourcemap/supervisor.rb | 14 ++++++-------- lib/appsignal/sourcemap/uploader.rb | 19 ++++++++++++------- 5 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 lib/appsignal/sourcemap/base.rb diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index 2ac36a4..b03ac6f 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -6,8 +6,9 @@ jobs: fail-fast: false matrix: ruby: - - 3.0 + - 3.1 - 3.2 + - 3.3 runs-on: ubuntu-latest steps: diff --git a/appsignal-sourcemap.gemspec b/appsignal-sourcemap.gemspec index 8ba79f7..1125204 100644 --- a/appsignal-sourcemap.gemspec +++ b/appsignal-sourcemap.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |spec| spec.metadata["allowed_push_host"] = "https://rubygems.pkg.github.com/Drieam" - spec.required_ruby_version = ">= 2.7" + spec.required_ruby_version = ">= 3.1" spec.files = Dir["lib/**/*", "README.md"] @@ -24,4 +24,5 @@ Gem::Specification.new do |spec| spec.add_dependency "parallel", "~> 1.0" spec.add_development_dependency "standard" + spec.metadata["rubygems_mfa_required"] = "true" end diff --git a/lib/appsignal/sourcemap/base.rb b/lib/appsignal/sourcemap/base.rb new file mode 100644 index 0000000..8783394 --- /dev/null +++ b/lib/appsignal/sourcemap/base.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Appsignal + module Sourcemap + class Base + private + + def log_appsignal(message, type = "info") + log_method = Appsignal.respond_to?(:internal_logger) ? "internal_logger" : "logger" + Appsignal.send(log_method).send(type, message) + end + end + end +end diff --git a/lib/appsignal/sourcemap/supervisor.rb b/lib/appsignal/sourcemap/supervisor.rb index f9330e5..67a8f05 100644 --- a/lib/appsignal/sourcemap/supervisor.rb +++ b/lib/appsignal/sourcemap/supervisor.rb @@ -5,7 +5,7 @@ module Appsignal module Sourcemap - class Supervisor + class Supervisor < Base PARALLEL_THREADS = 10 def self.start @@ -15,27 +15,25 @@ def self.start def start return if invalid_preconditions - Appsignal.logger.info("Starting sourcemaps upload") + log_appsignal("Starting sourcemaps upload") Parallel.each(source_map_paths, in_threads: PARALLEL_THREADS) do |source_map_path| Uploader.upload(source_map_path) end - Appsignal.logger.info("Finished sourcemaps upload") + log_appsignal("Finished sourcemaps upload") end private def invalid_preconditions unless Appsignal.config.valid? - return Appsignal.logger.error("Skipping sourcemaps upload since Appsignal config is invalid") + return log_appsignal("Skipping sourcemaps upload since Appsignal config is invalid", "error") end if asset_host.blank? - return Appsignal.logger.error("Skipping sourcemaps upload since Rails asset_host is not set") - end - if source_map_paths.empty? - return Appsignal.logger.info("Skipping sourcemaps upload since no javascript maps are found") + return log_appsignal("Skipping sourcemaps upload since Rails asset_host is not set", "error") end + return log_appsignal("Skipping sourcemaps upload since no javascript maps are found") if source_map_paths.empty? false end diff --git a/lib/appsignal/sourcemap/uploader.rb b/lib/appsignal/sourcemap/uploader.rb index 113aeb8..5b8270f 100644 --- a/lib/appsignal/sourcemap/uploader.rb +++ b/lib/appsignal/sourcemap/uploader.rb @@ -2,7 +2,7 @@ module Appsignal module Sourcemap - class Uploader + class Uploader < Base UPLOAD_URI = URI("https://appsignal.com/api/sourcemaps") def self.upload(sourcemap_path) @@ -11,22 +11,29 @@ def self.upload(sourcemap_path) def initialize(sourcemap_path) @sourcemap_path = sourcemap_path + super end - def upload # rubocop:disable Metrics/AbcSize - Appsignal.logger.debug "Starting sourcemap upload '#{@sourcemap_path}' with parameters: #{request_form_data}" + def upload + log_appsignal("Starting sourcemap upload '#{@sourcemap_path}' with parameters: #{request_form_data}", "debug") response = Net::HTTP.start(UPLOAD_URI.hostname, UPLOAD_URI.port, use_ssl: true) do |http| http.request(request) end if response.is_a?(Net::HTTPSuccess) - Appsignal.logger.debug("Finished sourcemap upload '#{@sourcemap_path}'") + log_appsignal("Finished sourcemap upload '#{@sourcemap_path}'", "debug") File.delete(sourcemap_full_path) return end - Appsignal.logger.error <<~MESSAGE + log_appsignal(error_message(response), "error") + end + + private + + def error_message(response) + <<~MESSAGE Uploading sourcemap #{@sourcemap_path} failed with message '#{response.message}'. Response: #{response.body} @@ -34,8 +41,6 @@ def upload # rubocop:disable Metrics/AbcSize MESSAGE end - private - def sourcemap_full_path Rails.public_path.join(@sourcemap_path) end