diff options
author | Sean McGivern <sean@gitlab.com> | 2018-07-06 13:35:30 +0300 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2018-07-06 13:35:30 +0300 |
commit | 0d9ef34a2541a2adf00677132eac3637de33b6d4 (patch) | |
tree | 3fd6cc6aeffc6d33b5e28d1d054a26cdf15e50e5 /lib/gitlab/hook_data | |
parent | 7ff24772b63691f857a1ee1d113dcbdc3b01f064 (diff) |
Add documentation and specs for webhook URL rewriting
Diffstat (limited to 'lib/gitlab/hook_data')
-rw-r--r-- | lib/gitlab/hook_data/base_builder.rb | 27 | ||||
-rw-r--r-- | lib/gitlab/hook_data/issuable_builder.rb | 7 |
2 files changed, 23 insertions, 11 deletions
diff --git a/lib/gitlab/hook_data/base_builder.rb b/lib/gitlab/hook_data/base_builder.rb index 1d99e793a03..da0f4e6105e 100644 --- a/lib/gitlab/hook_data/base_builder.rb +++ b/lib/gitlab/hook_data/base_builder.rb @@ -3,17 +3,36 @@ module Gitlab class BaseBuilder attr_accessor :object + MARKDOWN_SIMPLE_IMAGE = %r{ + #{::Gitlab::Regex.markdown_code_or_html_blocks} + | + (?<image> + ! + \[(?<title>[^\n]*?)\] + \((?<url>(?!(https?://|//))[^\n]+?)\) + ) + }mx.freeze + def initialize(object) @object = object end + def self.absolute_image_urls(markdown_text) + return markdown_text unless markdown_text.present? + + markdown_text.gsub(MARKDOWN_SIMPLE_IMAGE) do + if $~[:image] + "![#{$~[:title]}](#{Gitlab.config.gitlab.url}/#{$~[:url]})" + else + $~[0] + end + end + end + private def absolute_image_urls(markdown_text) - return markdown_text unless markdown_text.present? - - markdown_text.gsub(/!\[(.*?)\]\((.*?)\)/, - "![\\1](#{Settings.gitlab.url}\\2)") + self.class.absolute_image_urls(markdown_text) end end end diff --git a/lib/gitlab/hook_data/issuable_builder.rb b/lib/gitlab/hook_data/issuable_builder.rb index ad0d6f6352b..f2eda398b8f 100644 --- a/lib/gitlab/hook_data/issuable_builder.rb +++ b/lib/gitlab/hook_data/issuable_builder.rb @@ -60,13 +60,6 @@ module Gitlab hash end end - - def absolute_image_urls(markdown_text) - return markdown_text unless markdown_text.present? - - markdown_text.gsub(/!\[(.*?)\]\((.*?)\)/, - "![\\1](#{Settings.gitlab.url}\\2)") - end end end end |