aboutsummaryrefslogtreecommitdiff
path: root/etc/git/pre-push
blob: 9206a2dfe53e292881247aefc5d408ab21d94212 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh

# This hook script prevents the user from pushing to Savannah if any of the new
# commits' OpenPGP signatures cannot be verified.

# 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>

z40=0000000000000000000000000000000000000000

# Only use the hook when pushing to Savannah.
case "$2" in
*git.sv.gnu.org*)
	break
	;;
*)
	exit 0
	;;
esac

while read local_ref local_sha remote_ref remote_sha
do
	if [ "$local_sha" = $z40 ]
	then
		# Handle delete
		:
	else
		if [ "$remote_sha" = $z40 ]
		then
			# We are pushing a new branch. To prevent wasting too
			# much time for this relatively rare case, we examine
			# all commits since the first signed commit, rather than
			# the full history. This check *will* fail, and the user
			# will need to temporarily disable the hook to push the
			# new branch.
			range="e3d0fcbf7e55e8cbe8d0a1c5a24d73f341d7243b..$local_sha"
		else
			# Update to existing branch, examine new commits
			range="$remote_sha..$local_sha"
		fi

		# Verify the signatures of all commits being pushed.
		ret=0
		for commit in $(git rev-list $range)
		do
			if ! git verify-commit $commit >/dev/null 2>&1
			then
				printf "%s failed signature check\n" $commit
				ret=1
			fi
		done
		exit $ret
	fi
done

