Skip to content

Commit fef2341

Browse files
committed
Process bugtraq configuration in markup document rendering
1 parent 5d0f712 commit fef2341

File tree

9 files changed

+41
-17
lines changed

9 files changed

+41
-17
lines changed

.gitbugtraq

+6
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,9 @@
88
loglinkregex = "(?:pull request|pull|pr)\\s*[-#]?[0-9]+"
99
logregex = "\\d+"
1010
loglinktext = "pull request #%BUGID%"
11+
[bugtraq "tickets"]
12+
url = "https://dev.gitblit.com/tickets/gitblit.git/%BUGID%"
13+
loglinkregex = "(?:ticket)\\s*[-#]?[0-9]+"
14+
logregex = "\\d+"
15+
loglinktext = "ticket #%BUGID%"
16+

src/main/java/com/gitblit/servlet/SyndicationServlet.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@
4040
import com.gitblit.models.RepositoryModel;
4141
import com.gitblit.models.UserModel;
4242
import com.gitblit.servlet.AuthenticationFilter.AuthenticatedRequest;
43+
import com.gitblit.utils.BugtraqProcessor;
4344
import com.gitblit.utils.HttpUtils;
4445
import com.gitblit.utils.JGitUtils;
45-
import com.gitblit.utils.MessageProcessor;
4646
import com.gitblit.utils.StringUtils;
4747
import com.gitblit.utils.SyndicationUtils;
4848

@@ -257,7 +257,7 @@ private void processRequest(javax.servlet.http.HttpServletRequest request,
257257
offset, length);
258258
}
259259
Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(repository, model.showRemoteBranches);
260-
MessageProcessor processor = new MessageProcessor(settings);
260+
BugtraqProcessor processor = new BugtraqProcessor(settings);
261261

