mirror of
https://github.com/anomalyco/opencode.git
synced 2026-02-01 22:48:16 +00:00
github: add configurable mentions input (#5655)
This commit is contained in:
@@ -22,6 +22,10 @@ inputs:
|
||||
required: false
|
||||
default: "false"
|
||||
|
||||
mentions:
|
||||
description: "Comma-separated list of trigger phrases (case-insensitive). Defaults to '/opencode,/oc'"
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
@@ -57,3 +61,4 @@ runs:
|
||||
SHARE: ${{ inputs.share }}
|
||||
PROMPT: ${{ inputs.prompt }}
|
||||
USE_GITHUB_TOKEN: ${{ inputs.use_github_token }}
|
||||
MENTIONS: ${{ inputs.mentions }}
|
||||
|
||||
@@ -602,21 +602,26 @@ export const GithubRunCommand = cmd({
|
||||
}
|
||||
|
||||
const reviewContext = getReviewCommentContext()
|
||||
const mentions = (process.env["MENTIONS"] || "/opencode,/oc")
|
||||
.split(",")
|
||||
.map((m) => m.trim().toLowerCase())
|
||||
.filter(Boolean)
|
||||
let prompt = (() => {
|
||||
const body = payload.comment.body.trim()
|
||||
if (body === "/opencode" || body === "/oc") {
|
||||
const bodyLower = body.toLowerCase()
|
||||
if (mentions.some((m) => bodyLower === m)) {
|
||||
if (reviewContext) {
|
||||
return `Review this code change and suggest improvements for the commented lines:\n\nFile: ${reviewContext.file}\nLines: ${reviewContext.line}\n\n${reviewContext.diffHunk}`
|
||||
}
|
||||
return "Summarize this thread"
|
||||
}
|
||||
if (body.includes("/opencode") || body.includes("/oc")) {
|
||||
if (mentions.some((m) => bodyLower.includes(m))) {
|
||||
if (reviewContext) {
|
||||
return `${body}\n\nContext: You are reviewing a comment on file "${reviewContext.file}" at line ${reviewContext.line}.\n\nDiff context:\n${reviewContext.diffHunk}`
|
||||
}
|
||||
return body
|
||||
}
|
||||
throw new Error("Comments must mention `/opencode` or `/oc`")
|
||||
throw new Error(`Comments must mention ${mentions.map((m) => "`" + m + "`").join(" or ")}`)
|
||||
})()
|
||||
|
||||
// Handle images
|
||||
|
||||
Reference in New Issue
Block a user