Files
wehub-resource-sync d68f003000
CI / Change detection (push) Has been cancelled
CI / Version drift (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Workflow RLM cache (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / npm wrapper smoke (push) Has been cancelled
CI / Mobile runtime smoke (push) Has been cancelled
CI / Workflow lint (push) Has been cancelled
CI / Documentation (push) Has been cancelled
Web Frontend / Lint & Type Check (push) Failing after 1s
Auto-close harvested PRs / close (push) Failing after 1s
cargo-deny / cargo-deny (bans licenses sources) (push) Failing after 1s
Security audit / cargo-audit (push) Failing after 1s
Sync to CNB / sync (push) Failing after 1s
cargo-deny / cargo-deny (advisories) (push) Failing after 3s
Web Frontend / Deploy to Cloudflare (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:08:23 +08:00

41 lines
1.2 KiB
TypeScript

export type FeedKind = "issue" | "pull" | "release" | "discussion";
export interface FeedItem {
kind: FeedKind;
number: number;
title: string;
url: string;
state: "open" | "closed" | "merged" | "draft" | "published";
author: string;
authorAvatar: string;
createdAt: string; // ISO
updatedAt: string; // ISO
comments: number;
labels: { name: string; color: string }[];
body?: string;
}
export interface RepoStats {
stars: number;
forks: number;
openIssues: number;
openPulls: number;
contributors: number;
latestRelease?: { tag: string; publishedAt: string; url: string };
fetchedAt: string;
}
export interface CuratedDispatch {
generatedAt: string;
/** English — always present (backward compat). */
headline: string;
summary: string;
highlights: { title: string; href: string; tag: string; blurb: string }[];
movers: { number: number; title: string; href: string; reason: string }[];
/** zh-CN — populated by cron curate since ~May 2026. Falls back to English fields when absent. */
headlineZh?: string;
summaryZh?: string;
highlightsZh?: { title: string; href: string; tag: string; blurb: string }[];
moversZh?: { number: number; title: string; href: string; reason: string }[];
}