WLReceivePackFactory.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package uk.ac.ic.wlgitbridge.git;
  2. import org.eclipse.jgit.lib.RefUpdate;
  3. import org.eclipse.jgit.lib.Repository;
  4. import org.eclipse.jgit.transport.PreReceiveHook;
  5. import org.eclipse.jgit.transport.ReceiveCommand;
  6. import org.eclipse.jgit.transport.ReceivePack;
  7. import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
  8. import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
  9. import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
  10. import javax.servlet.http.HttpServletRequest;
  11. import java.util.Collection;
  12. /**
  13. * Created by Winston on 02/11/14.
  14. */
  15. /* */
  16. public class WLReceivePackFactory implements ReceivePackFactory<HttpServletRequest> {
  17. @Override
  18. public ReceivePack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
  19. ReceivePack receivePack = new ReceivePack(repository);
  20. receivePack.setPreReceiveHook(new PreReceiveHook() {
  21. @Override
  22. public void onPreReceive(ReceivePack receivePack, Collection<ReceiveCommand> receiveCommands) {
  23. System.out.println("Size: " + receiveCommands.size());
  24. for (ReceiveCommand receiveCommand : receiveCommands) {
  25. System.out.println(receiveCommand);
  26. System.out.println(receiveCommand.getMessage());
  27. System.out.println(receiveCommand.getType());
  28. System.out.println(receiveCommand.getResult());
  29. System.out.println(receiveCommand.getRefName());
  30. receiveCommand.setResult(RefUpdate.Result.REJECTED);
  31. }
  32. receivePack.sendError("hello this is not a fast forward");
  33. }
  34. });
  35. return receivePack;
  36. }
  37. }