我希望能夠通過引用具有默認模式^([Cc]loses|[Ff]ixes) +#\d+a
的多個問題的一個提交來關閉多個問題。我知道這隻會影響fixes #number
-模式的開始行,這就是我想要的。
但我還沒有得到它的工作。
我目前正在使用Gitlab 6.1,根據github上的安裝自述安裝它,並沒有改變任何其他下面的codesnippet。
這裏是我的嘗試:使用issue_closing_pattern變量來關閉gitlab中的多個問題
首先,我在{gitlab-directory}/app/models/commit.rb
the following(註釋掉原代碼)改爲:
def closes_issues project
md = safe_message.scan(/(?i)((\[)\s*(close|fix)(s|es|d|ed)*\s*#\d+\s*(\])|(\()\s*(close|fix)(s|es|d|ed)*\s*#\d+\s*(\)))/)
#md = issue_closing_regex.match(safe_message)
if md
extractor = Gitlab::ReferenceExtractor.new
md.each do |n|
extractor.analyze(n[0])
end
extractor.issues_for(project)
#extractor = Gitlab::ReferenceExtractor.new
#extractor.analyze(md[0])
#extractor.issues_for(project)
else
[]
end
end
但在此代碼段中使用不符合我的需求正則表達式,是不是真的正確(例如:(fixs #123)
和(closees #123)
都可以)。
在測試了這個codesnippet並確認它可以處理與片段中使用的正則表達式匹配的模式之後,我試着改變正則表達式。起初,我試圖在第二行做到這一點:
md safe_message.scan(/#{Gitlab.config.gitlab.issue_closing_pattern}/)
這一個沒有工作。我沒有發現任何log/unicorn.stderr.log
錯誤信息,所以我試圖用從配置文件中的默認的正則表達式的情況下直接變量:
md safe_message.scan(/^([Cc]loses|[Ff]ixes) +#\d+a/)
但是這一次沒有工作了。再次,在log/unicorn.stderr.log
沒有錯誤信息。
如何在此代碼段中使用配置文件中的變量issue_closing_pattern
作爲正則表達式模式?
爲什麼downvote ???我有一個代碼的特定問題(來自gitlab),根據常見問題,這是一個屬於這裏的問題。 – wullxz
我不確定這是否是您的整個問題,但您的正則表達式中有一個額外的「a」。默認的是'/([Cc]丟失| [Ff] ixes)+#\ d + /'ref:https://github.com/gitlabhq/gitlabhq/blob/master/config/gitlab.yml.example#L62 –
oops ...當我使用vim檢查配置文件時,一定會發生這種情況。我會嘗試沒有a。但仍然:我在'config/gitlab.yml'中註釋了設置變量的行。因此,使用配置文件中的變量[...](/#{Gitlab。[...]} /)'仍然不起作用。那裏有什麼錯誤? – wullxz