From af7ac63f2edc11e39e43c17cb282b94f1eff7c02 Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Fri, 25 Jun 2021 17:20:40 +0800 Subject: [PATCH 1/5] * Add gitlab webhook filter config. --- config/filter.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/filter.php b/config/filter.php index f69a51cd97..680245f08b 100644 --- a/config/filter.php +++ b/config/filter.php @@ -56,6 +56,7 @@ $filter->webhook = new stdclass(); $filter->git = new stdclass(); $filter->svn = new stdclass(); $filter->search = new stdclass(); +$filter->gitlab = new stdclass(); $filter->block->default = new stdclass(); $filter->block->main = new stdclass(); @@ -130,6 +131,7 @@ $filter->webhook->bind = new stdclass(); $filter->user->ajaxgetmore = new stdclass(); $filter->repo->ajaxsynccommit = new stdclass(); $filter->search->index = new stdclass(); +$filter->gitlab->webhook = new stdclass(); $filter->bug->batchcreate->cookie['preBranch'] = 'int'; $filter->bug->browse->cookie['bugModule'] = 'int'; @@ -308,3 +310,8 @@ $filter->webhook->bind->cookie['selectedDepts'] = 'reg::checked'; $filter->search->index->get['words'] = 'reg::any'; $filter->search->index->get['type'] = 'code'; + +$filter->gitlab->webhook->get['gitlab'] = 'int'; +$filter->gitlab->webhook->get['product'] = 'int'; +$filter->gitlab->webhook->get['project'] = 'int'; +$filter->gitlab->webhook->get['token'] = 'reg::any'; From 898fd11a5895ffb0b2a59207a4f5fc20f1ba690c Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Fri, 25 Jun 2021 17:21:22 +0800 Subject: [PATCH 2/5] * Add gitlab objectTables config. --- module/gitlab/config.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/module/gitlab/config.php b/module/gitlab/config.php index 7a1656ad3b..daeb53eac6 100644 --- a/module/gitlab/config.php +++ b/module/gitlab/config.php @@ -82,3 +82,8 @@ $config->gitlab->bugStateMap['active'] = 'reopen'; $config->gitlab->bugStateMap['resolved'] = 'reopen'; $config->gitlab->bugStateMap['closed'] = 'close'; +$config->gitlab->objectTables = new stdclass; +$config->gitlab->objectTables->story = TABLE_STORY; +$config->gitlab->objectTables->task = TABLE_TASK; +$config->gitlab->objectTables->bug = TABLE_BUG; + From 2076a3aadb968c9303c15ca17e38fb3faa578750 Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Fri, 25 Jun 2021 17:55:19 +0800 Subject: [PATCH 3/5] * Change markdown description to html. --- module/gitlab/model.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 7f75fad7e3..c91272bf39 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -794,6 +794,9 @@ class gitlabModel extends model $issue->issue->objectType = $object->type; $issue->issue->objectID = $object->id; + /* Parse markdown description to html. */ + $issue->issue->description = $this->app->loadClass('hyperdown')->makeHtml($issue->issue->description); + if(!isset($this->config->gitlab->maps->{$object->type})) return false; $issue->object = $this->issueToZentaoObject($issue->issue, $gitlabID); return $issue; From e0e72bf4e3c78cd581a596601645162ab74a4556 Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Mon, 28 Jun 2021 13:08:33 +0800 Subject: [PATCH 4/5] * Fix parse gitlab user id error. --- module/gitlab/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 89951b3aab..1ec21a890b 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -946,7 +946,7 @@ class gitlabModel extends model if(!isset($this->config->gitlab->maps->{$issue->objectType})) return null; $maps = $this->config->gitlab->maps->{$issue->objectType}; - $gitlabUsers = $this->getUserAccountIdPairs($gitlabID); + $gitlabUsers = $this->getUserIdAccountPairs($gitlabID); $object = new stdclass; $object->id = $issue->objectID; From 6f424a14664450a520726a8bc8e304e53935b4c6 Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Mon, 28 Jun 2021 13:51:32 +0800 Subject: [PATCH 5/5] * Return object for webhook. --- module/gitlab/control.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 91e2b57aa6..1283e08487 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -216,7 +216,7 @@ class gitlab extends control //$input = file_get_contents('php://input'); $requestBody = json_decode($input); $result = $this->gitlab->webhookParseBody($requestBody, $gitlab); - a($result);exit; + $logFile = $this->app->getLogRoot() . 'webhook.'. date('Ymd') . '.log.php'; if(!file_exists($logFile)) file_put_contents($logFile, ''); @@ -233,7 +233,7 @@ class gitlab extends control $this->view->result = 'success'; $this->view->status = 'ok'; - $this->view->data = 'ougiugjvh'; + $this->view->data = $result->object; $this->display(); }