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 >= 20gitCLI 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:
clonebranchcheckoutcommitpushpullstashtagmergerebasediffblamelog- 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_permissionsescalation - 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¶
- First, confirm that
gitand 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.
- Install the plugin:
dsh plugin --profile web add github:sakthiveltofficial/dsh-git-plugins
-
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. -
Verify if Git-related items appear in the configuration:
dsh --profile web --dump-config | grep -i git
- 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
usernameconfiguration - GitLab’s
baseUrlcan be configured - Gitea’s
baseUrlis 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 serviceinstead of executing directly
Note the following points:
- The plugin accesses local Git repositories and hosted platform interfaces, so it runs within the permissions of the current DSH process.
- Before installation, check the source code and the MIT license, and confirm which Git and platform operations you allow the agent to perform.
- Tokens are not stored in the configuration, only env-var references are saved, and they are parsed based on the operation.
- When no credentials are set, anonymous access may work for reading public repositories, but write operations will fail with
GIT_AUTH_FAILED. - Unsupported platform operations will fail with
GIT_UNSUPPORTEDinstead of silently returning empty. - 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.