project_id = $project_id; } /** * Parse events * * @access public * @param array $payload Gitlab event * @return boolean */ public function parsePayload(array $payload) { if (! empty($payload['commits'])) { foreach ($payload['commits'] as $commit) { if ($this->handleCommit($commit)) { return true; } } } return false; } /** * Parse commit * * @access public * @param array $commit Gitlab commit * @return boolean */ public function handleCommit(array $commit) { $task_id = $this->task->getTaskIdFromText($commit['message']); if (empty($task_id)) { return false; } $task = $this->taskFinder->getById($task_id); if (empty($task)) { return false; } if ($task['project_id'] != $this->project_id) { return false; } $this->container['dispatcher']->dispatch( self::EVENT_COMMIT, new GenericEvent(array( 'task_id' => $task_id, 'commit_message' => $commit['message'], 'commit_url' => '', 'commit_comment' => $commit['message']."\n\n".t('Commit made by @%s on Bitbucket', $commit['author']) ) + $task) ); return true; } }