drmaxis/deploybot
DeployBot
A Slack + Discord bot framework for Laravel. Drop it in, register your slash commands, ship.
Install
composer require drmaxis/deploybot
php artisan vendor:publish --tag=deploybot-config
php artisan vendor:publish --tag=deploybot-migrations
php artisan vendor:publish --tag=deploybot-routes
php artisan migrate
Configure
# .env
DEPLOYBOT_SLACK_SIGNING_SECRET=
DEPLOYBOT_SLACK_BOT_TOKEN=
# optional — one per logical channel
DEPLOYBOT_DISCORD_WEBHOOK_RELEASES=
DEPLOYBOT_DISCORD_WEBHOOK_INCIDENTS=
Register a command
use DrMaxis\Deploybot\Commands\CommandContext;
use DrMaxis\Deploybot\Commands\CommandInterface;
use DrMaxis\Deploybot\Commands\CommandResponse;
class PingCommand implements CommandInterface
{
public static function name(): string { return 'ping'; }
public static function description(): string { return 'Reply with pong.'; }
public static function requiresAdmin(): bool { return false; }
public function handle(CommandContext $ctx): CommandResponse
{
return CommandResponse::message('pong');
}
}
Register from a service provider:
public function boot(CommandRegistry $registry): void
{
$registry->register(PingCommand::class);
}
Point your Slack app's slash command at https://your-app.example/deploybot/slack/command. The built-in help command lists every registered command.
What's in the box
- HMAC signature verification (constant-time, with timestamp-skew replay guard)
- Slash-command dispatcher with admin allowlisting
- Slack Web API client (
chat.postMessage,chat.postEphemeral) - Discord webhook client (multi-purpose routing)
- Channel-subscription model for broadcasting events
- Block Kit response envelope types
- Auto-discovered service provider · Laravel 12 / 13
Contributing
See CONTRIBUTING.md.
Security
Report privately via GitHub security advisories. See SECURITY.md.
License
MIT
Related Packages
hopkins/slack-against-humanity
A slack webhook integration that lets your team play cards against humanity
173
72
puz/laravel-discord-notification
Enables Laravel 5.3 notifications to be sent through discord webhooks.
10
0