Skip to content

Commit 6236216

Browse files
Merge pull request #786 from zenml-io/staging
Release
2 parents 5d0a35c + d3d8c20 commit 6236216

File tree

48 files changed

+1059
-398
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1059
-398
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@
8888
"overrides": {
8989
"@babel/helpers": "^7.26.10",
9090
"@babel/runtime": "^7.26.10",
91+
"brace-expansion@1": "1.1.12",
92+
"brace-expansion@2": "2.0.2",
9193
"braces": "^3.0.3",
9294
"cross-spawn": "^7.0.5",
9395
"micromatch": "^4.0.8",

pnpm-lock.yaml

Lines changed: 10 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/check-links.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { exit } from "process";
33

44
const allowedStatuses = [401, 403, 405];
55

6-
const ignoreList = [];
6+
const ignoreList = ["https://zenml.io/logo.png"];
77

88
const headers = new Headers({
99
"User-Agent": "ZenMLURLBot/1.0 (+http://zenml.io/bot)"

src/app/components/columns.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { snakeCaseToTitleCase } from "@/lib/strings";
77
import { sanitizeUrl } from "@/lib/url";
88
import { StackComponent } from "@/types/components";
99
import { ColumnDef } from "@tanstack/react-table";
10+
import { Checkbox } from "@zenml-io/react-component-library/components/client";
1011
import { Tag } from "@zenml-io/react-component-library/components/server";
1112
import { ComponentDropdown } from "./component-dropdown";
12-
import { Checkbox } from "@zenml-io/react-component-library/components/client";
1313

1414
export function getComponentList(): ColumnDef<StackComponent>[] {
1515
return [
@@ -114,9 +114,15 @@ export function getComponentList(): ColumnDef<StackComponent>[] {
114114
header: "Author",
115115
accessorFn: (row) => row.resources?.user?.name,
116116
cell: ({ row }) => {
117-
const author = row.original.resources?.user?.name;
117+
const author = row.original.resources?.user;
118118
if (!author) return null;
119-
return <InlineAvatar username={author} />;
119+
return (
120+
<InlineAvatar
121+
avatarUrl={author.body?.avatar_url ?? undefined}
122+
username={author.name}
123+
isServiceAccount={!!author.body?.is_service_account}
124+
/>
125+
);
120126
}
121127
},
122128
{

src/app/overview/pipelines-grid/pipeline-sheet.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ export function GithubPipelineSheet({
3737
pipelineContent,
3838
open,
3939
name,
40-
displayName
40+
displayName,
41+
isDone
4142
}: PropsWithChildren<Props>) {
4243
return (
4344
<Sheet open={open} onOpenChange={onOpenChange}>
@@ -47,7 +48,7 @@ export function GithubPipelineSheet({
4748
<SecondaryHeader
4849
displayName={displayName}
4950
pipelineContent={pipelineContent}
50-
isDone={false}
51+
isDone={isDone}
5152
name={name}
5253
/>
5354
<div className="p-5">

src/app/overview/welcome.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { useCurrentUser } from "@/data/users/current-user-query";
2+
import { sanitizeUrl } from "@/lib/url";
23
import { getUsername } from "@/lib/user";
3-
import { Avatar, AvatarFallback, Skeleton } from "@zenml-io/react-component-library/components";
4+
import {
5+
Avatar,
6+
AvatarFallback,
7+
AvatarImage,
8+
Skeleton
9+
} from "@zenml-io/react-component-library/components";
410

511
export function Welcome() {
612
const userQuery = useCurrentUser();
@@ -23,6 +29,7 @@ export function Welcome() {
2329
return (
2430
<div className="flex items-center gap-3">
2531
<Avatar size="xl">
32+
<AvatarImage src={sanitizeUrl(userQuery.data?.body?.avatar_url ?? undefined)} />
2633
<AvatarFallback size="xl">{name?.charAt(0) || "U"}</AvatarFallback>
2734
</Avatar>
2835
<span className="text-display-xs font-semibold">Welcome back{name ? `, ${name}` : ""}</span>

src/app/pipelines/[namespace]/columns.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,13 @@ export function getPipelineDetailColumns(): ColumnDef<PipelineRun>[] {
155155
accessorFn: (row) => ({ author: row.resources?.user }),
156156
cell: ({ getValue }) => {
157157
const { author } = getValue<{ author: User }>();
158-
return <InlineAvatar username={author.name} />;
158+
return (
159+
<InlineAvatar
160+
avatarUrl={author.body?.avatar_url ?? undefined}
161+
username={author.name}
162+
isServiceAccount={!!author.body?.is_service_account}
163+
/>
164+
);
159165
}
160166
},
161167
{

src/app/runs/[id]/Dag.tsx

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ import AlertCircle from "@/assets/icons/alert-circle.svg?react";
22
import { ArtifactNode } from "@/components/dag-visualizer/ArtifactNode";
33
import { DagControls } from "@/components/dag-visualizer/Controls";
44
import { ElkEdge } from "@/components/dag-visualizer/elk-edge";
5+
import { GlobalSheets } from "@/components/dag-visualizer/global-sheets";
56
import { PreviewArtifactNode } from "@/components/dag-visualizer/PreviewArtifact";
67
import { PreviewStepNode } from "@/components/dag-visualizer/PreviewStep";
8+
import { SheetProvider } from "@/components/dag-visualizer/sheet-context";
79
import { StepNode } from "@/components/dag-visualizer/StepNode";
810
import { EmptyState } from "@/components/EmptyState";
911
import { Spinner } from "@zenml-io/react-component-library/components/server";
@@ -58,33 +60,36 @@ export function DAG() {
5860
);
5961

6062
return (
61-
<ReactFlow
62-
minZoom={-2}
63-
connectOnClick={false}
64-
nodesDraggable={false}
65-
nodesConnectable={false}
66-
edgeTypes={customEdge}
67-
nodeTypes={customNodes}
68-
nodes={nodes}
69-
edges={edges}
70-
edgesFocusable={false}
71-
onlyRenderVisibleElements
72-
multiSelectionKeyCode={null}
73-
onNodesChange={onNodesChange}
74-
onEdgesChange={onEdgesChange}
75-
fitView
76-
fitViewOptions={
77-
shouldFitView
78-
? undefined
79-
: topMostNode
80-
? {
81-
nodes: [topMostNode],
82-
maxZoom: 1.2
83-
}
84-
: undefined
85-
}
86-
>
87-
<DagControls refetch={handleRefetch} />
88-
</ReactFlow>
63+
<SheetProvider>
64+
<ReactFlow
65+
minZoom={-2}
66+
connectOnClick={false}
67+
nodesDraggable={false}
68+
nodesConnectable={false}
69+
edgeTypes={customEdge}
70+
nodeTypes={customNodes}
71+
nodes={nodes}
72+
edges={edges}
73+
edgesFocusable={false}
74+
onlyRenderVisibleElements
75+
multiSelectionKeyCode={null}
76+
onNodesChange={onNodesChange}
77+
onEdgesChange={onEdgesChange}
78+
fitView
79+
fitViewOptions={
80+
shouldFitView
81+
? undefined
82+
: topMostNode
83+
? {
84+
nodes: [topMostNode],
85+
maxZoom: 1.2
86+
}
87+
: undefined
88+
}
89+
>
90+
<DagControls refetch={handleRefetch} />
91+
</ReactFlow>
92+
<GlobalSheets />
93+
</SheetProvider>
8994
);
9095
}

src/app/runs/[id]/_Tabs/Overview/Details.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,11 @@ export function Details() {
156156
<Key>Author</Key>
157157
<Value>
158158
<div className="inline-flex items-center gap-1">
159-
<InlineAvatar username={data.resources?.user?.name || ""} />
159+
<InlineAvatar
160+
avatarUrl={data.resources?.user?.body?.avatar_url ?? undefined}
161+
username={data.resources?.user?.name ?? "Unknown"}
162+
isServiceAccount={!!data.resources?.user?.body?.is_service_account}
163+
/>
160164
</div>
161165
</Value>
162166
<Key>Start Time</Key>

src/app/runs/columns.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -153,14 +153,17 @@ export const runsColumns: ColumnDef<PipelineRun>[] = [
153153
accessorFn: (row) => ({
154154
name: row.resources?.user?.name
155155
}),
156-
cell: ({ getValue }) => {
157-
const { name } = getValue<{
158-
name?: string;
159-
}>();
160-
161-
if (!name) return null;
156+
cell: ({ row }) => {
157+
const author = row.original.resources?.user;
158+
if (!author) return null;
162159

163-
return <InlineAvatar username={name} />;
160+
return (
161+
<InlineAvatar
162+
avatarUrl={author.body?.avatar_url ?? undefined}
163+
username={author.name}
164+
isServiceAccount={!!author.body?.is_service_account}
165+
/>
166+
);
164167
}
165168
},
166169
{

0 commit comments

Comments
 (0)