| | |
| | | import com.gitblit.manager.IGitblit; |
| | | import com.gitblit.models.RepositoryModel; |
| | | import com.gitblit.models.UserModel; |
| | | import com.gitblit.transport.ssh.SshSession; |
| | | import com.gitblit.utils.HttpUtils; |
| | | import com.gitblit.utils.StringUtils; |
| | | |
| | |
| | | String repositoryName = ""; |
| | | String origin = ""; |
| | | String gitblitUrl = ""; |
| | | String repositoryUrl = ""; |
| | | int timeout = 0; |
| | | |
| | | if (req instanceof HttpServletRequest) { |
| | |
| | | repositoryName = request.getAttribute("gitblitRepositoryName").toString(); |
| | | origin = request.getRemoteHost(); |
| | | gitblitUrl = HttpUtils.getGitblitURL(request); |
| | | repositoryUrl = request.getRequestURI(); |
| | | |
| | | // determine pushing user |
| | | String username = request.getRemoteUser(); |
| | |
| | | |
| | | // set timeout from Git daemon |
| | | timeout = client.getDaemon().getTimeout(); |
| | | } else if (req instanceof SshSession) { |
| | | // SSH request is always authenticated |
| | | SshSession s = (SshSession) req; |
| | | repositoryName = s.getRepositoryName(); |
| | | origin = s.getRemoteAddress().toString(); |
| | | String username = s.getRemoteUser(); |
| | | user = gitblit.getUserModel(username); |
| | | } |
| | | |
| | | boolean allowAnonymousPushes = settings.getBoolean(Keys.git.allowAnonymousPushes, false); |
| | |
| | | throw new ServiceNotEnabledException(); |
| | | } |
| | | |
| | | String url = settings.getString(Keys.web.canonicalUrl, null); |
| | | if (StringUtils.isEmpty(url)) { |
| | | url = gitblitUrl; |
| | | } |
| | | |
| | | final RepositoryModel repository = gitblit.getRepositoryModel(repositoryName); |
| | | |
| | | final GitblitReceivePack rp = new GitblitReceivePack(gitblit, db, repository, user); |
| | | rp.setGitblitUrl(gitblitUrl); |
| | | rp.setRepositoryUrl(repositoryUrl); |
| | | // Determine which receive pack to use for pushes |
| | | final GitblitReceivePack rp; |
| | | if (gitblit.getTicketService().isAcceptingNewPatchsets(repository)) { |
| | | rp = new PatchsetReceivePack(gitblit, db, repository, user); |
| | | } else { |
| | | rp = new GitblitReceivePack(gitblit, db, repository, user); |
| | | } |
| | | |
| | | rp.setGitblitUrl(url); |
| | | rp.setRefLogIdent(new PersonIdent(user.username, user.username + "@" + origin)); |
| | | rp.setTimeout(timeout); |
| | | |