mirror of
https://github.com/langgenius/dify-official-plugins.git
synced 2026-07-21 17:45:23 -04:00
Github data source doesn't work at all #688
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hiiamboris on GitHub (Oct 5, 2025).
Self Checks
Dify version
1.9.1
Plugin version
0.3.3
Cloud or Self Hosted
Cloud
Steps to reproduce
Install GH plugin (tried both self-hosted and cloud-hosted)
Generate access token (tried both classic and fine-grained)
Configure it in the Settings -> Data Source -> Github, Save, it succeeds so far
Create a simplest pipeline:
'Run this step' always fails with:
req_id: 029237627c PluginInvokeError: {"args":{},"error_type":"TypeError","message":"string indices must be integers, not 'str'"}There's no choice of Github repository or owner or anything ever offered
Make a new OAuth token on Github
Generate a secret for it
Set authorization callback to "https://.../console/api/oauth/callback" from readme or to "https://.../console/api/oauth/plugin/langgenius/github_datasource/github_datasource/datasource/callback" from the plugin's OAuth page (doesn't matter, result is the same)
In Settings -> Data Source -> Github select OAuth, fill in client id and secret, press 'Save & Authorize'
Authorization always fails:
✔️ Error log
nothing stands out in the plugin-daemon logs
@dosubot[bot] commented on GitHub (Oct 5, 2025):
There are two main issues here:
The OAuth "invalid redirect_uri" error happens because the Dify backend does not currently support a generic OAuth callback endpoint for external plugins like GitHub. The plugin expects the redirect_uri to match exactly what is registered in your GitHub OAuth app, but Dify only wires up OAuth callbacks for a few internal sources (like Notion), so the handshake fails regardless of which callback URL you use. As a result, OAuth-based GitHub integration is not fully supported at this time, even though the plugin's README suggests otherwise. Using a Personal Access Token (PAT) with the correct scopes (
repo,user:email,read:user) is the only viable option right now for authentication. source sourceThe "string indices must be integers, not 'str'" error is likely caused by the plugin treating a string as a dictionary or list, usually due to an unexpected or missing field in the GitHub API response or user input. This is a bug in the plugin's error handling and data validation. It often happens if the plugin expects a dictionary (parsed JSON) but receives a string or list instead. This can also explain why repository/owner selection is missing in the UI—if the API response is not as expected, the plugin can't populate the selection fields. source
Recent updates to the plugin (v0.3.3) focused on error handling and dependency cleanup, but did not address these core issues. For now, use a PAT for authentication, double-check that it has the required scopes, and be aware that some plugin features (like repo selection) may not work until the plugin's response validation and the Dify backend's OAuth support are improved.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

@hiiamboris commented on GitHub (Oct 27, 2025):
nice way to handle bug reports 👎
@Sire commented on GitHub (Jan 14, 2026):
Still not working. Tried both fine grained and personal tokens. I'm abandoning dify.ai. The Google Drive plugin is not working either.