diff --git a/module/gitlab/model.php b/module/gitlab/model.php index da780bea3f..2320116774 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -1511,7 +1511,7 @@ class gitlabModel extends model public function webhookSyncIssue(object $issue): bool { $tableName = zget($this->config->gitlab->objectTables, $issue->objectType, ''); - if(!$tableName) return false; + if(!$tableName || empty($issue->objectID) || empty((array)$issue->object)) return false; $this->dao->update($tableName)->data($issue->object)->where('id')->eq($issue->objectID)->exec(); return !dao::isError(); diff --git a/module/gitlab/test/model/webhookassignissue.php b/module/gitlab/test/model/webhookassignissue.php index 70093a3ffc..aa98798e20 100755 --- a/module/gitlab/test/model/webhookassignissue.php +++ b/module/gitlab/test/model/webhookassignissue.php @@ -26,6 +26,8 @@ $gitlab = new gitlabTest(); $issue = new stdclass(); $issue->object = new stdclass(); +$issue->issue = new stdclass(); +$issue->issue->url = ''; $issue->objectID = 0; $issue->objectType = ''; @@ -43,4 +45,4 @@ $issue->objectID = 1; r($gitlab->webhookAssignIssueTest($issue)) && p('assignedTo') && e('~~'); // 对象ID正确 $issue->object->assignedTo = 'user1'; -r($gitlab->webhookAssignIssueTest($issue)) && p('assignedTo') && e('user1'); // 对象ID正确,更新指派给 \ No newline at end of file +r($gitlab->webhookAssignIssueTest($issue)) && p('assignedTo') && e('user1'); // 对象ID正确,更新指派给 diff --git a/module/gitlab/test/model/webhookcloseissue.php b/module/gitlab/test/model/webhookcloseissue.php index 7494c96389..f76a309228 100755 --- a/module/gitlab/test/model/webhookcloseissue.php +++ b/module/gitlab/test/model/webhookcloseissue.php @@ -26,6 +26,8 @@ $gitlab = new gitlabTest(); $issue = new stdclass(); $issue->object = new stdclass(); +$issue->issue = new stdclass(); +$issue->issue->url = ''; $issue->objectID = 0; $issue->objectType = ''; @@ -43,4 +45,4 @@ $issue->objectID = 1; r($gitlab->webhookCloseIssueTest($issue)) && p('lastEditedBy') && e('~~'); // 对象ID正确 $issue->object->lastEditedBy = 'user1'; -r($gitlab->webhookCloseIssueTest($issue)) && p('lastEditedBy') && e('user1'); // 对象ID正确,更新最后编辑人 \ No newline at end of file +r($gitlab->webhookCloseIssueTest($issue)) && p('lastEditedBy') && e('user1'); // 对象ID正确,更新最后编辑人 diff --git a/module/gitlab/test/model/webhooksyncissue.php b/module/gitlab/test/model/webhooksyncissue.php index bc122d823f..a367a8d547 100755 --- a/module/gitlab/test/model/webhooksyncissue.php +++ b/module/gitlab/test/model/webhooksyncissue.php @@ -14,7 +14,7 @@ cid=1 - 对象类型错误 @0 - 对象ID为空 @0 - 对象ID错误 @0 -- 对象ID正确属性name @开发任务11 +- 对象ID正确,更新内容为空 @0 - 对象ID正确,更新名称属性name @任务1 */ @@ -40,7 +40,7 @@ $issue->objectID = 10; r($gitlab->webhookSyncIssueTest($issue)) && p() && e('0'); // 对象ID错误 $issue->objectID = 1; -r($gitlab->webhookSyncIssueTest($issue)) && p('name') && e('开发任务11'); // 对象ID正确 +r($gitlab->webhookSyncIssueTest($issue)) && p() && e('0'); // 对象ID正确,更新内容为空 $issue->object->name = '任务1'; r($gitlab->webhookSyncIssueTest($issue)) && p('name') && e('任务1'); // 对象ID正确,更新名称 \ No newline at end of file