summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-03-31 11:45:21 -0400
committerJames Moger <james.moger@gitblit.com>2014-03-31 11:45:21 -0400
commitbeb021472d034617e1ce216aee38d918ae7f1a67 (patch)
tree24aa85d00fdad02934659e0a570bc3540b3a4108
parent9cce439817e17616619c189ab0840af29edd36f4 (diff)
downloadgitblit-beb021472d034617e1ce216aee38d918ae7f1a67.tar.gz
gitblit-beb021472d034617e1ce216aee38d918ae7f1a67.zip
Configure Tickets close-on-push commit message regex (issue-404)
-rw-r--r--releases.moxie2
-rw-r--r--src/main/distrib/data/gitblit.properties7
-rw-r--r--src/main/java/com/gitblit/git/PatchsetReceivePack.java19
3 files changed, 23 insertions, 5 deletions
diff --git a/releases.moxie b/releases.moxie
index 11d2a412..fc679ef1 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -15,6 +15,7 @@ r22: {
- Ensure the Lucene ticket index is updated on repository deletion.
changes:
- Specify the --dailyLogFile option for the Ubuntu and CentOS service scripts (issue-348)
+ - The ticket close-on-push commit message regular expression is now configurable by a setting (issue-404)
- Option to allow LDAP users to directly authenticate without performing LDAP searches (pr-162)
- Replace JCommander with args4j to be consistent with other tools (ticket-28)
additions:
@@ -29,6 +30,7 @@ r22: {
- Jeremie Brebec
settings:
- { name: 'realm.ldap.bindpattern', defaultValue: ' ' }
+ - { name: 'tickets.closeOnPushCommitMessageRegex', defaultValue: '(?:fixes|closes)[\\s-]+#?(\\d+)' }
}
#
diff --git a/src/main/distrib/data/gitblit.properties b/src/main/distrib/data/gitblit.properties
index b819b381..3c605394 100644
--- a/src/main/distrib/data/gitblit.properties
+++ b/src/main/distrib/data/gitblit.properties
@@ -479,6 +479,13 @@ tickets.acceptNewPatchsets = true
# SINCE 1.4.0
tickets.requireApproval = false
+# The case-insensitive regular expression used to identify and close tickets on
+# push to the integration branch for commits that are NOT already referenced as
+# a patchset tip.
+#
+# SINCE 1.5.0
+tickets.closeOnPushCommitMessageRegex = (?:fixes|closes)[\\s-]+#?(\\d+)
+
# Specify the location of the Lucene Ticket index
#
# SINCE 1.4.0
diff --git a/src/main/java/com/gitblit/git/PatchsetReceivePack.java b/src/main/java/com/gitblit/git/PatchsetReceivePack.java
index 1d3312aa..64a739e5 100644
--- a/src/main/java/com/gitblit/git/PatchsetReceivePack.java
+++ b/src/main/java/com/gitblit/git/PatchsetReceivePack.java
@@ -897,11 +897,20 @@ public class PatchsetReceivePack extends GitblitReceivePack {
if (parseMessage) {
// parse commit message looking for fixes/closes #n
- Pattern p = Pattern.compile("(?:fixes|closes)[\\s-]+#?(\\d+)", Pattern.CASE_INSENSITIVE);
- Matcher m = p.matcher(commit.getFullMessage());
- while (m.find()) {
- String val = m.group(1);
- return Long.parseLong(val);
+ String dx = "(?:fixes|closes)[\\s-]+#?(\\d+)";
+ String x = settings.getString(Keys.tickets.closeOnPushCommitMessageRegex, dx);
+ if (StringUtils.isEmpty(x)) {
+ x = dx;
+ }
+ try {
+ Pattern p = Pattern.compile(x, Pattern.CASE_INSENSITIVE);
+ Matcher m = p.matcher(commit.getFullMessage());
+ while (m.find()) {
+ String val = m.group(1);
+ return Long.parseLong(val);
+ }
+ } catch (Exception e) {
+ LOGGER.error(String.format("Failed to parse \"%s\" in commit %s", x, commit.getName()), e);
}
}
return 0L;