Skip to content

Commit

Permalink
pretty: make %GK output the signing key for signed commits
Browse files Browse the repository at this point in the history
In order to employ signed keys in an automated way it is absolutely
necessary to check which keys the signatures come from.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael J Gruber authored and Junio C Hamano committed Feb 14, 2013
1 parent 4a868fd commit 0174eea
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions Documentation/pretty-formats.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ The placeholders are:
- '%GG': raw verification message from GPG for a signed commit
- '%G?': show either "G" for Good or "B" for Bad for a signed commit
- '%GS': show the name of the signer for a signed commit
- '%GK': show the key used to sign a signed commit
- '%gD': reflog selector, e.g., `refs/stash@{1}`
- '%gd': shortened reflog selector, e.g., `stash@{1}`
- '%gn': reflog identity name
Expand Down
9 changes: 8 additions & 1 deletion pretty.c
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,7 @@ struct format_commit_context {
char *gpg_status;
char good_bad;
char *signer;
char *key;
} signature;
char *message;
size_t width, indent1, indent2;
Expand Down Expand Up @@ -897,7 +898,9 @@ static void parse_signature_lines(struct format_commit_context *ctx)
if (!found)
continue;
ctx->signature.good_bad = signature_check[i].result;
found += strlen(signature_check[i].check)+17;
found += strlen(signature_check[i].check);
ctx->signature.key = xmemdupz(found, 16);
found += 17;
next = strchrnul(found, '\n');
ctx->signature.signer = xmemdupz(found, next - found);
break;
Expand Down Expand Up @@ -1130,6 +1133,10 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
if (c->signature.signer)
strbuf_addstr(sb, c->signature.signer);
break;
case 'K':
if (c->signature.key)
strbuf_addstr(sb, c->signature.key);
break;
}
return 2;
}
Expand Down

0 comments on commit 0174eea

Please sign in to comment.