Fix issue #724 - Build query "Status" is "Timed Out" is not recognised

This commit is contained in:
Robin Shen 2022-05-14 09:24:35 +08:00
parent 4c35236019
commit c0c0a2fb6b
2 changed files with 15 additions and 6 deletions

View File

@ -233,6 +233,15 @@ public class Build extends AbstractEntity implements Referenceable {
return WordUtils.toWords(name());
}
@Nullable
public static Status of(String statusName) {
for (Status status: Status.values()) {
if (status.toString().toLowerCase().equals(statusName.toLowerCase()))
return status;
}
return null;
}
@Nullable
public static Status getOverallStatus(Collection<Status> statuses) {
for (Status status: Status.values()) {

View File

@ -1,15 +1,15 @@
package io.onedev.server.search.entity.build;
import static io.onedev.server.model.AbstractEntity.NAME_NUMBER;
import static io.onedev.server.model.Build.NAME_BRANCH;
import static io.onedev.server.model.Build.NAME_STATUS;
import static io.onedev.server.model.Build.NAME_COMMIT;
import static io.onedev.server.model.Build.NAME_FINISH_DATE;
import static io.onedev.server.model.Build.NAME_JOB;
import static io.onedev.server.model.Build.NAME_NUMBER;
import static io.onedev.server.model.Build.NAME_PENDING_DATE;
import static io.onedev.server.model.Build.NAME_PROJECT;
import static io.onedev.server.model.Build.NAME_PULL_REQUEST;
import static io.onedev.server.model.Build.NAME_RUNNING_DATE;
import static io.onedev.server.model.Build.NAME_STATUS;
import static io.onedev.server.model.Build.NAME_SUBMIT_DATE;
import static io.onedev.server.model.Build.NAME_TAG;
import static io.onedev.server.model.Build.NAME_VERSION;
@ -206,11 +206,11 @@ public class BuildQuery extends EntityQuery<Build> {
case NAME_PROJECT:
return new ProjectCriteria(value);
case NAME_STATUS:
try {
return new StatusCriteria(Build.Status.valueOf(value.toUpperCase()));
} catch (IllegalArgumentException e) {
Build.Status status = Build.Status.of(value);
if (status != null)
return new StatusCriteria(status);
else
throw new ExplicitException("Invalid status: " + value);
}
case NAME_COMMIT:
ProjectScopedCommit commitId = getCommitId(project, value);
return new CommitCriteria(commitId.getProject(), commitId.getCommitId());