🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

GitHub 趋势日报 morehao/dsh-github-trending

DeepSeek Harness
morehao1 天前有提交已提供中文文档扫描:含敏感能力

定时抓取趋势榜并生成中文日报,自动提交仓库开 PR

31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add morehao/dsh-github-trending
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 50 处,展示前 49 条)
  • 发起网络请求
    client/api.ts:40
    const response = await fetch(`${API}${path}`, {
  • 写入剪贴板
    client/settings.ts:355
    void navigator.clipboard?.writeText(redacted).then(() => notify('ok', t('settings.copied')));
  • 写入剪贴板
    client/ui.ts:228
    await navigator.clipboard.writeText(value);
  • 执行外部命令固定命令
    src/core/channel.ts:42
    const child = spawn('mkfifo', ['-m', '600', file], { stdio: ['ignore', 'ignore', 'pipe'], windowsHide: true });
  • 删除本地文件
    src/core/channel.ts:93
    await unlink(file).catch(() => undefined);
  • 写入本地文件
    src/core/channel.ts:105
    await writeFile(file, content, { mode: 0o600 });
  • 删除本地文件
    src/core/channel.ts:110
    await unlink(file).catch(() => undefined);
  • 读取本地文件
    src/core/channel.ts:137
    const info = await stat(channel.path);
  • 删除本地文件递归
    src/core/channel.ts:142
    await rm(path.dirname(channel.path), { recursive: true, force: true }).catch(() => undefined);
  • 读取本地文件
    src/core/locate.ts:37
    if (!statSync(file).isFile()) return false;
  • 读取本地文件
    src/core/locate.ts:38
    accessSync(file, constants.X_OK);
  • 读取本地文件
    src/core/locate.ts:74
    if (!existsSync(override.path)) {
  • 读取本地文件
    src/core/release.ts:110
    cached: existsSync(binaryPath),
  • 读取本地文件
    src/core/release.ts:115
    return createHash('sha256').update(readFileSync(file)).digest('hex');
  • 读取本地文件
    src/core/release.ts:126
    info = statSync(binaryPath);
  • 读取本地文件
    src/core/release.ts:133
    if (!existsSync(marker)) return { ok: true };
  • 读取本地文件
    src/core/release.ts:134
    const expected = readFileSync(marker, 'utf8').trim();
  • 写入本地文件
    src/core/release.ts:215
    mkdirSync(descriptor.cacheDir, { recursive: true, mode: 0o700 });
  • 写入本地文件
    src/core/release.ts:231
    createWriteStream(temp, { mode: 0o600 }),
  • 写入本地文件
    src/core/release.ts:241
    chmodSync(temp, 0o755);
  • 写入本地文件
    src/core/release.ts:242
    renameSync(temp, descriptor.binaryPath);
  • 删除本地文件
    src/core/release.ts:247
    rmSync(temp, { force: true });
  • 读取本地文件
    src/core/release.ts:260
    if (!options.force && existsSync(descriptor.binaryPath)) {
  • 删除本地文件
    src/core/release.ts:273
    unlinkSync(descriptor.binaryPath);
  • 执行外部命令来自配置/变量
    src/core/run.ts:137
    const child = spawn(options.core.path, args, {
  • 读取本地文件
    src/host/core.ts:79
    if (!statSync(file).isFile()) return false;
  • 读取本地文件
    src/host/core.ts:80
    accessSync(file, constants.X_OK);
  • 读取本地文件
    src/host/import-cli.ts:138
    text = readFileSync(filePath, 'utf8');
  • 读取本地文件
    src/host/repo.ts:22
    return statSync(dir).isDirectory();
  • 读取本地文件
    src/host/runner.ts:114
    if (!existsSync(repoPath)) return { code: 'REPO_NOT_GIT', message: `目录不存在:${repoPath}` };
  • 读取本地文件
    src/host/runner.ts:116
    if (!statSync(repoPath).isDirectory()) return { code: 'REPO_NOT_GIT', message: `不是目录:${repoPath}` };
  • 读取本地文件
    src/host/runner.ts:120
    if (!existsSync(path.join(repoPath, '.git'))) {
  • 读取本地文件
    src/host/runner.ts:819
    const stat = statSync(fileReal);
  • 读取本地文件
    src/host/runner.ts:822
    buffer = readFileSync(fileReal);
  • 写入本地文件
    src/host/subscribe.ts:68
    writeFileSync(file, yaml, { mode: 0o600 });
  • 删除本地文件递归
    src/host/subscribe.ts:134
    rmSync(dir, { recursive: true, force: true });
  • 读取本地文件
    src/state.ts:172
    const text = readFileSync(file, 'utf8');
  • 写入本地文件
    src/state.ts:182
    mkdirSync(dir, { recursive: true, mode: 0o700 });
  • 写入本地文件
    src/state.ts:238
    writeFileSync(temp, `${JSON.stringify(value, null, 2)}\n`, { mode: 0o600 });
  • 写入本地文件
    src/state.ts:239
    renameSync(temp, file);
  • 写入本地文件
    src/state.ts:366
    appendFileSync(file, `${line}\n`, { mode: 0o600 });
  • 读取本地文件
    src/state.ts:370
    return existsSync(file);
  • 读取本地文件
    src/state.ts:375
    const text = readFileSync(file, 'utf8');
  • 写入本地文件
    src/state.ts:392
    writeFileSync(temp, text, { mode: 0o600 });
  • 写入本地文件
    src/state.ts:393
    renameSync(temp, file);
  • 读取本地文件
    src/state.ts:401
    const stat = statSync(file);
  • 读取本地文件
    src/state.ts:404
    const buffer = readFileSync(file);
  • 读取本地文件
    src/state.ts:418
    names = readdirSync(this.previewsPath);
  • 删除本地文件
    src/state.ts:436
    unlinkSync(entry.file);
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

GitHub 趋势日报的 DeepSeek Harness 插件:按日、周、月周期抓取 Trending,生成中文简介与总结,订阅仓库 Release 摘要,自动提交到你的仓库并开 PR 合并。

README

由 DeepSeek 最新模型翻译生成
dsh-github-trending GitHub 趋势榜的 DeepSeek Harness 插件 GitHub 趋势榜的 DeepSeek Harness 插件:按日 / 周 / 月周期定时生成趋势日报,交给本地 trendradar 核心抓取 Trending、写中文简介与周期总结,并自动提交到你自己的仓库、开 PR 合并。你在工作台里看状态、读榜单、管理订阅,不用盯命令行。 定位 - 它是入口,不是引擎。抓取、解析、模型总结、渲染、git 与 PR 全在本地 trendradar 核心一处实现;插件只负责配置、调度、spawn 核心、展示结果,避免两份实现漂移。 - 成品原样落地。内容按核心产出的 canonical 逐字节写入,插件不改写、不重排、不二次调用模型。 - 本地运行、无遥测。核心在你的机器上跑;插件没有云端账号,密钥只经运行时通道交给核心,不写配置文件、不进日志。 需要什么、配置项、错误码、订阅阶段、实现细节等深入内容见 docs/reference.md。 功能说明 工作台从侧栏「GitHub 趋势」或 设置 → GitHub 趋势 进入,分五个视图: 概览 一屏回答「下次什么时候跑、四项就绪检查是否齐、上次交付了什么」。
展开完整文档(README 剩余 1 节)
dsh-github-trending

GitHub 趋势榜的 DeepSeek Harness 插件

GitHub 趋势榜的 DeepSeek Harness 插件:按日 / 周 / 月周期定时生成趋势日报,交给本地 trendradar 核心抓取 Trending、写中文简介与周期总结,并自动提交到你自己的仓库、开 PR 合并。你在工作台里看状态、读榜单、管理订阅,不用盯命令行。

定位

- 它是入口,不是引擎。抓取、解析、模型总结、渲染、git 与 PR 全在本地 trendradar 核心一处实现;插件只负责配置、调度、spawn 核心、展示结果,避免两份实现漂移。
- 成品原样落地。内容按核心产出的 canonical 逐字节写入,插件不改写、不重排、不二次调用模型。
- 本地运行、无遥测。核心在你的机器上跑;插件没有云端账号,密钥只经运行时通道交给核心,不写配置文件、不进日志。

需要什么、配置项、错误码、订阅阶段、实现细节等深入内容见 docs/reference.md。

功能说明

工作台从侧栏「GitHub 趋势」或 设置 → GitHub 趋势 进入,分五个视图:

概览

一屏回答「下次什么时候跑、四项就绪检查是否齐、上次交付了什么」。顶部是插件身份条(版本 / 包名 / 检查更新 / GitHub,两个图标紧跟包名),点包名打开「关于」弹层;右侧常驻下次运行与就绪 N/4。

概览

榜单

按周期(日榜 / 周榜 / 月榜)回看历史榜单,直接渲染 Markdown(标题、列表、表格、链接),也可切「原文」。只有保留了预览副本的期数能读;失败 / 无变更 / 试跑 / 旧记录各有空状态。

榜单

运行记录

最近 30 次运行,按成功 / 失败 / 试跑筛选;展开某条看交付物(提交、内容哈希、分支、PR 链接)与只读日志,页脚给累计 token。

运行记录

设置

内容来源 / 模型 / 仓库 / 认证 / 榜单 / 调度 六个分区,每个分区独立保存与校验;某分区有未保存改动时左侧对应项显示黄点。

设置

GitHub 认证

认证分区支持三种方式(可随时切换):

- 浏览器登录(推荐):点「用 GitHub 登录」在浏览器完成授权,无需手工粘贴 token,token 由 DSH 凭据记录安全保存、不落 settings.json。插件内置了公开的 OAuth App client_id,开箱即用。GitHub 的 web flow 换 token 必须带 client_secret(客户端不能内置机密),所以走设备码:点一下打开 GitHub 验证页,把页面上的验证码(设置页可一键复制)输入并确认即可。
- 本机 gh:复用你终端里 gh auth login 的登录态。
- PAT:手工填 Personal Access Token(存到凭据引用 / 环境变量)。

浏览器登录需要核心提供 authorization 服务,并且 GitHub flow 注册成功才算可用;两者任一不满足时,设置页直接提示不可用并引导改用 gh / PAT,而不是给一个点了没反应的按钮。宿主启动时服务可能晚于插件就绪,插件会等服务就绪再注册,并在读状态时再兜底一次。

设备码 / 授权页默认尝试自动打开;若被浏览器的弹窗拦截,状态行里始终有可点的「打开授权页」链接、验证码与「复制链接」。

订阅

(可选)订阅一组仓库,每周把每个仓库当周新增的 Release 合成一段中文摘要,与榜单同分支、同 PR 一起提交;订阅列表随数据仓版本化,可审计、可复现。

订阅

安装

dsh plugin --profile <profile> add @morehao/dsh-github-trending

装完重启宿主,从侧栏「GitHub 趋势」或 设置 → GitHub 趋势 进入。

三步上手

1. 选仓库:填本地 git 仓库的绝对路径(插件不替你 git init,不是仓库就报 REPO_NOT_GIT)。
2. 填模型:点「沿用 DSH 配置」从宿主 provider 目录里挑 provider 与模型;可导出密钥的直接传给核心,OAuth 类凭据走本机回环代理。
3. 试跑一次:「试跑(不提交)」只抓取与渲染,不写文件、不提交。

环境要求:DSH 0.2.1-rc.3 以上、Node.js ^22.20.0 || >=24.0.0、本地 git ≥ 2.30 与可写远端、git/GitHub 凭据(仅 push 与开 PR 需要)。核心二进制首次运行从 GitHub Release 下载并按 sha256 校验,之后离线复用。
网络代理:核心抓取 GitHub 需要联网。GUI 宿主(从 Finder 启动)通常不继承 shell 的 http(s)_proxy,在国内直连会超时——现象是趋势页抓取失败、回退到 GitHub 搜索 API(无「今日新增」增量、按总 star 排序)。此时在设置 → 核心 → 网络代理填 http://127.0.0.1:7890(你的代理地址)即可,插件会把它注入核心子进程的 HTTP(S)_PROXY/ALL_PROXY。留空则不使用代理。

开发与发版

npm install
npm run check # typecheck + 契约校验 + 构建 + 全部测试
node scripts/ac/run.mjs # AC-P 机械检查

发版走 tag 触发的 CI(Trusted Publishing / OIDC):合并 PR → 在 main 打注记 tag vX.Y.Z → CI 发 npm 并用注记正文建 Release。细节见 docs/publishing.md。

许可

MIT
预览分享卡片长什么样 ↓morehao/dsh-github-trending
分享 · DeepSeek Harness Hub
morehao/dsh-github-trending

定时抓取趋势榜并生成中文日报,自动提交仓库开 PR

这是你的仓库?认领条目

回到顶部