Normalize labels when creating note Change-Id: I8806e36ac98e005af79900bef07f1c3e5c0d7b5b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java index 8f5aa59..976a5b1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java
@@ -48,9 +48,10 @@ import com.google.gerrit.server.account.AccountCache; import com.google.gerrit.server.config.AnonymousCowardName; import com.google.gerrit.server.config.CanonicalWebUrl; +import com.google.gerrit.server.git.LabelNormalizer; import com.google.gerrit.server.git.NotesBranchUtil; +import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gwtorm.server.OrmException; -import com.google.gwtorm.server.ResultSet; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; @@ -70,6 +71,7 @@ private final AccountCache accountCache; private final String anonymousCowardName; private final LabelTypes labelTypes; + private final LabelNormalizer labelNormalizer; private final NotesBranchUtil.Factory notesBranchUtilFactory; private final String canonicalWebUrl; private final ReviewDb reviewDb; @@ -85,6 +87,7 @@ final AccountCache accountCache, final @AnonymousCowardName String anonymousCowardName, final LabelTypes labelTypes, + final LabelNormalizer labelNormalizer, final NotesBranchUtil.Factory notesBranchUtilFactory, final @Nullable @CanonicalWebUrl String canonicalWebUrl, final @Assisted ReviewDb reviewDb, @@ -94,6 +97,7 @@ this.accountCache = accountCache; this.anonymousCowardName = anonymousCowardName; this.labelTypes = labelTypes; + this.labelNormalizer = labelNormalizer; this.notesBranchUtilFactory = notesBranchUtilFactory; this.canonicalWebUrl = canonicalWebUrl; this.reviewDb = reviewDb; @@ -118,7 +122,7 @@ try { for (RevCommit c : rw) { - ObjectId content = createNoteContent(branch, c); + ObjectId content = createNoteContent(c); if (content != null) { monitor.update(1); getNotes().set(c, content); @@ -143,8 +147,7 @@ monitor.update(1); PatchSet ps = reviewDb.patchSets().get(c.currentPatchSetId()); ObjectId commitId = ObjectId.fromString(ps.getRevision().get()); - notes.set(commitId, - createNoteContent(c.getDest().get(), rw.parseCommit(commitId))); + notes.set(commitId, createNoteContent(rw.parseCommit(commitId))); } } finally { rw.release(); @@ -192,7 +195,7 @@ } } - private ObjectId createNoteContent(String branch, RevCommit c) + private ObjectId createNoteContent(RevCommit c) throws OrmException, IOException { List<PatchSet> patches = reviewDb.patchSets().byRevision(new RevId(c.name())) .toList(); @@ -201,7 +204,11 @@ if (patches.isEmpty()) { return null; // TODO: createNoCodeReviewNote(branch, c, fmt); } else if (patches.size() == 1) { - createCodeReviewNote(branch, patches.get(0), fmt); + try { + createCodeReviewNote(patches.get(0), fmt); + } catch (NoSuchChangeException e) { + throw new IOException(e); + } } else { log.error("Cannot create review note:" + " more than one patch set found for the commit " + c.name()); @@ -210,10 +217,16 @@ return getInseter().insert(Constants.OBJ_BLOB, fmt.toString().getBytes("UTF-8")); } - private void createCodeReviewNote(String branch, PatchSet ps, - HeaderFormatter fmt) throws OrmException { - ResultSet<PatchSetApproval> approvals = - reviewDb.patchSetApprovals().byPatchSet(ps.getId()); + private void createCodeReviewNote(PatchSet ps, HeaderFormatter fmt) + throws OrmException, NoSuchChangeException { + createCodeReviewNote( + reviewDb.changes().get(ps.getId().getParentKey()), ps, fmt); + } + + private void createCodeReviewNote(Change change, PatchSet ps, + HeaderFormatter fmt) throws OrmException, NoSuchChangeException { + List<PatchSetApproval> approvals = labelNormalizer.normalize( + change, reviewDb.patchSetApprovals().byPatchSet(ps.getId()).toList()); PatchSetApproval submit = null; for (PatchSetApproval a : approvals) { if (a.getValue() == 0) { @@ -236,7 +249,7 @@ fmt.appendReviewedOn(canonicalWebUrl, ps.getId().getParentKey()); } fmt.appendProject(project.get()); - fmt.appendBranch(branch); + fmt.appendBranch(change.getDest().get()); } private ObjectInserter getInseter() {