List of usage examples for org.eclipse.jgit.lib PersonIdent getTimeZone
public TimeZone getTimeZone()
From source file:com.google.gerrit.acceptance.rest.change.AbstractSubmit.java
License:Apache License
protected void assertPersonEquals(PersonIdent expected, PersonIdent actual) { assertThat(actual.getEmailAddress()).isEqualTo(expected.getEmailAddress()); assertThat(actual.getName()).isEqualTo(expected.getName()); assertThat(actual.getTimeZone()).isEqualTo(expected.getTimeZone()); }
From source file:com.google.gerrit.gpg.server.DeleteGpgKey.java
License:Apache License
@Override public Response<?> apply(GpgKey rsrc, Input input) throws ResourceConflictException, PGPException, OrmException, IOException { PGPPublicKey key = rsrc.getKeyRing().getPublicKey(); AccountExternalId.Key extIdKey = new AccountExternalId.Key(AccountExternalId.SCHEME_GPGKEY, BaseEncoding.base16().encode(key.getFingerprint())); db.get().accountExternalIds().deleteKeys(Collections.singleton(extIdKey)); try (PublicKeyStore store = storeProvider.get()) { store.remove(rsrc.getKeyRing().getPublicKey().getFingerprint()); CommitBuilder cb = new CommitBuilder(); PersonIdent committer = serverIdent.get(); cb.setAuthor(rsrc.getUser().newCommitterIdent(committer.getWhen(), committer.getTimeZone())); cb.setCommitter(committer);/*from w w w . j av a 2s.c om*/ cb.setMessage("Delete public key " + keyIdToString(key.getKeyID())); RefUpdate.Result saveResult = store.save(cb); switch (saveResult) { case NO_CHANGE: case FAST_FORWARD: break; default: throw new ResourceConflictException("Failed to delete public key: " + saveResult); } } return Response.none(); }
From source file:com.google.gerrit.gpg.server.PostGpgKeys.java
License:Apache License
private void storeKeys(AccountResource rsrc, List<PGPPublicKeyRing> keyRings, Set<Fingerprint> toRemove) throws BadRequestException, ResourceConflictException, PGPException, IOException { try (PublicKeyStore store = storeProvider.get()) { List<String> addedKeys = new ArrayList<>(); for (PGPPublicKeyRing keyRing : keyRings) { PGPPublicKey key = keyRing.getPublicKey(); // Don't check web of trust; admins can fill in certifications later. CheckResult result = checker.check(key); if (!result.isOk()) { throw new BadRequestException(String.format("Problems with public key %s:\n%s", keyToString(key), Joiner.on('\n').join(result.getProblems()))); }/* w w w. ja va 2 s . c o m*/ addedKeys.add(PublicKeyStore.keyToString(key)); store.add(keyRing); } for (Fingerprint fp : toRemove) { store.remove(fp.get()); } CommitBuilder cb = new CommitBuilder(); PersonIdent committer = serverIdent.get(); cb.setAuthor(rsrc.getUser().newCommitterIdent(committer.getWhen(), committer.getTimeZone())); cb.setCommitter(committer); RefUpdate.Result saveResult = store.save(cb); switch (saveResult) { case NEW: case FAST_FORWARD: case FORCED: try { addKeyFactory.create(rsrc.getUser(), addedKeys).send(); } catch (EmailException e) { log.error("Cannot send GPG key added message to " + rsrc.getUser().getAccount().getPreferredEmail(), e); } break; case NO_CHANGE: break; default: // TODO(dborowitz): Backoff and retry on LOCK_FAILURE. throw new ResourceConflictException("Failed to save public keys: " + saveResult); } } }
From source file:com.google.gerrit.server.change.CherryPickChange.java
License:Apache License
@Inject CherryPickChange(Provider<ReviewDb> db, Provider<InternalChangeQuery> queryProvider, @GerritPersonIdent PersonIdent myIdent, GitRepositoryManager gitManager, Provider<CurrentUser> currentUser, CommitValidators.Factory commitValidatorsFactory, ChangeInserter.Factory changeInserterFactory, PatchSetInserter.Factory patchSetInserterFactory, MergeUtil.Factory mergeUtilFactory, ChangeMessagesUtil changeMessagesUtil, ChangeUpdate.Factory updateFactory) { this.db = db; this.queryProvider = queryProvider; this.gitManager = gitManager; this.serverTimeZone = myIdent.getTimeZone(); this.currentUser = currentUser; this.commitValidatorsFactory = commitValidatorsFactory; this.changeInserterFactory = changeInserterFactory; this.patchSetInserterFactory = patchSetInserterFactory; this.mergeUtilFactory = mergeUtilFactory; this.changeMessagesUtil = changeMessagesUtil; this.updateFactory = updateFactory; }
From source file:com.google.gerrit.server.change.CreateChange.java
License:Apache License
@Inject CreateChange(Provider<ReviewDb> db, GitRepositoryManager gitManager, @GerritPersonIdent PersonIdent myIdent, Provider<CurrentUser> userProvider, ProjectsCollection projectsCollection, CommitValidators.Factory commitValidatorsFactory, ChangeInserter.Factory changeInserterFactory, ChangeJson.Factory json, ChangeUtil changeUtil, @GerritServerConfig Config config) { this.db = db; this.gitManager = gitManager; this.serverTimeZone = myIdent.getTimeZone(); this.userProvider = userProvider; this.projectsCollection = projectsCollection; this.commitValidatorsFactory = commitValidatorsFactory; this.changeInserterFactory = changeInserterFactory; this.jsonFactory = json; this.changeUtil = changeUtil; this.allowDrafts = config.getBoolean("change", "allowDrafts", true); }
From source file:com.google.gerrit.server.change.CreateMergePatchSet.java
License:Apache License
@Inject CreateMergePatchSet(Provider<ReviewDb> db, GitRepositoryManager gitManager, @GerritPersonIdent PersonIdent myIdent, Provider<CurrentUser> user, ChangeJson.Factory json, PatchSetUtil psUtil, MergeUtil.Factory mergeUtilFactory, BatchUpdate.Factory batchUpdateFactory, PatchSetInserter.Factory patchSetInserterFactory) { this.db = db; this.gitManager = gitManager; this.serverTimeZone = myIdent.getTimeZone(); this.user = user; this.jsonFactory = json; this.psUtil = psUtil; this.mergeUtilFactory = mergeUtilFactory; this.batchUpdateFactory = batchUpdateFactory; this.patchSetInserterFactory = patchSetInserterFactory; }
From source file:com.google.gerrit.server.change.GetPatch.java
License:Apache License
private static String formatDate(PersonIdent author) { SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US); df.setCalendar(Calendar.getInstance(author.getTimeZone(), Locale.US)); return df.format(author.getWhen()); }
From source file:com.google.gerrit.server.change.RebaseChange.java
License:Apache License
@Inject RebaseChange(ChangeControl.GenericFactory changeControlFactory, Provider<ReviewDb> db, @GerritPersonIdent PersonIdent myIdent, GitRepositoryManager gitManager, MergeUtil.Factory mergeUtilFactory, PatchSetInserter.Factory patchSetInserterFactory) { this.changeControlFactory = changeControlFactory; this.db = db; this.gitManager = gitManager; this.serverTimeZone = myIdent.getTimeZone(); this.mergeUtilFactory = mergeUtilFactory; this.patchSetInserterFactory = patchSetInserterFactory; }
From source file:com.google.gerrit.server.changedetail.RebaseChange.java
License:Apache License
@Inject RebaseChange(final ChangeControl.GenericFactory changeControlFactory, final Provider<ReviewDb> db, @GerritPersonIdent final PersonIdent myIdent, final GitRepositoryManager gitManager, final MergeUtil.Factory mergeUtilFactory, final PatchSetInserter.Factory patchSetInserterFactory) { this.changeControlFactory = changeControlFactory; this.db = db; this.gitManager = gitManager; this.serverTimeZone = myIdent.getTimeZone(); this.mergeUtilFactory = mergeUtilFactory; this.patchSetInserterFactory = patchSetInserterFactory; }
From source file:com.google.gerrit.server.ChangeUtil.java
License:Apache License
public Change.Id revert(ChangeControl ctl, PatchSet.Id patchSetId, String message, PersonIdent myIdent, SshInfo sshInfo) throws NoSuchChangeException, OrmException, MissingObjectException, IncorrectObjectTypeException, IOException, InvalidChangeOperationException { Change.Id changeId = patchSetId.getParentKey(); PatchSet patch = db.get().patchSets().get(patchSetId); if (patch == null) { throw new NoSuchChangeException(changeId); }/*from w w w. java 2 s. c om*/ Change changeToRevert = db.get().changes().get(changeId); Project.NameKey project = ctl.getChange().getProject(); try (Repository git = gitManager.openRepository(project); RevWalk revWalk = new RevWalk(git)) { RevCommit commitToRevert = revWalk.parseCommit(ObjectId.fromString(patch.getRevision().get())); PersonIdent authorIdent = user().newCommitterIdent(myIdent.getWhen(), myIdent.getTimeZone()); RevCommit parentToCommitToRevert = commitToRevert.getParent(0); revWalk.parseHeaders(parentToCommitToRevert); CommitBuilder revertCommitBuilder = new CommitBuilder(); revertCommitBuilder.addParentId(commitToRevert); revertCommitBuilder.setTreeId(parentToCommitToRevert.getTree()); revertCommitBuilder.setAuthor(authorIdent); revertCommitBuilder.setCommitter(authorIdent); if (message == null) { message = MessageFormat.format(ChangeMessages.get().revertChangeDefaultMessage, changeToRevert.getSubject(), patch.getRevision().get()); } ObjectId computedChangeId = ChangeIdUtil.computeChangeId(parentToCommitToRevert.getTree(), commitToRevert, authorIdent, myIdent, message); revertCommitBuilder.setMessage(ChangeIdUtil.insertId(message, computedChangeId, true)); RevCommit revertCommit; try (ObjectInserter oi = git.newObjectInserter()) { ObjectId id = oi.insert(revertCommitBuilder); oi.flush(); revertCommit = revWalk.parseCommit(id); } RefControl refControl = ctl.getRefControl(); Change change = new Change(new Change.Key("I" + computedChangeId.name()), new Change.Id(db.get().nextChangeId()), user().getAccountId(), changeToRevert.getDest(), TimeUtil.nowTs()); change.setTopic(changeToRevert.getTopic()); ChangeInserter ins = changeInserterFactory.create(refControl.getProjectControl(), change, revertCommit); PatchSet ps = ins.getPatchSet(); String ref = refControl.getRefName(); String cmdRef = MagicBranch.NEW_PUBLISH_CHANGE + ref.substring(ref.lastIndexOf('/') + 1); CommitReceivedEvent commitReceivedEvent = new CommitReceivedEvent( new ReceiveCommand(ObjectId.zeroId(), revertCommit.getId(), cmdRef), refControl.getProjectControl().getProject(), refControl.getRefName(), revertCommit, user()); try { commitValidatorsFactory.create(refControl, sshInfo, git) .validateForGerritCommits(commitReceivedEvent); } catch (CommitValidationException e) { throw new InvalidChangeOperationException(e.getMessage()); } RefUpdate ru = git.updateRef(ps.getRefName()); ru.setExpectedOldObjectId(ObjectId.zeroId()); ru.setNewObjectId(revertCommit); ru.disableRefLog(); if (ru.update(revWalk) != RefUpdate.Result.NEW) { throw new IOException(String.format("Failed to create ref %s in %s: %s", ps.getRefName(), change.getDest().getParentKey().get(), ru.getResult())); } ChangeMessage cmsg = new ChangeMessage(new ChangeMessage.Key(changeId, messageUUID(db.get())), user().getAccountId(), TimeUtil.nowTs(), patchSetId); StringBuilder msgBuf = new StringBuilder(); msgBuf.append("Patch Set ").append(patchSetId.get()).append(": Reverted"); msgBuf.append("\n\n"); msgBuf.append("This patchset was reverted in change: ").append(change.getKey().get()); cmsg.setMessage(msgBuf.toString()); ins.setMessage(cmsg).insert(); try { RevertedSender cm = revertedSenderFactory.create(change.getId()); cm.setFrom(user().getAccountId()); cm.setChangeMessage(cmsg); cm.send(); } catch (Exception err) { log.error("Cannot send email for revert change " + change.getId(), err); } return change.getId(); } catch (RepositoryNotFoundException e) { throw new NoSuchChangeException(changeId, e); } }