From 2e6e992a678d2504e1f00e6c6dabf3e7c090d2e3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 22 May 2014 19:38:52 -0400
Subject: [PATCH] Documentation

---
 src/main/java/com/gitblit/tickets/TicketNotifier.java |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/tickets/TicketNotifier.java b/src/main/java/com/gitblit/tickets/TicketNotifier.java
index 998461e..9a5e4e1 100644
--- a/src/main/java/com/gitblit/tickets/TicketNotifier.java
+++ b/src/main/java/com/gitblit/tickets/TicketNotifier.java
@@ -204,7 +204,9 @@
 			} catch (Exception e) {
 				Logger.getLogger(getClass()).error("failed to get changed paths", e);
 			} finally {
-				repo.close();
+				if (repo != null) {
+					repo.close();
+				}
 			}
 
 			String compareUrl = ticketService.getCompareUrl(ticket, base, patchset.tip);
@@ -213,6 +215,9 @@
 				// new proposal
 				pattern = "**{0}** is proposing a change.";
 				sb.append(MessageFormat.format(pattern, user.getDisplayName()));
+				fieldExclusions.add(Field.status);
+				fieldExclusions.add(Field.title);
+				fieldExclusions.add(Field.body);
 			} else {
 				// describe the patchset
 				if (patchset.isFF()) {
@@ -486,6 +491,7 @@
 		instructions = instructions.replace("${ticketRef}", ticketBranch);
 		instructions = instructions.replace("${patchsetRef}", patchsetBranch);
 		instructions = instructions.replace("${reviewBranch}", reviewBranch);
+		instructions = instructions.replace("${ticketBranch}", ticketBranch);
 
 		return instructions;
 	}
@@ -516,11 +522,18 @@
 
 		//
 		// Direct TO recipients
+		// reporter & responsible
 		//
+		Set<String> tos = new TreeSet<String>();
+		tos.add(ticket.createdBy);
+		if (!StringUtils.isEmpty(ticket.responsible)) {
+			tos.add(ticket.responsible);
+		}
+
 		Set<String> toAddresses = new TreeSet<String>();
-		for (String name : ticket.getParticipants()) {
+		for (String name : tos) {
 			UserModel user = userManager.getUserModel(name);
-			if (user != null) {
+			if (user != null && !user.disabled) {
 				if (!StringUtils.isEmpty(user.emailAddress)) {
 					if (user.canView(repository)) {
 						toAddresses.add(user.emailAddress);
@@ -538,6 +551,11 @@
 		// CC recipients
 		//
 		Set<String> ccs = new TreeSet<String>();
+
+		// repository owners
+		if (!ArrayUtils.isEmpty(repository.owners)) {
+			tos.addAll(repository.owners);
+		}
 
 		// cc users mentioned in last comment
 		Change lastChange = ticket.changes.get(ticket.changes.size() - 1);
@@ -558,7 +576,7 @@
 		Set<String> ccAddresses = new TreeSet<String>();
 		for (String name : ccs) {
 			UserModel user = userManager.getUserModel(name);
-			if (user != null) {
+			if (user != null && !user.disabled) {
 				if (!StringUtils.isEmpty(user.emailAddress)) {
 					if (user.canView(repository)) {
 						ccAddresses.add(user.emailAddress);

--
Gitblit v1.9.1