DeepSHPlugins
dsh-forge 项目预览
GITHUB / COMMUNITY PROJECT

dsh-forge

工具与集成TypeScriptMIT

面向自建 Gitea / Forgejo 的只读工具,走两者共用的 REST API:实例信息、仓库列表、议题与 PR 搜索和读取、PR diff 与变更文件,以及 Actions 运行、任务与任务日志。工具元数据支持英文、繁体中文、简体中文与日文。

2 Starsmaxmilian 更新时间 2026-08-25
访问 GitHub 仓库
dsh-forge 项目预览

项目介绍

中文

面向自建 Gitea / Forgejo 的只读工具,走两者共用的 REST API:实例信息、仓库列表、议题与 PR 搜索和读取、PR diff 与变更文件,以及 Actions 运行、任务与任务日志。工具元数据支持英文、繁体中文、简体中文与日文。

English

Read-only Gitea and Forgejo tools over the REST API both projects share: instance info, repository listing, issue and pull request search and read, PR diffs and changed files, and Actions runs, jobs and job logs. Tool metadata is available in English, Traditional Chinese, Simplified Chinese and Japanese.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
maxmilian
仓库
maxmilian/dsh-forge
GitHub Stars
2
Forks
0
开发语言
TypeScript
许可证
MIT
最近推送
2026-08-25
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

57/ 100
维护活跃
89
文档与实用信息
100
生态关注度
14
安装便捷信号
75
项目声明信号
100

近 17 天仍在更新;README 含完整安装与使用说明;关注度尚低(2)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:maxmilian/dsh-forge

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-forge

English | 繁體中文 | 简体中文 | 日本語

CI Integration Release License: MIT

Read-only DeepSeek Harness tools for self-hosted Gitea and Forgejo instances. The plugin uses the REST API shared by both projects and adds repository, issue, pull request, and Actions context directly to DSH.

DeepSeek Harness is in developer preview. This plugin is tested with
@deepseek-ai/dsh-tools 0.1.1-rc.2, retains compatibility with the 0.1.0 prereleases from
rc.6, and may need updates when Harness APIs change.

Features

  • Inspect the configured instance version.
  • List repositories owned by the authenticated user.
  • Search issues and pull requests across visible repositories.
  • Read an issue or pull request by repository and index.
  • Read pull request diffs and changed-file metadata.
  • List repository Actions runs and jobs, then read plaintext job logs.
  • Localize runtime tool metadata in English, Traditional Chinese, Simplified Chinese, or Japanese.
  • Forward cancellation and enforce request time and response-size limits.
  • Keep every v0.3 tool read-only and safe for parallel execution.

Install

From a local checkout:

dsh plugin --profile web add .
dsh --profile web --dump-config
dsh --profile web

From npm (recommended):

dsh plugin --profile web add @maxhsu/dsh-forge

From the prebuilt release tarball:

dsh plugin --profile web add https://github.com/maxmilian/dsh-forge/releases/latest/download/dsh-forge.tgz

The tarball includes compiled JavaScript and declarations, so installation does not run a local TypeScript build. To track the repository instead:

dsh plugin --profile web add github:maxmilian/dsh-forge

Git installations run the package prepare script. pnpm 10 may ask you to allow that build in the profile's pnpm-workspace.yaml; review and pin the source commit before allowing install-time code. A published npm package or prebuilt tarball does not need that build permission.

Configure

Environment variables are preferred so the access token does not live in cordis.patch.yml:

export DSH_FORGE_URL='https://code.example.com'
export DSH_FORGE_TOKEN='replace-with-a-read-only-token'
dsh --profile web

DSH_FORGE_URL may include a subpath, such as https://example.com/git. The client preserves that path when appending /api/v1. Public endpoints work without a token, but repository tools normally need one.

The plugin can load before these variables are set. If a Forge tool is called without a configured URL, it returns an actionable configuration error instead of preventing the DSH profile from booting.

The profile patch can override runtime limits or provide credentials directly:

- id: forge-tools
  name: dsh-forge
  config:
    baseUrl: 'https://code.example.com'
    token: '' # Prefer DSH_FORGE_TOKEN. This field is marked secret in the config schema.
    locale: en # en, zh-TW, zh-CN, or ja
    requestTimeoutMs: 30000
    maxResponseBytes: 1000000

Use the narrowest token scopes your instance supports. Version 0.3 never creates, updates, merges, reruns, or deletes remote resources.

locale controls model-facing tool descriptions, parameter help, and pending-call titles. English is the default; Traditional Chinese, Simplified Chinese, and Japanese are included without external translation services.

Tools

ToolPurpose
forge_instance_infoRead instance version information
forge_list_repositoriesList repositories owned by the authenticated user
forge_search_issuesSearch issues or pull requests across repositories
forge_get_issueRead one issue
forge_list_pull_requestsList repository pull requests
forge_get_pull_requestRead one pull request
forge_get_pull_request_diffRead one pull request as a unified diff
forge_list_pull_request_filesList files changed by one pull request
forge_list_action_runsList repository Actions runs
forge_list_action_jobsList jobs belonging to one Actions run
forge_get_action_job_logsRead the plaintext log for one Actions job

List endpoints clamp limit to 50 to keep model context bounded. API errors include the operation and HTTP status but never retain request headers or credentials.

Development

Node.js 22 or newer and Bun are required for development:

bun install
bun run lint
bun run typecheck
bun run test:coverage
bun run build
bun pm pack --dry-run

Unit tests mock fetch. The Integration GitHub Actions workflow additionally starts disposable, official Gitea and Forgejo containers and their Actions runners. It creates real repositories, issues, branches, pull requests, workflow runs, and job logs before exercising the plugin client.

Compatibility verification

TargetVerification
DeepSeek HarnessLocal bundle install, composed-config dump, and boot smoke test
GiteaLive CI against the official Gitea 1.27 container and Gitea Runner 3.1.0
ForgejoLive CI against the official Forgejo 16 container and Forgejo Runner 13.0.0

API payloads are returned as canonical JSON so fields added by either project remain available without requiring a plugin release. Diff and log responses remain plaintext to avoid JSON escaping.

Current scope

The plugin deliberately uses the common REST endpoints instead of instance-specific extensions. Actions availability depends on the server version and whether Actions is enabled. A future release can add approval-gated writes, pull-request reviews, artifacts, and webhook-driven workflows.

License

MIT

Contributions are welcome. See CONTRIBUTING.md for the development workflow and SECURITY.md for private vulnerability reporting.

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目