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-bridgeauthentication 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_statusto check login status. - Provide
github_logoutto 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 reportdevice_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. scopesdefaults torepo, optionalpublic_repo, etc.; permissions take effect according to the filled scopes.oauthBaseUrldefaults tohttps://github.com, which can be modified for GitHub Enterprise scenarios.baseUrldefaults tohttps://api.github.com.defaultOwner/defaultRepoare optional conveniences; if not filled, the relevant tools will require explicitly providingowner/repoparameters.
Complete Login in the Configuration Page¶
Login can be completed in the plugin configuration page first:
- Open Settings → Plugins, and enter the
dsh-github-bridgecard. - Fill in the Client ID and save.
- Click Login with GitHub on the card.
- 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