diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-10 15:08:16 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-10 15:08:16 +0300 |
commit | 1fa79760ad2d4bd67f5c5a27f372a7533b9b7c69 (patch) | |
tree | ffdfbd9113743831ff4f1290959a62cf6567fde5 /lib/sentry | |
parent | 82fa8a3d1e8466ef36b58604d20fcc145ea12118 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/sentry')
-rw-r--r-- | lib/sentry/client/issue.rb | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/sentry/client/issue.rb b/lib/sentry/client/issue.rb index 1c5d88e8862..986311ab62a 100644 --- a/lib/sentry/client/issue.rb +++ b/lib/sentry/client/issue.rb @@ -75,7 +75,21 @@ module Sentry http_get(api_urls.issue_url(issue_id))[:body] end - def parse_gitlab_issue(plugin_issues) + def parse_gitlab_issue(issue) + parse_issue_annotations(issue) || parse_plugin_issue(issue) + end + + def parse_issue_annotations(issue) + issue + .fetch('annotations', []) + .reject(&:blank?) + .map { |annotation| Nokogiri.make(annotation) } + .find { |html| html['href']&.starts_with?(Gitlab.config.gitlab.url) } + .try(:[], 'href') + end + + def parse_plugin_issue(issue) + plugin_issues = issue.fetch('pluginIssues', nil) return unless plugin_issues gitlab_plugin = plugin_issues.detect { |item| item['id'] == 'gitlab' } @@ -145,7 +159,7 @@ module Sentry short_id: issue.fetch('shortId', nil), status: issue.fetch('status', nil), frequency: issue.dig('stats', '24h'), - gitlab_issue: parse_gitlab_issue(issue.fetch('pluginIssues', nil)), + gitlab_issue: parse_gitlab_issue(issue), project_id: issue.dig('project', 'id'), project_name: issue.dig('project', 'name'), project_slug: issue.dig('project', 'slug'), |