diff --git a/module/gitlab/model.php b/module/gitlab/model.php index e4dae3e2e4..321c72ad72 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -526,6 +526,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100) break; } @@ -549,6 +550,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100) break; } @@ -574,6 +576,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&statistics=true&order_by={$order}&sort={$sort}&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100 or $page > 10) break; } @@ -649,6 +652,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($host . "?private_token={$gitlab->token}&simple=true&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100 or $page > 10) break; } @@ -1490,6 +1494,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100) break; } @@ -1547,6 +1552,7 @@ class gitlabModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&&page={$page}&per_page=100")); + if(!is_array($results)) break; if(!empty($results)) $allResults = array_merge($allResults, $results); if(count($results)<100) break; } diff --git a/test/model/gitlab/apideletetagpriv.php b/test/model/gitlab/apideletetagpriv.php new file mode 100644 index 0000000000..720cd6d391 --- /dev/null +++ b/test/model/gitlab/apideletetagpriv.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +> return false +使用正确的gitlabID、保护标签信息,错误的projectID删除保护标签 >> 404 Project Not Found +使用正确的gitlabID,projectID,保护标签删除保护标签 >> return true +使用错误的保护标签信息删除保护标签 >> 404 Not found + +*/ + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 0; +$projectID = 0; +$tag = ''; + +$result = $gitlab->apiDeleteTagPriv($gitlabID, $projectID, $tag); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的gitlabID,projectID,标签名称删除保护标签 + +$gitlabID = 1; +$tag = 'master'; +$result = $gitlab->apiDeleteTagPriv($gitlabID, $projectID, $tag); +r($result) && p('message') && e('404 Project Not Found'); //使用正确的gitlabID、保护标签信息,错误的projectID删除保护标签 + +$projectID = 1565; +$result = $gitlab->apiDeleteTagPriv($gitlabID, $projectID, $tag); +if(!$result or substr($result->message, 0, 2) == '20') $result = 'return true'; +r($result) && p() && e('return true'); //通过gitlabID,projectID,标签名称正确删除保护标签 + +$tag = 'masters'; +$result = $gitlab->apiDeleteTagPriv($gitlabID, $projectID, $tag); +r($result) && p('message') && e('404 Not found'); //使用错误的保护标签信息删除保护标签 diff --git a/test/model/gitlab/apigettagprivs.php b/test/model/gitlab/apigettagprivs.php new file mode 100644 index 0000000000..70fda76503 --- /dev/null +++ b/test/model/gitlab/apigettagprivs.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +> 1 +通过gitlabID,projectID,获取GitLab标签保护数量 >> 1 +当前项目没有标签保护时,获取GitLab标签保护列表 >> 0 +当gitlabID存在,projectID不存在时,获取GitLab标签保护列表 >> return empty +当gitlabID,projectID都为0时,获取GitLab标签保护列表 >> return empty + +*/ + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$projectID = 1552; +$result = $gitlab->apiGetTagPrivs($gitlabID, $projectID); +r(isset($result[0]->name)) && p() && e(1); //通过gitlabID,projectID,获取GitLab标签保护列表 +r(count($result) > 0) && p() && e(1); //通过gitlabID,projectID,获取GitLab标签保护数量 + +$gitlabID = 1; +$projectID = 1570; +r(count($gitlab->apiGetTagPrivs($gitlabID, $projectID))) && p() && e(0); //当前项目没有标签保护时,获取GitLab标签保护列表 + +$gitlabID = 1; +$projectID = 0; +$result = $gitlab->apiGetTagPrivs($gitlabID, $projectID); +if(empty($result)) $result = 'return empty'; +r($result) && p('') && e('return empty'); //通过gitlabID,projectID,获取GitLab标签保护列表 + +$gitlabID = 0; +$projectID = 0; +$result = $gitlab->apiGetTagPrivs($gitlabID, $projectID); +if(empty($result)) $result = 'return empty'; +r($result) && p() && e('return empty'); //当gitlabID,projectID都为0时,获取GitLab标签保护列表 diff --git a/test/model/gitlab/apigettags.php b/test/model/gitlab/apigettags.php index a00b42f3a1..eaa97f08c4 100644 --- a/test/model/gitlab/apigettags.php +++ b/test/model/gitlab/apigettags.php @@ -8,10 +8,10 @@ title=测试 gitlabModel::apiGetTags(); cid=1 pid=1 -通过gitlabID,projectID,获取GitLab标签列表 >> 2021/12/20 +通过gitlabID,projectID,获取GitLab标签列表 >> 1 通过gitlabID,projectID,获取GitLab标签数量 >> 1 当前项目没有标签时,获取GitLab标签列表 >> 0 -当gitlabID存在,projectID不存在时,获取GitLab标签列表 >> 404 Project Not Found +当gitlabID存在,projectID不存在时,获取GitLab标签列表 >> return empty 当gitlabID,projectID都为0时,获取GitLab标签列表 >> return empty 通过gitlabID,projectID,按标签名升序获取GitLab标签列表 >> with_cicredentials 通过gitlabID,projectID,搜索字符'zentaopms_15.2_20210720'获取GitLab标签列表 >> zentaopms_15.2_20210720 @@ -24,8 +24,8 @@ $gitlab = $tester->loadModel('gitlab'); $gitlabID = 1; $projectID = 1552; $result = $gitlab->apiGetTags($gitlabID, $projectID); -r($result) && p('0:name') && e('2021/12/20'); //通过gitlabID,projectID,获取GitLab标签列表 -r(count($result)) && p() && e(1); //通过gitlabID,projectID,获取GitLab标签数量 +r(isset($result[0]->name)) && p() && e(1); //通过gitlabID,projectID,获取GitLab标签列表 +r(count($result) > 0) && p() && e(1); //通过gitlabID,projectID,获取GitLab标签数量 $gitlabID = 1; $projectID = 1570; @@ -33,7 +33,9 @@ r(count($gitlab->apiGetTags($gitlabID, $projectID))) && p() && e(0); //当前项 $gitlabID = 1; $projectID = 0; -r($gitlab->apiGetTags($gitlabID, $projectID)) && p('message') && e('404 Project Not Found'); //通过gitlabID,projectID,获取GitLab标签列表 +$result = $gitlab->apiGetTags($gitlabID, $projectID); +if(empty($result)) $result = 'return empty'; +r($result) && p('') && e('return empty'); //通过gitlabID,projectID,获取GitLab标签列表 $gitlabID = 0; $projectID = 0; diff --git a/test/model/repo/getcommits.php b/test/model/repo/getcommits.php new file mode 100644 index 0000000000..a9f97cff7b --- /dev/null +++ b/test/model/repo/getcommits.php @@ -0,0 +1,25 @@ +#!/usr/bin/env php +> 1 +通过repo,path,获取commit数量 >> 1 + +*/ + +$repoModel = $tester->loadModel('repo'); + +$repoID = 1; +$repo = $repoModel->getRepoByID($repoID); +$path = ''; + +$result = $repoModel->getCommits($repo, $path); +$firstResult = array_shift($result); +r(isset($firstResult->commit)) && p() && e(1); //通过repo,path,获取commit列表 +r(count($result) > 0) && p() && e(1); //通过repo,path,获取commit数量