diff options
| author | Aiden Cline <[email protected]> | 2025-11-25 23:51:23 -0600 |
|---|---|---|
| committer | Aiden Cline <[email protected]> | 2025-11-25 23:51:23 -0600 |
| commit | e1cc98d448f8db971fc2fbed6055839b2f233d2f (patch) | |
| tree | efbae2d0e2f909f6a905984fa748c59904a65e1a /github | |
| parent | 0ce64962d4c9eeaa7c9e4da84a4702f03927055a (diff) | |
| download | opencode-e1cc98d448f8db971fc2fbed6055839b2f233d2f.tar.gz opencode-e1cc98d448f8db971fc2fbed6055839b2f233d2f.zip | |
Revert "feat(github): add ability to react to PR Review Comments in Workflow (#4705)"
This reverts commit 0ce64962d4c9eeaa7c9e4da84a4702f03927055a.
Diffstat (limited to 'github')
| -rw-r--r-- | github/README.md | 26 | ||||
| -rw-r--r-- | github/index.ts | 51 |
2 files changed, 7 insertions, 70 deletions
diff --git a/github/README.md b/github/README.md index 36342b409..8e5b6d813 100644 --- a/github/README.md +++ b/github/README.md @@ -30,24 +30,6 @@ Leave the following comment on a GitHub PR. opencode will implement the requeste Delete the attachment from S3 when the note is removed /oc ``` -#### Review specific code lines - -Leave a comment directly on code lines in the PR's "Files" tab. opencode will automatically detect the file, line numbers, and diff context to provide precise responses. - -``` -[Comment on specific lines in Files tab] -/oc add error handling here -``` - -When commenting on specific lines, opencode receives: - -- The exact file being reviewed -- The specific lines of code -- The surrounding diff context -- Line number information - -This allows for more targeted requests without needing to specify file paths or line numbers manually. - ## Installation Run the following command in the terminal from your GitHub repo: @@ -69,8 +51,6 @@ This will walk you through installing the GitHub app, creating the workflow, and on: issue_comment: types: [created] - pull_request_review_comment: - types: [created] jobs: opencode: @@ -155,9 +135,3 @@ Replace the image URL `https://github.com/user-attachments/assets/xxxxxxxx` with ``` MOCK_EVENT='{"eventName":"issue_comment","repo":{"owner":"sst","repo":"hello-world"},"actor":"fwang","payload":{"issue":{"number":4,"pull_request":{}},"comment":{"id":1,"body":"hey opencode, summarize thread"}}}' ``` - -### PR review comment event - -``` -MOCK_EVENT='{"eventName":"pull_request_review_comment","repo":{"owner":"sst","repo":"hello-world"},"actor":"fwang","payload":{"pull_request":{"number":7},"comment":{"id":1,"body":"hey opencode, add error handling","path":"src/components/Button.tsx","diff_hunk":"@@ -45,8 +45,11 @@\n- const handleClick = () => {\n- console.log('clicked')\n+ const handleClick = useCallback(() => {\n+ console.log('clicked')\n+ doSomething()\n+ }, [doSomething])","line":47,"original_line":45,"position":10,"commit_id":"abc123","original_commit_id":"def456"}}}' -``` diff --git a/github/index.ts b/github/index.ts index 6d826326e..b681ff92f 100644 --- a/github/index.ts +++ b/github/index.ts @@ -5,7 +5,7 @@ import { graphql } from "@octokit/graphql" import * as core from "@actions/core" import * as github from "@actions/github" import type { Context as GitHubContext } from "@actions/github/lib/context" -import type { IssueCommentEvent, PullRequestReviewCommentEvent } from "@octokit/webhooks-types" +import type { IssueCommentEvent } from "@octokit/webhooks-types" import { createOpencodeClient } from "@opencode-ai/sdk" import { spawn } from "node:child_process" @@ -124,7 +124,7 @@ let exitCode = 0 type PromptFiles = Awaited<ReturnType<typeof getUserPrompt>>["promptFiles"] try { - assertContextEvent("issue_comment", "pull_request_review_comment") + assertContextEvent("issue_comment") assertPayloadKeyword() await assertOpencodeConnected() @@ -241,43 +241,19 @@ function createOpencode() { } function assertPayloadKeyword() { - const payload = useContext().payload as IssueCommentEvent | PullRequestReviewCommentEvent + const payload = useContext().payload as IssueCommentEvent const body = payload.comment.body.trim() if (!body.match(/(?:^|\s)(?:\/opencode|\/oc)(?=$|\s)/)) { throw new Error("Comments must mention `/opencode` or `/oc`") } } -function getReviewCommentContext() { - const context = useContext() - if (context.eventName !== "pull_request_review_comment") { - return null - } - - const payload = context.payload as PullRequestReviewCommentEvent - return { - file: payload.comment.path, - diffHunk: payload.comment.diff_hunk, - line: payload.comment.line, - originalLine: payload.comment.original_line, - position: payload.comment.position, - commitId: payload.comment.commit_id, - originalCommitId: payload.comment.original_commit_id, - } -} - async function assertOpencodeConnected() { let retry = 0 let connected = false do { try { - await client.app.log<true>({ - body: { - service: "github-workflow", - level: "info", - message: "Prepare to react to Github Workflow event", - }, - }) + await client.app.get<true>() connected = true break } catch (e) {} @@ -407,24 +383,11 @@ async function createComment() { } async function getUserPrompt() { - const context = useContext() - const payload = context.payload as IssueCommentEvent | PullRequestReviewCommentEvent - const reviewContext = getReviewCommentContext() - let prompt = (() => { + const payload = useContext().payload as IssueCommentEvent const body = payload.comment.body.trim() - if (body === "/opencode" || body === "/oc") { - 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 (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 - } + if (body === "/opencode" || body === "/oc") return "Summarize this thread" + if (body.includes("/opencode") || body.includes("/oc")) return body throw new Error("Comments must mention `/opencode` or `/oc`") })() |
