From 1c30dad2115fc513791d8a5b292ad0f7d7b85749 Mon Sep 17 00:00:00 2001 From: lemval <mvanleeuwen@xebia.com> Date: Tue, 31 Jan 2012 09:25:02 -0500 Subject: [PATCH] Do not traverse unaccessible subdirectories (issue 51) --- groovy/sendmail.groovy | 44 ++++++++++++++++++++++++++++++-------------- 1 files changed, 30 insertions(+), 14 deletions(-) diff --git a/groovy/sendmail.groovy b/groovy/sendmail.groovy index b43f9de..73a25e5 100644 --- a/groovy/sendmail.groovy +++ b/groovy/sendmail.groovy @@ -16,8 +16,10 @@ import com.gitblit.GitBlit import com.gitblit.Keys import com.gitblit.models.RepositoryModel +import com.gitblit.models.TeamModel import com.gitblit.models.UserModel import com.gitblit.utils.JGitUtils +import java.text.SimpleDateFormat import org.eclipse.jgit.lib.Repository import org.eclipse.jgit.lib.Config import org.eclipse.jgit.revwalk.RevCommit @@ -87,6 +89,15 @@ // add all mailing lists defined in gitblit.properties or web.xml toAddresses.addAll(gitblit.getStrings(Keys.mail.mailingLists)) +// add all team mailing lists +def teams = gitblit.getRepositoryTeams(repository) +for (team in teams) { + TeamModel model = gitblit.getTeamModel(team) + if (model.mailingLists) { + toAddresses.addAll(model.mailingLists) + } +} + // add all mailing lists for the repository toAddresses.addAll(repository.mailingLists) @@ -103,45 +114,50 @@ } // construct a simple text summary of the changes contained in the push +def branchBreak = '>---------------------------------------------------------------\n' +def commitBreak = '\n\n ----\n' def commitCount = 0 def changes = '' -def table = { it.authorIdent.name.padRight(25, ' ') + it.shortMessage + "\n$commitUrl" + it.id.name } +SimpleDateFormat df = new SimpleDateFormat(gitblit.getString(Keys.web.datetimestampLongFormat, 'EEEE, MMMM d, yyyy h:mm a z')) +def table = { "\n ${JGitUtils.getDisplayName(it.authorIdent)}\n ${df.format(JGitUtils.getCommitDate(it))}\n\n $it.shortMessage\n\n $commitUrl$it.id.name" } for (command in commands) { def ref = command.refName + def refType = 'branch' if (ref.startsWith('refs/heads/')) { ref = command.refName.substring('refs/heads/'.length()) } else if (ref.startsWith('refs/tags/')) { ref = command.refName.substring('refs/tags/'.length()) + refType = 'tag' } switch (command.type) { case ReceiveCommand.Type.CREATE: - def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name) + def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name).reverse() commitCount += commits.size() - // new branch commits table - changes += "$ref created ($commits.size commits)\n\n" - changes += commits.collect(table).join('\n\n') + // new branch + changes += "\n$branchBreak new $refType $ref created ($commits.size commits)\n$branchBreak" + changes += commits.collect(table).join(commitBreak) changes += '\n' break case ReceiveCommand.Type.UPDATE: - def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name) + def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name).reverse() commitCount += commits.size() // fast-forward branch commits table - changes += "$ref updated ($commits.size commits)\n\n" - changes += commits.collect(table).join('\n\n') + changes += "\n$branchBreak $ref $refType updated ($commits.size commits)\n$branchBreak" + changes += commits.collect(table).join(commitBreak) changes += '\n' break case ReceiveCommand.Type.UPDATE_NONFASTFORWARD: - def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name) + def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name).reverse() commitCount += commits.size() // non-fast-forward branch commits table - changes += "$ref updated [NON fast-forward] ($commits.size commits)\n\n" - changes += commits.collect(table).join('\n\n') + changes += "\n$branchBreak $ref $refType updated [NON fast-forward] ($commits.size commits)\n$branchBreak" + changes += commits.collect(table).join(commitBreak) changes += '\n' break case ReceiveCommand.Type.DELETE: - // deleted branch - changes += "$ref deleted\n\n" + // deleted branch/tag + changes += "\n$branchBreak $ref $refType deleted\n$branchBreak" break default: break @@ -151,4 +167,4 @@ r.close() // tell Gitblit to send the message (Gitblit filters duplicate addresses) -gitblit.sendMail("$emailprefix $user.username pushed $commitCount commits => $repository.name", "$summaryUrl\n\n$changes", toAddresses) \ No newline at end of file +gitblit.sendMail("$emailprefix $user.username pushed $commitCount commits => $repository.name", "$summaryUrl\n$changes", toAddresses) \ No newline at end of file -- Gitblit v1.9.1