aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2021-02-10 15:38:10 +0000
committerHarald Welte <laforge@osmocom.org>2021-02-10 16:57:26 +0100
commit57b6011e28a32670f96e6de215a8c0ada70d48c9 (patch)
tree43fff95c81eb084c8e07f0689537b1324087b107
parent60f4d395004ac4a02f956077cb6c23d2e91e66b1 (diff)
redmine: Make changeset keywords work with OS# annotation
In Osmocom we annotate osmocom issues as OS#1234 and not just as #1234, in order to distinguish them from redmine or coverity issues. Change-Id: I04a97434433a022f47a759a8219458e8772ae71e Related: OS#5005, OS#3291
-rw-r--r--redmine/Dockerfile3
-rw-r--r--redmine/commitlog-references-oshash.diff18
2 files changed, 21 insertions, 0 deletions
diff --git a/redmine/Dockerfile b/redmine/Dockerfile
index 2dfb100..add01b3 100644
--- a/redmine/Dockerfile
+++ b/redmine/Dockerfile
@@ -11,3 +11,6 @@ RUN apt-get update && \
# no longer needed after ruby-openid-2.9.2 is used
#ADD hmac.diff /tmp/hmac.diff
#RUN cd / && patch -p0 < /tmp/hmac.diff
+
+ADD commitlog-references-oshash.diff /tmp/commitlog-references-oshash.diff
+RUN cd /usr/src/redmine && patch -p1 < /tmp/commitlog-references-oshash.diff
diff --git a/redmine/commitlog-references-oshash.diff b/redmine/commitlog-references-oshash.diff
new file mode 100644
index 0000000..389ebe5
--- /dev/null
+++ b/redmine/commitlog-references-oshash.diff
@@ -0,0 +1,18 @@
+diff --git a/app/models/changeset.rb b/app/models/changeset.rb
+index 4256f0589..b5ef7b298 100644
+--- a/app/models/changeset.rb
++++ b/app/models/changeset.rb
+@@ -126,11 +126,11 @@ class Changeset < ActiveRecord::Base
+
+ referenced_issues = []
+
+- comments.scan(/([\s\(\[,-]|^)((#{kw_regexp})[\s:]+)?(#\d+(\s+@#{TIMELOG_RE})?([\s,;&]+#\d+(\s+@#{TIMELOG_RE})?)*)(?=[[:punct:]]|\s|<|$)/i) do |match|
++ comments.scan(/([\s\(\[,-]|^)((#{kw_regexp})[\s:]+)?(OS#\d+(\s+@#{TIMELOG_RE})?([\s,;&]+#\d+(\s+@#{TIMELOG_RE})?)*)(?=[[:punct:]]|\s|<|$)/i) do |match|
+ action, refs = match[2].to_s.downcase, match[3]
+ next unless action.present? || ref_keywords_any
+
+- refs.scan(/#(\d+)(\s+@#{TIMELOG_RE})?/).each do |m|
++ refs.scan(/OS#(\d+)(\s+@#{TIMELOG_RE})?/).each do |m|
+ issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
+ if issue && !issue_linked_to_same_commit?(issue)
+ referenced_issues << issue