| | |
| | | import org.slf4j.LoggerFactory;
|
| | |
|
| | | import com.gitblit.Constants.AccessRestrictionType;
|
| | | import com.gitblit.client.Translation;
|
| | | import com.gitblit.models.RepositoryModel;
|
| | | import com.gitblit.models.UserModel;
|
| | | import com.gitblit.utils.ClientLogger;
|
| | |
| | | private GroovyScriptEngine gse;
|
| | |
|
| | | private File groovyDir;
|
| | |
|
| | | |
| | | @Override
|
| | | public void init(ServletConfig config) throws ServletException {
|
| | | groovyDir = GitBlit.getGroovyScriptsFolder();
|
| | |
| | | @Override
|
| | | public ReceivePack create(HttpServletRequest req, Repository db)
|
| | | throws ServiceNotEnabledException, ServiceNotAuthorizedException {
|
| | | |
| | | // determine repository name from request
|
| | | String repositoryName = req.getPathInfo().substring(1);
|
| | | repositoryName = GitFilter.getRepositoryName(repositoryName);
|
| | |
| | | return up;
|
| | | }
|
| | | });
|
| | | |
| | | super.init(new GitblitServletConfig(config));
|
| | | }
|
| | |
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | UserModel user = getUserModel(rp);
|
| | | UserModel user = getUserModel(rp); |
| | | RepositoryModel repository = GitBlit.self().getRepositoryModel(repositoryName);
|
| | | |
| | | if (repository.useIncrementalPushTags) {
|
| | | // tag each pushed branch tip
|
| | | String emailAddress = user.emailAddress == null ? rp.getRefLogIdent().getEmailAddress() : user.emailAddress;
|
| | | PersonIdent userIdent = new PersonIdent(user.getDisplayName(), emailAddress);
|
| | |
|
| | | for (ReceiveCommand cmd : commands) {
|
| | | if (!cmd.getRefName().startsWith("refs/heads/")) {
|
| | | // only tag branch ref changes
|
| | | continue;
|
| | | }
|
| | | |
| | | if (!ReceiveCommand.Type.DELETE.equals(cmd.getType())
|
| | | && ReceiveCommand.Result.OK.equals(cmd.getResult())) {
|
| | | String objectId = cmd.getNewId().getName();
|
| | | String branch = cmd.getRefName().substring("refs/heads/".length());
|
| | | // get translation based on the server's locale setting
|
| | | String template = Translation.get("gb.incrementalPushTagMessage");
|
| | | String msg = MessageFormat.format(template, branch);
|
| | | String prefix;
|
| | | if (StringUtils.isEmpty(repository.incrementalPushTagPrefix)) {
|
| | | prefix = GitBlit.getString(Keys.git.defaultIncrementalPushTagPrefix, "r");
|
| | | } else {
|
| | | prefix = repository.incrementalPushTagPrefix;
|
| | | }
|
| | | |
| | | JGitUtils.createIncrementalRevisionTag(
|
| | | rp.getRepository(),
|
| | | objectId,
|
| | | userIdent,
|
| | | prefix,
|
| | | "0",
|
| | | msg);
|
| | | }
|
| | | } |
| | | }
|
| | | |
| | | // log ref changes
|
| | | for (ReceiveCommand cmd : commands) {
|
| | | if (Result.OK.equals(cmd.getResult())) {
|
| | |
| | | case CREATE:
|
| | | logger.info(MessageFormat.format("{0} CREATED {1} in {2}", user.username, cmd.getRefName(), repository.name));
|
| | | break;
|
| | | case UPDATE:
|
| | | logger.info(MessageFormat.format("{0} UPDATED {1} in {2} (from {3} to {4})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name(), cmd.getNewId().name()));
|
| | | break;
|
| | | case UPDATE_NONFASTFORWARD:
|
| | | logger.info(MessageFormat.format("{0} UPDATED NON-FAST-FORWARD {1} in {2} (from {3} to {4})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name(), cmd.getNewId().name()));
|
| | | break;
|