ce82e2a4ab
Co-authored-by: Kandev Agent <agent@kandev.dev>
55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import type { AzureDevOpsTaskPullRequest } from "@/lib/types/azure-devops";
|
|
|
|
export type AzureDevOpsPullRequestPresentation = {
|
|
provider: "azure_devops";
|
|
labelKey: string;
|
|
tone: "success" | "danger" | "warning" | "muted" | "info";
|
|
};
|
|
|
|
export function getAzureDevOpsPullRequestPresentation(
|
|
pullRequest: AzureDevOpsTaskPullRequest,
|
|
): AzureDevOpsPullRequestPresentation {
|
|
const status = pullRequest.status.toLowerCase();
|
|
if (status === "completed") {
|
|
return { provider: "azure_devops", labelKey: "azuredevops:prStatusCompleted", tone: "success" };
|
|
}
|
|
if (status === "abandoned") {
|
|
return { provider: "azure_devops", labelKey: "azuredevops:prStatusAbandoned", tone: "muted" };
|
|
}
|
|
if (pullRequest.policyState === "failure") {
|
|
return {
|
|
provider: "azure_devops",
|
|
labelKey: "azuredevops:prStatusPolicyFailed",
|
|
tone: "danger",
|
|
};
|
|
}
|
|
if (pullRequest.reviewState === "rejected") {
|
|
return {
|
|
provider: "azure_devops",
|
|
labelKey: "azuredevops:prStatusChangesRequested",
|
|
tone: "danger",
|
|
};
|
|
}
|
|
if (pullRequest.isDraft) {
|
|
return { provider: "azure_devops", labelKey: "azuredevops:prStatusDraft", tone: "muted" };
|
|
}
|
|
if (pullRequest.policyState === "pending") {
|
|
return {
|
|
provider: "azure_devops",
|
|
labelKey: "azuredevops:prStatusPolicyRunning",
|
|
tone: "warning",
|
|
};
|
|
}
|
|
if (pullRequest.reviewState === "waiting") {
|
|
return {
|
|
provider: "azure_devops",
|
|
labelKey: "azuredevops:prStatusWaitingForReview",
|
|
tone: "warning",
|
|
};
|
|
}
|
|
if (pullRequest.reviewState === "approved" && pullRequest.policyState === "success") {
|
|
return { provider: "azure_devops", labelKey: "azuredevops:prStatusReady", tone: "success" };
|
|
}
|
|
return { provider: "azure_devops", labelKey: "azuredevops:prStatusActive", tone: "info" };
|
|
}
|