summaryrefslogtreecommitdiff
path: root/hooks
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2020-03-09 12:26:24 -0700
committerSean Whitton <spwhitton@spwhitton.name>2020-03-09 12:26:24 -0700
commit4374891660be74bffea9d0ac34b2f06180ac62d4 (patch)
treea0ff950fad76522c8ff94acef8a4314170ee9f25 /hooks
parent7c585d4e43c4665b185953f96c1ce21871ad4a75 (diff)
downloaddotfiles-4374891660be74bffea9d0ac34b2f06180ac62d4.tar.gz
replace regular file with symlink so we get latest version of hook
Diffstat (limited to 'hooks')
l---------[-rwxr-xr-x]hooks/git/p5-API-GitForge/pre-push_01signed-off-by64
1 files changed, 1 insertions, 63 deletions
diff --git a/hooks/git/p5-API-GitForge/pre-push_01signed-off-by b/hooks/git/p5-API-GitForge/pre-push_01signed-off-by
index f429ad7e..9ba9f82a 100755..120000
--- a/hooks/git/p5-API-GitForge/pre-push_01signed-off-by
+++ b/hooks/git/p5-API-GitForge/pre-push_01signed-off-by
@@ -1,63 +1 @@
-#!/bin/bash
-
-# some of this is from
-# https://lubomir.github.io/en/2016-05-04-signoff-hooks.html
-
-remote="$1"
-url="$2"
-
-z40=0000000000000000000000000000000000000000
-
-while read local_ref local_sha remote_ref remote_sha; do
- if [ "$local_sha" = $z40 ]; then
- # Permit deletion of branches
- :
- elif echo "$remote_ref" | grep -Eq "^refs/heads/(wip|tmp)/"; then
- # wip/ branches may contain commits which are not signed off
- :
- elif [ $(git config --get --type=bool --default=false \
- branch.${local_ref#refs/heads/}.signOffOptional) \
- = "true" ]; then
- # some local branches may be configured not to require signing
- # off wherever they are pushed
- :
- else
- if [ "$remote_sha" = $z40 ]
- then
- # New branch, examine all commits
- range="$local_sha"
- else
- # Update to existing branch, examine new commits
- range="$remote_sha..$local_sha"
- fi
-
- # Check for WIP commit
- commit=$(git rev-list -n 1 -i --grep '^WIP' "$range")
- if [ -n "$commit" ]
- then
- echo >&2 "Found WIP commit in $local_ref, not pushing"
- exit 1
- fi
-
- # Check for commits without sign-off
- if [ "$remote_sha" = $z40 ]; then
- # New branch is pushed, we only want to check commits that are not
- # on master.
- range="$(git merge-base master "$local_sha")..$local_sha"
- fi
- while read ref; do
- msg=$(git log -n 1 --format=%B "$ref")
- if ! grep -q '^Signed-off-by: ' <<<"$msg"; then
- # allow merge commits through
- if [ -z "$(git rev-list -1 --merges $ref~1..$ref)" ]; then
- echo >&2 "Unsigned-off non-merge commit $ref"
- exit 1
- fi
- fi
- done < <(git rev-list "$range")
- # The process substitution above is a hack to make sure loop runs in
- # the same shell and can actually exit the whole script.
- fi
-done
-
-exit 0
+../pre-push_signed-off-by \ No newline at end of file