#!/bin/sh

# This hook script prevents the user from pushing to Savannah if any of the new
# commits' OpenPGP signatures cannot be verified, or if a commit is signed
# with an unauthorized key.

# Called by "git push" after it has checked the remote status, but before
# anything has been pushed.  If this script exits with a non-zero status nothing
# will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
#   <local ref> <local sha1> <remote ref> <remote sha1>

# This is the "empty hash" used by Git when pushing a branch deletion.
z40=0000000000000000000000000000000000000000

while read local_ref local_hash remote_ref remote_hash
do
	# When deleting a remote branch, no commits are pushed to the remote, and
	# thus there are no signatures to be verified.
	if [ "$local_hash" != $z40 ]
	then
		# Only use the hook when pushing to Savannah.
		case "$2" in
		    *.gnu.org*)
			exec make authenticate check-channel-news
			exit 127
			;;
		    *)
			exit 0
			;;
		esac
	fi
done

exit 0
c04792d'>tree</a><a href='/guix/commit/build-aux?id=58fe4574a97046ffb3b015034a50119ffc04792d'>commit</a><a href='/guix/diff/build-aux?id=58fe4574a97046ffb3b015034a50119ffc04792d'>diff</a></td><td class='form'><form class='right' method='get' action='/guix/log/build-aux'>
<input type='hidden' name='id' value='58fe4574a97046ffb3b015034a50119ffc04792d'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/guix/log/?id=58fe4574a97046ffb3b015034a50119ffc04792d'>root</a>/<a href='/guix/log/build-aux?id=58fe4574a97046ffb3b015034a50119ffc04792d'>build-aux</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/guix/log/build-aux?id=58fe4574a97046ffb3b015034a50119ffc04792d&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th></tr>
<tr><td><span title='2023-08-21 10:45:45 +0200'>2023-08-21</span></td><td><a href='/guix/commit/build-aux?id=3c6b6941a2c76c26ebf0c1bfd7f901a22c19dce1'>maint: Add 'etc/hurd-manifest.scm'.</a><span class='msg-avail'>...<span class='msg-tooltip'>* build-aux/cuirass/hurd-manifest.scm: Move to...
* etc/hurd-manifest.scm: ...here.
* Makefile.am (EXTRA_DIST): Update accordingly.
</span></span></td><td>Janneke Nieuwenhuizen</td></tr>