exit 0
ix-cookbook.texi?id=00014f769233facebd84f13a00b10032a22cb440'>services: nginx: Add lua module....* gnu/services/web.scm (<nginx-configuration>) [lua-package-path, lua-package-cpath]: New record types. * gnu/services/web.scm (default-nginx-config): Use them. * doc/guix.texi (Web Services): Document this. * doc/guix-cookbook.texi (System Configuration): Document this. Oleg Pykhalov 2020-10-14doc: cookbook: Mention "#true" and "#false"....* doc/guix-cookbook.texi (A Scheme Crash Course): Mention "#true" and "#false". (Extended example): Likewise. Ludovic Courtès 2020-09-09doc: cookbook: Adding a section "Running Guix on a Linode Server"...* doc/guix-cookbook.texi (Running Guix on a Linode Server): I added a section that explains how to run guix on a linode server. Thanks Chris Webber! Signed-off-by: Ludovic Courtès <ludo@gnu.org> Joshua Branson 2020-08-23doc: cookbook: Add chapter about Guix environment....* doc/guix-cookbook.texi (Environment management): New chapter. Oleg Pykhalov 2020-07-09doc: cookbook: Fix ‘file system’ spelling....* doc/guix-cookbook.texi (Getting help, Customizing the Kernel): Fix ‘file system’ spelling. Tobias Geerinckx-Rice 2020-06-28doc: cookbook: Fix encoding of "André"....This is a followup to f8945734a5abff69644284231cc47fb67456657b. * doc/guix-cookbook.texi: Encode "André" as UTF-8, not ISO-8859-1. Ludovic Courtès 2020-06-28doc: cookbook: Update entry about getting substitutes through Tor....* doc/guix-cookbook.texi (Getting substitutes from Tor): Update section warning to mention the use of torsocks when pulling. André Batista 2020-06-23doc: cookbook: Fix typos....* doc/guix-cookbook.texi (Extended example): Fix typos. Ludovic Courtès 2020-06-23doc: cookbook: Tweak intro to the REPL....* doc/guix-cookbook.texi (A Scheme Crash Course): Reword first paragraph. Remove extra paren. Ludovic Courtès 2020-06-23doc: cookbook: Mention "guix hash -rx" for Git checkouts....* doc/guix-cookbook.texi (Extended example): Mention "guix hash -rx ." Ludovic Courtès 2020-06-23doc: cookbook: Clarify 'git-fetch' conventions....* doc/guix-cookbook.texi (Extended example): Clarify use of 'git-file-name' and 'git-version'. Ludovic Courtès 2020-06-04doc: cookbook: Add entry about getting substitutes through Tor....* doc/guix-cookbook.texi (Getting substitutes from Tor): New section. Brice Waegeneire 2020-06-02doc: cookbook: Add entry about Wireguard VPN....Co-authored-by: Brice Waegeneire <brice@waegenei.re> * doc/guix-cookbook.texi (Connect to Wireguard VPN): New section. Marcin Karpezo 2020-05-25doc: cookbook: Add subsection about session locking with xss-lock....* doc/guix-cookbook.texi (Session lock): New node. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Bøg 2020-05-05doc: cookbook: Fix sbcl-ttf-fonts package name....* doc/guix-cookbook.texi (StumpWM): Adjust sbcl-ttf-fonts package name. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Jean-Baptiste Note 2020-04-30doc: cookbook: Rename stumpwm package to current state....* doc/guix-cookbook.texi (StumpWM): Rename STUMPWM package to current state. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> Marcin Karpezo 2020-04-25doc: cookbook: Fix quotes....* doc/guix-cookbook.texi (Basic setup with manifests): (Default profile): (The benefits of manifests): Use proper quotes in regular texts. Nicolas Goaziou 2020-04-24doc: cookbook: Use @file for file names and extensions....* doc/guix-cookbook.texi (@samp{GUIX_PACKAGE_PATH}): (Extended example): (Setting up a bind mount): (Basic setup with manifests): (Default profile): Use @file instead of @samp or @code for file names and extensions. Nicolas Goaziou 2020-04-24doc: cookbook: Fix misuses of double spacing....* doc/guix-cookbook.texi (Extended example): (StumpWM): (Basic setup with manifests): Prevent Texinfo from ending a sentence where it should not. (Setting up a bind mount): Add two spaces where needed. Nicolas Goaziou 2020-04-22doc: cookbook: Explain how to use bind mounts....* doc/guix-cookbook.texi (Setting up a bind mount): Add example. Signed-off-by: Leo Famulari <leo@famulari.name> Matthew Brooks 2020-03-30gnu: Add sbcl-stumpwm-ttf-fonts....* gnu/packages/wm.scm (sbcl-stumpwm-ttf-fonts): New variable. * doc/guix-cookbook.texi (Customizing a Window Manager): Document SBCL-STUMPWM-TTF-FONTS installation and configuration. Oleg Pykhalov 2020-01-17doc: cookbook: Avoid URL reference to the manual....* doc/guix-cookbook.texi (Other build systems): Use @xref instead of @uref, and remove section number. Ludovic Courtès 2019-11-26doc: cookbook: Add cross-references to the Guile manual....* doc/guix-cookbook.texi (A Scheme Crash Course): Add cross-reference to the Guile manual. Ludovic Courtès 2019-11-26doc: cookbook: Use @result{} & co. instead of a '>' prompt....* doc/guix-cookbook.texi (A Scheme Crash Course) (Extended example): Use @result{}, @print{}, and @error{}. Ludovic Courtès 2019-11-26doc: cookbook: Use Texinfo quotes....* doc/guix-cookbook.texi: Use Texinfo quotes ``like this'' instead of straight quotes or curly quotes. Ludovic Courtès 2019-11-26doc: cookbook: Add cross-reference about ./pre-inst-env....* doc/guix-cookbook.texi (Direct checkout hacking): Refer to "Running Guix Before It Is Installed". Ludovic Courtès 2019-11-26doc: cookbook: Use @lisp for Scheme snippets....* doc/guix-cookbook.texi: Use @lisp instead of @example where appropriate. Ludovic Courtès 2019-10-30doc: Explain how to switch profile from empty shell in "Profiles in Practice"....* doc/guix-cookbook.texi (Profiles in Practice): Add example. Pierre Neidhardt 2019-10-28doc: Link to SICP Info page in "A Scheme Crash Course"....* doc/guix-cookbook.texi (Scheme tutorials): Replace Emacs Info reader hint with more useful interactive link to SICP Info page. Pierre Neidhardt 2019-10-28doc: Finish importing the "Packaging Tutorial"....* doc/guix-cookbook.texi (Packaging Tutorial): Import all sections after the Scheme crash course. Pierre Neidhardt 2019-10-28doc: Fix some typos in "Guix Profiles in Practice"....* doc/guix-cookbook.texi (Guix Profiles in Practice): Fix typos. Pierre Neidhardt 2019-10-25doc: cookbook: Use "@lisp" for Scheme snippets....* doc/guix-cookbook.texi: Use @lisp for Scheme snippets instead of "@example scheme". This allows for syntax highlighting of the HTML output. Ludovic Courtès 2019-10-24doc: Add "Guix Profiles in Practice" to the cookbook....* doc/guix-cookbook.texi (Advanced package management): New chapter. * doc/guix-cookbook.texi (Guix Profiles in Practice): New section. Pierre Neidhardt 2019-09-18doc: Add Guix Cookbook....* .gitignore: Update ignore list. * Makefile.am (assert-no-store-file-names): Exclude the cookbook. * bootstrap: Generate po files for cookbook translations. * doc/guix-cookbook.texi: New file. * doc/local.mk (info_TEXINFOS): Add it; add a rule to build cookbook translations. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): New variable. (EXTRA_DIST): Add cookbook pot file and po files. (doc-po-update-cookbook-%): New target. (doc-pot-update): Also update cookbook pot file. (doc-po-update): Also update cookbook po files. Ricardo Wurmus