我希望能够通过引用具有默认模式^([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