From 78c4226f3a4cac4fdbe4c8ed9a825f6663ad2c68 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 3 Aug 2022 10:24:00 +0800 Subject: [PATCH 1/3] * Add repo action log. --- module/action/lang/de.php | 33 ++++++++++------ module/action/lang/en.php | 33 ++++++++++------ module/action/lang/fr.php | 33 ++++++++++------ module/action/lang/vi.php | 33 ++++++++++------ module/action/lang/zh-cn.php | 33 ++++++++++------ module/repo/control.php | 7 +++- module/repo/model.php | 60 ++++++------------------------ module/repo/view/maintain.html.php | 2 +- 8 files changed, 124 insertions(+), 110 deletions(-) diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 956f5e9854..0862355a3d 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -637,23 +637,32 @@ $lang->action->dynamicAction->job['executed'] = 'Execute Job'; $lang->action->dynamicAction->job['deleted'] = 'Delete Job'; $lang->action->dynamicAction->job['undeleted'] = 'Undelete Job'; -$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; -$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; -$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; +$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; +$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['undeleted'] = 'Undelete SonarQube Server'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = 'Delete SonarQube Project'; -$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; -$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; -$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; +$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; +$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['undeleted'] = 'Undelete GitLab Server'; -$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; -$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; -$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['undeleted'] = 'Undelete Gitea Server'; -$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; -$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; -$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; +$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; +$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['undeleted'] = 'Undelete Gogs Server'; + +$lang->action->dynamicAction->repo['created'] = 'Create Repo'; +$lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; +$lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; +$lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; diff --git a/module/action/lang/en.php b/module/action/lang/en.php index 1a90833b50..ea98cc89f2 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -637,23 +637,32 @@ $lang->action->dynamicAction->job['executed'] = 'Execute Job'; $lang->action->dynamicAction->job['deleted'] = 'Delete Job'; $lang->action->dynamicAction->job['undeleted'] = 'Undelete Job'; -$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; -$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; -$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; +$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; +$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['undeleted'] = 'Undelete SonarQube Server'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = 'Delete SonarQube Project'; -$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; -$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; -$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; +$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; +$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['undeleted'] = 'Undelete GitLab Server'; -$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; -$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; -$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['undeleted'] = 'Undelete Gitea Server'; -$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; -$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; -$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; +$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; +$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['undeleted'] = 'Undelete Gogs Server'; + +$lang->action->dynamicAction->repo['created'] = 'Create Repo'; +$lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; +$lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; +$lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index c4398b40a8..79658c8d38 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -637,23 +637,32 @@ $lang->action->dynamicAction->job['executed'] = 'Execute Job'; $lang->action->dynamicAction->job['deleted'] = 'Delete Job'; $lang->action->dynamicAction->job['undeleted'] = 'Undelete Job'; -$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; -$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; -$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; +$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; +$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['undeleted'] = 'Undelete SonarQube Server'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = 'Delete SonarQube Project'; -$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; -$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; -$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; +$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; +$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['undeleted'] = 'Undelete GitLab Server'; -$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; -$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; -$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['undeleted'] = 'Undelete Gitea Server'; -$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; -$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; -$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; +$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; +$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['undeleted'] = 'Undelete Gogs Server'; + +$lang->action->dynamicAction->repo['created'] = 'Create Repo'; +$lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; +$lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; +$lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; diff --git a/module/action/lang/vi.php b/module/action/lang/vi.php index 3829a7b131..2380f3d519 100644 --- a/module/action/lang/vi.php +++ b/module/action/lang/vi.php @@ -495,23 +495,32 @@ $lang->action->dynamicAction->job['executed'] = 'Execute Job'; $lang->action->dynamicAction->job['deleted'] = 'Delete Job'; $lang->action->dynamicAction->job['undeleted'] = 'Undelete Job'; -$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; -$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; -$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; +$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; +$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; +$lang->action->dynamicAction->sonarqube['undeleted'] = 'Undelete SonarQube Server'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = 'Delete SonarQube Project'; -$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; -$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; -$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; +$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; +$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitlab['undeleted'] = 'Undelete GitLab Server'; -$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; -$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; -$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; +$lang->action->dynamicAction->gitea['undeleted'] = 'Undelete Gitea Server'; -$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; -$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; -$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['created'] = 'Create Gogs Server'; +$lang->action->dynamicAction->gogs['edited'] = 'Edit Gogs Server'; +$lang->action->dynamicAction->gogs['deleted'] = 'Delete Gogs Server'; +$lang->action->dynamicAction->gogs['undeleted'] = 'Undelete Gogs Server'; + +$lang->action->dynamicAction->repo['created'] = 'Create Repo'; +$lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; +$lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; +$lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; /* Generate the corresponding object link. */ global $config; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index 71bc76ac43..3311fc6a07 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -637,23 +637,32 @@ $lang->action->dynamicAction->job['executed'] = '执行构建任务'; $lang->action->dynamicAction->job['deleted'] = '删除构建任务'; $lang->action->dynamicAction->job['undeleted'] = '还原构建任务'; -$lang->action->dynamicAction->sonarqube['created'] = '创建SonarQube服务器'; -$lang->action->dynamicAction->sonarqube['edited'] = '设置SonarQube服务器'; -$lang->action->dynamicAction->sonarqube['deleted'] = '删除SonarQube服务器'; +$lang->action->dynamicAction->sonarqube['created'] = '创建SonarQube服务器'; +$lang->action->dynamicAction->sonarqube['edited'] = '设置SonarQube服务器'; +$lang->action->dynamicAction->sonarqube['deleted'] = '删除SonarQube服务器'; +$lang->action->dynamicAction->sonarqube['undeleted'] = '还原SonarQube服务器'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = '删除SonarQube项目'; -$lang->action->dynamicAction->gitlab['created'] = '创建GitLab服务器'; -$lang->action->dynamicAction->gitlab['edited'] = '编辑GitLab服务器'; -$lang->action->dynamicAction->gitlab['deleted'] = '删除GitLab服务器'; +$lang->action->dynamicAction->gitlab['created'] = '创建GitLab服务器'; +$lang->action->dynamicAction->gitlab['edited'] = '编辑GitLab服务器'; +$lang->action->dynamicAction->gitlab['deleted'] = '删除GitLab服务器'; +$lang->action->dynamicAction->gitlab['undeleted'] = '还原GitLab服务器'; -$lang->action->dynamicAction->gitea['created'] = '创建Gitea服务器'; -$lang->action->dynamicAction->gitea['edited'] = '编辑Gitea服务器'; -$lang->action->dynamicAction->gitea['deleted'] = '删除Gitea服务器'; +$lang->action->dynamicAction->gitea['created'] = '创建Gitea服务器'; +$lang->action->dynamicAction->gitea['edited'] = '编辑Gitea服务器'; +$lang->action->dynamicAction->gitea['deleted'] = '删除Gitea服务器'; +$lang->action->dynamicAction->gitea['undeleted'] = '还原Gitea服务器'; -$lang->action->dynamicAction->gogs['created'] = '创建Gogs服务器'; -$lang->action->dynamicAction->gogs['edited'] = '编辑Gogs服务器'; -$lang->action->dynamicAction->gogs['deleted'] = '删除Gogs服务器'; +$lang->action->dynamicAction->gogs['created'] = '创建Gogs服务器'; +$lang->action->dynamicAction->gogs['edited'] = '编辑Gogs服务器'; +$lang->action->dynamicAction->gogs['deleted'] = '删除Gogs服务器'; +$lang->action->dynamicAction->gogs['undeleted'] = '还原Gogs服务器'; + +$lang->action->dynamicAction->repo['created'] = '创建代码库'; +$lang->action->dynamicAction->repo['edited'] = '编辑代码库'; +$lang->action->dynamicAction->repo['deleted'] = '删除代码库'; +$lang->action->dynamicAction->repo['undeleted'] = '还原代码库'; /* 用来生成相应对象的链接。*/ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; diff --git a/module/repo/control.php b/module/repo/control.php index a86682e54f..069e67c797 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -129,6 +129,7 @@ class repo extends control if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + $actionID = $this->loadModel('action')->create('repo', $repoID, 'created'); if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'id' => $repoID)); $link = $this->repo->createLink('showSyncCommit', "repoID=$repoID&objectID=$objectID", '', false) . '#app=' . $this->app->tab; return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $link)); @@ -172,6 +173,10 @@ class repo extends control $noNeedSync = $this->repo->update($repoID); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + $newRepo = $this->repo->getRepoByID($repoID); + $actionID = $this->loadModel('action')->create('repo', $repoID, 'edited'); + $changes = common::createChanges($repo, $newRepo); + $this->action->logHistory($actionID, $changes); if(!$noNeedSync) { $link = $this->repo->createLink('showSyncCommit', "repoID=$repoID"); @@ -240,7 +245,7 @@ class repo extends control $this->repo->delete(TABLE_REPO, $repoID); if(dao::isError()) return print(js::error(dao::getError())); - echo js::reload('parent'); + return print(js::reload('parent')); } /** diff --git a/module/repo/model.php b/module/repo/model.php index fdd0d9b6b4..04e83fa4d0 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -188,12 +188,6 @@ class repoModel extends model if(!$this->checkConnection()) return false; $isPipelineServer = in_array(strtolower($this->post->SCM), $this->config->repo->gitServiceList) ? true : false; - if($isPipelineServer) - { - if($this->post->serviceHost == '') dao::$errors['serviceHost'] = sprintf($this->lang->error->notempty, $this->lang->repo->serviceHost); - if($this->post->serviceProject == '') dao::$errors['serviceProject'] = sprintf($this->lang->error->notempty, $this->lang->repo->serviceProject); - if(dao::isError()) return false; - } $data = fixer::input('post') ->setIf($isPipelineServer, 'password', $this->post->serviceToken) @@ -208,19 +202,7 @@ class repoModel extends model ->join('product', ',') ->get(); - if($isPipelineServer) - { - $repo = $this->dao->select('id')->from(TABLE_REPO) - ->where('SCM')->eq($this->post->SCM) - ->andWhere('serviceHost')->eq($data->client) - ->andWhere('serviceProject')->eq($data->path) - ->fetch(); - if(!empty($repo)) dao::$errors['serviceProject'] = sprintf($this->lang->error->unique, $this->lang->repo->serviceProject, $repo->name); - if(dao::isError()) return false; - } - $data->acl = empty($data->acl) ? '' : json_encode($data->acl); - if($data->SCM == 'Subversion') { $scm = $this->app->loadClass('scm'); @@ -234,12 +216,11 @@ class repoModel extends model if($data->encrypt == 'base64') $data->password = base64_encode($data->password); $this->dao->insert(TABLE_REPO)->data($data, $skip = 'serviceToken') ->batchCheck($this->config->repo->create->requiredFields, 'notempty') - ->checkIF($data->SCM != 'Gitlab', 'path,client', 'notempty') - ->checkIF($isPipelineServer, 'serviceHost,serviceProject', 'notempty') - ->checkIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') - ->checkIF($data->SCM == 'Gitea', $this->config->repo->gitea->requiredFields, 'notempty') - ->checkIF($data->SCM == 'Git', 'path', 'unique', "`SCM` = 'Git'") - ->checkIF($data->SCM == 'Subversion', 'path', 'unique', "`SCM` = 'Subversion'") + ->batchCheckIF($data->SCM != 'Gitlab', 'path,client', 'notempty') + ->batchCheckIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceHost,serviceProject', 'notempty') + ->batchCheckIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') + ->checkIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceProject', 'unique', "`SCM` = '{$data->SCM}'") + ->checkIF(in_array($data->SCM, array('Git', 'Subversion')), 'path', 'unique', "`SCM` = '{$data->SCM}'") ->autoCheck() ->exec(); @@ -271,16 +252,11 @@ class repoModel extends model $repo = $this->getRepoByID($id); $isPipelineServer = in_array(strtolower($this->post->SCM), $this->config->repo->gitServiceList) ? true : false; - if($isPipelineServer) - { - if($this->post->serviceHost == '') dao::$errors['serviceHost'] = sprintf($this->lang->error->notempty, $this->lang->repo->serviceHost); - if($this->post->serviceProject == '') dao::$errors['serviceProject'] = sprintf($this->lang->error->notempty, $this->lang->repo->serviceProject); - } $data = fixer::input('post') ->setIf($isPipelineServer, 'password', $this->post->serviceToken) - ->setIf($isPipelineServer and $this->post->SCM == 'Gitlab', 'path', '') - ->setIf($isPipelineServer and $this->post->SCM == 'Gitlab', 'client', '') + ->setIf($this->post->SCM == 'Gitlab', 'path', '') + ->setIf($this->post->SCM == 'Gitlab', 'client', '') ->setIf($isPipelineServer, 'extra', $this->post->serviceProject) ->setDefault('prefix', $repo->prefix) ->setIf($this->post->SCM == 'Gitlab', 'prefix', '') @@ -308,29 +284,17 @@ class repoModel extends model $data->prefix = ''; } - if($isPipelineServer) - { - $repo = $this->dao->select('id')->from(TABLE_REPO) - ->where('SCM')->eq($this->post->SCM) - ->andWhere('serviceHost')->eq($data->client) - ->andWhere('serviceProject')->eq($data->path) - ->andWhere('id')->ne($id) - ->fetch(); - if(!empty($repo)) dao::$errors['serviceProject'] = sprintf($this->lang->error->unique, $this->lang->repo->serviceProject, $repo->name); - if(dao::isError()) return false; - } - if($data->client != $repo->client and !$this->checkClient()) return false; if(!$this->checkConnection()) return false; if($data->encrypt == 'base64') $data->password = base64_encode($data->password); $this->dao->update(TABLE_REPO)->data($data, $skip = 'serviceToken') ->batchCheck($this->config->repo->edit->requiredFields, 'notempty') - ->checkIF($data->SCM != 'Gitlab', 'path,client', 'notempty') - ->checkIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') - ->checkIF($data->SCM == 'Gitlab', 'extra', 'notempty') - ->checkIF($data->SCM == 'Git', 'path', 'unique', "`SCM` = 'Git' and `id` <> $id") - ->checkIF($data->SCM == 'Subversion', 'path', 'unique', "`SCM` = 'Subversion' and `id` <> $id") + ->batchCheckIF($data->SCM != 'Gitlab', 'path,client', 'notempty') + ->batchCheckIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceHost,serviceProject', 'notempty') + ->batchCheckIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') + ->checkIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceProject', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") + ->checkIF(in_array($data->SCM, array('Git', 'Subversion')), 'path', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") ->autoCheck() ->where('id')->eq($id)->exec(); diff --git a/module/repo/view/maintain.html.php b/module/repo/view/maintain.html.php index 2eb4888c64..3e10f00503 100644 --- a/module/repo/view/maintain.html.php +++ b/module/repo/view/maintain.html.php @@ -63,7 +63,7 @@ if(isset($sonarRepoList[$repo->id])) { $execClass = ''; - $jobId = $sonarRepoList[$repo->id]->id; + $jobID = $sonarRepoList[$repo->id]->id; if(in_array($jobID, $successJobs)) $reportClass = ''; } common::printIcon('sonarqube', 'execJob', "jobID=$jobID", '', 'list', 'sonarqube', 'hiddenwin', $execClass); From 96d6ca78d71d7cdfec1d896069d1b9e575e924db Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 3 Aug 2022 10:24:19 +0800 Subject: [PATCH 2/3] * Modify code check. --- lib/scm/gitea.class.php | 22 ++++++++++++++-------- lib/scm/gitrepo.class.php | 13 ++++++++++--- lib/scm/gogs.class.php | 9 ++++++++- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/lib/scm/gitea.class.php b/lib/scm/gitea.class.php index 0e28d04d5f..a8bfef0dd1 100644 --- a/lib/scm/gitea.class.php +++ b/lib/scm/gitea.class.php @@ -554,9 +554,15 @@ class Gitea { if(!scm::checkRevision($revision)) return array(); - if($revision == 'HEAD' and $branch) $revision = 'origin/' . $branch; - $revision = is_numeric($revision) ? "--skip=$revision $branch" : $revision; - $count = $count == 0 ? '' : "-n $count"; + if($revision == 'HEAD' and $branch) + { + $revision = $branch; + } + elseif(is_numeric($revision)) + { + $revision = "--skip=$revision $branch"; + } + $count = $count == 0 ? '' : "-n $count"; chdir($this->root); if($branch) @@ -601,11 +607,11 @@ class Gitea list($action, $path) = $file; $parsedFile = new stdclass(); - $parsedFile->revision = $hash; - $parsedFile->path = '/' . trim($path); - $parsedFile->type = 'file'; - $parsedFile->action = $action; - $logs['files'][$hash][] = $parsedFile; + $parsedFile->revision = $hash; + $parsedFile->path = '/' . trim($path); + $parsedFile->type = 'file'; + $parsedFile->action = $action; + $logs['files'][$hash][] = $parsedFile; } } return $logs; diff --git a/lib/scm/gitrepo.class.php b/lib/scm/gitrepo.class.php index a598f49a2a..2d5963db06 100644 --- a/lib/scm/gitrepo.class.php +++ b/lib/scm/gitrepo.class.php @@ -540,9 +540,16 @@ class GitRepo { if(!scm::checkRevision($revision)) return array(); - if($revision == 'HEAD' and $branch) $revision = 'origin/' . $branch; - $revision = is_numeric($revision) ? "--skip=$revision $branch" : $revision; - $count = $count == 0 ? '' : "-n $count"; + if($revision == 'HEAD' and $branch) + { + $revision = $branch; + } + elseif(is_numeric($revision)) + { + $revision = "--skip=$revision $branch"; + } + $count = $count == 0 ? '' : "-n $count"; + chdir($this->root); if($branch) execCmd(escapeCmd("$this->client checkout $branch"), 'array'); diff --git a/lib/scm/gogs.class.php b/lib/scm/gogs.class.php index 7dfe06709e..426ceadec9 100644 --- a/lib/scm/gogs.class.php +++ b/lib/scm/gogs.class.php @@ -554,7 +554,14 @@ class Gogs { if(!scm::checkRevision($revision)) return array(); - if($revision == 'HEAD' and $branch) $revision = $branch; + if($revision == 'HEAD' and $branch) + { + $revision = $branch; + } + elseif(is_numeric($revision)) + { + $revision = "--skip=$revision $branch"; + } $count = $count == 0 ? '' : "-n $count"; chdir($this->root); From 59a1377e5adfade4f83ec2eb325138e859ddbe7a Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 3 Aug 2022 13:52:51 +0800 Subject: [PATCH 3/3] * Adjust codes. --- module/mr/control.php | 2 -- module/repo/model.php | 12 ++++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/module/mr/control.php b/module/mr/control.php index f94de61883..72fac0533e 100644 --- a/module/mr/control.php +++ b/module/mr/control.php @@ -126,12 +126,10 @@ class mr extends control { $gitlabUsers = $this->loadModel('gitlab')->getGitLabListByAccount(); $giteaUsers = $this->gitea->getGiteaListByAccount(); - $gogsUsers = $this->gogs->getGiteaListByAccount(); foreach($hosts as $hostID => $host) { if($host->type == 'gitLab' and isset($gitlabUsers[$hostID])) continue; if($host->type == 'gitea' and isset($giteaUsers[$hostID])) continue; - if($host->type == 'gogs' and isset($gogsUsers[$hostID])) continue; unset($hosts[$hostID]); } diff --git a/module/repo/model.php b/module/repo/model.php index 04e83fa4d0..37f4c0ec3f 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -217,10 +217,10 @@ class repoModel extends model $this->dao->insert(TABLE_REPO)->data($data, $skip = 'serviceToken') ->batchCheck($this->config->repo->create->requiredFields, 'notempty') ->batchCheckIF($data->SCM != 'Gitlab', 'path,client', 'notempty') - ->batchCheckIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceHost,serviceProject', 'notempty') + ->batchCheckIF($isPipelineServer, 'serviceHost,serviceProject', 'notempty') ->batchCheckIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') - ->checkIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceProject', 'unique', "`SCM` = '{$data->SCM}'") - ->checkIF(in_array($data->SCM, array('Git', 'Subversion')), 'path', 'unique', "`SCM` = '{$data->SCM}'") + ->checkIF($isPipelineServer, 'serviceProject', 'unique', "`SCM` = '{$data->SCM}'") + ->checkIF(!$isPipelineServer, 'path', 'unique', "`SCM` = '{$data->SCM}'") ->autoCheck() ->exec(); @@ -291,10 +291,10 @@ class repoModel extends model $this->dao->update(TABLE_REPO)->data($data, $skip = 'serviceToken') ->batchCheck($this->config->repo->edit->requiredFields, 'notempty') ->batchCheckIF($data->SCM != 'Gitlab', 'path,client', 'notempty') - ->batchCheckIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceHost,serviceProject', 'notempty') + ->batchCheckIF($isPipelineServer, 'serviceHost,serviceProject', 'notempty') ->batchCheckIF($data->SCM == 'Subversion', $this->config->repo->svn->requiredFields, 'notempty') - ->checkIF(in_array($data->SCM, array('Gitea', 'Gogs')), 'serviceProject', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") - ->checkIF(in_array($data->SCM, array('Git', 'Subversion')), 'path', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") + ->checkIF($isPipelineServer, 'serviceProject', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") + ->checkIF(!$isPipelineServer, 'path', 'unique', "`SCM` = '{$data->SCM}' and `id` <> $id") ->autoCheck() ->where('id')->eq($id)->exec();