# Github webhook scripts These are scripts to setup the basic webhook folder structure, the clone base for one campaign and a simple crontab script to pull data from the repository ## Scripts - base_setup.sh: setup for the folder structure, users, etc - new_clone.sh: Basic clone script - git_sync.sh: The script to run in crontab, to sync the changes ## Run commands ### Settings in `config/webhook.cfg` the following settings have to be entered ```ini GIT_WEBHOOK_BASE_FOLDER="" WWW_GROUP="" SUDO_USER="" USE_SUDO=<1: use sudo, 0: no sudo used> ``` ### base_setup.sh as is, if the folder exists it will only copy the scripts, will not alter or change anything. Planned to get auto fixes for wrong ACL, etc or missing config settings ### new_clone.sh Create a new clone ```sh new_clone.sh [repository] [branch] ([host]) ([remote name]) ``` The [host] is the SSH Host name entry, this sill repalce any "[host]:" in the [repository]. If the [host] is not set the host set in the [repository] will be used. If nothing found the script will abort A [branch] name must be set all the time. An optional [remote name] can be set, if not set "origin" will be used. ### git_sync.sh Syncs changes, this is the script that should be placed into the crontab ```sh git_sync.sh [repository] [branch] ([remote name]) ``` The [repository] the the folder name inside the clone folder, on new clone it is output in the info line "... into (GIT REPOSITORY FOLDER)". All repository folders are in the "clone-base/" folder. The base folder is defined in the config/webhook.crf file. A [branch] name must be set all the time. An optional [remote name] can be set, if not set "origin" will be used. ## TODO Future versions will hold an incoming webhook handler and a polling scripts (systemd based)