Skip to content

Automatic git deployment for Laravel

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

Webklex/laravel-git-hook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git hook deployment made for Laravel

Latest Version on Packagist Software License Build Status Total Downloads

Install

Via Composer

$ composer require webklex/laravel-git-hook

Setup

Add the service provider to the providers array in config/app.php.

'providers' => [
    Webklex\GitHook\Providers\LaravelServiceProvider::class,
];

Publishing

You can publish everything at once

php artisan vendor:publish --provider="Webklex\GitHook\Providers\LaravelServiceProvider"

Usage

This library is designed to handle the automatic deployment by git hooks as simple as possible. There isn't much todo to get started: just add the Provider and edit the config/git-hook.php file to make it fit your needs.

Custom configuration can be made within the config/git-hook.php file:

Parameter Default Options Description
email_recipients [] [['name' => '', 'address' => ''], ...] Get notified by mail. Just add your credentials
email_email_sender ['address' => '', 'name' => ''] ['address' => '', 'name' => ''] Specify a custom email sender address
repo_path null Leave empty to auto detect the vcs root Perhaps your repository is somehow specially structured, if that's the case, specify your repository path
allowed_sources [] ['192.168.1.1', '192.168.1.2', ...] If you want to secure the deployment process a bit more, whitelist the remote repository IPs
remote origin Your remote branch name
git_path /usr/bin/git Where is the git binary located
logfile git-hook Name of the logfile. It will be stored under storage/logs
service github github, gitbucket, gitlab Define your remote git service. This is required to identify the payload
url git-hook Define the deployment url. Keep in mind, that the given parameter will be added to your app.url
before_pull [] ['down', ['cmd', ['arg1' => 1]]] If you have any commands that have to be called before a pull event, specify them here
after_pull [] ['cmd', ['cmd1', ['arg1' => 1]], 'up'] If you have any commands that have to be called after a pull event, specify them here

If you are concerned someone could guess it, use a more cryptic url such as: JHFUjhd67567JHFGhsd78236784wegfJHFghdgf

Potential problems:

Please make sure your www-data user can actually perform a git pull on the server without having to enter a password: so you might want to take a look at ssh-keys or something similar

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.