1. Go to this page and download the library: Download iwink/gitlab-webhook-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
iwink / gitlab-webhook-bundle example snippets
namespace App\Controller;
use Iwink\GitLabWebhookBundle\Annotation\Webhook;
use Iwink\GitLabWebhookBundle\Event\PipelineEvent;
use Iwink\GitLabWebhookBundle\Scheduler;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/webhook", name="webhook_")
*/
class WebhookController {
/**
* @Route("/pipeline", name="pipeline")
* @Webhook("pipeline")
*/
public function pipeline(PipelineEvent $event, Scheduler $scheduler): JsonResponse {
$status = $event->getObjectAttributes()['status'];
if ('success' === $status) {
$scheduler->schedule([$this, 'expensiveOperation'], ['one', true]);
}
return new JsonResponse();
}
public function expensiveOperation(string $name, bool $valid): void {
// Does something expensive
}
}
namespace App\Controller;
use Iwink\GitLabWebhookBundle\Annotation\Webhook;
use Iwink\GitLabWebhookBundle\Event\PipelineEvent;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/webhook", name="webhook_")
*/
class WebhookController {
/**
* @Route("/pipeline", name="pipeline")
* @Webhook("pipeline", tokens={"secret_token"})
*/
public function pipeline(PipelineEvent $event): JsonResponse {
// Handle request
}
}
namespace App\Controller;
use Iwink\GitLabWebhookBundle\Annotation\Webhook;
use Iwink\GitLabWebhookBundle\Event\MergeRequestEvent;
use Iwink\GitLabWebhookBundle\Event\PushEvent;
use Iwink\GitLabWebhookBundle\Event\WebhookEvent;
use Iwink\GitLabWebhookBundle\Scheduler;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/webhook", name="webhook_")
*/
class WebhookController {
/**
* @Route("/pipeline", name="pipeline")
* @Webhook("push")
* @Webhook(event="merge request")
*/
public function pipeline(WebhookEvent $event, Scheduler $scheduler): JsonResponse {
if (
($event instanceof PushEvent && 'some/project' === $event->getProject()['name'])
|| ($event instanceof MergeRequestEvent && 'success' === $event->getObjectAttributes()['status'])
) {
$scheduler->schedule([$this, 'expensiveOperation']);
}
return new JsonResponse();
}
public function expensiveOperation(): void {
// Does something expensive
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.