dsh-forge

August 25, 2026 · View on GitHub

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

セルフホストした GiteaForgejo を DSH から直接参照できる、読み取り専用の DeepSeek Harness プラグインです。両方の プラットフォームが共通で提供する REST API を使用し、リポジトリ、Issue、Pull Request、 Actions の情報を提供します。

DeepSeek Harness は developer preview です。このプラグインは @deepseek-ai/dsh-tools 0.1.1-rc.2 でテスト済みで、rc.6 以降の 0.1.0 プレリリースとの互換性も維持しています。Harness API の変更に合わせて更新が必要になる場合があります。

機能

  • インスタンスのバージョンと認証ユーザーが所有するリポジトリを確認。
  • 表示可能なリポジトリから Issue と Pull Request を検索。
  • Issue、Pull Request、unified diff、変更ファイルを取得。
  • Actions workflow の実行、ジョブ、プレーンテキストログを一覧・取得。
  • リクエストのキャンセル、タイムアウト、レスポンスサイズ上限に対応。
  • すべての tools は読み取り専用で、安全に並列実行可能。
  • Runtime tool metadata は英語、繁体字中国語、簡体字中国語、日本語に対応。

インストール

npm からのインストールを推奨します。

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

またはコンパイル済みの release tarball を使用します。

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

GitHub repository を直接追跡する場合:

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

ローカル checkout からインストールする場合:

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

Git からのインストールでは prepare script が実行されます。pnpm 10 にインストール時の build を許可する前に、ソースを確認して commit を固定してください。ビルド済み tarball ではインストール時の build 権限は不要です。

設定

認証情報を cordis.patch.yml に保存しないよう、URL と token には環境変数を推奨します。

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

profile patch でも設定できます。

- id: forge-tools
  name: dsh-forge
  config:
    baseUrl: 'https://code.example.com'
    token: ''
    locale: ja
    requestTimeoutMs: 30000
    maxResponseBytes: 1000000

locale には enzh-TWzh-CNja を指定でき、tool の説明、パラメーターの ヘルプ、実行中のタイトルを切り替えます。既定値は英語です。翻訳はプラグインに同梱され、 外部翻訳サービスには接続しません。

インスタンスで利用できる最小権限の token を使用してください。このプラグインはリモート リソースの作成、更新、マージ、再実行、削除を行いません。

Tools

Tool用途
forge_instance_infoインスタンスのバージョン情報を取得
forge_list_repositories認証ユーザーが所有するリポジトリを一覧表示
forge_search_issuesIssue または Pull Request を検索
forge_get_issue1 件の Issue を取得
forge_list_pull_requestsPull Request を一覧表示
forge_get_pull_request1 件の Pull Request を取得
forge_get_pull_request_diffPull Request の unified diff を取得
forge_list_pull_request_filesPull Request の変更ファイルを一覧表示
forge_list_action_runsActions の実行を一覧表示
forge_list_action_jobsworkflow 実行内のジョブを一覧表示
forge_get_action_job_logsActions ジョブログを取得

開発と互換性

開発には Node.js 22 以降と Bun が必要です。

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

CI は公式 Gitea 1.27、Forgejo 16 とそれぞれの Actions runner を起動し、実際の リポジトリ、Issue、ブランチ、Pull Request、workflow、job log を作成して統合テストを 行います。API の JSON は各プラットフォームの形式を維持し、diff と log はプレーンテキストで 返します。

ライセンス

MIT