Git hooks in gitea


#1

I have installed gitea successfully and can push the code to the gitea respositories using SSL… NOw when I check the git hooks content… I have these options:

  1. Pre-receive
  2. Update
  3. Post -receive

For 1 and 2, the content is already defined and for the third one it shows blank…
Can any one help me in this regard… I am using the latest version of gitea

Content of “Pre-receive”

#!/bin/sh

An example hook script to make use of push options.

The example simply echoes all push options that start with ‘echoback=’

and rejects all pushes when the “reject” push option is used.

To enable this hook, rename this file to “pre-receive”.

if test -n “$GIT_PUSH_OPTION_COUNT”
then
i=0
while test “$i” -lt “$GIT_PUSH_OPTION_COUNT”
do
eval “value=$GIT_PUSH_OPTION_$i”
case “value" in echoback=*) echo "echo from the pre-receive-hook: {value#*=}” >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi

content of Update

#!/bin/sh

An example hook script to block unannotated tags from entering.

Called by “git receive-pack” with arguments: refname sha1-old sha1-new

To enable this hook, rename this file to “update”.

Config

------

hooks.allowunannotated

This boolean sets whether unannotated tags will be allowed into the

repository. By default they won’t be.

hooks.allowdeletetag

This boolean sets whether deleting tags will be allowed in the

repository. By default they won’t be.

hooks.allowmodifytag

This boolean sets whether a tag may be modified after creation. By default

it won’t be.

hooks.allowdeletebranch

This boolean sets whether deleting branches will be allowed in the

repository. By default they won’t be.

hooks.denycreatebranch

This boolean sets whether remotely creating branches will be denied

in the repository. By default this is allowed.

— Command line

refname="$1"
oldrev="$2"
newrev="$3"

— Safety check

if [ -z “$GIT_DIR” ]; then
echo “Don’t run this script from the command line.” >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 )" >&2
exit 1
fi

if [ -z “$refname” -o -z “$oldrev” -o -z “$newrev” ]; then
echo "usage: $0 " >&2
exit 1
fi

— Config

allowunannotated=(git config --bool hooks.allowunannotated) allowdeletebranch=(git config --bool hooks.allowdeletebranch)
denycreatebranch=(git config --bool hooks.denycreatebranch) allowdeletetag=(git config --bool hooks.allowdeletetag)
allowmodifytag=$(git config --bool hooks.allowmodifytag)

check for no description

projectdesc=$(sed -e ‘1q’ “$GIT_DIR/description”)
case “$projectdesc” in
“Unnamed repository”* | “”)
echo “*** Project description file hasn’t been set” >&2
exit 1
;;
esac

— Check types

if $newrev is 0000…0000, it’s a commit to delete a ref.

zero=“0000000000000000000000000000000000000000”
if [ “$newrev” = "zero" ]; then newrev_type=delete else newrev_type=(git cat-file -t $newrev)
fi

case “$refname”,"newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname={refname##refs/tags/}
if [ “$allowunannotated” != “true” ]; then
echo “*** The un-annotated tag, $short_refname, is not allowed in this repository” >&2
echo “*** Use ‘git tag [ -a | -s ]’ for tags you want to propagate.” >&2
exit 1
fi
;;
refs/tags/,delete)
# delete tag
if [ “$allowdeletetag” != “true” ]; then
echo "
** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/,tag)
# annotated tag
if [ “$allowmodifytag” != “true” ] && git rev-parse $refname > /dev/null 2>&1
then
echo "
** Tag ‘$refname’ already exists." >&2
echo “*** Modifying a tag is not allowed in this repository.” >&2
exit 1
fi
;;
refs/heads/,commit)
# branch
if [ “$oldrev” = “$zero” -a “$denycreatebranch” = “true” ]; then
echo "
** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/,delete)
# delete branch
if [ “$allowdeletebranch” != “true” ]; then
echo "
** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/,commit)
# tracking branch
;;
refs/remotes/
,delete)
# delete tracking branch
if [ “$allowdeletebranch” != “true” ]; then
echo “*** Deleting a tracking branch is not allowed in this repository” >&2
exit 1
fi
;;
)
# Anything else (is there anything else?)
echo "
** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac

— Finished

exit 0

FINALLY SHOULD I NEED TO SET THE “WEBHOOKS” ALSO OR SETTING GIT HOOKS SOLVE MY PURPOSE…