aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2013-09-17 15:30:25 -0400
committerJoey Hess <joey@kitenet.net>2013-09-17 15:30:25 -0400
commit243671037f5a36596187554712d7ed1e76e9c8b8 (patch)
treecc7bc88b78efe489f307fe647d0cec572654c4de
parent912a827570fd01d27c8d6bb8b8aaae8c455488b9 (diff)
downloadgit-remote-gcrypt-243671037f5a36596187554712d7ed1e76e9c8b8.zip
git-remote-gcrypt-243671037f5a36596187554712d7ed1e76e9c8b8.tar.gz
git-remote-gcrypt-243671037f5a36596187554712d7ed1e76e9c8b8.tar.bz2
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.
-rw-r--r--README.rst9
-rwxr-xr-xgit-remote-gcrypt3
2 files changed, 8 insertions, 4 deletions
diff --git a/README.rst b/README.rst
index f177913..6fc4636 100644
--- a/README.rst
+++ b/README.rst
@@ -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
=====================
diff --git a/git-remote-gcrypt b/git-remote-gcrypt
index 182c5cb..bf75777 100755
--- a/git-remote-gcrypt
+++ b/git-remote-gcrypt
@@ -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 '.+' || :)