getConf() public static method

获取当前进程的项目配置
public static getConf ( $id = null ) : string | ActiveQuery
$id
return string | yii\db\ActiveQuery
Example #1
0
 /**
  * 提交任务
  *
  * @param $projectId 没有projectId则显示列表
  * @return string
  */
 public function actionSubmit($projectId = null)
 {
     if (!$projectId) {
         // 显示所有项目列表
         $projects = Project::find()->leftJoin(Group::tableName(), '`group`.`project_id`=`project`.`id`')->where(['project.status' => Project::STATUS_VALID, '`group`.`user_id`' => $this->uid])->asArray()->all();
         return $this->render('select-project', ['projects' => $projects]);
     }
     $task = new Task();
     $conf = Project::getConf($projectId);
     if (!$conf) {
         throw new \Exception(yii::t('task', 'unknown project'));
     }
     if (\Yii::$app->request->getIsPost()) {
         $group = Group::find()->where(['user_id' => $this->uid, 'project_id' => $projectId])->count();
         if (!$group) {
             throw new \Exception(yii::t('task', 'you are not the member of project'));
         }
         if ($task->load(\Yii::$app->request->post())) {
             // 是否需要审核
             $status = $conf->audit == Project::AUDIT_YES ? Task::STATUS_SUBMIT : Task::STATUS_PASS;
             $task->user_id = $this->uid;
             $task->project_id = $projectId;
             $task->status = $status;
             $task->file_list = implode("\n", (array) $task->file_list);
             if ($task->save()) {
                 return $this->redirect('@web/task/');
             }
         }
     }
     $tpl = $conf->repo_type == Project::REPO_GIT ? 'submit-git' : 'submit-svn';
     return $this->render($tpl, ['task' => $task, 'conf' => $conf]);
 }
Example #2
0
 public function actionFilediff($projectId, $file)
 {
     \Yii::$app->response->format = 'json';
     $project = Project::getConf($projectId);
     if (!$project) {
         throw new \Exception(yii::t('task', 'unknown project'));
     }
     return (new CodeFile($project))->diffWithOnline($file);
 }
Example #3
0
 /**
  * 提交任务
  *
  * @param $projectId
  * @return string
  */
 public function actionSubmit($projectId = null)
 {
     $task = new Task();
     if ($projectId) {
         // svn下无trunk
         $nonTrunk = false;
         $conf = Project::find()->where(['id' => $projectId, 'status' => Project::STATUS_VALID])->one();
         $conf = Project::getConf($projectId);
         // 第一次可能会因为更新而耗时,但一般不会,第一次初始化会是在检测里
         if ($conf->repo_type == Project::REPO_SVN && !file_exists(Project::getDeployFromDir())) {
             $version = Repo::getRevision($conf);
             $version->updateRepo();
         }
         // 为了简化svn无trunk, branches时,不需要做查看分支,直接就是主干
         $svnTrunk = sprintf('%s/trunk', Project::getDeployFromDir());
         // svn下无trunk目录
         if (!file_exists($svnTrunk)) {
             $nonTrunk = true;
         }
     }
     if (\Yii::$app->request->getIsPost()) {
         if (!$conf) {
             throw new \Exception(yii::t('task', 'unknown project'));
         }
         $group = Group::find()->where(['user_id' => $this->uid, 'project_id' => $projectId])->count();
         if (!$group) {
             throw new \Exception(yii::t('task', 'you are not the member of project'));
         }
         if ($task->load(\Yii::$app->request->post())) {
             // 是否需要审核
             $status = $conf->audit == Project::AUDIT_YES ? Task::STATUS_SUBMIT : Task::STATUS_PASS;
             $task->user_id = $this->uid;
             $task->project_id = $projectId;
             $task->status = $status;
             if ($task->save()) {
                 return $this->redirect('/task/');
             }
         }
     }
     if ($projectId) {
         $tpl = $conf->repo_type == Project::REPO_GIT ? 'submit-git' : 'submit-svn';
         return $this->render($tpl, ['task' => $task, 'conf' => $conf, 'nonTrunk' => $nonTrunk]);
     }
     // 成员所属项目
     $projects = Project::find()->leftJoin(Group::tableName(), '`group`.project_id=project.id')->where(['project.status' => Project::STATUS_VALID, '`group`.user_id' => $this->uid])->asArray()->all();
     return $this->render('select-project', ['projects' => $projects]);
 }
Example #4
0
 /**
  * 获取commit之间的文件
  *
  * @param $projectId
  */
 public function actionGetCommitFile($projectId, $start, $end, $branch = 'trunk')
 {
     $conf = Project::getConf($projectId);
     $revision = Repo::getRevision($conf);
     $list = $revision->getFileBetweenCommits($branch, $start, $end);
     $this->renderJson($list);
 }
Example #5
0
 /**
  * 简化
  *
  * @param integer $id
  * @return the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Project::getConf($id)) !== null) {
         if ($model->user_id != $this->uid) {
             throw new \Exception(yii::t('w', 'you are not master of project'));
         }
         return $model;
     } else {
         throw new NotFoundHttpException(yii::t('conf', 'project not exists'));
     }
 }
Example #6
0
 /**
  * 获取commit历史
  *
  * @param $projectId
  */
 public function actionGetCommitHistory($projectId, $branch = 'master')
 {
     $git = new Git();
     $conf = Project::getConf($projectId);
     $git->setConfig($conf);
     if ($conf->git_type == Project::GIT_TAG) {
         $list = $git->getTagList();
     } else {
         $list = $git->getCommitList($branch);
     }
     $this->renderJson($list);
 }
Example #7
0
 /**
  * 简化
  *
  * @param integer $id
  * @return the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Project::getConf($id)) !== null) {
         if ($model->user_id != $this->uid) {
             throw new \Exception('不可以操作其它人的项目:)');
         }
         return $model;
     } else {
         throw new NotFoundHttpException('该项目不存在:)');
     }
 }
Example #8
0
 /**
  * 简化
  *
  * @param integer $id
  * @return the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Project::getConf($id)) !== null) {
         //判断是否为管理员
         if (!Group::isAuditAdmin($this->uid, $model->id)) {
             throw new \Exception(yii::t('w', 'you are not admin of project'));
         }
         return $model;
     } else {
         throw new NotFoundHttpException(yii::t('conf', 'project not exists'));
     }
 }