A vibe coded tangled fork which supports pijul.
1import type {
2 RepositoryCardData,
3 IssueCardData,
4 PullRequestCardData,
5} from "../validation";
6
7const LONG_TITLE =
8 "fix critical memory leak in WebSocket connection handler that causes server crashes under high load conditions in production environments";
9
10export const createRepoData = (avatarUrl: string): RepositoryCardData => ({
11 type: "repository",
12 repoName: "core",
13 ownerHandle: "tangled.org",
14 stars: 746,
15 pulls: 82,
16 issues: 176,
17 createdAt: "2026-01-29T00:00:00Z",
18 avatarUrl,
19 languages: [
20 { color: "#00ADD8", percentage: 50 },
21 { color: "#e34c26", percentage: 30 },
22 { color: "#7e7eff", percentage: 10 },
23 { color: "#663399", percentage: 5 },
24 { color: "#f1e05a", percentage: 5 },
25 ],
26});
27
28export const createIssueData = (
29 avatarUrl: string,
30 overrides?: Partial<IssueCardData>,
31): IssueCardData => ({
32 type: "issue",
33 repoName: "core",
34 ownerHandle: "tangled.org",
35 avatarUrl,
36 title: "feature request: sync fork button",
37 issueNumber: 8,
38 status: "open",
39 labels: [
40 { name: "feature", color: "#4639d6" },
41 { name: "help-wanted", color: "#008672" },
42 { name: "enhancement", color: "#0052cc" },
43 ],
44 commentCount: 12,
45 reactionCount: 5,
46 createdAt: "2026-01-29T00:00:00Z",
47 ...overrides,
48});
49
50export const createPullRequestData = (
51 avatarUrl: string,
52 overrides?: Partial<PullRequestCardData>,
53): PullRequestCardData => ({
54 type: "pullRequest",
55 repoName: "core",
56 ownerHandle: "tangled.org",
57 avatarUrl,
58 title: "add author description to README.md",
59 pullRequestNumber: 1,
60 status: "open",
61 filesChanged: 2,
62 additions: 116,
63 deletions: 59,
64 rounds: 3,
65 commentCount: 12,
66 reactionCount: 31,
67 createdAt: "2026-01-29T00:00:00Z",
68 ...overrides,
69});
70
71export const createLongTitleIssueData = (
72 avatarUrl: string,
73 overrides?: Partial<IssueCardData>,
74): IssueCardData => ({
75 ...createIssueData(avatarUrl),
76 title: LONG_TITLE,
77 ...overrides,
78});
79
80export const createLongTitlePullRequestData = (
81 avatarUrl: string,
82 overrides?: Partial<PullRequestCardData>,
83): PullRequestCardData => ({
84 ...createPullRequestData(avatarUrl),
85 title: LONG_TITLE,
86 ...overrides,
87});