Skip to content

Commit

Permalink
Use constants to keep keys consistent
Browse files Browse the repository at this point in the history
This should help those of us who don't always type so well 馃槄
  • Loading branch information
landongrindheim committed Mar 12, 2024
1 parent 135e1bb commit a07aa22
Show file tree
Hide file tree
Showing 11 changed files with 127 additions and 110 deletions.
11 changes: 11 additions & 0 deletions common/lib/dependabot/errors.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@
module Dependabot
extend T::Sig

module ErrorAttributes
BACKTRACE = "error-backtrace"
CLASS = "error-class"
DETAILS = "error-details"
MESSAGE = "error-message"
DEPENDENCIES = "job-dependencies"
DEPENDENCY_GROUP = "job-dependency-group"
JOB_ID = "job-id"
PACKAGE_MANAGER = "package-manager"
end

# rubocop:disable Metrics/MethodLength
sig { params(error: StandardError).returns(T.nilable(T::Hash[Symbol, T.untyped])) }
def self.fetcher_error_details(error)
Expand Down
15 changes: 8 additions & 7 deletions updater/lib/dependabot/base_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# frozen_string_literal: true

require "dependabot/api_client"
require "dependabot/errors"
require "dependabot/service"
require "dependabot/logger"
require "dependabot/logger/formats"
Expand Down Expand Up @@ -57,13 +58,13 @@ def handle_exception(err)

