cslant / github-project-php
A PHP package for managing GitHub projects with Laravel
Requires
- php: ^8.4
- knplabs/github-api: ^3.16
- nyholm/psr7: ^1.8
- symfony/http-client: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.94
- nunomaduro/collision: ^8.9
- nunomaduro/larastan: ^3.9
- orchestra/testbench: ^10.0
- pestphp/pest: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
README
Introduction
GitHub Project PHP is a Laravel package that helps you manage your GitHub Projects (V2) in PHP.
It provides a simple webhook system to receive GitHub project events and automatically generate activity comments on issues and pull requests.
Features
- Webhook Integration: Receive and process GitHub Projects V2 webhook events
- Queue Support: Process webhook events asynchronously for better performance
- API Endpoint: Generate comment messages via REST API
- 12+ Field Type Templates: Built-in templates for all GitHub Project field types
- Customizable Templates: Publish and customize Blade templates
- GitHub GraphQL API: Direct integration with GitHub's GraphQL API
Requirements
- PHP ^8.4
- Laravel ^11.0|^12.0
- Composer
Installation
composer require cslant/github-project-php
Available Field Type Templates
| Field Type | Description |
|---|---|
text |
Simple text fields |
number |
Numeric fields |
date |
Date fields (Y-m-d format) |
single_select |
Single-select dropdowns with color support |
multi_select |
Multi-select fields |
checkbox |
Boolean/toggle fields |
textarea |
Long text content with diff view |
iteration |
Iteration/sprint fields |
labels |
Label/tag fields |
assignees |
User assignment fields |
milestone |
Milestone tracking |
unsupported |
Fallback for unknown field types |
Usage
See the GitHub Project PHP Documentation for detailed usage instructions.
Customizing Templates
php artisan vendor:publish --provider="CSlant\GitHubProject\GithubProjectServiceProvider" --tag="views"
This copies templates to resources/views/vendor/github-project/md/field_types/.
Template Variables
All field type templates receive:
$fieldName- Display name of the field$fieldType- Type of the field$fromValue- Previous value$toValue- New value$fieldData- Raw webhook data
API Endpoint
Generate comment messages via API:
POST /github-project/generate-comment
Content-Type: application/json
{
"payload": { ... }
}
Queue Configuration
Enable queue processing in your config:
// config/github-project.php 'is_queue_enabled' => true,
Documentation
Full documentation available at docs.cslant.com/github-project-php
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.