added capability to reopen GitLab issues

This commit is contained in:
Matthew Cillo
2015-12-03 21:56:11 -05:00
parent 91bdf6aaf3
commit 61acd80ec3
3 changed files with 36 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ class GitlabWebhook extends \Kanboard\Core\Base
*/
const EVENT_ISSUE_OPENED = 'gitlab.webhook.issue.opened';
const EVENT_ISSUE_CLOSED = 'gitlab.webhook.issue.closed';
const EVENT_ISSUE_REOPENED = 'gitlab.webhook.issue.reopened';
const EVENT_COMMIT = 'gitlab.webhook.commit';
const EVENT_ISSUE_COMMENT = 'gitlab.webhook.issue.commented';
@@ -164,6 +165,8 @@ class GitlabWebhook extends \Kanboard\Core\Base
return $this->handleIssueOpened($payload['object_attributes']);
case 'close':
return $this->handleIssueClosed($payload['object_attributes']);
case 'reopen':
return $this->handleIssueReopened($payload['object_attributes']);
}
return false;
@@ -193,6 +196,36 @@ class GitlabWebhook extends \Kanboard\Core\Base
return true;
}
/**
* Handle issue reopening
*
* @access public
* @param array $issue Issue data
* @return boolean
*/
public function handleIssueReopened(array $issue)
{
$task = $this->taskFinder->getByReference($this->project_id, $issue['id']);
if (! empty($task)) {
$event = array(
'project_id' => $this->project_id,
'task_id' => $task['id'],
'reference' => $issue['id'],
);
$this->container['dispatcher']->dispatch(
self::EVENT_ISSUE_REOPENED,
new GenericEvent($event)
);
return true;
}
return false;
}
/**
* Handle issue closing
*