Introduction

In the DSH ecosystem, “everything is a plugin” is a common extension philosophy. For developers, if agents directly handle GitHub repositories, Issues, Pull Requests, file content, and search, they often encounter two types of problems: one is that API requests are scattered in prompts or temporary commands, and the other is that manually managing tokens is not very convenient.

dsh-github-bridge does something specific: it adds GitHub OAuth login authentication to DSH/dwsh and provides a set of github_* tools, allowing DSH to call GitHub capabilities within authorized scopes.

What is this

dsh-github-bridge is a plugin connecting DSH/dwsh with GitHub, mainly consisting of three parts:

  • GitHub login authentication based on the OAuth 2.0 device code flow;
  • A set of github_* tools covering repositories, Issues, Pull Requests, file content, and search;
  • The dsh-github-bridge authentication card in the plugin configuration page.

The repository address is displayed as gaolei-mark43/dsh-github-bridge with an MIT license. Since the scraped data does not list a specific maintainer, this article does not treat any specific maintenance relationship as an established fact.

Core Features

Authentication

  • Complete GitHub login using the OAuth 2.0 device code flow.
  • Tokens are stored in the DSH credential service; the model will never see the token itself.
  • Provide github_auth_status to check login status.
  • Provide github_logout to log out.

Tool Capabilities

The tools provided by the plugin include:

  • Generic GitHub REST API calls: github_request
  • User and Repository: github_get_user, github_list_repos, github_get_repo
  • Issues: github_list_issues, github_get_issue, github_create_issue
  • Pull Requests: github_list_pull_requests
  • File Content: github_get_file
  • Search: github_search_repositories
  • Authentication Helpers: github_auth_status, github_logout

Installation and Activation

First, obtain the plugin directory locally, then execute the installation command:

cd /path/to/dsh-github-bridge
dsh plugin --profile web add .

This command installs the current directory as a plugin into the web profile.

After installation, DSH needs to be restarted once. After restarting, the plugin configuration card will appear in Settings → Plugins.

Configuration and Login

Prepare GitHub OAuth App First

When using OAuth login, you need to configure the Client ID of the GitHub OAuth App. The device code flow does not require client_secret.

When creating or checking an OAuth App, pay attention to the following points:

  • Must check Enable Device Flow, otherwise login will report device_flow_disabled.
  • It is recommended to uncheck Expire user access tokens. This plugin only stores the access token and does not support refresh token refreshing for now; if token expiration is enabled, login will become invalid after expiration.
  • scopes defaults to repo, optional public_repo, etc.; permissions take effect according to the filled scopes.
  • oauthBaseUrl defaults to https://github.com, which can be modified for GitHub Enterprise scenarios.
  • baseUrl defaults to https://api.github.com.
  • defaultOwner / defaultRepo are optional conveniences; if not filled, the relevant tools will require explicitly providing owner / repo parameters.

Complete Login in the Configuration Page

Login can be completed in the plugin configuration page first:

  1. Open Settings → Plugins, and enter the dsh-github-bridge card.
  2. Fill in the Client ID and save.
  3. Click Login with GitHub on the card.
  4. Complete authorization according to the verification URL and one-time code displayed on the card.

The values filled in the configuration page have higher priority than the patch-layer configuration; after clearing a field, it will fall back to the value from the patch-layer configuration.

You can also manually paste the token in the same card. Here, only access tokens are accepted, for example ghp_... or github_pat_...; Client ID is not an access token, so it will be rejected if pasted.

Typical Usage

After installation and login, you can directly make these requests to DSH:

  • List my GitHub repositories
  • Read the README of my-org/my-repo
  • List open issues of my-org/my-repo
  • Create an issue in my-org/my-repo, with title… and content…
  • Search GitHub for TypeScript plugins related to dsh
  • What is my GitHub login status? (github_auth_status)
  • Logout from GitHub (github_logout)

DSH will call the corresponding github_* tool based on the request.

Applicable Scenarios and Notes

Suitable for developers who need to let DSH/dwsh directly query GitHub repositories, Issues, Pull Requests, file content, or perform search.

Pay attention to a few points before use:

  • The plugin runs with the current DSH process permissions.
  • It is recommended to check the source code and license before installation.
  • The license of this project is MIT.
  • The community directory is an independent site, not the DeepSeek official app store.

Conclusion

The value of dsh-github-bridge lies not in replacing GitHub itself, but in bringing GitHub login authentication and common github_* operations into the DSH plugin, reducing the cost of manually managing tokens and assembling API requests.

Related Links:

  • GitHub: https://github.com/gaolei-mark43/dsh-github-bridge
  • Directory Page (from plugin clues, not confirmed in the data checked this time): https://www.skillhub.cn/plugins/gaolei-mark43/dsh-github-bridge