I'm trying to build versioning system using jgit api for all git operation. Need suggestions to create git server/ any software that is compatible with jgit api for creating remote repository , We cant use github the reason i am building platform for people they wont have any idea about git and github instead they uses our created software to create / delete / update / rollback / save files .
I'm able to create git server like below but looking if we have any tools or software that i can use which is compatible with jgit api to create remote repository and all .
public class GitServer {
public static void main(String[] args) throws Exception {
Repository repository = createNewRepository();
populateRepository(repository);
// Create the JGit Servlet which handles the Git protocol
GitServlet gs = new GitServlet();
gs.setRepositoryResolver((req, name) -> {
repository.incrementOpen();
return repository;
});
// start up the Servlet and start serving requests
Server server = configureAndStartHttpServer(gs);
// finally wait for the Server being stopped
server.join();
}
private static Server configureAndStartHttpServer(GitServlet gs) throws Exception {
Server server = new Server(8080);
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
ServletHolder holder = new ServletHolder(gs);
handler.addServletWithMapping(holder, "/*");
server.start();
return server;
}
private static void populateRepository(Repository repository) throws IOException, GitAPIException {
// enable pushing to the sample repository via http
repository.getConfig().setString("http", null, "receivepack", "true");
try (Git git = new Git(repository)) {
File myfile = new File(repository.getDirectory().getParent(), "testfile");
if(!myfile.createNewFile()) {
throw new IOException("Could not create file " + myfile);
}
git.add().addFilepattern("testfile").call();
System.out.println("Added file " + myfile + " to repository at " + repository.getDirectory());
git.commit().setMessage("Test-Checkin").call();
}
}
private static Repository createNewRepository() throws IOException {
// prepare a new folder
File localPath = File.createTempFile("TestGitRepository", "");
if(!localPath.delete()) {
throw new IOException("Could not delete temporary file " + localPath);
}
if(!localPath.mkdirs()) {
throw new IOException("Could not create directory " + localPath);
}
// create the directory
Repository repository = FileRepositoryBuilder.create(new File(localPath, ".git"));
repository.create();
return repository;
}
}
Please check bellow code for local git
https://github.com/masumcse1/mygitserver