262262
// convert RevCommit to SyndicatedEntryModel
263263
for (RevCommit commit : commits) {

src/main/java/com/gitblit/utils/MessageProcessor.java renamed to src/main/java/com/gitblit/utils/BugtraqProcessor.java

+21-7
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@
3434
import com.syntevo.bugtraq.BugtraqFormatter;
3535
import com.syntevo.bugtraq.BugtraqFormatter.OutputHandler;
3636

37-
public class MessageProcessor {
37+
public class BugtraqProcessor {
3838

3939
private final Logger logger = LoggerFactory.getLogger(getClass());
4040

4141
private final IStoredSettings settings;
4242

43-
public MessageProcessor(IStoredSettings settings) {
43+
public BugtraqProcessor(IStoredSettings settings) {
4444
this.settings = settings;
4545
}
4646

@@ -59,7 +59,7 @@ public String processCommitMessage(Repository repository, RepositoryModel model,
5959
switch (model.commitMessageRenderer) {
6060
case MARKDOWN:
6161
try {
62-
String prepared = processCommitMessageRegex(repository, model.name, text);
62+
String prepared = processTextRegex(repository, model.name, text);
6363
return MarkdownUtils.transformMarkdown(prepared);
6464
} catch (Exception e) {
6565
logger.error("Failed to render commit message as markdown", e);
@@ -86,21 +86,35 @@ public String processCommitMessage(Repository repository, RepositoryModel model,
8686
*/
8787
public String processPlainCommitMessage(Repository repository, String repositoryName, String text) {
8888
String html = StringUtils.escapeForHtml(text, false);
89-
html = processCommitMessageRegex(repository, repositoryName, html);
89+
html = processTextRegex(repository, repositoryName, html);
9090
return StringUtils.breakLinesForHtml(html);
9191

9292
}
9393

94+
/**
95+
* Returns an processed version of the text with any global or
96+
* repository-specific regular expression substitution applied.
97+
*
98+
* @param repository
99+
* @param repositoryName
100+
* @param text
101+
* @return processed version of the text
102+
*/
103+
public String processText(Repository repository, String repositoryName, String text) {
104+
String html = processTextRegex(repository, repositoryName, text);
105+
return html;
106+
}
107+
94108
/**
95109
* Apply globally or per-repository specified regex substitutions to the
96-
* commit message.
110+
* text.
97111
*
98112
* @param repository
99113
* @param repositoryName
100114
* @param text
101-
* @return the processed commit message
115+
* @return the processed text
102116
*/
103-
protected String processCommitMessageRegex(Repository repository, String repositoryName, String text) {
117+
protected String processTextRegex(Repository repository, String repositoryName, String text) {
104118
Map<String, String> map = new HashMap<String, String>();
105119
// global regex keys
106120
if (settings.getBoolean(Keys.regex.global, false)) {

src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public void populateItem(final Item<GitNote> item) {
107107
item.add(new GravatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent()));
108108
item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef
109109
.getAuthorIdent().getWhen(), getTimeZone(), getTimeUtils()));
110-
item.add(new Label("noteContent", messageProcessor().processPlainCommitMessage(getRepository(), repositoryName,
110+
item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName,
111111
entry.content)).setEscapeModelStrings(false));
112112
}
113113
};

src/main/java/com/gitblit/wicket/pages/CommitPage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public void populateItem(final Item<GitNote> item) {
135135
item.add(new GravatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent()));
136136
item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef
137137
.getAuthorIdent().getWhen(), getTimeZone(), getTimeUtils()));
138-
item.add(new Label("noteContent", messageProcessor().processPlainCommitMessage(getRepository(), repositoryName,
138+
item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName,
139139
entry.content)).setEscapeModelStrings(false));
140140
}
141141
};

src/main/java/com/gitblit/wicket/pages/DocPage.java

+4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.eclipse.jgit.lib.Repository;
2525
import org.eclipse.jgit.revwalk.RevCommit;
2626

27+
import com.gitblit.utils.BugtraqProcessor;
2728
import com.gitblit.utils.JGitUtils;
2829
import com.gitblit.utils.StringUtils;
2930
import com.gitblit.wicket.CacheControl;
@@ -66,6 +67,9 @@ public DocPage(PageParameters params) {
6667
}
6768
}
6869

70+
BugtraqProcessor bugtraq = new BugtraqProcessor(app().settings());
71+
markupText = bugtraq.processText(getRepository(), repositoryName, markupText);
72+
6973
Fragment fragment;
7074
MarkupDocument markupDoc = processor.parse(repositoryName, getBestCommitId(commit), documentPath, markupText);
7175
if (MarkupSyntax.PLAIN.equals(markupDoc.syntax)) {

src/main/java/com/gitblit/wicket/pages/RepositoryPage.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@
5858
import com.gitblit.servlet.SyndicationServlet;
5959
import com.gitblit.tickets.TicketIndexer.Lucene;
6060
import com.gitblit.utils.ArrayUtils;
61+
import com.gitblit.utils.BugtraqProcessor;
6162
import com.gitblit.utils.DeepCopier;
6263
import com.gitblit.utils.JGitUtils;
63-
import com.gitblit.utils.MessageProcessor;
6464
import com.gitblit.utils.RefLogUtils;
6565
import com.gitblit.utils.StringUtils;
6666
import com.gitblit.wicket.CacheControl;
@@ -177,8 +177,8 @@ protected Class<? extends BasePage> getRepoNavPageClass() {
177177
return getClass();
178178
}
179179

180-
protected MessageProcessor messageProcessor() {
181-
return new MessageProcessor(app().settings());
180+
protected BugtraqProcessor bugtraqProcessor() {
181+
return new BugtraqProcessor(app().settings());
182182
}
183183

184184
private Map<String, PageRegistration> registerPages() {
@@ -531,7 +531,7 @@ protected void addRefs(Repository r, RevCommit c) {
531531

532532
protected void addFullText(String wicketId, String text) {
533533
RepositoryModel model = getRepositoryModel();
534-
String content = messageProcessor().processCommitMessage(r, model, text);
534+
String content = bugtraqProcessor().processCommitMessage(r, model, text);
535535
String html;
536536
switch (model.commitMessageRenderer) {
537537
case MARKDOWN:

src/main/java/com/gitblit/wicket/pages/TicketPage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ public void onClick(AjaxRequestTarget target) {
491491
add(new Label("ticketTopic").setVisible(false));
492492
} else {
493493
// process the topic using the bugtraq config to link things
494-
String topic = messageProcessor().processPlainCommitMessage(getRepository(), repositoryName, ticket.topic);
494+
String topic = bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName, ticket.topic);
495495
add(new Label("ticketTopic", topic).setEscapeModelStrings(false));
496496
}
497497

src/main/java/com/gitblit/wicket/pages/TicketsPage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ public void populateItem(final Item<QueryResult> item) {
529529

530530
@Override
531531
public void populateItem(final Item<String> labelItem) {
532-
String content = messageProcessor().processPlainCommitMessage(getRepository(), repositoryName, labelItem.getModelObject());
532+
String content = bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName, labelItem.getModelObject());
533533
Label label = new Label("label", content);
534534
label.setEscapeModelStrings(false);
535535
TicketLabel tLabel = app().tickets().getLabel(getRepositoryModel(), labelItem.getModelObject());

0 commit comments

Comments
 (0)