Preface

DeepSeek Harness (DSH) follows the “everything is a plugin” philosophy. When developing AI agents that need to interact with external systems, directly calling REST APIs inside agent code is both cumbersome and unsafe. For agents that manage code repositories, Issues, or Pull Requests, a standardized channel is needed.

dsh-github-manager solves this problem. It is a DeepSeek Harness community plugin that registers a set of tools, enabling agents to automatically manage repositories, Issues, PRs, branches, files, labels, topics, Git tags, releases, and search directly through the GitHub REST API.

What This Is

dsh-github-manager is a community plugin maintained by yuan-source-666. It is distributed as a Bundle and includes a Web configuration card.

Its core value is providing DSH agents with a complete GitHub automation and management channel. After installation, agents can use GitHub features as if they were local tools, without hard-coding API logic in agent code.

Core Features

The plugin registers 27 tools, covering most common GitHub operations:

  • Connection and validation: github_ping verifies the channel and token, and reports the current user and remaining quota.
  • Repository management: Supports listing repositories, retrieving repository metadata, and creating new repositories.
  • Issue management: Supports listing, creating, and updating Issues (title/body/status/labels/assignees), as well as adding comments.
  • PR management: Supports listing, retrieving details, creating, and merging PRs (supports merge/squash/rebase strategies).
  • Files and branches: Supports reading text files, creating/updating/deleting files (versioned through the commits API), and listing branches.
  • Labels and topics: Supports listing/creating labels, and retrieving/bulk replacing repository topics.
  • Release management: Supports listing Git tags and releases, retrieving the latest version, and creating/updating releases.
  • Search: Supports searching code, Issues, and PRs across GitHub.

Safety validation: All mutating tools, when dryRun: true, only describe the operations that would be performed without actually executing them, making them suitable for safely validating workflows in review environments.

Installation and Enabling

Installing the plugin requires specifying a Profile. For security, it is recommended to pin a specific commit SHA.

# 从 GitHub 仓库安装(推荐,锁定版本)
dsh plugin --profile demo add github:yuan-source-666/dsh-github-manager#<sha>

# 或从本地目录安装
dsh plugin --profile demo add ./dsh-github-manager

Prerequisites: If using pnpm ≥ 10, you must explicitly allow the build in the profile’s pnpm-workspace.yaml:

allowBuilds:
  dsh-github-manager: true

After installation, you can verify it with the following command:

dsh --profile demo --dump-config

Typical Usage

After installation and configuration, agents can invoke tools through natural language.

Example 1: Check connection
The agent can directly say:

Use github_ping to check whether the GitHub channel is connected.

Example 2: Issue automation
The agent can perform the following task:

List the open issues in the deepseek-harness/deepseek-harness repository, and add a Triage comment to each one that is labeled bug and unassigned.

Configuration and Notes

Web Interface Configuration

After installation, visit http://127.0.0.1:3080 → Settings → Plugins → Configurable to see the “GitHub Repository Management” card.

  • Enable switch: When turned off, the 27 tools are instantly unregistered from the model tool surface; when turned on, they are instantly restored, without restarting the process.
  • Access token: This is a write-only password field. The input is saved immediately, the stored value is never echoed over the network, and it is not displayed in read results. If left empty, the plugin falls back to the GH_TOKEN / GITHUB_TOKEN environment variables.
  • Configuration items: Supports configuring the API address, site root address, request timeout, and dry-run status. Changes take effect immediately.

Headless Deployment Configuration

In CLI or headless deployment scenarios, you can directly override the defaults in the profile’s cordis.patch.yml:

- id: dsh-github-manager
  name: dsh-github-manager
  config:
    enabled: true
    baseUrl: 'https://api.github.com'
    webUrl: 'https://github.com'
    timeoutMs: 30000
    dryRun: false

Permission Requirements

The plugin requires corresponding GitHub permissions to work properly:
* Contents: File read/write (github_read_file, github_write_file, github_delete_file).
* Issues: Issue management (github_create_issue, github_update_issue, github_comment_issue).
* Pull requests: PR management (github_create_pull, github_merge_pull).
* Administration: Creating new repositories (github_create_repo).
* Metadata: Read-only search and metadata (github_search_code, github_search_issues, github_list_releases, etc.).

Summary

dsh-github-manager is a mature DeepSeek Harness plugin that encapsulates GitHub REST APIs into tools that agents can call directly. With its Web configuration card and real-time toggling mechanism, it provides a flexible and secure operational experience. For developers who need to build automated GitHub workflows in the DeepSeek Harness environment, this is a ready-to-use option.

  • Plugin catalog: https://www.skillhub.cn/plugins/yuan-source-666/dsh-github-manager
  • Source code: https://github.com/yuan-source-666/dsh-github-manager