chore(support-bot): rewrite with opencode and remote GitHub MCP - #2182
chore(support-bot): rewrite with opencode and remote GitHub MCP#2182KavithaSiva wants to merge 20 commits into
Conversation
SummaryThe following content is AI-generated and provides a summary of the pull request: Chore: Rewrite Support Bot with OpenCode and Remote GitHub MCPWhat this PR does and why it is neededThis PR rewrites the support bot by migrating from a custom agent implementation to OpenCode with a remote GitHub MCP integration. Key changesRemoved files:
Added files:
Modified files:
PR Bot InformationVersion:
|
| "github": { | ||
| "type": "remote", | ||
| "url": "https://api.githubcopilot.com/mcp/readonly", | ||
| "headers": { |
There was a problem hiding this comment.
[q] I wonder if some MCP proxy/gateway would make sense here to further filter any tool calls, even though the risk is lower with slack-only.
Either way, I assume opencode has shell access so either way hard to secure without a real (container-based or likewise) sandbox.
But it might still be able smuggle the AI core credentials if it wants to, https://github.com/SAP/ai-sdk-js-backlog/issues/583 would reduce the risk a bit here, I assume AI core will get IAS soon?
There was a problem hiding this comment.
-
I have added
"permission": { "bash": "deny" }toopencode.jsonto close the most direct exfiltration channel. The bot doesn't need shell access, it only uses context7 and GitHub MCP tools. -
The GitHub MCP endpoint is /readonly, which limits write channels.
-
Output is Slack-only, so blast radius is limited.
There was a problem hiding this comment.
I am not sure about the timeline of AI Core with IAS.
| @@ -39,7 +265,6 @@ function extractErrorMessages(body: string): string[] { | |||
| } | |||
|
|
|||
| function stripBoilerplate(body: string): string { | |||
There was a problem hiding this comment.
I assume opencode has native ways to handle large inputs, consider providing the issue and so on as files.
There was a problem hiding this comment.
Opencode has a way to provide files as attachments, but I would prefer to do this in a follow-up.
| '- github__search_issues — search GitHub issues (pass keywords only; repo scope is automatic)', | ||
| '- github__get_issue — fetch full body of a specific issue by number', | ||
| '- github__search_code — search code examples (pass keywords only; repo scope is automatic)', | ||
| '', |
There was a problem hiding this comment.
[pp] Also tell the model to look at the local checkout?
There was a problem hiding this comment.
Can be improved in a follow-up.
Co-authored-by: David Knaack <david.knaack@sap.com>
Co-authored-by: David Knaack <david.knaack@sap.com>
davidkna-sap
left a comment
There was a problem hiding this comment.
still issues spawning in CI: https://github.com/SAP/ai-sdk-js/actions/runs/33169168848/job/98841805850
Runs successfully now: https://github.com/SAP/ai-sdk-js/actions/runs/33186979692 |
Context
Rewrites the support bot workflow with
opencodeAlso moves the license from cloud sdk repo to in-house.