From f5d0ad7e706f1743b01dcc71f42112d533de89c2 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 23 Apr 2011 19:16:53 -0400 Subject: [PATCH] Basic Create/Edit Repository. JGit 0.12-stable. Tag icon. --- src/com/gitblit/GitBlit.java | 48 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index f285daf..c412b18 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -8,15 +8,12 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import org.apache.wicket.Request; import org.apache.wicket.protocol.http.WebResponse; -import org.apache.wicket.protocol.http.servlet.ServletWebRequest; import org.eclipse.jgit.errors.RepositoryNotFoundException; -import org.eclipse.jgit.http.server.resolver.FileResolver; -import org.eclipse.jgit.http.server.resolver.ServiceNotEnabledException; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.transport.resolver.FileResolver; +import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +27,7 @@ private final Logger logger = LoggerFactory.getLogger(GitBlit.class); - private FileResolver repositoryResolver; + private FileResolver<Void> repositoryResolver; private File repositories; @@ -96,18 +93,41 @@ response.addCookie(userCookie); } + public void editRepository(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 + JGitUtils.setRepositoryDescription(r, repository.description); + JGitUtils.setRepositoryOwner(r, repository.owner); + JGitUtils.setRepositoryUseTickets(r, repository.useTickets); + JGitUtils.setRepositoryUseDocs(r, repository.useDocs); + JGitUtils.setRepositoryUseNamedUsers(r, repository.useNamedUsers); + } + public List<String> getRepositoryList() { return JGitUtils.getRepositoryList(repositories, exportAll, storedSettings.getBoolean(Keys.git.nestedRepositories, true)); } - public List<RepositoryModel> getRepositories(Request request) { + public List<RepositoryModel> getRepositories() { List<String> list = getRepositoryList(); - ServletWebRequest servletWebRequest = (ServletWebRequest) request; - HttpServletRequest req = servletWebRequest.getHttpServletRequest(); - List<RepositoryModel> repositories = new ArrayList<RepositoryModel>(); for (String repo : list) { - Repository r = getRepository(req, repo); + Repository r = getRepository(repo); String description = JGitUtils.getRepositoryDescription(r); String owner = JGitUtils.getRepositoryOwner(r); Date lastchange = JGitUtils.getLastChange(r); @@ -117,10 +137,10 @@ return repositories; } - public Repository getRepository(HttpServletRequest req, String repositoryName) { + public Repository getRepository(String repositoryName) { Repository r = null; try { - r = repositoryResolver.open(req, repositoryName); + r = repositoryResolver.open(null, repositoryName); } catch (RepositoryNotFoundException e) { r = null; logger.error("Failed to find repository " + repositoryName); @@ -147,7 +167,7 @@ WebXmlSettings webxmlSettings = new WebXmlSettings(contextEvent.getServletContext()); setupContext(webxmlSettings); } else { - logger.info("GitBlit context already setup by " + storedSettings.toString()); + logger.info("GitBlit context already setup by " + storedSettings.toString()); } } -- Gitblit v1.9.1