Kaynağa Gözat

Merged #251 "Add onFork and onRename methods to RepositoryLifeCycleListener"

tags/v1.7.0
James Moger 9 yıl önce
ebeveyn
işleme
5c40bee1e1

+ 18
- 0
src/main/java/com/gitblit/extensions/RepositoryLifeCycleListener.java Dosyayı Görüntüle

@@ -35,6 +35,24 @@ public abstract class RepositoryLifeCycleListener implements ExtensionPoint {
*/
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.
*

+ 11
- 0
src/main/java/com/gitblit/manager/GitblitManager.java Dosyayı Görüntüle

@@ -54,6 +54,7 @@ import com.gitblit.Constants.FederationToken;
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;
@@ -276,6 +277,16 @@ public class GitblitManager implements IGitblit {

// 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;
}


+ 11
- 1
src/main/java/com/gitblit/manager/RepositoryManager.java Dosyayı Görüntüle

@@ -1375,6 +1375,7 @@ public class RepositoryManager implements IRepositoryManager {
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)) {
@@ -1391,7 +1392,8 @@ public class RepositoryManager implements IRepositoryManager {
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;
@@ -1511,6 +1513,14 @@ public class RepositoryManager implements IRepositoryManager {
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);
}
}
}
}


+ 10
- 0
src/site/plugins_extensions.mkd Dosyayı Görüntüle

@@ -337,6 +337,16 @@ public class MyRepoLifeCycleListener extends RepositoryLifeCycleListener {
log.info("Gitblit created {}", repo);
}

@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);

Loading…
İptal
Kaydet