summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMatthew Cillo <matthewacillo@gmail.com>2015-12-03 21:56:11 -0500
committerMatthew Cillo <matthewacillo@gmail.com>2015-12-03 21:56:11 -0500
commit61acd80ec3f5576988ba028f2de48940f5b6b696 (patch)
treee84462cfce9df41cd59d947119cdeac6d70d4e2c /app
parent91bdf6aaf3cda52a43c35ce22f5e25537684cb56 (diff)
added capability to reopen GitLab issues
Diffstat (limited to 'app')
-rw-r--r--app/Action/TaskOpen.php2
-rw-r--r--app/Integration/GitlabWebhook.php33
-rw-r--r--app/Model/Action.php1
3 files changed, 36 insertions, 0 deletions
diff --git a/app/Action/TaskOpen.php b/app/Action/TaskOpen.php
index 2e53efae..2e84c695 100644
--- a/app/Action/TaskOpen.php
+++ b/app/Action/TaskOpen.php
@@ -3,6 +3,7 @@
namespace Kanboard\Action;
use Kanboard\Integration\GithubWebhook;
+use Kanboard\Integration\GitlabWebhook;
use Kanboard\Integration\BitbucketWebhook;
/**
@@ -23,6 +24,7 @@ class TaskOpen extends Base
{
return array(
GithubWebhook::EVENT_ISSUE_REOPENED,
+ GitlabWebhook::EVENT_ISSUE_REOPENED,
BitbucketWebhook::EVENT_ISSUE_REOPENED,
);
}
diff --git a/app/Integration/GitlabWebhook.php b/app/Integration/GitlabWebhook.php
index b3f9b0b5..17b6da70 100644
--- a/app/Integration/GitlabWebhook.php
+++ b/app/Integration/GitlabWebhook.php
@@ -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;
@@ -194,6 +197,36 @@ class GitlabWebhook extends \Kanboard\Core\Base
}
/**
+ * 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
*
* @access public
diff --git a/app/Model/Action.php b/app/Model/Action.php
index dbf17e49..289471f4 100644
--- a/app/Model/Action.php
+++ b/app/Model/Action.php
@@ -118,6 +118,7 @@ class Action extends Base
GithubWebhook::EVENT_ISSUE_COMMENT => t('Github issue comment created'),
GitlabWebhook::EVENT_COMMIT => t('Gitlab commit received'),
GitlabWebhook::EVENT_ISSUE_OPENED => t('Gitlab issue opened'),
+ GitlabWebhook::EVENT_ISSUE_REOPENED => t('Gitlab issue reopened'),
GitlabWebhook::EVENT_ISSUE_CLOSED => t('Gitlab issue closed'),
GitlabWebhook::EVENT_ISSUE_COMMENT => t('Gitlab issue comment created'),
BitbucketWebhook::EVENT_COMMIT => t('Bitbucket commit received'),