From: "Sebastian Götte" <jaseg@physik.tu-berlin.de>
To: git@vger.kernel.org
Cc: joel@trustly.com, gitster@pobox.com, git@drmicha.warpmail.net
Subject: [PATCH 1/1] templates: pre-push hook: check for missing GPG signatures (was: Re: [PATCH] Add .gitconfig variable commit.gpg-sign)
Date: Wed, 24 Apr 2013 19:30:37 +0200 [thread overview]
Message-ID: <517816BD.3030203@physik.tu-berlin.de> (raw)
In-Reply-To: <5177AB10.30209@drmicha.warpmail.net>
On 04/24/2013 11:51 AM, Michael J Gruber wrote:
> Sebastian Götte venit, vidit, dixit 24.04.2013 10:53:
>> What could be nice would be a
>> config option that makes "git push" warn/abort in case I try to push an
>> unsigned head commit to a repo where I want to have signed commits:
>>> remote.<name>.abortUnsigned
>> This of course needs a command line override switch.
>
> This appears to be more suited for a server side hook (update), or a new
> pre-push hook.
Ok, here it is ;)
I replaced the previous sample hook code because it did only check for commits
containing "WIP" in their messages which I think is not terribly useful (and
can easily be added to this script. I also added a missing colon that caused my
shell to complain about an empty if.
This patch applies to the current master as it requires the new GPG %G? pretty
placeholder output.
Signed-off-by: Sebastian Götte <jaseg@physik-pool.tu-berlin.de>
---
templates/hooks--pre-push.sample | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/templates/hooks--pre-push.sample b/templates/hooks--pre-push.sample
old mode 100644
new mode 100755
index 15ab6d8..08a72df
--- a/templates/hooks--pre-push.sample
+++ b/templates/hooks--pre-push.sample
@@ -16,20 +16,19 @@
#
# <local ref> <local sha1> <remote ref> <remote sha1>
#
-# This sample shows how to prevent push of commits where the log message starts
-# with "WIP" (work in progress).
+# This sample shows how to prevent pushing commits without good GPG signatures
remote="$1"
url="$2"
z40=0000000000000000000000000000000000000000
+ec=0
-IFS=' '
while read local_ref local_sha remote_ref remote_sha
do
if [ "$local_sha" = $z40 ]
then
- # Handle delete
+ : # Handle delete
else
if [ "$remote_sha" = $z40 ]
then
@@ -40,14 +39,13 @@ do
range="$remote_sha..$local_sha"
fi
- # Check for WIP commit
- commit=`git rev-list -n 1 --grep '^WIP' "$range"`
- if [ -n "$commit" ]
- then
- echo "Found WIP commit in $local_ref, not pushing"
- exit 1
- fi
+ commits=`git log --format="%G? %h" "$range" | grep -v '^G' | cut -d\ -f2`
+ for commit in $commits
+ do
+ echo "Commit $commit does not have a good GPG signature"
+ ec=1
+ done
fi
done
-exit 0
+exit $ec
--
1.8.2
next prev parent reply other threads:[~2013-04-24 17:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAASwCXf3YHmdQ_eSkShyzn5VniO=ufm3VTqV1JVOUN610bzE_A@mail.gmail.com>
2013-04-22 23:43 ` [PATCH] Add .gitconfig variable commit.gpg-sign Junio C Hamano
2013-04-23 0:00 ` Joel Jacobson
2013-04-23 11:37 ` Michael J Gruber
2013-04-23 17:53 ` Junio C Hamano
2013-04-23 17:58 ` Joel Jacobson
2013-04-23 19:25 ` Junio C Hamano
2013-04-23 19:56 ` Joel Jacobson
2013-04-24 8:53 ` Sebastian Götte
2013-04-24 9:51 ` Michael J Gruber
2013-04-24 17:30 ` Sebastian Götte [this message]
2013-04-24 19:54 ` [PATCH 1/1] templates: pre-push hook: check for missing GPG signatures Junio C Hamano
2013-04-25 12:19 ` [PATCH v2 0/1] " Sebastian Götte
2013-04-25 16:50 ` Junio C Hamano
[not found] ` <cover.1366890748.git.jaseg@physik-pool.tu-berlin.de>
2013-04-25 12:19 ` [PATCH v2 1/1] " Sebastian Götte
2013-04-23 14:01 ` [PATCH] Add .gitconfig variable commit.gpg-sign Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=517816BD.3030203@physik.tu-berlin.de \
--to=jaseg@physik.tu-berlin.de \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=joel@trustly.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).