Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-21 15:06:40 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-21 15:06:40 +0300
commit0a6ffb540e569bd7a7c548d59b12bc55d4bf9cf1 (patch)
tree9ff7dd7b21a3f9642a8fbb45c922f71a433faf02 /lib/sentry
parenta048261403ea7e12992ccffe704f0779235712d7 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/sentry')
-rw-r--r--lib/sentry/client.rb44
1 files changed, 30 insertions, 14 deletions
diff --git a/lib/sentry/client.rb b/lib/sentry/client.rb
index e4428f6fff2..3aa3eb45d85 100644
--- a/lib/sentry/client.rb
+++ b/lib/sentry/client.rb
@@ -5,6 +5,14 @@ module Sentry
Error = Class.new(StandardError)
MissingKeysError = Class.new(StandardError)
ResponseInvalidSizeError = Class.new(StandardError)
+ BadRequestError = Class.new(StandardError)
+
+ SENTRY_API_SORT_VALUE_MAP = {
+ # <accepted_by_client> => <accepted_by_sentry_api>
+ 'frequency' => 'freq',
+ 'first_seen' => 'new',
+ 'last_seen' => nil
+ }.freeze
attr_accessor :url, :token
@@ -25,12 +33,8 @@ module Sentry
map_to_event(latest_event)
end
- def list_issues(issue_status:, limit:, search_term: '')
- issues = get_issues(
- issue_status: issue_status,
- limit: limit,
- search_term: search_term
- )
+ def list_issues(**keyword_args)
+ issues = get_issues(keyword_args)
validate_size(issues)
@@ -52,14 +56,14 @@ module Sentry
def validate_size(issues)
return if Gitlab::Utils::DeepSize.new(issues).valid?
- raise Client::ResponseInvalidSizeError, "Sentry API response is too big. Limit is #{Gitlab::Utils::DeepSize.human_default_max_size}."
+ raise ResponseInvalidSizeError, "Sentry API response is too big. Limit is #{Gitlab::Utils::DeepSize.human_default_max_size}."
end
def handle_mapping_exceptions(&block)
yield
rescue KeyError => e
Gitlab::Sentry.track_acceptable_exception(e)
- raise Client::MissingKeysError, "Sentry API response is missing keys. #{e.message}"
+ raise MissingKeysError, "Sentry API response is missing keys. #{e.message}"
end
def request_params
@@ -78,13 +82,25 @@ module Sentry
handle_response(response)
end
- def get_issues(issue_status:, limit:, search_term: '')
- query = "is:#{issue_status} #{search_term}".strip
+ def get_issues(**keyword_args)
+ http_get(
+ issues_api_url,
+ query: list_issue_sentry_query(keyword_args)
+ )
+ end
+
+ def list_issue_sentry_query(issue_status:, limit:, sort: nil, search_term: '')
+ unless SENTRY_API_SORT_VALUE_MAP.key?(sort)
+ raise BadRequestError, 'Invalid value for sort param'
+ end
+
+ query_params = {
+ query: "is:#{issue_status} #{search_term}".strip,
+ limit: limit,
+ sort: SENTRY_API_SORT_VALUE_MAP[sort]
+ }
- http_get(issues_api_url, query: {
- query: query,
- limit: limit
- })
+ query_params.compact
end
def get_issue(issue_id:)