-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | cgitrc.5.txt | 6 | ||||
-rw-r--r-- | ui-commit.c | 8 |
4 files changed, 17 insertions, 0 deletions
@@ -89,8 +89,10 @@ void config_cb(const char *name, const char *value) else if (!strcmp(name, "cache-static-ttl")) 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")) ctx.cfg.max_msg_len = atoi(value); @@ -182,8 +182,9 @@ struct cgit_config { int snapshots; int summary_branches; int summary_log; int summary_tags; + struct cgit_filter *commit_filter; struct cgit_filter *source_filter; }; struct cgit_page { diff --git a/cgitrc.5.txt b/cgitrc.5.txt index d420ad4..2efd6aa 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -54,8 +54,14 @@ clone-prefix:: repository url, generates valid clone urls for the repository. This 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 @@ -88,13 +88,21 @@ void cgit_print_commit(char *hex) html("</td></tr>"); } 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) tmp = sha1_to_hex(commit->parents->item->object.sha1); |