|
|
@@ -2,6 +2,7 @@ package com.gitblit; |
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.text.MessageFormat;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
@@ -30,7 +31,7 @@ public class GitBlit implements ServletContextListener { |
|
|
|
|
|
|
|
private FileResolver<Void> repositoryResolver;
|
|
|
|
|
|
|
|
private File repositories;
|
|
|
|
private File repositoriesFolder;
|
|
|
|
|
|
|
|
private boolean exportAll;
|
|
|
|
|
|
|
@@ -93,52 +94,9 @@ public class GitBlit implements ServletContextListener { |
|
|
|
userCookie.setPath("/");
|
|
|
|
response.addCookie(userCookie);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void editRepositoryModel(RepositoryModel repository, boolean isCreate) {
|
|
|
|
Repository r = null;
|
|
|
|
if (isCreate) {
|
|
|
|
// create repository
|
|
|
|
logger.info("create repository " + repository.name);
|
|
|
|
r = JGitUtils.createRepository(repositories, repository.name, true);
|
|
|
|
} else {
|
|
|
|
// load repository
|
|
|
|
logger.info("edit repository " + repository.name);
|
|
|
|
try {
|
|
|
|
r = repositoryResolver.open(null, repository.name);
|
|
|
|
} catch (RepositoryNotFoundException e) {
|
|
|
|
logger.error("Repository not found", e);
|
|
|
|
} catch (ServiceNotEnabledException e) {
|
|
|
|
logger.error("Service not enabled", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// update settings
|
|
|
|
StoredConfig config = JGitUtils.readConfig(r);
|
|
|
|
config.setString("gitblit", null, "description", repository.description);
|
|
|
|
config.setString("gitblit", null, "owner", repository.owner);
|
|
|
|
config.setBoolean("gitblit", null, "useTickets", repository.useTickets);
|
|
|
|
config.setBoolean("gitblit", null, "useDocs", repository.useDocs);
|
|
|
|
config.setBoolean("gitblit", null, "restrictedAccess", repository.useRestrictedAccess);
|
|
|
|
try {
|
|
|
|
config.save();
|
|
|
|
} catch (IOException e) {
|
|
|
|
logger.error("Failed to save repository config!", e);
|
|
|
|
}
|
|
|
|
r.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<String> getRepositoryList() {
|
|
|
|
return JGitUtils.getRepositoryList(repositories, exportAll, storedSettings.getBoolean(Keys.git.nestedRepositories, true));
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<RepositoryModel> getRepositories() {
|
|
|
|
List<String> list = getRepositoryList();
|
|
|
|
List<RepositoryModel> repositories = new ArrayList<RepositoryModel>();
|
|
|
|
for (String repo : list) {
|
|
|
|
RepositoryModel model = getRepositoryModel(repo);
|
|
|
|
repositories.add(model);
|
|
|
|
}
|
|
|
|
return repositories;
|
|
|
|
return JGitUtils.getRepositoryList(repositoriesFolder, exportAll, storedSettings.getBoolean(Keys.git.nestedRepositories, true));
|
|
|
|
}
|
|
|
|
|
|
|
|
public Repository getRepository(String repositoryName) {
|
|
|
@@ -155,7 +113,17 @@ public class GitBlit implements ServletContextListener { |
|
|
|
}
|
|
|
|
return r;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<RepositoryModel> getRepositoryModels() {
|
|
|
|
List<String> list = getRepositoryList();
|
|
|
|
List<RepositoryModel> repositories = new ArrayList<RepositoryModel>();
|
|
|
|
for (String repo : list) {
|
|
|
|
RepositoryModel model = getRepositoryModel(repo);
|
|
|
|
repositories.add(model);
|
|
|
|
}
|
|
|
|
return repositories;
|
|
|
|
}
|
|
|
|
|
|
|
|
public RepositoryModel getRepositoryModel(String repositoryName) {
|
|
|
|
Repository r = getRepository(repositoryName);
|
|
|
|
RepositoryModel model = new RepositoryModel();
|
|
|
@@ -174,12 +142,48 @@ public class GitBlit implements ServletContextListener { |
|
|
|
return model;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void editRepositoryModel(RepositoryModel repository, boolean isCreate) throws GitBlitException {
|
|
|
|
Repository r = null;
|
|
|
|
if (isCreate) {
|
|
|
|
if (new File(repositoriesFolder, repository.name).exists()) {
|
|
|
|
throw new GitBlitException(MessageFormat.format("Can not create repository {0} because it already exists.", repository.name));
|
|
|
|
}
|
|
|
|
// create repository
|
|
|
|
logger.info("create repository " + repository.name);
|
|
|
|
r = JGitUtils.createRepository(repositoriesFolder, repository.name, true);
|
|
|
|
} else {
|
|
|
|
// load repository
|
|
|
|
logger.info("edit repository " + repository.name);
|
|
|
|
try {
|
|
|
|
r = repositoryResolver.open(null, repository.name);
|
|
|
|
} catch (RepositoryNotFoundException e) {
|
|
|
|
logger.error("Repository not found", e);
|
|
|
|
} catch (ServiceNotEnabledException e) {
|
|
|
|
logger.error("Service not enabled", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// update settings
|
|
|
|
StoredConfig config = JGitUtils.readConfig(r);
|
|
|
|
config.setString("gitblit", null, "description", repository.description);
|
|
|
|
config.setString("gitblit", null, "owner", repository.owner);
|
|
|
|
config.setBoolean("gitblit", null, "useTickets", repository.useTickets);
|
|
|
|
config.setBoolean("gitblit", null, "useDocs", repository.useDocs);
|
|
|
|
config.setBoolean("gitblit", null, "restrictedAccess", repository.useRestrictedAccess);
|
|
|
|
try {
|
|
|
|
config.save();
|
|
|
|
} catch (IOException e) {
|
|
|
|
logger.error("Failed to save repository config!", e);
|
|
|
|
}
|
|
|
|
r.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setupContext(IStoredSettings settings) {
|
|
|
|
logger.info("Setting up GitBlit context from " + settings.toString());
|
|
|
|
this.storedSettings = settings;
|
|
|
|
repositories = new File(settings.getString(Keys.git.repositoriesFolder, "repos"));
|
|
|
|
repositoriesFolder = new File(settings.getString(Keys.git.repositoriesFolder, "repos"));
|
|
|
|
exportAll = settings.getBoolean(Keys.git.exportAll, true);
|
|
|
|
repositoryResolver = new FileResolver(repositories, exportAll);
|
|
|
|
repositoryResolver = new FileResolver<Void>(repositoriesFolder, exportAll);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|