1. Go to this page and download the library: Download amaxlab/git-web-hook library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
amaxlab / git-web-hook example snippets
maxLab\GitWebHook\Hook;
$options = array(
'sendEmails' => true,
'sendEmailAuthor' => true,
'mailRecipients' => array(),
'allowedAuthors' => '*',
'allowedHosts' => '*',
);
$hook = new Hook(__DIR__, $options);
$hook
->addRepository('[email protected]:amaxlab/git-web-hook.git', '/var/www/my_project_folder/web', array(/*command executed on each push to repository*/))
->addBranch('master', array('git status', 'git reset --hard HEAD', 'git pull origin master'), '/var/www/my_project_folder/demo_subdomain', array(/* array of redefined options*/)) // commands executed on push to specified branch in /var/www/html/my_site/ folder
->addBranch('production', 'git pull origin production');
$hook->execute();
$hook->addCommand($someCommand);
maxLab\GitWebHook\Hook;
$hook = new Hook(__DIR__);
$hook->loadConfig('/var/www/ghw/config.yml');
$hook->execute();
$options = array(
'sendEmails' => false, // Enable or disable sending emails
'sendEmailAuthor' => false, // Enable or disable sending email commit author
'sendEmailFrom' => 'git-web-hook@'.gethostname(), // Email address from which messages are sent
'mailRecipients' => array(), // Array of subscribers
'allowedAuthors' => array(), // Array of commit authors allowed to execute commands
'allowedHosts' => array(), // Array of hook hosts allowed to execute commands
'securityCode' => '', // Security code on check $_GET request
'securityCodeFieldName' => 'code', // $_GET field name of security code
'repositoryFieldName' => 'url', // Repository filed name on the JSON query
);
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
...
$logger = new Logger('git-web-hook');
$logger->pushHandler(new StreamHandler(__DIR__ . '/hook.log', Logger::WARNING));
...
$hook = new Hook(__DIR__, $options, $logger);
$hook = new Hook(__DIR__, $options);
$hook->loadRepos('/path/to/derectory/'); // or $hook->loadConfig('/path/to/file); if you specify `repositoriesDir` in main config.yml
$hook->execute();