wip: github actions

This commit is contained in:
Frank
2025-07-25 20:27:40 -04:00
parent 2c924b9fdb
commit a007d65f62
5 changed files with 161 additions and 79 deletions

View File

@@ -316,10 +316,8 @@ on:
jobs:
opencode:
if: |
startsWith(github.event.comment.body, 'opencode') ||
startsWith(github.event.comment.body, 'hi opencode') ||
startsWith(github.event.comment.body, 'hey opencode') ||
contains(github.event.comment.body, '@opencode-agent')
contains(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, '/opencode')
runs-on: ubuntu-latest
permissions:
id-token: write
@@ -508,16 +506,10 @@ export const GithubRunCommand = cmd({
async function getUserPrompt() {
let prompt = (() => {
const body = payload.comment.body
if (body.match("@opencode-agent")) return body
const match = body.match(/^(?:hey|hi)?\s*opencode(?:-agent)?,?\s*(.*)$/is)
if (match?.[1] === undefined)
throw new Error(
"Command must mention @opencode-agent, or start with `opencode`, `hi opencode`, or `hey opencode` followed by instructions",
)
if (match[1] === "") return "Summarize this thread"
return match[1]
const body = payload.comment.body.trim()
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`")
})()
// Handle images

View File

@@ -0,0 +1,94 @@
---
title: GitHub
description: Using opencode within GitHub Issues and Pull-Requests
---
opencode integrates directly into your GitHub workflow. Mention `/opencode` in your comment, and opencode will execute tasks within your GitHub Actions runner.
---
## Features
- **Triage Issues**: Ask opencode to look into an issue and explain it to you
- **Fix and Implement**: Ask opencode to fix an issue or implement a feature. And it will work in a new branch and submits a PR with all the changes.
- **Secure**: opencode runs inside your GitHub's runners.
---
## Installation
Run the following command in the terminal from your GitHub repo:
```bash
opencode github install
```
This will walk you through installing the GitHub app, creating the workflow, and setting up secrets.
---
### Manual Setup
1. Install the GitHub app https://github.com/apps/opencode-agent. Make sure it is installed on the target repository.
2. Add the following workflow file to `.github/workflows/opencode.yml` in your repo. Set the appropriate `model` and required API keys in `env`.
```yml
name: opencode
on:
issue_comment:
types: [created]
jobs:
opencode:
if: |
contains(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, '/opencode')
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run opencode
uses: sst/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
# share: true
```
3. Store the API keys in secrets. In your organization or project **settings**, expand **Secrets and variables** on the left and select **Actions**. Add the required API keys.
---
### Inputs
- `model`: The model used by opencode. Takes the format of `provider/model` (**required**)
- `share`: Share the session. Sessions are shared by default for public repos.
---
### Usage Examples
- Explain an issue
```bash
/opencode explain this issue
```
- Fix an issue - opencode will create a PR with the changes.
```bash
/opencode fix this
```
- Review PRs and make changes
```bash
Delete the attachment from S3 when the note is removed /oc
```