Merge branch 'stable-3.0' into stable-3.1
* stable-3.0: (25 commits)
Apply gjf
Apply gjf
create getInternalProperties() method
create a Properties.RecursiveExpander
move Field expansion to the Expander
create a Properties.Expander
Handle invalid task roots gracefully
task: Rewrite method to make it look less buggy
fixup! Support exporting properties to task json
Add TaskTree definitions more directly
Rename TaskTree.Node.definition to task
Fix to apply task properties to names-factory fields
Add change task properties
Fix major sonar issue related to rule "squid : S1132"
Display task counts next to each header
Stop double adding Gerrit-ApiVersion
Task plugin: Track ChangeData in TaskTree
Store properties at the TaskTree.NodeList level
Always wait for subtasks unless already failed
Revert "Revert "plugin:task Adds support for names-factory of type change""
...
Change-Id: I998a53b7e8acf42b2ce57b8ae6b4ff1f59746c3f
diff --git a/.bazelversion b/.bazelversion
index 7c69a55..fcdb2e1 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-3.7.0
+4.0.0
diff --git a/WORKSPACE b/WORKSPACE
index c047530..4bbfd4c 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "a88174652e6f853ead5bbc5dacc1030dbb2d50c3",
+ commit = "321fab31e6fbb63c940aad3252f0167f88d52e2e",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/gr-task-plugin/gr-task-plugin.html b/gr-task-plugin/gr-task-plugin.html
index 4a5e5c5..ea59b9f 100644
--- a/gr-task-plugin/gr-task-plugin.html
+++ b/gr-task-plugin/gr-task-plugin.html
@@ -17,7 +17,10 @@
<dom-module id="gr-task-plugin">
<template>
<style>
- ul { padding-left: 0.5em; }
+ ul {
+ padding-left: 0.5em;
+ margin-top: 0;
+ }
h3 { padding-left: 0.1em; }
.cursor { cursor: pointer; }
#tasks_header {
@@ -32,6 +35,7 @@
cursor: pointer;
text-decoration: underline;
}
+ .no-margins { margin: 0 0 0 0; }
</style>
<div id="tasks" hidden$="[[!_tasks.length]]">
@@ -47,16 +51,16 @@
on-tap="_switch_expand"
class="cursor"> </iron-icon>
<div style="display: flex; align-items: center; column-gap: 1em;">
- <h3 on-tap="_switch_expand" class="cursor"> Tasks </h3>
+ <h3 class="no-margins" on-tap="_switch_expand" class="cursor"> Tasks </h3>
<template is="dom-if" if="[[_is_show_all(_show_all)]]">
- <p>All ([[_all_count]]) |
+ <p class="no-margins">All ([[_all_count]]) |
<span
on-click="_needs_and_blocked_tap"
class="links">Needs ([[_ready_count]]) + Blocked ([[_fail_count]])</span>
<p>
</template>
<template is="dom-if" if="[[!_is_show_all(_show_all)]]">
- <p> <span
+ <p class="no-margins"> <span
class="links"
on-click="_show_all_tap">All ([[_all_count]])</span>
| Needs ([[_ready_count]]) + Blocked ([[_fail_count]])</p>
diff --git a/src/main/java/com/google/gerrit/server/git/meta/AbstractVersionedMetaData.java b/src/main/java/com/google/gerrit/server/git/meta/AbstractVersionedMetaData.java
index e5c1809..7997a05 100644
--- a/src/main/java/com/google/gerrit/server/git/meta/AbstractVersionedMetaData.java
+++ b/src/main/java/com/google/gerrit/server/git/meta/AbstractVersionedMetaData.java
@@ -14,7 +14,7 @@
package com.google.gerrit.server.git.meta;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.entities.BranchNameKey;
import java.io.IOException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.CommitBuilder;
@@ -22,18 +22,18 @@
/** Versioned Configuration file living in git */
public class AbstractVersionedMetaData extends VersionedMetaData {
- protected final Branch.NameKey branch;
+ protected final BranchNameKey branch;
protected final String fileName;
protected Config cfg;
- public AbstractVersionedMetaData(Branch.NameKey branch, String fileName) {
+ public AbstractVersionedMetaData(BranchNameKey branch, String fileName) {
this.branch = branch;
this.fileName = fileName;
}
@Override
protected String getRefName() {
- return branch.get();
+ return branch.branch();
}
protected String getFileName() {
@@ -52,7 +52,7 @@
return cfg;
}
- public Branch.NameKey getBranch() {
+ public BranchNameKey getBranch() {
return branch;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java b/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
index b2ce1b9..b8bf285 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
@@ -15,8 +15,8 @@
package com.googlesource.gerrit.plugins.task;
import com.google.common.collect.Sets;
+import com.google.gerrit.entities.Change;
import com.google.gerrit.exceptions.StorageException;
-import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.query.change.ChangeData;
import com.googlesource.gerrit.plugins.task.TaskConfig.NamesFactory;
import com.googlesource.gerrit.plugins.task.TaskConfig.Task;
@@ -64,7 +64,7 @@
properties.put("_change_number", String.valueOf(c.getId().get()));
properties.put("_change_id", c.getKey().get());
properties.put("_change_project", c.getProject().get());
- properties.put("_change_branch", c.getDest().get());
+ properties.put("_change_branch", c.getDest().branch());
properties.put("_change_status", c.getStatus().toString());
properties.put("_change_topic", c.getTopic());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
index d9e8c4b..77adee2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -15,7 +15,7 @@
package com.googlesource.gerrit.plugins.task;
import com.google.gerrit.common.Container;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.entities.BranchNameKey;
import com.google.gerrit.server.git.meta.AbstractVersionedMetaData;
import java.lang.reflect.Field;
import java.util.ArrayList;
@@ -184,7 +184,7 @@
return task;
}
- public TaskConfig(Branch.NameKey branch, String fileName, boolean isVisible, boolean isTrusted) {
+ public TaskConfig(BranchNameKey branch, String fileName, boolean isVisible, boolean isTrusted) {
super(branch, fileName);
this.isVisible = isVisible;
this.isTrusted = isTrusted;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfigFactory.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfigFactory.java
index d5003b4..f790ccc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfigFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfigFactory.java
@@ -15,9 +15,9 @@
package com.googlesource.gerrit.plugins.task;
import com.google.common.flogger.FluentLogger;
+import com.google.gerrit.entities.BranchNameKey;
+import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.reviewdb.client.Branch;
-import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.config.AllProjectsName;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -44,7 +44,7 @@
protected final CurrentUser user;
protected final AllProjectsName allProjects;
- protected final Map<Branch.NameKey, PatchSetArgument> psaMasquerades = new HashMap<>();
+ protected final Map<BranchNameKey, PatchSetArgument> psaMasquerades = new HashMap<>();
@Inject
protected TaskConfigFactory(
@@ -66,11 +66,11 @@
psaMasquerades.put(psa.change.getDest(), psa);
}
- protected Branch.NameKey getRootBranch() {
- return new Branch.NameKey(allProjects, "refs/meta/config");
+ protected BranchNameKey getRootBranch() {
+ return BranchNameKey.create(allProjects, "refs/meta/config");
}
- public TaskConfig getTaskConfig(Branch.NameKey branch, String fileName, boolean isTrusted)
+ public TaskConfig getTaskConfig(BranchNameKey branch, String fileName, boolean isTrusted)
throws ConfigInvalidException, IOException {
PatchSetArgument psa = psaMasquerades.get(branch);
boolean visible = true; // invisible psas are filtered out by commandline
@@ -78,10 +78,10 @@
visible = canRead(branch);
} else {
isTrusted = false;
- branch = new Branch.NameKey(psa.change.getProject(), psa.patchSet.getId().toRefName());
+ branch = BranchNameKey.create(psa.change.getProject(), psa.patchSet.refName());
}
- Project.NameKey project = branch.getParentKey();
+ Project.NameKey project = branch.project();
TaskConfig cfg = new TaskConfig(branch, fileName, visible, isTrusted);
try (Repository git = gitMgr.openRepository(project)) {
cfg.load(project, git);
@@ -94,11 +94,11 @@
return cfg;
}
- public boolean canRead(Branch.NameKey branch) {
+ public boolean canRead(BranchNameKey branch) {
try {
PermissionBackend.ForProject permissions =
- permissionBackend.user(user).project(branch.getParentKey());
- permissions.ref(branch.get()).check(RefPermission.READ);
+ permissionBackend.user(user).project(branch.project());
+ permissions.ref(branch.branch()).check(RefPermission.READ);
return true;
} catch (AuthException | PermissionBackendException e) {
return false;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
index 0c93708..461d14e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
@@ -15,12 +15,12 @@
package com.googlesource.gerrit.plugins.task;
import com.google.common.flogger.FluentLogger;
+import com.google.gerrit.entities.Account;
+import com.google.gerrit.entities.BranchNameKey;
+import com.google.gerrit.entities.RefNames;
import com.google.gerrit.exceptions.StorageException;
import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
import com.google.gerrit.index.query.QueryParseException;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Branch;
-import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.AnonymousUser;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.account.AccountResolver;
@@ -263,7 +263,7 @@
return getTaskDefinitions(resolveUserBranch(external.user), external.file);
}
- protected List<Task> getTaskDefinitions(Branch.NameKey branch, String file)
+ protected List<Task> getTaskDefinitions(BranchNameKey branch, String file)
throws ConfigInvalidException, IOException {
return taskFactory
.getTaskConfig(branch, resolveTaskFileName(file), task.isTrusted)
@@ -281,18 +281,18 @@
return p.toString();
}
- protected Branch.NameKey resolveUserBranch(String user)
+ protected BranchNameKey resolveUserBranch(String user)
throws ConfigInvalidException, IOException, StorageException {
if (user == null) {
throw new ConfigInvalidException("External user not defined");
}
Account.Id acct;
try {
- acct = accountResolver.resolve(user).asUnique().getAccount().getId();
+ acct = accountResolver.resolve(user).asUnique().account().id();
} catch (UnprocessableEntityException e) {
throw new ConfigInvalidException("Cannot resolve user: " + user);
}
- return new Branch.NameKey(allUsers.get(), RefNames.refsUsers(acct));
+ return BranchNameKey.create(allUsers.get(), RefNames.refsUsers(acct));
}
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/cli/PatchSetArgument.java b/src/main/java/com/googlesource/gerrit/plugins/task/cli/PatchSetArgument.java
index 9fbddeb..e0e2317 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/cli/PatchSetArgument.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/cli/PatchSetArgument.java
@@ -13,10 +13,10 @@
// limitations under the License.
package com.googlesource.gerrit.plugins.task.cli;
+import com.google.gerrit.entities.Change;
+import com.google.gerrit.entities.PatchSet;
import com.google.gerrit.exceptions.StorageException;
import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.notedb.ChangeNotes;
@@ -48,7 +48,7 @@
public PatchSetArgument createForArgument(String token) {
try {
PatchSet.Id patchSetId = parsePatchSet(token);
- ChangeNotes changeNotes = notesFactory.createChecked(patchSetId.getParentKey());
+ ChangeNotes changeNotes = notesFactory.createChecked(patchSetId.changeId());
permissionBackend.user(user).change(changeNotes).check(ChangePermission.READ);
return new PatchSetArgument(changeNotes.getChange(), psUtil.get(changeNotes, patchSetId));
} catch (PermissionBackendException | AuthException e) {
@@ -90,7 +90,7 @@
}
public void ensureLatest() {
- if (!change.currentPatchSetId().equals(patchSet.getId())) {
+ if (!change.currentPatchSetId().equals(patchSet.id())) {
throw new IllegalArgumentException(patchSet + " is not the latest patch set");
}
}
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index b9d1715..94c40ff 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.0.16-ubuntu18
+FROM gerritcodereview/gerrit:3.1.15-ubuntu18
USER root