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'); }
/** * 修改合并目标分支 * @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); }
/** * 未处理的合并数 */ function unhandled_merge_action() { $mod = new \firegit\app\mod\git\Merge(); $num = $mod->getUnhandledMergeNum(); $this->set('num', $num); }
/** * 数据提交完毕后 * @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); } }
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); }
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'); }
/** * 关闭申请合并 * @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); }