List of usage examples for org.eclipse.jgit.revwalk RevTag getFullMessage
public final String getFullMessage()
From source file:ch.sourcepond.maven.release.scm.git.GitRepository.java
License:Apache License
@Override public ProposedTag fromRef(final Ref gitTag) throws SCMException { notNull(gitTag, "gitTag"); final RevWalk walk = new RevWalk(getGit().getRepository()); final ObjectId tagId = gitTag.getObjectId(); JSONObject message;//w ww. j a v a 2s. com try { final RevTag tag = walk.parseTag(tagId); message = (JSONObject) JSONValue.parse(tag.getFullMessage()); } catch (final IOException e) { throw new SCMException(e, "Error while looking up tag because RevTag could not be parsed! Object-id was %s", tagId); } finally { walk.dispose(); } if (message == null) { message = new JSONObject(); message.put(VERSION, "0"); message.put(BUILD_NUMBER, "0"); } return new GitProposedTag(getGit(), log, gitTag, stripRefPrefix(gitTag.getName()), message, config.getRemoteUrlOrNull()); }
From source file:com.google.gerrit.acceptance.git.SubmitOnPushIT.java
License:Apache License
private void assertTag(Project.NameKey project, String branch, PushOneCommit.Tag tag) throws IOException { try (Repository repo = repoManager.openRepository(project)) { Ref tagRef = repo.getRef(tag.name); assertThat(tagRef).isNotNull();// www . j av a 2 s . c om ObjectId taggedCommit = null; if (tag instanceof PushOneCommit.AnnotatedTag) { PushOneCommit.AnnotatedTag annotatedTag = (PushOneCommit.AnnotatedTag) tag; try (RevWalk rw = new RevWalk(repo)) { RevObject object = rw.parseAny(tagRef.getObjectId()); assertThat(object).isInstanceOf(RevTag.class); RevTag tagObject = (RevTag) object; assertThat(tagObject.getFullMessage()).isEqualTo(annotatedTag.message); assertThat(tagObject.getTaggerIdent()).isEqualTo(annotatedTag.tagger); taggedCommit = tagObject.getObject(); } } else { taggedCommit = tagRef.getObjectId(); } ObjectId headCommit = repo.getRef(branch).getObjectId(); assertThat(taggedCommit).isNotNull(); assertThat(taggedCommit).isEqualTo(headCommit); } }
From source file:com.google.gerrit.server.project.ListTags.java
License:Apache License
private static TagInfo createTagInfo(Ref ref, RevWalk rw) throws MissingObjectException, IOException { RevObject object = rw.parseAny(ref.getObjectId()); if (object instanceof RevTag) { RevTag tag = (RevTag) object; // Annotated or signed tag return new TagInfo(Constants.R_TAGS + tag.getTagName(), tag.getName(), tag.getObject().getName(), tag.getFullMessage().trim(), CommonConverters.toGitPerson(tag.getTaggerIdent())); } else {/* w w w . j av a 2 s. c o m*/ // Lightweight tag return new TagInfo(ref.getName(), ref.getObjectId().getName()); } }
From source file:com.google.gerrit.server.project.RefControl.java
License:Apache License
/** * Determines whether the user can create a new Git ref. * * @param db db for checking change visibility. * @param rw revision pool {@code object} was parsed in; must be reset before * calling this method./* w w w .j a v a 2 s. c o m*/ * @param object the object the user will start the reference with. * @return {@code true} if the user specified can create a new Git ref */ public boolean canCreate(ReviewDb db, RevWalk rw, RevObject object) { if (!canWrite()) { return false; } boolean owner; boolean admin; switch (getCurrentUser().getAccessPath()) { case REST_API: case JSON_RPC: case UNKNOWN: owner = isOwner(); admin = getCurrentUser().getCapabilities().canAdministrateServer(); break; default: owner = false; admin = false; } if (object instanceof RevCommit) { if (admin || (owner && !isBlocked(Permission.CREATE))) { // Admin or project owner; bypass visibility check. return true; } else if (!canPerform(Permission.CREATE)) { // No create permissions. return false; } else if (canUpdate()) { // If the user has push permissions, they can create the ref regardless // of whether they are pushing any new objects along with the create. return true; } else if (isMergedIntoBranchOrTag(db, rw, (RevCommit) object)) { // If the user has no push permissions, check whether the object is // merged into a branch or tag readable by this user. If so, they are // not effectively "pushing" more objects, so they can create the ref // even if they don't have push permission. return true; } return false; } else if (object instanceof RevTag) { final RevTag tag = (RevTag) object; try { rw.parseBody(tag); } catch (IOException e) { return false; } // If tagger is present, require it matches the user's email. // final PersonIdent tagger = tag.getTaggerIdent(); if (tagger != null) { boolean valid; if (getCurrentUser().isIdentifiedUser()) { final IdentifiedUser user = (IdentifiedUser) getCurrentUser(); final String addr = tagger.getEmailAddress(); valid = user.hasEmailAddress(addr); } else { valid = false; } if (!valid && !owner && !canForgeCommitter()) { return false; } } // If the tag has a PGP signature, allow a lower level of permission // than if it doesn't have a PGP signature. // if (tag.getFullMessage().contains("-----BEGIN PGP SIGNATURE-----\n")) { return owner || canPerform(Permission.PUSH_SIGNED_TAG); } else { return owner || canPerform(Permission.PUSH_TAG); } } else { return false; } }
From source file:com.google.gitiles.TagSoyData.java
License:Open Source License
public Map<String, Object> toSoyData(RevTag tag) { Map<String, Object> data = Maps.newHashMapWithExpectedSize(4); data.put("sha", ObjectId.toString(tag)); if (tag.getTaggerIdent() != null) { data.put("tagger", CommitSoyData.toSoyData(tag.getTaggerIdent(), dateFormatter)); }/* w ww . j a va 2 s.c o m*/ data.put("object", ObjectId.toString(tag.getObject())); data.put("message", linkifier.linkify(req, tag.getFullMessage())); return data; }
From source file:com.googlesource.gerrit.plugins.refprotection.BackupRef.java
License:Open Source License
public void createBackup(RefUpdatedEvent event, ProjectResource project) { String refName = event.getRefName(); try (Repository git = repoManager.openRepository(project.getNameKey())) { String backupRef = get(project, refName); // No-op if the backup branch name is same as the original if (backupRef.equals(refName)) { return; }//from w ww . j ava 2s. c o m try (RevWalk revWalk = new RevWalk(git)) { RefUpdateAttribute refUpdate = event.refUpdate.get(); if (cfg.getFromGerritConfig(pluginName).getBoolean("createTag", false)) { TagBuilder tag = new TagBuilder(); AccountAttribute submitter = event.submitter.get(); tag.setTagger(new PersonIdent(submitter.name, submitter.email)); tag.setObjectId(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev))); String update = "Non-fast-forward update to"; if (refUpdate.newRev.equals(ObjectId.zeroId().getName())) { update = "Deleted"; } String type = "branch"; String fullMessage = ""; if (refUpdate.refName.startsWith(R_TAGS)) { type = "tag"; try { RevTag origTag = revWalk.parseTag(ObjectId.fromString(refUpdate.oldRev)); SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy ZZZZ"); PersonIdent taggerIdent = origTag.getTaggerIdent(); String tagger = String.format("Tagger: %s <%s>\nDate: %s", taggerIdent.getName(), taggerIdent.getEmailAddress(), format.format(taggerIdent.getWhen())); fullMessage = "\n\nOriginal tag:\n" + tagger + "\n\n" + origTag.getFullMessage(); } catch (MissingObjectException e) { log.warn("Original tag does not exist", e); } catch (IncorrectObjectTypeException e) { log.warn("Original tag was not a tag", e); } catch (IOException e) { log.warn("Unable to read original tag details", e); } } tag.setMessage(update + " " + type + " " + refUpdate.refName + fullMessage); tag.setTag(backupRef); ObjectInserter inserter = git.newObjectInserter(); ObjectId tagId = inserter.insert(tag); inserter.flush(); RefUpdate tagRef = git.updateRef(tag.getTag()); tagRef.setNewObjectId(tagId); tagRef.setRefLogMessage("tagged deleted branch/tag " + tag.getTag(), false); tagRef.setForceUpdate(false); Result result = tagRef.update(); switch (result) { case NEW: case FORCED: log.debug("Successfully created backup tag"); break; case LOCK_FAILURE: log.error("Failed to lock repository while creating backup tag"); break; case REJECTED: log.error("Tag already exists while creating backup tag"); break; default: log.error("Unknown error while creating backup tag"); } } else { BranchInput input = new BranchInput(); input.ref = backupRef; // We need to parse the commit to ensure if it's a tag, we get the // commit the tag points to! input.revision = ObjectId .toString(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev)).getId()); try { createBranchFactory.create(backupRef).apply(project, input); } catch (BadRequestException | AuthException | ResourceConflictException | IOException e) { log.error(e.getMessage(), e); } } } } catch (RepositoryNotFoundException e) { log.error("Repository does not exist", e); } catch (IOException e) { log.error("Could not open repository", e); } }
From source file:com.madgag.agit.views.TagSummaryView.java
License:Open Source License
public void setObject(RevTag tag, View view, Repository repo) { ((PersonIdentView) view.findViewById(tagger_ident)).setIdent("Tagger", tag.getTaggerIdent()); ((TextView) view.findViewById(message_text)).setText(tag.getFullMessage()); try {// w ww .j a va2 s. co m RevObject taggedObject = new RevWalk(repo).parseAny(tag.getObject()); ((ObjectSummaryView) view.findViewById(tagged_object)).setObject(taggedObject); Log.d(TAG, "Successfully set taggedObject=" + taggedObject); } catch (IOException e) { Log.e(TAG, "Couldn't set the tagged object...", e); e.printStackTrace(); } }
From source file:org.eclipse.egit.core.test.op.TagOperationTest.java
License:Open Source License
@Test public void addTag() throws Exception { assertTrue("Tags should be empty", repository1.getRepository().getTags().isEmpty()); TagBuilder newTag = new TagBuilder(); newTag.setTag("TheNewTag"); newTag.setMessage("Well, I'm the tag"); newTag.setTagger(RawParseUtils.parsePersonIdent(TestUtils.AUTHOR)); newTag.setObjectId(repository1.getRepository().resolve("refs/heads/master"), Constants.OBJ_COMMIT); TagOperation top = new TagOperation(repository1.getRepository(), newTag, false); top.execute(new NullProgressMonitor()); assertFalse("Tags should not be empty", repository1.getRepository().getTags().isEmpty()); try {/*www . j a v a 2 s . co m*/ top.execute(null); fail("Expected Exception not thrown"); } catch (CoreException e) { // expected } top = new TagOperation(repository1.getRepository(), newTag, true); try { top.execute(null); fail("Expected Exception not thrown"); } catch (CoreException e) { // expected } Ref tagRef = repository1.getRepository().getTags().get("TheNewTag"); RevWalk walk = new RevWalk(repository1.getRepository()); RevTag tag = walk.parseTag(repository1.getRepository().resolve(tagRef.getName())); newTag.setMessage("Another message"); assertFalse("Messages should differ", tag.getFullMessage().equals(newTag.getMessage())); top.execute(null); tag = walk.parseTag(repository1.getRepository().resolve(tagRef.getName())); assertTrue("Messages be same", tag.getFullMessage().equals(newTag.getMessage())); }
From source file:org.eclipse.egit.ui.internal.components.RefContentProposal.java
License:Open Source License
public String getDescription() { if (objectId == null) return null; ObjectReader reader = db.newObjectReader(); try {/*from www . j a va 2 s . co m*/ final ObjectLoader loader = reader.open(objectId); final StringBuilder sb = new StringBuilder(); sb.append(refName); sb.append('\n'); sb.append(reader.abbreviate(objectId).name()); sb.append(" - "); //$NON-NLS-1$ switch (loader.getType()) { case Constants.OBJ_COMMIT: RevCommit c = new RevWalk(db).parseCommit(objectId); appendObjectSummary(sb, UIText.RefContentProposal_commit, c.getAuthorIdent(), c.getFullMessage()); break; case Constants.OBJ_TAG: RevWalk walk = new RevWalk(db); RevTag t = walk.parseTag(objectId); appendObjectSummary(sb, UIText.RefContentProposal_tag, t.getTaggerIdent(), t.getFullMessage()); break; case Constants.OBJ_TREE: sb.append(UIText.RefContentProposal_tree); break; case Constants.OBJ_BLOB: sb.append(UIText.RefContentProposal_blob); break; default: sb.append(UIText.RefContentProposal_unknownObject); } return sb.toString(); } catch (IOException e) { Activator.logError(NLS.bind(UIText.RefContentProposal_errorReadingObject, objectId), e); return null; } finally { reader.release(); } }
From source file:org.jboss.as.controller.persistence.AbstractGitPersistenceResourceTestCase.java
License:Apache License
private List<String> listTags(Git git) throws IOException, GitAPIException { List<String> tags = new ArrayList<>(); for (Ref tag : git.tagList().call()) { RevWalk revWalk = new RevWalk(git.getRepository()); revWalk.sort(RevSort.COMMIT_TIME_DESC, true); try {//from w w w . j a v a 2 s.com RevTag annotatedTag = revWalk.parseTag(tag.getObjectId()); tags.add(annotatedTag.getTagName() + " : " + annotatedTag.getFullMessage()); } catch (IncorrectObjectTypeException ex) { tags.add(tag.getName().substring("refs/tags/".length())); } } return tags; }