Example #1
0
 function index_action()
 {
     $mod = new \firegit\app\mod\git\Reposite();
     $username = $this->getData('user');
     $repos = $mod->pagedGetUserRepos($username, 0, 100);
     $api = new \firegit\app\mod\git\Merge();
     $merges = $api->pagedGetUserMerges($username, 0, 10, 0xffff & ~0x20);
     $groupRepos = array();
     foreach ($repos as $repo) {
         $groupRepos[$repo['repo_group']][] = $repo;
     }
     $this->setLayout('layout/common.phtml')->set(array('repos' => $groupRepos, 'merges' => $merges['list']))->setView('index/index.phtml');
 }
Example #2
0
 /**
  * 修改合并目标分支
  * @throws \Exception
  *
  */
 function _modify_branch_action()
 {
     if ($this->role != 16) {
         throw new \Exception('firegit.u_power');
     }
     $reposite = new \firegit\git\Reposite($this->gitGroup, $this->gitName);
     $datas['dest_branch'] = $_POST['branch'];
     $mergeId = $_POST['merge_id'];
     $datas['dest_hash'] = $reposite->getBranchHash($datas['dest_branch']);
     $api = new \firegit\app\mod\git\Merge();
     $mergeinfo = $api->getMerge($mergeId);
     if (!$mergeinfo) {
         throw new \Exception('firegit.u_notfound');
     }
     if ($datas['dest_branch'] == $mergeinfo['dest_branch']) {
         throw new \Exception('firegit.alike');
     }
     $merge = new \firegit\app\mod\git\Merge();
     $merge->updateDate($mergeId, $datas);
 }
Example #3
0
 /**
  * 未处理的合并数
  */
 function unhandled_merge_action()
 {
     $mod = new \firegit\app\mod\git\Merge();
     $num = $mod->getUnhandledMergeNum();
     $this->set('num', $num);
 }
Example #4
0
 /**
  * 数据提交完毕后
  * @param Hook $hook
  * @param $commits
  */
 static function postReceive(Hook $hook, $commits)
 {
     $reposite = new Reposite($hook->group, $hook->name);
     // 检查每个分支是否已经创建过
     $merges = array();
     $branches = array();
     foreach ($commits as $commit) {
         $branch = $commit['branch'];
         if (strpos($branch, Util::TAG_PREFIX) !== 0) {
             $_ms = $reposite->listMergeCommits($commit['start'], $commit['end']);
             if ($_ms) {
                 $merges = array_merge($merges, $_ms);
             }
             $branches[substr($branch, strlen(Util::BRANCH_PREFIX))] = $commit['end'];
         }
     }
     $merge = new \firegit\app\mod\git\Merge();
     if ($merges) {
         $merge->handleMerges($hook->group, $hook->name, $merges);
     }
     if ($branches) {
         $merge->updateBranches($hook->group, $hook->name, $branches);
     }
 }
Example #5
0
 function _notice_action()
 {
     $mergeId = $this->post('merge_id');
     $datas = $this->posts('title', 'desc');
     $datas['deploy_status'] = 0x32;
     $mod = new \firegit\app\mod\git\Merge();
     return $mod->updateDate($mergeId, $datas);
 }
Example #6
0
 function merge_action()
 {
     $merge = new \firegit\app\mod\git\Merge();
     $merges = $merge->pagedGetUserMerges($this->request->data['user'], $this->_pn, $this->_sz);
     $this->set(array('mainNav' => 'merge', 'pageTitle' => '我的合并请求', 'subNav' => 'my_merge', 'total' => $merges['total'], 'merges' => $merges['list']))->setView('merge/index.phtml');
 }
Example #7
0
 /**
  * 关闭申请合并
  * @param $mergeId
  * @throws \Exception
  */
 function merge_close_action($mergeId)
 {
     $api = new \firegit\app\mod\git\Merge();
     $loginUser = $this->request->data['user'];
     $merge = $api->getMerge($mergeId);
     if (!$merge || $loginUser != $merge['username']) {
         throw new \Exception('firegit.u_notfound');
     }
     $api->closeMerge($mergeId);
 }