add remote.<name>.gcrypt-signingkey config

This is needed by git-annex assistant when it sets up a gcrypt repository,
to ensure that the gpg key it was asked to use to encrypt the repo is the
same key used to sign it. If it's not, pulling from the repo won't work,
due to git-remote-gcrypt's "Only accepting signatories" check.

The user may have a global user.signingkey setting (I do), but be setting
up a different special-purpose key for encrypting their git repo. The
git-annex assistant cannot mess with the global value, so needs this to
override it.
This commit is contained in:
Joey Hess 2013-09-17 15:30:25 -04:00
parent 912a827570
commit 243671037f
2 changed files with 8 additions and 4 deletions

View file

@ -60,10 +60,13 @@ The following ``git-config(1)`` variables are supported:
The ``gcrypt-participants`` setting on the remote takes precedence
over the repository variable ``gcrypt.participants``.
``remote.<name>.gcrypt-signingkey``
..
``user.signingkey``
(From regular git configuration) The key to use for signing. You
should set ``user.signingkey`` if your default signing key is not
part of the participant list.
(The latter from regular git configuration) The key to use for signing.
You should set ``user.signingkey`` if your default signing key is not
part of the participant list. You may use the per-remote version
to sign different remotes using different keys.
Environment Variables
=====================

View file

@ -389,7 +389,8 @@ make_new_repo()
read_config()
{
local recp_= r_keyinfo= cap_= conf_part= good_sig= signers_=
Conf_signkey=$(git config --path user.signingkey || :)
Conf_signkey=$(git config --get "remote.$NAME.gcrypt-signingkey" '.+' ||
git config --path user.signingkey || :)
conf_part=$(git config --get "remote.$NAME.gcrypt-participants" '.+' ||
git config --get gcrypt.participants '.+' || :)