public function initialize() { $err = parent::initialize(); if ($err) { return $err; } $this->repolist = RepositoryDb::selectAll(); $this->repolist->sortByName(); }
public function initialize() { if ($err = parent::initialize()) { return $err; } $repo_id = (int) mfwRequest::get('repo_id'); $repo = RepositoryDb::retrieveByPK($repo_id); if (!$repo) { return $this->buildErrorPage('no repository found.', '/pulls/index', 'return'); } $this->repo = $repo; return null; }
*/ // filterマッチしなかったものを先にupdate foreach ($cursorlist as $rid => $cursor) { if (!isset($alerted_pulls[$rid])) { RepositoryDb::updateCursor($rid, $cursor); } } // アラートがあるものはrepo毎のトランザクションで一括保存 $con = mfwDBConnection::getPDO('default_master'); $repoids = array_keys($alerted_pulls); foreach ($repoids as $rid) { echo "save: {$repos[$rid]->getName()} ... "; $con->beginTransaction(); try { foreach ($alerts[$rid] as $alert) { $pra = new PullRequestAlert($alert); $pra->save($con); } foreach ($alerted_pulls[$rid] as $p) { $pr = new PullRequest(array('repo_id' => $rid, 'number' => $p['number'], 'user' => $p['user']['login'], 'title' => $p['title'], 'pull_created_at' => $p['created_at'])); $pr->save($con); } RepositoryDb::updateCursor($rid, $cursorlist[$rid], $con); $con->commit(); } catch (Exception $e) { $con->rollback(); throw $e; } echo "done.\n"; } echo "complete.\n";