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
|
required: false
|
||||||
default: "false"
|
default: "false"
|
||||||
|
|
||||||
|
mentions:
|
||||||
|
description: "Comma-separated list of trigger phrases (case-insensitive). Defaults to '/opencode,/oc'"
|
||||||
|
required: false
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
@@ -57,3 +61,4 @@ runs:
|
|||||||
SHARE: ${{ inputs.share }}
|
SHARE: ${{ inputs.share }}
|
||||||
PROMPT: ${{ inputs.prompt }}
|
PROMPT: ${{ inputs.prompt }}
|
||||||
USE_GITHUB_TOKEN: ${{ inputs.use_github_token }}
|
USE_GITHUB_TOKEN: ${{ inputs.use_github_token }}
|
||||||
|
MENTIONS: ${{ inputs.mentions }}
|
||||||
|
|||||||
@@ -602,21 +602,26 @@ export const GithubRunCommand = cmd({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const reviewContext = getReviewCommentContext()
|
const reviewContext = getReviewCommentContext()
|
||||||
|
const mentions = (process.env["MENTIONS"] || "/opencode,/oc")
|
||||||
|
.split(",")
|
||||||
|
.map((m) => m.trim().toLowerCase())
|
||||||
|
.filter(Boolean)
|
||||||
let prompt = (() => {
|
let prompt = (() => {
|
||||||
const body = payload.comment.body.trim()
|
const body = payload.comment.body.trim()
|
||||||
if (body === "/opencode" || body === "/oc") {
|
const bodyLower = body.toLowerCase()
|
||||||
|
if (mentions.some((m) => bodyLower === m)) {
|
||||||
if (reviewContext) {
|
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 `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"
|
return "Summarize this thread"
|
||||||
}
|
}
|
||||||
if (body.includes("/opencode") || body.includes("/oc")) {
|
if (mentions.some((m) => bodyLower.includes(m))) {
|
||||||
if (reviewContext) {
|
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}\n\nContext: You are reviewing a comment on file "${reviewContext.file}" at line ${reviewContext.line}.\n\nDiff context:\n${reviewContext.diffHunk}`
|
||||||
}
|
}
|
||||||
return body
|
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
|
// Handle images
|
||||||
|
|||||||
Reference in New Issue
Block a user