diff --git a/module/git/model.php b/module/git/model.php index dc1d2fa06e..c5a17237e8 100644 --- a/module/git/model.php +++ b/module/git/model.php @@ -348,7 +348,7 @@ class gitModel extends model $scm = $this->app->loadClass('scm'); $scm->setEngine($repo); $logs = $scm->log('', $fromRevision); - if(empty($logs)) return false; + if(empty($logs)) return array(); foreach($logs as $log) { diff --git a/module/git/test/git.class.php b/module/git/test/git.class.php old mode 100644 new mode 100755 index d667572f9c..b834e67e19 --- a/module/git/test/git.class.php +++ b/module/git/test/git.class.php @@ -92,28 +92,14 @@ class gitTest /** * Get repo logs. * - * @param object $repo + * @param int $repoID + * @param string $branch * @access public - * @return int + * @return array */ - public function getRepoLogs($repo) + public function getRepoLogs(int $repoID, string $branch): array { - $logs = $this->gitModel->getRepoLogs($repo, ''); - if(is_array($logs) and count($logs) >= 1) return 1; - return 0; - } - - /** - * Convert log from xml format to object. - * - * @param object $log - * @access public - * @return object - */ - public function convertLog($log) - { - $parsedLogs = $this->gitModel->convertLog($log); - if(empty($parsedLogs->revision)) $parsedLogs->revision = 0; - return $parsedLogs; + $repo = $this->gitModel->loadModel('repo')->getByID($repoID); + return $this->gitModel->getRepoLogs($repo, $branch); } } diff --git a/module/git/test/model/getrepologs.php b/module/git/test/model/getrepologs.php index 93989e5e56..7f9a4c70ad 100755 --- a/module/git/test/model/getrepologs.php +++ b/module/git/test/model/getrepologs.php @@ -1,30 +1,38 @@ #!/usr/bin/env php getRepoLogs(); +timeout=0 cid=1 -pid=1 - +- 分支名为空,返回默认分支的日志 + - 属性revision @b362ea7aa65515dc35ff3a93423478b2143e771d + - 属性msg @Initial commit +- 分支名为test1,返回空数组属性revision @0 +- 分支名为test1000,返回主干的日志 + - 属性revision @b362ea7aa65515dc35ff3a93423478b2143e771d + - 属性msg @Initial commit */ +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/git.class.php'; + +zdTable('repo')->config('repo')->gen(1); +su('admin'); $git = new gitTest(); -$repo = $tester->dao->select('*')->from(TABLE_REPO)->limit(1)->fetch(); -if(strtolower($repo->SCM) == 'gitlab') $repo = $tester->loadModel('repo')->processGitlab($repo); -r($git->getRepoLogs($repo)) && p() && e(1); // 获取版本库的tags +$repoID = 1; -$repo = new stdclass(); -r($git->getRepoLogs($repo)) && p() && e(0); // 使用空数据 +$branch = ''; +$result = $git->getRepoLogs($repoID, $branch); +r(end($result)) && p('revision,msg') && e('b362ea7aa65515dc35ff3a93423478b2143e771d,Initial commit'); // 分支名为空,返回默认分支的日志 -$repo = new stdclass(); -$repo->client = ''; -$repo->path = ''; -r($git->getRepoLogs($repo)) && p() && e(0); // 使用错误的版本库 +$branch = 'test1'; +r($git->getRepoLogs($repoID, $branch)) && p('revision') && e('0'); // 分支名为test1,返回空数组 +$branch = 'test1000'; +$result = $git->getRepoLogs($repoID, $branch); +r(end($result)) && p('revision,msg') && e('b362ea7aa65515dc35ff3a93423478b2143e771d,Initial commit'); // 分支名为test1000,返回主干的日志 \ No newline at end of file diff --git a/module/git/test/model/getrepos.php b/module/git/test/model/getrepos.php index bf2ab15093..ebd2d1512b 100755 --- a/module/git/test/model/getrepos.php +++ b/module/git/test/model/getrepos.php @@ -7,16 +7,14 @@ su('admin'); /** title=测试gitModel->getRepos(); +timeout=0 cid=1 -pid=1 - >> id -获取版本库 >> http://10.0.1.161:51080/api/v4/projects/42/repository/ +- 获取版本库 @http://10.0.1.161:51080/api/v4/projects/42/repository/ */ $git = new gitTest(); $tester->dao->update(TABLE_REPO)->set('synced')->eq(1)->where('id')->eq(1)->exec(); -r($git->getRepos()) && p() && e('http://10.0.1.161:51080/api/v4/projects/42/repository/'); // 获取版本库 - +r($git->getRepos()) && p() && e('http://10.0.1.161:51080/api/v4/projects/42/repository/'); // 获取版本库 \ No newline at end of file diff --git a/module/git/test/model/getrepotags.php b/module/git/test/model/getrepotags.php index 8497a59792..948b2c27a9 100755 --- a/module/git/test/model/getrepotags.php +++ b/module/git/test/model/getrepotags.php @@ -7,10 +7,12 @@ su('admin'); /** title=测试gitModel->getRepoTags(); +timeout=0 cid=1 -pid=1 -10.0.1.161:51080')->where('id')->eq(1)->exec(); >> id +- 获取版本库的tags @1 +- 使用空数据 @0 +- 使用错误的版本库 @0 */ @@ -29,5 +31,4 @@ r($git->getRepoTags($repo)) && p() && e(0); // 使用空数据 $repo = new stdclass(); $repo->client = ''; $repo->path = ''; -r($git->getRepoTags($repo)) && p() && e(0); // 使用错误的版本库 - +r($git->getRepoTags($repo)) && p() && e(0); // 使用错误的版本库 \ No newline at end of file diff --git a/module/git/test/model/setrepo.php b/module/git/test/model/setrepo.php index 1bec0187bc..cd8e3a18f5 100755 --- a/module/git/test/model/setrepo.php +++ b/module/git/test/model/setrepo.php @@ -7,11 +7,17 @@ su('admin'); /** title=测试gitModel->setRepo(); +timeout=0 cid=1 -pid=1 -设置错误版本库参数 >> ,, -设置正确版本库参数 >> 1,1,1 +- 设置错误版本库参数 + - 属性result @ + - 属性client @ + - 属性repoRoot @ +- 设置正确版本库参数 + - 属性result @1 + - 属性client @1 + - 属性repoRoot @1 */ @@ -22,5 +28,4 @@ r($git->setRepo($repo)) && p("result,client,repoRoot") && e(",,"); // 设置 $repo = $tester->dao->select('*')->from(TABLE_REPO)->limit(1)->fetch(); if(strtolower($repo->SCM) == 'gitlab') $repo = $tester->loadModel('repo')->processGitlab($repo); -r($git->setRepo($repo)) && p("result,client,repoRoot") && e("1,1,1"); // 设置正确版本库参数 - +r($git->setRepo($repo)) && p("result,client,repoRoot") && e("1,1,1"); // 设置正确版本库参数 \ No newline at end of file diff --git a/module/git/test/model/setrepos.php b/module/git/test/model/setrepos.php index 478b4b748e..cb55fff562 100755 --- a/module/git/test/model/setrepos.php +++ b/module/git/test/model/setrepos.php @@ -7,14 +7,13 @@ su('admin'); /** title=测试gitModel->setRepos(); +timeout=0 cid=1 -pid=1 - >> id +- 设置版本库属性id @1 */ $git = new gitTest(); $tester->dao->update(TABLE_REPO)->set('synced')->eq(1)->where('id')->eq(1)->exec(); -r($git->setRepos()) && p('id') && e(1); // 设置版本库 - +r($git->setRepos()) && p('id') && e(1); // 设置版本库 \ No newline at end of file diff --git a/module/git/test/model/updatecommit.php b/module/git/test/model/updatecommit.php index be65931a98..c127f81615 100755 --- a/module/git/test/model/updatecommit.php +++ b/module/git/test/model/updatecommit.php @@ -7,10 +7,11 @@ su('admin'); /** title=测试gitModel->updatecommit(); +timeout=0 cid=1 -pid=1 - +- 测试正常的版本库 @1 +- 测试空的版本库 @0 */ @@ -21,5 +22,4 @@ if(strtolower($repo->SCM) == 'gitlab') $repo = $tester->loadModel('repo')->proce r($git->updateCommit($repo)) && p() && e(1); // 测试正常的版本库 $repo = new stdclass(); -r($git->updateCommit($repo)) && p() && e(0); // 测试空的版本库 - +r($git->updateCommit($repo)) && p() && e(0); // 测试空的版本库 \ No newline at end of file diff --git a/module/git/test/yaml/repo.yaml b/module/git/test/yaml/repo.yaml new file mode 100644 index 0000000000..9ab40ae209 --- /dev/null +++ b/module/git/test/yaml/repo.yaml @@ -0,0 +1,32 @@ +title: repo +author: Yanyi Cao +version: "1.0" +fields: + - field: id + range: 1-10 + - field: product + range: 1-4,0 + - field: name + range: unittest1 + - field: encoding + range: '`utf-8`' + - field: path + range: '`https://gitlabdev.qc.oop.cc/root/unittest1`' + - field: SCM + range: Gitlab + - field: serviceHost + range: 1 + - field: serviceProject + range: 3 + - field: commits + range: 0 + - field: password + range: 6578fc96cd609 + - field: encrypt + range: base64 + - field: synced + range: 1 + - field: lastCommit + range: '`2021-02-15 23:54:45`' + - field: extra + range: 3