Beispiel #1
0
 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();
 }
Beispiel #14
0
 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);
 }
Beispiel #17
0
 * 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];