summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--cgit.c2
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt6
-rw-r--r--ui-commit.c8
4 files changed, 17 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index eb7b45d..2cda554 100644
--- a/cgit.c
+++ b/cgit.c
@@ -90,6 +90,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.cache_static_ttl = atoi(value);
else if (!strcmp(name, "cache-dynamic-ttl"))
ctx.cfg.cache_dynamic_ttl = atoi(value);
+ else if (!strcmp(name, "commit-filter"))
+ ctx.cfg.commit_filter = new_filter(value, 0);
else if (!strcmp(name, "embedded"))
ctx.cfg.embedded = atoi(value);
else if (!strcmp(name, "max-message-length"))
diff --git a/cgit.h b/cgit.h
index f9cf0df..438301d 100644
--- a/cgit.h
+++ b/cgit.h
@@ -183,6 +183,7 @@ struct cgit_config {
int summary_branches;
int summary_log;
int summary_tags;
+ struct cgit_filter *commit_filter;
struct cgit_filter *source_filter;
};
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index d420ad4..2efd6aa 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -55,6 +55,12 @@ clone-prefix::
setting is only used if `repo.clone-url` is unspecified. Default value:
none.
+commit-filter::
+ Specifies a command which will be invoked to format commit messages.
+ The command will get the message on its STDIN, and the STDOUT from the
+ command will be included verbatim as the commit message, i.e. this can
+ be used to implement bugtracker integration. Default value: none.
+
css::
Url which specifies the css document to include in all cgit pages.
Default value: "/cgit.css".
diff --git a/ui-commit.c b/ui-commit.c
index 41ce70e..ee0e139 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -89,11 +89,19 @@ void cgit_print_commit(char *hex)
}
html("</table>\n");
html("<div class='commit-subject'>");
+ if (ctx.cfg.commit_filter)
+ cgit_open_filter(ctx.cfg.commit_filter);
html_txt(info->subject);
+ if (ctx.cfg.commit_filter)
+ cgit_close_filter(ctx.cfg.commit_filter);
show_commit_decorations(commit);
html("</div>");
html("<div class='commit-msg'>");
+ if (ctx.cfg.commit_filter)
+ cgit_open_filter(ctx.cfg.commit_filter);
html_txt(info->msg);
+ if (ctx.cfg.commit_filter)
+ cgit_close_filter(ctx.cfg.commit_filter);
html("</div>");
if (parents < 3) {
if (parents)