diff --git a/module/gitlab/model.php b/module/gitlab/model.php index f23f2bc7df..c976a20cae 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -2071,21 +2071,6 @@ class gitlabModel extends model return false; } - /** - * 获取项目类型是gitlab的产品。 - * Get products which scm is GitLab by projects. - * - * @param array $projectIDs - * @return array - */ - public function getProductsByProjects(array $projectIDs): array - { - return $this->dao->select('path,product')->from(TABLE_REPO)->where('deleted')->eq('0') - ->andWhere('SCM')->eq('Gitlab') - ->andWhere('path')->in($projectIDs) - ->fetchPairs('path', 'product'); - } - /** * 获取项目保护分支。 * Get protect branches of one project. diff --git a/module/gitlab/test/gitlab.class.php b/module/gitlab/test/gitlab.class.php index 4ec3b0ebd0..eebca21764 100644 --- a/module/gitlab/test/gitlab.class.php +++ b/module/gitlab/test/gitlab.class.php @@ -388,4 +388,11 @@ class gitlabTest return $result; } + + public function apiUpdateHookTest(int $gitlabID, int $projectID, int $hookID, object $hook) + { + $result = $this->gitlab->apiUpdateHook($gitlabID, $projectID, $hookID, $hook); + + return json_decode($result); + } } diff --git a/module/gitlab/test/model/apiupdatehook.php b/module/gitlab/test/model/apiupdatehook.php new file mode 100644 index 0000000000..0a3412ca47 --- /dev/null +++ b/module/gitlab/test/model/apiupdatehook.php @@ -0,0 +1,48 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$projectID = 2; + +$hooks = $gitlab->apiGetHooks($gitlabID, $projectID); +foreach($hooks as $hook) +{ + if($hook->url == 'http://unittest.com/api.php/v1/gitlab/webhook?repoID=1') + { + $hookID = $hook->id; + break; + } +} + +$hook = new stdclass(); +$hook->url = 'http://unittest.com/api.php/v1/gitlab/webhook?repoID=1'; +$hook->merge_requests_events = 0; + +$gitlabTest = new gitlabTest(); +r($gitlabTest->apiUpdateHookTest($gitlabID, 0, $hookID, $hook)) && p('message') && e('404 Project Not Found'); //使用空的projectID更新gitlab群组 +r($gitlabTest->apiUpdateHookTest($gitlabID, $projectID, 0, $hook)) && p('message') && e('404 Not found'); //使用空的hookID更新gitlab群组 +r($gitlabTest->apiUpdateHookTest(0, $projectID, $hookID, $hook)) && p() && e('0'); //使用错误gitlabID更新群组 + +r($gitlabTest->apiUpdateHookTest($gitlabID, $projectID, $hookID, $hook)) && p('merge_requests_events,push_events') && e('~~,1'); //通过gitlabID,projectID,分支对象正确更新GitLab分支 diff --git a/module/gitlab/test/model/isclickable.php b/module/gitlab/test/model/isclickable.php new file mode 100644 index 0000000000..fa13c5c30b --- /dev/null +++ b/module/gitlab/test/model/isclickable.php @@ -0,0 +1,102 @@ +#!/usr/bin/env php +loadModel('gitlab'); + +$gitlab1 = new stdclass(); +$gitlab1->isDeveloper = true; + +$gitlab2 = new stdclass(); +$gitlab2->isDeveloper = false; + +$gitlab3 = new stdclass(); +$gitlab3->hasRepo = true; + +$gitlab4 = new stdclass(); +$gitlab4->hasRepo = false; + +$gitlab5 = new stdclass(); +$gitlab5->defaultBranch = true; + +$gitlab6 = new stdclass(); +$gitlab6->defaultBranch = false; + +$gitlab7 = new stdclass(); +$gitlab7->isAdmin = true; + +$gitlab8 = new stdclass(); +$gitlab8->isAdmin = false; + +$gitlab9 = new stdclass(); +$gitlab9->protected = true; + +$gitlab10 = new stdclass(); +$gitlab10->protected = false; + +r($gitlabModel->isClickable($gitlab1, 'browseBranch')) && p() && e('1'); //计算isDeveloper为true是否能进行浏览分支操作 +r($gitlabModel->isClickable($gitlab2, 'browseBranch')) && p() && e('0'); //计算isDeveloper为false是否能进行浏览分支操作 +r($gitlabModel->isClickable($gitlab1, 'browseTag')) && p() && e('1'); //计算isDeveloper为true是否能进行浏览标签操作 +r($gitlabModel->isClickable($gitlab2, 'browseTag')) && p() && e('0'); //计算isDeveloper为false是否能进行浏览标签操作 + +r($gitlabModel->isClickable($gitlab3, 'manageProjectMembers')) && p() && e('1'); //计算hasRepo为true是否能进行项目成员管理操作 +r($gitlabModel->isClickable($gitlab4, 'manageProjectMembers')) && p() && e('0'); //计算hasRepo为false是否能进行项目成员管理操作 +r($gitlabModel->isClickable($gitlab3, 'createWebhook')) && p() && e('1'); //计算hasRepo为true是否能进行webhook创建操作 +r($gitlabModel->isClickable($gitlab4, 'createWebhook')) && p() && e('0'); //计算hasRepo为false是否能进行webhook创建操作 + +r($gitlabModel->isClickable($gitlab5, 'manageBranchPriv')) && p() && e('1'); //计算defaultBranch为true是否能进行分支保护管理操作 +r($gitlabModel->isClickable($gitlab6, 'manageBranchPriv')) && p() && e('0'); //计算defaultBranch为false是否能进行分支保护管理操作 +r($gitlabModel->isClickable($gitlab5, 'manageTagPriv')) && p() && e('1'); //计算defaultBranch为true是否能进行标签保护管理操作 +r($gitlabModel->isClickable($gitlab6, 'manageTagPriv')) && p() && e('0'); //计算defaultBranch为false是否能进行标签保护管理操作 +r($gitlabModel->isClickable($gitlab5, 'editProject')) && p() && e('1'); //计算defaultBranch为true是否能进行项目编辑操作 +r($gitlabModel->isClickable($gitlab6, 'editProject')) && p() && e('0'); //计算defaultBranch为false是否能进行项目编辑操作 +r($gitlabModel->isClickable($gitlab5, 'deleteProject')) && p() && e('1'); //计算defaultBranch为true是否能进行删除项目操作 +r($gitlabModel->isClickable($gitlab6, 'deleteProject')) && p() && e('0'); //计算defaultBranch为false是否能进行删除项目操作 + +r($gitlabModel->isClickable($gitlab7, 'editGroup')) && p() && e('1'); //计算isAdmin为true是否能进行编辑群组操作 +r($gitlabModel->isClickable($gitlab8, 'editGroup')) && p() && e('0'); //计算isAdmin为false是否能进行编辑群组操作 +r($gitlabModel->isClickable($gitlab7, 'deleteGroup')) && p() && e('1'); //计算isAdmin为true是否能进行删除群组操作 +r($gitlabModel->isClickable($gitlab8, 'deleteGroup')) && p() && e('0'); //计算isAdmin为false是否能进行删除群组操作 +r($gitlabModel->isClickable($gitlab7, 'editUser')) && p() && e('1'); //计算isAdmin为true是否能进行编辑用户操作 +r($gitlabModel->isClickable($gitlab8, 'editUser')) && p() && e('0'); //计算isAdmin为false是否能进行编辑用户操作 +r($gitlabModel->isClickable($gitlab7, 'deleteUser')) && p() && e('1'); //计算isAdmin为true是否能进行删除用户操作 +r($gitlabModel->isClickable($gitlab8, 'deleteUser')) && p() && e('0'); //计算isAdmin为false是否能进行删除用户操作 + +r($gitlabModel->isClickable($gitlab9, 'deleteTag')) && p() && e('0'); //计算protected为true是否能进行删除tag操作 +r($gitlabModel->isClickable($gitlab10, 'deleteTag')) && p() && e('1'); //计算protected为false是否能进行删除tag操作