use of com.google.gerrit.entities.LabelType in project gerrit by GerritCodeReview.
the class PRED_get_legacy_label_types_1 method exec.
@Override
public Operation exec(Prolog engine) throws PrologException {
engine.setB0();
Term a1 = arg1.dereference();
List<LabelType> list = StoredValues.CHANGE_DATA.get(engine).getLabelTypes().getLabelTypes();
Term head = Prolog.Nil;
for (int idx = list.size() - 1; 0 <= idx; idx--) {
head = new ListTerm(export(list.get(idx)), head);
}
if (!a1.unify(head, engine.trail)) {
return engine.fail();
}
return cont;
}
use of com.google.gerrit.entities.LabelType in project gerrit by GerritCodeReview.
the class ChangeIT method removeReviewerNoVotes.
@Test
public void removeReviewerNoVotes() throws Exception {
LabelType verified = label(LabelId.VERIFIED, value(1, "Passes"), value(0, "No score"), value(-1, "Failed"));
try (ProjectConfigUpdate u = updateProject(project)) {
u.getConfig().upsertLabelType(verified);
u.save();
}
projectOperations.project(project).forUpdate().add(allowLabel(verified.getName()).ref(RefNames.REFS_HEADS + "*").group(REGISTERED_USERS).range(-1, 1)).update();
PushOneCommit.Result r = createChange();
String changeId = r.getChangeId();
gApi.changes().id(changeId).addReviewer(user.id().toString());
ChangeInfo c = gApi.changes().id(changeId).get(ListChangesOption.DETAILED_LABELS);
assertThat(getReviewers(c.reviewers.get(CC))).isEmpty();
assertThat(getReviewers(c.reviewers.get(REVIEWER))).containsExactly(user.id());
sender.clear();
gApi.changes().id(changeId).reviewer(user.id().toString()).remove();
assertThat(gApi.changes().id(changeId).get().reviewers).isEmpty();
assertThat(sender.getMessages()).hasSize(1);
Message message = sender.getMessages().get(0);
assertThat(message.body()).contains("Removed reviewer " + user.getNameEmail() + ".");
assertThat(message.body()).doesNotContain("with the following votes");
// Make sure the change message for removing a reviewer is correct.
assertThat(Iterables.getLast(gApi.changes().id(changeId).messages()).message).isEqualTo("Removed reviewer " + user.getNameEmail() + ".");
ChangeMessageInfo changeMessageInfo = Iterables.getLast(gApi.changes().id(changeId).get().messages);
assertThat(changeMessageInfo.message).isEqualTo("Removed reviewer " + AccountTemplateUtil.getAccountTemplate(user.id()) + ".");
assertThat(changeMessageInfo.accountsInMessage).containsExactly(getAccountInfo(user.id()));
// Make sure the reviewer can still be added again.
gApi.changes().id(changeId).addReviewer(user.id().toString());
c = gApi.changes().id(changeId).get();
assertThat(getReviewers(c.reviewers.get(CC))).isEmpty();
assertThat(getReviewers(c.reviewers.get(REVIEWER))).containsExactly(user.id());
// Remove again, and then try to remove once more to verify 404 is
// returned.
gApi.changes().id(changeId).reviewer(user.id().toString()).remove();
assertThrows(ResourceNotFoundException.class, () -> gApi.changes().id(changeId).reviewer(user.id().toString()).remove());
}
use of com.google.gerrit.entities.LabelType in project gerrit by GerritCodeReview.
the class ChangeIT method checkLabelVotesForMergedChange.
@Test
public void checkLabelVotesForMergedChange() throws Exception {
List<ListChangesOption> options = EnumSet.complementOf(EnumSet.of(ListChangesOption.CHECK, ListChangesOption.SKIP_DIFFSTAT, ListChangesOption.DETAILED_LABELS)).stream().collect(Collectors.toList());
PushOneCommit.Result r = createChange();
voteLabel(r.getChangeId(), LabelId.CODE_REVIEW, +2);
// Add another label for 'Verified'
LabelType verified = TestLabels.verified();
AccountGroup.UUID registeredUsers = systemGroupBackend.getGroup(REGISTERED_USERS).getUUID();
String heads = RefNames.REFS_HEADS + "*";
try (ProjectConfigUpdate u = updateProject(project)) {
u.getConfig().upsertLabelType(verified);
u.save();
}
projectOperations.project(project).forUpdate().add(allowLabel(verified.getName()).ref(heads).group(registeredUsers).range(-1, 1)).update();
// Submit the change
voteLabel(r.getChangeId(), TestLabels.verified().getName(), 1);
gApi.changes().id(r.getChangeId()).current().submit();
// Make sure label votes are available if DETAILED_LABELS is not requested.
ChangeInfo change = gApi.changes().id(r.getChangeId()).get(options);
assertThat(change.status).isEqualTo(ChangeStatus.MERGED);
assertThat(change.labels.keySet()).containsExactly(LabelId.CODE_REVIEW, TestLabels.verified().getName());
List<ApprovalInfo> codeReviewApprovals = change.labels.get(LabelId.CODE_REVIEW).all;
List<ApprovalInfo> verifiedApprovals = change.labels.get(TestLabels.verified().getName()).all;
assertThat(codeReviewApprovals).hasSize(1);
assertThat(codeReviewApprovals.get(0).value).isEqualTo(2);
assertThat(codeReviewApprovals.get(0).username).isEqualTo(admin.username());
assertThat(codeReviewApprovals.get(0).permittedVotingRange).isNull();
assertThat(verifiedApprovals).hasSize(1);
assertThat(verifiedApprovals.get(0).value).isEqualTo(1);
assertThat(verifiedApprovals.get(0).username).isEqualTo(admin.username());
assertThat(codeReviewApprovals.get(0).permittedVotingRange).isNull();
}
use of com.google.gerrit.entities.LabelType in project gerrit by GerritCodeReview.
the class ChangeIT method commitFooters.
@Test
public void commitFooters() throws Exception {
LabelType verified = label(LabelId.VERIFIED, value(1, "Passes"), value(0, "No score"), value(-1, "Failed"));
LabelType custom1 = label("Custom1", value(1, "Positive"), value(0, "No score"), value(-1, "Negative"));
LabelType custom2 = label("Custom2", value(1, "Positive"), value(0, "No score"), value(-1, "Negative"));
try (ProjectConfigUpdate u = updateProject(project)) {
u.getConfig().upsertLabelType(verified);
u.getConfig().upsertLabelType(custom1);
u.getConfig().upsertLabelType(custom2);
u.save();
}
projectOperations.project(project).forUpdate().add(allowLabel(verified.getName()).ref("refs/heads/*").group(ANONYMOUS_USERS).range(-1, 1)).add(allowLabel(custom1.getName()).ref("refs/heads/*").group(ANONYMOUS_USERS).range(-1, 1)).add(allowLabel(custom2.getName()).ref("refs/heads/*").group(ANONYMOUS_USERS).range(-1, 1)).update();
PushOneCommit.Result r1 = createChange();
r1.assertOkStatus();
PushOneCommit.Result r2 = pushFactory.create(admin.newIdent(), testRepo, SUBJECT, FILE_NAME, "new content", r1.getChangeId()).to("refs/for/master");
r2.assertOkStatus();
ReviewInput in = new ReviewInput();
in.label(LabelId.CODE_REVIEW, 1);
in.label(LabelId.VERIFIED, 1);
in.label("Custom1", -1);
in.label("Custom2", 1);
gApi.changes().id(r2.getChangeId()).current().review(in);
ChangeInfo actual = gApi.changes().id(r2.getChangeId()).get(ALL_REVISIONS, COMMIT_FOOTERS);
assertThat(actual.revisions).hasSize(2);
// No footers except on latest patch set.
assertThat(actual.revisions.get(r1.getCommit().getName()).commitWithFooters).isNull();
List<String> footers = new ArrayList<>(Arrays.asList(actual.revisions.get(r2.getCommit().getName()).commitWithFooters.split("\\n")));
// remove subject + blank line
footers.remove(0);
footers.remove(0);
List<String> expectedFooters = Arrays.asList("Change-Id: " + r2.getChangeId(), "Reviewed-on: " + canonicalWebUrl.get() + "c/" + project.get() + "/+/" + r2.getChange().getId(), "Reviewed-by: Administrator <admin@example.com>", "Custom2: Administrator <admin@example.com>", "Tested-by: Administrator <admin@example.com>");
assertThat(footers).containsExactlyElementsIn(expectedFooters);
}
use of com.google.gerrit.entities.LabelType in project gerrit by GerritCodeReview.
the class AbstractQueryChangesTest method byLabelMulti.
@Test
public void byLabelMulti() throws Exception {
TestRepository<Repo> repo = createProject("repo");
Project.NameKey project = Project.nameKey(repo.getRepository().getDescription().getRepositoryName());
LabelType verified = label(LabelId.VERIFIED, value(1, "Passes"), value(0, "No score"), value(-1, "Failed"));
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
ProjectConfig cfg = projectConfigFactory.create(project);
cfg.load(md);
cfg.upsertLabelType(verified);
cfg.commit(md);
}
projectCache.evictAndReindex(project);
String heads = RefNames.REFS_HEADS + "*";
projectOperations.project(project).forUpdate().add(allowLabel(verified.getName()).ref(heads).group(REGISTERED_USERS).range(-1, 1)).update();
ReviewInput reviewVerified = new ReviewInput().label(LabelId.VERIFIED, 1);
ChangeInserter ins = newChange(repo);
ChangeInserter ins2 = newChange(repo);
ChangeInserter ins3 = newChange(repo);
ChangeInserter ins4 = newChange(repo);
ChangeInserter ins5 = newChange(repo);
// CR+1
Change reviewCRplus1 = insert(repo, ins);
gApi.changes().id(reviewCRplus1.getId().get()).current().review(ReviewInput.recommend());
// CR+2
Change reviewCRplus2 = insert(repo, ins2);
gApi.changes().id(reviewCRplus2.getId().get()).current().review(ReviewInput.approve());
// CR+1 VR+1
Change reviewCRplus1VRplus1 = insert(repo, ins3);
gApi.changes().id(reviewCRplus1VRplus1.getId().get()).current().review(ReviewInput.recommend());
gApi.changes().id(reviewCRplus1VRplus1.getId().get()).current().review(reviewVerified);
// CR+2 VR+1
Change reviewCRplus2VRplus1 = insert(repo, ins4);
gApi.changes().id(reviewCRplus2VRplus1.getId().get()).current().review(ReviewInput.approve());
gApi.changes().id(reviewCRplus2VRplus1.getId().get()).current().review(reviewVerified);
// VR+1
Change reviewVRplus1 = insert(repo, ins5);
gApi.changes().id(reviewVRplus1.getId().get()).current().review(reviewVerified);
assertQuery("label:Code-Review=+1", reviewCRplus1VRplus1, reviewCRplus1);
assertQuery("label:Code-Review>=+1", reviewCRplus2VRplus1, reviewCRplus1VRplus1, reviewCRplus2, reviewCRplus1);
assertQuery("label:Code-Review>=+2", reviewCRplus2VRplus1, reviewCRplus2);
assertQuery("label:Code-Review>=+1 label:Verified=+1", reviewCRplus2VRplus1, reviewCRplus1VRplus1);
assertQuery("label:Code-Review>=+2 label:Verified=+1", reviewCRplus2VRplus1);
}
Aggregations