def handle_unknown_error(err)
error_details = {
"error-class" => err.class.to_s,
"error-message" => err.message,
"error-backtrace" => err.backtrace.join("\n"),
"package-manager" => job.package_manager,
"job-id" => job.id,
"job-dependencies" => job.dependencies,
"job-dependency-group" => job.dependency_groups
ErrorAttributes::CLASS => err.class.to_s,
ErrorAttributes::MESSAGE => err.message,
ErrorAttributes::BACKTRACE => err.backtrace.join("\n"),
ErrorAttributes::PACKAGE_MANAGER => job.package_manager,
ErrorAttributes::JOB_ID => job.id,
ErrorAttributes::DEPENDENCIES => job.dependencies,
ErrorAttributes::DEPENDENCY_GROUP => job.dependency_groups
}.compact
service.record_update_job_unknown_error(error_type: "updater_error", error_details: error_details)
service.increment_metric("updater.update_job_unknown_error", tags: {
Expand Down
15 changes: 8 additions & 7 deletions updater/lib/dependabot/file_fetcher_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

require "base64"
require "dependabot/base_command"
require "dependabot/errors"
require "dependabot/opentelemetry"
require "dependabot/updater"
require "octokit"
Expand Down Expand Up @@ -173,13 +174,13 @@ def handle_file_fetcher_error(error)
log_error(error)

unknown_error_details = {
"error-class" => error.class.to_s,
"error-message" => error.message,
"error-backtrace" => error.backtrace.join("\n"),
"package-manager" => job.package_manager,
"job-id" => job.id,
"job-dependencies" => job.dependencies,
"job-dependency-group" => job.dependency_groups
ErrorAttributes::CLASS => error.class.to_s,
ErrorAttributes::MESSAGE => error.message,
ErrorAttributes::BACKTRACE => error.backtrace.join("\n"),
ErrorAttributes::PACKAGE_MANAGER => job.package_manager,
ErrorAttributes::JOB_ID => job.id,
ErrorAttributes::DEPENDENCIES => job.dependencies,
ErrorAttributes::DEPENDENCY_GROUP => job.dependency_groups
}.compact

error_details = {
Expand Down
15 changes: 8 additions & 7 deletions updater/lib/dependabot/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
require "terminal-table"

require "dependabot/api_client"
require "dependabot/errors"
require "dependabot/opentelemetry"

# This class provides an output adapter for the Dependabot Service which manages
Expand Down Expand Up @@ -105,13 +106,13 @@ def capture_exception(error:, job: nil, dependency: nil, dependency_group: nil,
return unless Experiments.enabled?(:record_update_job_unknown_error)

error_details = {
"error-class" => error.class.to_s,
"error-message" => error.message,
"error-backtrace" => error.backtrace&.join("\n"),
"package-manager" => job&.package_manager,
"job-id" => job&.id,
"job-dependencies" => dependency&.name || job&.dependencies,
"job-dependency-group" => dependency_group&.name || job&.dependency_groups
ErrorAttributes::CLASS => error.class.to_s,
ErrorAttributes::MESSAGE => error.message,
ErrorAttributes::BACKTRACE => error.backtrace&.join("\n"),
ErrorAttributes::PACKAGE_MANAGER => job&.package_manager,
ErrorAttributes::JOB_ID => job&.id,
ErrorAttributes::DEPENDENCIES => dependency&.name || job&.dependencies,
ErrorAttributes::DEPENDENCY_GROUP => dependency_group&.name || job&.dependency_groups
}.compact
record_update_job_unknown_error(error_type: "unknown_error", error_details: error_details)
end
Expand Down
15 changes: 8 additions & 7 deletions updater/lib/dependabot/update_files_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
require "base64"
require "dependabot/base_command"
require "dependabot/dependency_snapshot"
require "dependabot/errors"
require "dependabot/opentelemetry"
require "dependabot/updater"

Expand Down Expand Up @@ -82,13 +83,13 @@ def handle_parser_error(error)
Dependabot.logger.error error.message
error.backtrace.each { |line| Dependabot.logger.error line }
unknown_error_details = {
"error-class" => error.class.to_s,
"error-message" => error.message,
"error-backtrace" => error.backtrace.join("\n"),
"package-manager" => job.package_manager,
"job-id" => job.id,
"job-dependencies" => job.dependencies,
"job-dependency-group" => job.dependency_groups
ErrorAttributes::CLASS => error.class.to_s,
ErrorAttributes::MESSAGE => error.message,
ErrorAttributes::BACKTRACE => error.backtrace.join("\n"),
ErrorAttributes::PACKAGE_MANAGER => job.package_manager,
ErrorAttributes::JOB_ID => job.id,
ErrorAttributes::DEPENDENCIES => job.dependencies,
ErrorAttributes::DEPENDENCY_GROUP => job.dependency_groups
}.compact

service.capture_exception(error: error, job: job)
Expand Down
14 changes: 7 additions & 7 deletions updater/lib/dependabot/updater/error_handler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,13 @@ def error_details_for(error, dependency: nil, dependency_group: nil)

def log_unknown_error_with_backtrace(error)
error_details = {
"error-class" => error.class.to_s,
"error-message" => error.message,
"error-backtrace" => error.backtrace.join("\n"),
"package-manager" => job.package_manager,
"job-id" => job.id,
"job-dependencies" => job.dependencies,
"job-dependency-group" => job.dependency_groups
ErrorAttributes::CLASS => error.class.to_s,
ErrorAttributes::MESSAGE => error.message,
ErrorAttributes::BACKTRACE => error.backtrace.join("\n"),
ErrorAttributes::PACKAGE_MANAGER => job.package_manager,
ErrorAttributes::JOB_ID => job.id,
ErrorAttributes::DEPENDENCIES => job.dependencies,
ErrorAttributes::DEPENDENCY_GROUP => job.dependency_groups
}.compact

service.increment_metric("updater.update_job_unknown_error", tags: {
Expand Down
37 changes: 19 additions & 18 deletions updater/spec/dependabot/file_fetcher_command_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

require "spec_helper"
require "dependabot/file_fetcher_command"
require "dependabot/errors"
require "tmpdir"

require "support/dummy_package_manager/dummy"
Expand Down Expand Up @@ -139,12 +140,12 @@
expect(api_client).to receive(:record_update_job_error).with(
error_type: "file_fetcher_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "my_branch",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "my_branch",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)
expect(api_client).to receive(:record_update_job_unknown_error)
Expand All @@ -157,12 +158,12 @@
expect(api_client).to receive(:record_update_job_unknown_error).with(
error_type: "unknown_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "my_branch",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "my_branch",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)
expect(api_client).to receive(:mark_job_as_processed)
Expand All @@ -182,12 +183,12 @@
expect(api_client).to receive(:record_update_job_error).with(
error_type: "file_fetcher_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "my_branch",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "my_branch",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)
expect(api_client).to receive(:mark_job_as_processed)
Expand Down
24 changes: 12 additions & 12 deletions updater/spec/dependabot/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,8 @@
.with(
error_type: "unknown_error",
error_details: hash_including(
"error-message" => "Something went wrong",
"error-class" => "Dependabot::DependabotError"
Dependabot::ErrorAttributes::MESSAGE => "Something went wrong",
Dependabot::ErrorAttributes::CLASS => "Dependabot::DependabotError"
)
)
end
Expand All @@ -317,10 +317,10 @@
.with(
error_type: "unknown_error",
error_details: hash_including(
"error-class" => "Dependabot::DependabotError",
"error-message" => "Something went wrong",
"job-id" => job.id,
"package-manager" => job.package_manager
Dependabot::ErrorAttributes::CLASS => "Dependabot::DependabotError",
Dependabot::ErrorAttributes::MESSAGE => "Something went wrong",
Dependabot::ErrorAttributes::JOB_ID => job.id,
Dependabot::ErrorAttributes::PACKAGE_MANAGER => job.package_manager
)
)
end
Expand All @@ -334,9 +334,9 @@
.with(
error_type: "unknown_error",
error_details: hash_including(
"error-message" => "Something went wrong",
"error-class" => "Dependabot::DependabotError",
"job-dependencies" => "lodash"
Dependabot::ErrorAttributes::MESSAGE => "Something went wrong",
Dependabot::ErrorAttributes::CLASS => "Dependabot::DependabotError",
Dependabot::ErrorAttributes::DEPENDENCIES => "lodash"
)
)
end
Expand All @@ -351,9 +351,9 @@
.with(
error_type: "unknown_error",
error_details: hash_including(
"error-message" => "Something went wrong",
"error-class" => "Dependabot::DependabotError",
"job-dependency-group" => "all-the-things"
Dependabot::ErrorAttributes::MESSAGE => "Something went wrong",
Dependabot::ErrorAttributes::CLASS => "Dependabot::DependabotError",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => "all-the-things"
)
)
end
Expand Down
36 changes: 18 additions & 18 deletions updater/spec/dependabot/update_files_command_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,12 @@
expect(service).to receive(:record_update_job_error).with(
error_type: "update_files_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "hell",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "hell",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand All @@ -147,12 +147,12 @@
expect(service).to receive(:record_update_job_unknown_error).with(
error_type: "update_files_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "hell",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "hell",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand All @@ -171,12 +171,12 @@
expect(service).to receive(:record_update_job_error).with(
error_type: "update_files_error",
error_details: {
"error-backtrace" => an_instance_of(String),
"error-message" => "hell",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => an_instance_of(String),
Dependabot::ErrorAttributes::MESSAGE => "hell",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand Down
43 changes: 22 additions & 21 deletions updater/spec/dependabot/updater/error_handler_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

require "dependabot/dependency"
require "dependabot/dependency_group"
require "dependabot/errors"
require "dependabot/job"
require "dependabot/service"
require "dependabot/shared_helpers"
Expand Down Expand Up @@ -82,13 +83,13 @@
expect(mock_service).to receive(:record_update_job_unknown_error).with(
error_type: "unknown_error",
error_details: {
"error-backtrace" => "bees.rb:5:in `buzz`",
"error-message" => "There are bees everywhere",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependencies" => [],
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => "bees.rb:5:in `buzz`",
Dependabot::ErrorAttributes::MESSAGE => "There are bees everywhere",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCIES => [],
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand Down Expand Up @@ -180,13 +181,13 @@
expect(mock_service).to receive(:record_update_job_unknown_error).with(
error_type: "unknown_error",
error_details: {
"error-backtrace" => "****** ERROR 8335 -- 101",
"error-message" => "the kernal is full of bees",
"error-class" => "Dependabot::SharedHelpers::HelperSubprocessFailed",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependencies" => [],
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => "****** ERROR 8335 -- 101",
Dependabot::ErrorAttributes::MESSAGE => "the kernal is full of bees",
Dependabot::ErrorAttributes::CLASS => "Dependabot::SharedHelpers::HelperSubprocessFailed",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCIES => [],
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand Down Expand Up @@ -327,13 +328,13 @@
expect(mock_service).to receive(:record_update_job_unknown_error).with(
error_type: "unknown_error",
error_details: {
"error-backtrace" => "bees.rb:5:in `buzz`",
"error-message" => "There are bees everywhere",
"error-class" => "StandardError",
"package-manager" => "bundler",
"job-id" => "123123",
"job-dependencies" => [],
"job-dependency-group" => []
Dependabot::ErrorAttributes::BACKTRACE => "bees.rb:5:in `buzz`",
Dependabot::ErrorAttributes::MESSAGE => "There are bees everywhere",
Dependabot::ErrorAttributes::CLASS => "StandardError",
Dependabot::ErrorAttributes::PACKAGE_MANAGER => "bundler",
Dependabot::ErrorAttributes::JOB_ID => "123123",
Dependabot::ErrorAttributes::DEPENDENCIES => [],
Dependabot::ErrorAttributes::DEPENDENCY_GROUP => []
}
)

Expand Down

0 comments on commit a07aa22

Please sign in to comment.