Merged #251 "Add onFork and onRename methods to RepositoryLifeCycleListener"
| | |
| | | public abstract void onCreation(RepositoryModel repository); |
| | | |
| | | /** |
| | | * Called after a repository has been forked. |
| | | * |
| | | * @param origin |
| | | * @param fork |
| | | * @since 1.7.0 |
| | | */ |
| | | public abstract void onFork(RepositoryModel origin, RepositoryModel fork); |
| | | |
| | | /** |
| | | * Called after a repository has been renamed. |
| | | * |
| | | * @param oldName |
| | | * @param repository |
| | | * @since 1.7.0 |
| | | */ |
| | | public abstract void onRename(String oldName, RepositoryModel repository); |
| | | |
| | | /** |
| | | * Called after a repository has been deleted. |
| | | * |
| | | * @param repository |
| | |
| | | import com.gitblit.Constants.Role; |
| | | import com.gitblit.GitBlitException; |
| | | import com.gitblit.IStoredSettings; |
| | | import com.gitblit.extensions.RepositoryLifeCycleListener; |
| | | import com.gitblit.models.FederationModel; |
| | | import com.gitblit.models.FederationProposal; |
| | | import com.gitblit.models.FederationSet; |
| | |
| | | |
| | | // add this clone to the cached model |
| | | repositoryManager.addToCachedRepositoryList(cloneModel); |
| | | |
| | | if (pluginManager != null) { |
| | | for (RepositoryLifeCycleListener listener : pluginManager.getExtensions(RepositoryLifeCycleListener.class)) { |
| | | try { |
| | | listener.onFork(repository, cloneModel); |
| | | } catch (Throwable t) { |
| | | logger.error(String.format("failed to call plugin onFork %s", repository.name), t); |
| | | } |
| | | } |
| | | } |
| | | return cloneModel; |
| | | } |
| | | |
| | |
| | | repository.name = repository.name.substring(projectPath.length() + 1); |
| | | } |
| | | } |
| | | boolean isRename = false; |
| | | if (isCreate) { |
| | | // ensure created repository name ends with .git |
| | | if (!repository.name.toLowerCase().endsWith(org.eclipse.jgit.lib.Constants.DOT_GIT_EXT)) { |
| | |
| | | r = JGitUtils.createRepository(repositoriesFolder, repository.name, shared); |
| | | } else { |
| | | // rename repository |
| | | if (!repositoryName.equalsIgnoreCase(repository.name)) { |
| | | isRename = !repositoryName.equalsIgnoreCase(repository.name); |
| | | if (isRename) { |
| | | if (!repository.name.toLowerCase().endsWith( |
| | | org.eclipse.jgit.lib.Constants.DOT_GIT_EXT)) { |
| | | repository.name += org.eclipse.jgit.lib.Constants.DOT_GIT_EXT; |
| | |
| | | logger.error(String.format("failed to call plugin onCreation %s", repositoryName), t); |
| | | } |
| | | } |
| | | } else if (isRename && pluginManager != null) { |
| | | for (RepositoryLifeCycleListener listener : pluginManager.getExtensions(RepositoryLifeCycleListener.class)) { |
| | | try { |
| | | listener.onRename(repositoryName, repository); |
| | | } catch (Throwable t) { |
| | | logger.error(String.format("failed to call plugin onRename %s", repositoryName), t); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void onFork(RepositoryModel origin, RepositoryModel fork) { |
| | | log.info("{} forked to {}", origin, fork); |
| | | } |
| | | |
| | | @Override |
| | | public void onRename(String oldName, RepositoryModel repo) { |
| | | log.info("{} renamed to {}", oldName, repo); |
| | | } |
| | | |
| | | @Override |
| | | public void onDeletion(RepositoryModel repo) { |
| | | log.info("Gitblit deleted {}", repo); |
| | | } |