public function processGrokMirrorActions($repository_path) { $repository = $this->repository_factory->getFromFullPath($repository_path); if ($repository !== null) { $this->system_event_manager->queueGrokMirrorManifestFollowingAGitPush($repository); } }
public function revokeProjectsFromMirror(Git_Mirror_Mirror $mirror, array $project_ids) { $this->restricted_mirror_dao->revokeProjectsFromResource($mirror->id, $project_ids); $repositories = $this->mirror_data_mapper->fetchAllProjectRepositoriesForMirror($mirror, $project_ids); foreach ($repositories as $repository) { $this->mirror_data_mapper->unmirrorRepository($repository->getId()); $this->git_system_event_manager->queueRepositoryUpdate($repository); $this->history_dao->groupAddHistory("git_repo_mirroring_update", $repository->getName(), $repository->getProjectId()); } return true; }
public function process() { foreach ($this->getProjectIdsFromParameters() as $project_id) { $project = $this->project_manager->getProject($project_id); if ($project && !$project->isError()) { $this->logger->debug('Update configuration for project ' . $project->getID()); $this->gitolite_driver->dumpProjectRepoConf($project); } } $this->system_event_manager->queueGrokMirrorGitoliteAdminUpdate(); $this->done(); }
private function deleteRepo(GitRepository $repository) { $path = $repository->getPath(); try { $this->logger->debug("Deleting repository " . $path); $this->system_event_manager->queueGrokMirrorManifestRepoDelete($path); $repository->delete(); } catch (Exception $e) { $this->error($e->getMessage()); return false; } $this->done(); return true; }
public function process() { $repository = $this->getRepositoryFromParameters(); if (!$repository) { if ($this->repository_factory->getDeletedRepository($this->getRepositoryIdFromParameters())) { $this->done('Unable to update a repository marked as deleted'); return; } $this->warning('Unable to find repository, perhaps it was deleted in the mean time?'); return; } $this->system_event_manager->queueGrokMirrorManifest($repository); $repository->getBackend()->updateRepoConf($repository); $this->done(); }
public function process() { $user_id = $this->getUserIdFromParameters(); $this->logger->debug('Dump key for user ' . $user_id); $user = $this->getUserFromParameters(); $gitolite_admin_repo = new GitRepositoryGitoliteAdmin(); $this->updateGitolite($user); $this->system_event_manager->queueGrokMirrorManifest($gitolite_admin_repo); try { $this->updateGerrit($user); $this->done(); } catch (Git_UserSynchronisationException $e) { $this->warning('Unable to propagate ssh keys on gerrit for user: ' . $user->getUnixName()); } }
private function askForAGitoliteDumpConf() { $this->csrf->check(); $this->git_system_event_manager->queueDumpOfAllMirroredRepositories(); $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_git', 'dump_gitolite_conf_queued', array($this->getGitSystemEventsQueueURL())), CODENDI_PURIFIER_DISABLED); $GLOBALS['Response']->redirect('/plugins/git/admin/?pane=mirrors_admin'); }
/** * * @param Git_RemoteServer_GerritServer $server */ public function delete(Git_RemoteServer_GerritServer $server) { if (!$this->isServerUsed($server)) { $this->dao->delete($server->getId()); $this->system_event_manager->queueGerritReplicationKeyUpdate($server); } }
private function doForkRepository(GitRepository $repository, GitRepository $clone, array $forkPermissions) { $id = $repository->getBackend()->fork($repository, $clone, $forkPermissions); $clone->setId($id); if ($id) { $this->git_system_event_manager->queueRepositoryFork($repository, $clone); } else { throw new Exception($GLOBALS['Language']->getText('plugin_git', 'actions_no_repository_forked')); } }
private function queueProjectsConfigurationUpdate(DataAccessResult $dar) { $projects_ids = array(); if (count($dar) > 0) { foreach ($dar as $row) { $projects_ids[] = $row['group_id']; } $this->git_system_event_manager->queueProjectsConfigurationUpdate($projects_ids); } return $projects_ids; }
/** * @return bool * @throws Git_Mirror_MirrorNotFoundException */ public function delete($id) { $mirror = $this->fetch($id); if (!$this->dao->delete($id)) { return false; } $user = $this->user_manager->getUserById($mirror->owner_id); $user->setStatus(PFUser::STATUS_DELETED); $this->user_manager->updateDb($user); $this->git_system_event_manager->queueDeleteMirror($id, $mirror->hostname); return true; }
private function importRepository(Project $project, PFUser $creator, SimpleXMLElement $repository_xmlnode, $extraction_path) { $repository_info = $repository_xmlnode->attributes(); $this->logger->debug("Importing {$repository_info['name']} using {$repository_info['bundle-path']}"); $description = isset($repository_info['description']) ? (string) $repository_info['description'] : GitRepository::DEFAULT_DESCRIPTION; $repository = $this->repository_factory->buildRepository($project, $repository_info['name'], $creator, $this->gitolite_backend, $description); $absolute_bundle_path = $extraction_path . '/' . $repository_info['bundle-path']; $extraction_path_arg = escapeshellarg($extraction_path); $this->system_command->exec("chmod 755 {$extraction_path_arg}"); $this->repository_manager->createFromBundle($repository, $this->gitolite_backend, $absolute_bundle_path); $this->importPermissions($project, $repository_xmlnode->children(), $repository); $this->system_event_manager->queueProjectsConfigurationUpdate(array($project->getGroupId())); }
public function process() { $parameters = $this->getParametersAsArray(); $repository_id = 0; if (!empty($parameters[0])) { $repository_id = (int) $parameters[0]; } else { $this->error('Missing argument repository id'); return false; } $repository = $this->repository_factory->getDeletedRepository($repository_id); $active_repository = $this->repository_factory->getRepositoryByPath($repository->getProject()->getId(), $repository->getPath()); if ($active_repository instanceof GitRepository) { $this->error('Repository with the same name already exsit'); return false; } if (!$repository->getBackend()->restoreArchivedRepository($repository)) { $this->error('Unable to restore repository : ' . $repository->getName()); return false; } $repository->getBackend()->updateRepoConf($repository); $this->system_event_manager->queueGrokMirrorManifest($repository); $this->done(); }
public function restoreRepository($repo_id, $project_id) { $repository = $this->factory->getDeletedRepository($repo_id); $url = '/admin/show_pending_documents.php?group_id=' . $project_id . '&focus=git_repository'; if (!$repository) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_git', 'restore_invalid_id')); $GLOBALS['Response']->redirect($url); } $active_repository = $this->factory->getRepositoryByPath($project_id, $repository->getPath()); if ($active_repository instanceof GitRepository) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_git', 'restore_invalid_name')); } else { $this->git_system_event_manager->queueRepositoryRestore($repository); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_git', 'restore_event_created') . ' : ' . $repository->getName()); } $GLOBALS['Response']->redirect($url); }
public function process() { $this->gitolite->checkAuthorizedKeys(); $this->gitgc->cleanUpGitoliteAdminWorkingCopy(); $this->system_event_manager->queueGrokMirrorManifestCheck(); }
public function itCreatesGerritReplicationKeyUpdateEvent() { $server = stub('Git_RemoteServer_GerritServer')->getId()->returns(9); expect($this->system_event_manager)->createEvent(SystemEvent_GIT_GERRIT_ADMIN_KEY_DUMP::NAME, 9, SystemEvent::PRIORITY_HIGH, SystemEvent::OWNER_APP)->once(); $this->git_system_event_manager->queueGerritReplicationKeyUpdate($server); }
* the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Tuleap is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Tuleap. If not, see <http://www.gnu.org/licenses/>. */ require_once 'pre.php'; $git_dao = new GitDao(); $user_manager = UserManager::instance(); $git_repository_factory = new GitRepositoryFactory($git_dao, ProjectManager::instance()); $system_event_manager = new Git_SystemEventManager(SystemEventManager::instance(), $git_repository_factory); $git_plugin = PluginManager::instance()->getPluginByName('git'); $logger = $git_plugin->getLogger(); if ($argv[1] == "--init") { $repository_path = $argv[2]; $user_name = $argv[3]; $repository = $git_repository_factory->getFromFullPath($repository_path); if ($repository) { $system_event_manager->queueGrokMirrorManifestFollowingAGitPush($repository); } } else { $repository_path = $argv[1]; $user_name = $argv[2]; $old_rev = $argv[3]; $new_rev = $argv[4]; $refname = $argv[5];