Webklex / laravel-git-hook by webklex

Laravel Git Hook
1,136
17
4
Package Data
Maintainer Username: webklex
Maintainer Contact: github@webklex.com (Malte Goldenbaum)
Package Create Date: 2017-03-04
Package Last Update: 2017-11-08
Language: PHP
License: MIT
Last Refreshed: 2024-04-25 15:08:20
Package Statistics
Total Downloads: 1,136
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 17
Total Watchers: 4
Total Forks: 3
Total Open Issues: 2

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 github@webklex.com instead of using the issue tracker.

Credits

License

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