1

I would like to add multiple post-receive hook scripts to a git repository on my own server. For example: triggering CI, and posting to slack.

How can I add more than one script?

Epskampie
  • 231
  • 2
  • 6

1 Answers1

5

You can only have one post-receive script, so you'll have to use that one to call multiple scripts.

On the server in the /PATH/TO/GIT.git/hooks/post-receive file, put the following:

#!/bin/bash
while read oldrev newrev refname; do
    for hook in $GIT_DIR/hooks/post-receive.d/*; do
        echo -e "\e[44m\e[97m Running hook: $hook \e[0m"
        echo $oldrev $newrev $refname | $hook
    done
done

exit 0

Then put all your post-receive scripts inside a new post-receive.d/ directory. Make sure the script files are executable.

/PATH/TO/GIT.git/hooks/
└── post-receive.d
    └── SCRIPT1
    └── SCRIPT2
Epskampie
  • 231
  • 2
  • 6