nishtman / github-webhook-deployer
A Laravel package for GitHub webhook deployment
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/nishtman/github-webhook-deployer
Requires
- php: ^8.2
- illuminate/support: ^11.0
This package is auto-updated.
Last update: 2025-11-29 09:02:02 UTC
README
A Laravel package for automated GitHub repository deployment via webhooks.
Features
- Secure webhook handling with per-repository secrets
- Multi-repository and multi-branch support
- Custom deployment commands per branch
- Supports Laravel, Node.js (e.g., Next.js), and other environments
Installation
- Require the package via composer (when published):
composer require nishtman/github-webhook-deployer
- Publish and run migrations:
php artisan vendor:publish --tag=github-webhook-deployer-migrations php artisan migrate
- Register the webhook route in
routes/webhook.php:
use Nishtman\GitHubWebhookDeployer\Http\Controllers\WebhookController; Route::post('/github/deploy', [WebhookController::class, 'handle']);
- Add webhook to your GitHub repo with content type
application/jsonand a secret.
Usage
Use the built-in Artisan commands to manage repositories:
php artisan github:add-repo php artisan github:list-repos php artisan github:remove-repo
Database Structure
github_repositories: Repository name and secretgithub_branches: Associated branches, with local clone path and environmentgithub_commands: Commands to run on each branch upon deploy
Example Commands
Laravel branch:
git pull origin maincomposer install --no-dev --optimize-autoloaderphp artisan config:cachephp artisan migrate --force
Next.js branch:
git pull origin mainpnpm install --forcepnpm run buildpm2 reload <id>
Security
Each webhook is validated with a unique HMAC-SHA256 signature per repository.
License
MIT