Introduction

DSH’s plugin philosophy is “Everything is a plugin”: taking capabilities scattered in scripts, CLI, or manual processes and turning them into tools the DSH agent can call directly. For AI agent developers, a common requirement is: letting the agent not just answer questions, but handle local repositories, commit changes, operate on pull requests / MRs, issues, releases, CI/CD, and security alerts on hosted platforms.

Below is an introduction to sakthiveltofficial/dsh-git-plugins. It is a DSH plugin suite that provides local Git operations, operations for GitHub / GitLab / Bitbucket Cloud / Azure DevOps / Gitea platforms, and a set of self-evolving memory across sessions.

What is This

sakthiveltofficial/dsh-git-plugins is maintained by sakthiveltofficial under the MIT license. It targets DeepSeek Harness (DSH) and provides a set of model tools for the agent to perform local repository operations, hosted platform operations, and cross-session memory.

Verified runtime requirements are as follows:

  • DeepSeek Harness
  • Node.js >= 20
  • git CLI in PATH

The repository package.json version is 0.1.2, and the bundle patch configuration is:

./cordis.patch.yml

Core Capabilities

Local Repository Operations

The plugin covers common local Git operations, including:

  • clone
  • branch
  • checkout
  • commit
  • push
  • pull
  • stash
  • tag
  • merge
  • rebase
  • diff
  • blame
  • log
  • Code search
  • File search

These capabilities rely on the git CLI in PATH rather than re-implementing a full set of Git behaviors within the plugin.

Hosted Platform Operations

The plugin supports common source control objects for the following hosted platforms:

  • GitHub
  • GitLab
  • Bitbucket Cloud
  • Azure DevOps
  • Gitea

You can operate on:

  • pull requests / MRs
  • issues
  • releases
  • CI/CD
  • Security alerts

For operations not supported by a specific platform, the plugin fails with GIT_UNSUPPORTED instead of silently returning empty results.

Model Tools

The plugin exposes the following model tools:

git_repo
git_inspect
git_pr
git_issues
git_release
git_security
git_ci
git_memory

After installation and enabling, you can verify if the tools are in the agent’s available list using this sentence:

what git tools do you have?

It is expected to list the 8 tools above.

Self-evolving Memory

git_memory provides cross-session persistent memory, with main capabilities including:

  • Cross-session persistence
  • Automatic capture of tool failure signatures
  • Deduplication of duplicate events
  • Clearing secrets before persistence
  • Bounded summary injection at each step
  • Deleting obsolete entries

If a memory entry is obsolete, you can use:

git_memory forget

to delete the corresponding memory entry.

Policy Enhancement

The plugin adds several constraints to operation security:

  • Destructive operations go through the host approval service
  • Changes comply with the sandbox policy
  • Support for sandbox_permissions escalation
  • Rate limit fallback
  • Read caching

This means the agent can execute more complete source control workflows, but critical operations will not be directly approved.

Installation and Enablement

  1. First, confirm that git and available Node.js exist in the environment:
git --version
node --version

Here, the git CLI must be in PATH, and the Node.js version must meet >= 20.

  1. Install the plugin:
dsh plugin --profile web add github:sakthiveltofficial/dsh-git-plugins
  1. After installation, restart the profile or the DSH process. No need to manually edit the preset; host rows are automatically inserted by dsh.bundle.patch.

  2. Verify if Git-related items appear in the configuration:

dsh --profile web --dump-config | grep -i git
  1. Then ask the agent:
what git tools do you have?

If the agent can list git_repo, git_inspect, git_pr, git_issues, git_release, git_security, git_ci, git_memory, it indicates the tools are available.

Typical Usage

Natural Language Driven Git Workflows

After installation, you can use natural language to have the agent execute a series of Git operations. Example:

Clone the repo, check out a feat/ branch, commit these changes and open a PR against main; squash-merge it and create a v1.2.0 release.

The feat/, main, v1.2.0 in the example are just placeholders; in actual use, they should be replaced with your own branch, target branch, and version number.

Configuring Platform Credentials

Platform operations are parsed through DSH’s credential mechanism. Only env-var references are saved in the configuration, not the tokens themselves; tokens are parsed based on the operation.

You can use the following environment variables per platform, or configure via ctx.credentials sources:

GITHUB_TOKEN
GITLAB_TOKEN
BITBUCKET_APP_PASSWORD
AZURE_DEVOPS_PAT
GITEA_TOKEN

A few behaviors need to be confirmed:

  • Public repositories can be accessed anonymously
  • When no credentials are set, write operations will fail with GIT_AUTH_FAILED
  • Bitbucket requires an additional username configuration
  • GitLab’s baseUrl can be configured
  • Gitea’s baseUrl is required

Managing Memory

git_memory automatically records tool failure signatures and provides summaries when similar patterns are hit later. Since memory is retained across sessions, you need to clean up obsolete entries during long-term use.

When deleting obsolete memory, use:

git_memory forget

Applicable Scenarios and Notes

Suitable for the following scenarios:

  • Using DSH agents to handle clone, branch, commit, push, pull, merge, rebase, etc. operations on local repositories
  • Need to operate on pull requests / MRs, issues, releases, CI/CD, and security alerts on GitHub, GitLab, Bitbucket Cloud, Azure DevOps, or Gitea
  • Want the agent to remember tool failure signatures and project conventions across sessions
  • Want destructive operations to go through the host approval service instead of executing directly

Note the following points:

  1. The plugin accesses local Git repositories and hosted platform interfaces, so it runs within the permissions of the current DSH process.
  2. Before installation, check the source code and the MIT license, and confirm which Git and platform operations you allow the agent to perform.
  3. Tokens are not stored in the configuration, only env-var references are saved, and they are parsed based on the operation.
  4. When no credentials are set, anonymous access may work for reading public repositories, but write operations will fail with GIT_AUTH_FAILED.
  5. Unsupported platform operations will fail with GIT_UNSUPPORTED instead of silently returning empty.
  6. Memory will clear secrets, tokens, keys, private-key blocks, and username paths before persisting.

Links and Finding

GitHub Repository:

https://github.com/sakthiveltofficial/dsh-git-plugins

Plugin Name:

sakthiveltofficial/dsh-git-plugins

If you use the DSH plugin directory, you can search for and verify the current available version by this name.