Diff options
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Stop folding a tag's signature away
The fold put a click between the reader and the signature, and the browser's own disclosure marker and summary did not take the theme. The signature prints as part of the message again, as it did up to v2.9.1.
Diffstat (limited to '')
-rw-r--r--README.txt2
-rw-r--r--assets/cgit.css15
-rw-r--r--source/ui-tag.c29
-rwxr-xr-xtests/t0005-markup.sh21
-rwxr-xr-xtests/t0113-tag.sh12
5 files changed, 8 insertions, 71 deletions
diff --git a/README.txt b/README.txt
index e160af5..db55ec9 100644
--- a/README.txt
+++ b/README.txt
@@ -101,8 +101,6 @@ script added through the css and js options has stable hooks to work with.
A character in a file that a browser would start a new line at, though git
does not, such as a carriage return with no line feed after it, is shown as
an escape sequence in span.escape.
-* A signed tag's signature, of whatever kind git reads, is folded away in
- details.signature after the tag's message.
* The bundled auth filters write their login form as form.login, with
p.login-error above it after a failed login.
* Colours, fonts and metrics are custom properties on div#cgit, so a theme can
diff --git a/assets/cgit.css b/assets/cgit.css
index 49b00ab..7a4472a 100644
--- a/assets/cgit.css
+++ b/assets/cgit.css
@@ -875,21 +875,6 @@ div#cgit table.commit-trailers {
margin-top: 1em;
}
-div#cgit details.signature {
- margin-top: 1em;
-}
-
-div#cgit details.signature summary {
- color: var(--muted);
- cursor: pointer;
-}
-
-div#cgit details.signature pre {
- margin: 0.5em 0 0;
- font-family: var(--font-mono);
- overflow-x: auto;
-}
-
div#cgit table.commit-trailers th {
text-align: left;
font-weight: normal;
diff --git a/source/ui-tag.c b/source/ui-tag.c
index 246ff12..5fa8a17 100644
--- a/source/ui-tag.c
+++ b/source/ui-tag.c
@@ -11,7 +11,6 @@
#include "cgit.h"
#include "filter.h"
-#include "gpg-interface.h"
#include "html.h"
#include "parsing.h"
#include "shared.h"
@@ -72,31 +71,17 @@ static void print_download_row(const char *revname, const struct object *obj)
}
/*
- * Cutting the subject and the signature out terminates the message in place,
- * which is safe only because the caller frees it straight after. The blank
- * lines between the subject and the body are skipped, as the commit page skips
- * them.
+ * Cutting the subject out terminates the message in place, which is safe only
+ * because the caller frees it straight after. The blank lines between the
+ * subject and the body are skipped, as the commit page skips them.
*/
static void print_message(char *msg)
{
- char *newline, *body, *signature = NULL;
- size_t len, start;
+ char *newline, *body;
if (!msg)
return;
- // git finds the signature of any kind it can sign with, PGP, SSH or
- // X.509, and it goes in a fold after the message, since its armour
- // would otherwise run on for more lines than the message itself.
- len = strlen(msg);
- start = parse_signed_buffer(msg, len);
- if (start < len) {
- signature = xstrdup(msg + start);
- while (start > 0 && msg[start - 1] == '\n')
- start--;
- msg[start] = '\0';
- }
-
html("<div class='commit-subject'>");
newline = strchr(msg, '\n');
if (newline)
@@ -111,12 +96,6 @@ static void print_message(char *msg)
html_txt(body);
html("</div>");
}
- if (signature) {
- html("<details class='signature'><summary>Signature</summary><pre>");
- html_txt(signature);
- html("</pre></details>");
- free(signature);
- }
}
static void print_annotated_tag(const char *revname, const struct object_id *oid)
diff --git a/tests/t0005-markup.sh b/tests/t0005-markup.sh
index 0ba8ded..5d802a7 100755
--- a/tests/t0005-markup.sh
+++ b/tests/t0005-markup.sh
@@ -194,25 +194,4 @@ test_expect_success 'embedded mode marks the root' '
grep "<div id=.cgit. class=.cgit-embedded. data-page=.summary." tmp
'
-test_expect_success 'a signed tag folds its signature away' '
- (
- cd repos/hooks &&
- {
- echo "object $(git rev-parse HEAD)" &&
- echo "type commit" &&
- echo "tag signed" &&
- echo "tagger C O Mitter <committer@example.com> 1700000000 +0000" &&
- echo &&
- echo "Signed" &&
- echo &&
- echo "-----BEGIN SSH SIGNATURE-----" &&
- echo "U1NIU0lH" &&
- echo "-----END SSH SIGNATURE-----"
- } >signed-tag &&
- git update-ref refs/tags/signed $(git mktag <signed-tag)
- ) &&
- hooks "hooks/tag/&h=signed" >tmp &&
- grep "<details class=.signature.><summary>Signature</summary>" tmp
-'
-
test_done
diff --git a/tests/t0113-tag.sh b/tests/t0113-tag.sh
index ec6f3c3..b91c7e6 100755
--- a/tests/t0113-tag.sh
+++ b/tests/t0113-tag.sh
@@ -60,8 +60,8 @@ test_expect_success 'a tag of anything but a commit offers no download' '
'
# git reads the signature off the end of a tag's message, so a block shaped
-# like one is enough to show it is folded away, with nothing to verify.
-test_expect_success 'a signed tag folds its signature after the message' '
+# like one is enough, with nothing to verify.
+test_expect_success 'a signed tag shows its signature in the message' '
(
cd repos/foo &&
{
@@ -82,12 +82,8 @@ test_expect_success 'a signed tag folds its signature after the message' '
) &&
cgit_url "foo/tag/&h=signed" >tmp &&
tr -d "\n" <tmp >flat &&
- grep "<div class=.commit-msg.>Notes.</div><details class=.signature.><summary>Signature</summary><pre>-----BEGIN PGP SIGNATURE-----iQEzBAABCAAdFiEE-----END PGP SIGNATURE-----</pre></details>" flat
-'
-
-test_expect_success 'an unsigned tag has no fold' '
- cgit_url "foo/tag/&h=v1.0" >tmp &&
- ! grep "details class=.signature." tmp
+ grep "<div class=.commit-msg.>Notes.-----BEGIN PGP SIGNATURE-----iQEzBAABCAAdFiEE-----END PGP SIGNATURE-----</div>" flat &&
+ ! grep "<details" tmp
'
test_done