# [PATCH] builtin/send-pack.c: Respect http.signingkey

2 messages from 2015-07-21 to 2015-07-21. Participants: Dave Borowitz, Junio C Hamano.
Thread: https://gitlist.dev/t/39909

## Dave Borowitz, 2015-07-21 22:06

Subject: [PATCH] builtin/send-pack.c: Respect http.signingkey
Message-ID: <1437516403-13622-1-git-send-email-dborowitz@google.com>
URL: https://gitlist.dev/e/1437516403-13622-1-git-send-email-dborowitz%40google.com

```
From: Junio C Hamano <gitster@pobox.com>

Prior to this patch, when git-send-pack was exec'ed, as is done by
git-remote-http, it did not reread the config, so it did not respect
the configured value of http.signingkey. Thus it was impossible to
specify a signing key over HTTP, other than the default key in the
keyring having a User ID matching the "Name <email>" format.

This patch at least partially fixes the problem by reading in the GPG
config from within send-pack. It does not address the related problem
of plumbing a value for this configuration option using
`git -c http.signingkey push ...`.

Signed-off-by: Dave Borowitz <dborowitz@google.com>
---
 builtin/send-pack.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index b961e5a..23b2962 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -11,6 +11,7 @@
 #include "transport.h"
 #include "version.h"
 #include "sha1-array.h"
+#include "gpg-interface.h"
 
 static const char send_pack_usage[] =
 "git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]\n"
@@ -113,6 +114,8 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
 	int from_stdin = 0;
 	struct push_cas_option cas = {0};
 
+	git_config(git_gpg_config, NULL);
+
 	argv++;
 	for (i = 1; i < argc; i++, argv++) {
 		const char *arg = *argv;
-- 
2.4.3.573.g4eafbef

```

## Junio C Hamano, 2015-07-21 22:24

Subject: Re: [PATCH] builtin/send-pack.c: Respect http.signingkey
Message-ID: <xmqqk2ttrvxo.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqk2ttrvxo.fsf%40gitster.dls.corp.google.com
In-Reply-To: <1437516403-13622-1-git-send-email-dborowitz@google.com>

```
Dave Borowitz <dborowitz@google.com> writes:

> From: Junio C Hamano <gitster@pobox.com>
>
> Prior to this patch, when git-send-pack was exec'ed, as is done by
> git-remote-http, it did not reread the config, so it did not respect
> the configured value of http.signingkey. Thus it was impossible to
> specify a signing key over HTTP, other than the default key in the
> keyring having a User ID matching the "Name <email>" format.
>
> This patch at least partially fixes the problem by reading in the GPG
> config from within send-pack. It does not address the related problem
> of plumbing a value for this configuration option using
> `git -c http.signingkey push ...`.

I am hoping that "git -c user.signingkey=frotz push ..." would solve
that problem, but I probably am being too optimistic ;-)

Thanks.

>
> Signed-off-by: Dave Borowitz <dborowitz@google.com>
> ---
>  builtin/send-pack.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/builtin/send-pack.c b/builtin/send-pack.c
> index b961e5a..23b2962 100644
> --- a/builtin/send-pack.c
> +++ b/builtin/send-pack.c
> @@ -11,6 +11,7 @@
>  #include "transport.h"
>  #include "version.h"
>  #include "sha1-array.h"
> +#include "gpg-interface.h"
>  
>  static const char send_pack_usage[] =
>  "git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]\n"
> @@ -113,6 +114,8 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
>  	int from_stdin = 0;
>  	struct push_cas_option cas = {0};
>  
> +	git_config(git_gpg_config, NULL);
> +
>  	argv++;
>  	for (i = 1; i < argc; i++, argv++) {
>  		const char *arg = *argv;

```
