Skip to content

Commit e02b7fb

Browse files
committed
chore: restore .github; keep .vscode/.opencode gitignored
Made-with: Cursor
1 parent 5354da5 commit e02b7fb

44 files changed

Lines changed: 3726 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# web + desktop packages
2+
packages/app/ @adamdotdevin
3+
packages/tauri/ @adamdotdevin
4+
packages/desktop/src-tauri/ @brendonovich
5+
packages/desktop/ @adamdotdevin
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Bug report
2+
description: Report an issue that should be fixed
3+
labels: ["bug"]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description
9+
description: Describe the bug you encountered
10+
placeholder: What happened?
11+
validations:
12+
required: true
13+
14+
- type: input
15+
id: plugins
16+
attributes:
17+
label: Plugins
18+
description: What plugins are you using?
19+
validations:
20+
required: false
21+
22+
- type: input
23+
id: opencode-version
24+
attributes:
25+
label: OpenCode version
26+
description: What version of OpenCode are you using?
27+
validations:
28+
required: false
29+
30+
- type: textarea
31+
id: reproduce
32+
attributes:
33+
label: Steps to reproduce
34+
description: How can we reproduce this issue?
35+
placeholder: |
36+
1.
37+
2.
38+
3.
39+
validations:
40+
required: false
41+
42+
- type: textarea
43+
id: screenshot-or-link
44+
attributes:
45+
label: Screenshot and/or share link
46+
description: Run `/share` to get a share link, or attach a screenshot
47+
placeholder: Paste link or drag and drop screenshot here
48+
validations:
49+
required: false
50+
51+
- type: input
52+
id: os
53+
attributes:
54+
label: Operating System
55+
description: what OS are you using?
56+
placeholder: e.g., macOS 26.0.1, Ubuntu 22.04, Windows 11
57+
validations:
58+
required: false
59+
60+
- type: input
61+
id: terminal
62+
attributes:
63+
label: Terminal
64+
description: what terminal are you using?
65+
placeholder: e.g., iTerm2, Ghostty, Alacritty, Windows Terminal
66+
validations:
67+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Discord Community
4+
url: https://discord.gg/opencode
5+
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: 🚀 Feature Request
2+
description: Suggest an idea, feature, or enhancement
3+
labels: [discussion]
4+
title: "[FEATURE]:"
5+
6+
body:
7+
- type: checkboxes
8+
id: verified
9+
attributes:
10+
label: Feature hasn't been suggested before.
11+
options:
12+
- label: I have verified this feature I'm about to request hasn't been suggested before.
13+
required: true
14+
15+
- type: textarea
16+
attributes:
17+
label: Describe the enhancement you want to request
18+
description: What do you want to change or add? What are the benefits of implementing this? Try to be detailed so we can understand your request better :)
19+
validations:
20+
required: true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Question
2+
description: Ask a question
3+
labels: ["question"]
4+
body:
5+
- type: textarea
6+
id: question
7+
attributes:
8+
label: Question
9+
description: What's your question?
10+
validations:
11+
required: true

.github/TEAM_MEMBERS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
adamdotdevin
2+
Brendonovich
3+
fwang
4+
Hona
5+
iamdavidhill
6+
jayair
7+
jlongster
8+
kitlangton
9+
kommander
10+
MrMushrooooom
11+
nexxeln
12+
R44VC0RP
13+
rekram1-node
14+
RhysSullivan
15+
thdxr
16+
simonklee

.github/VOUCHED.td

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Vouched contributors for this project.
2+
#
3+
# See https://github.com/mitchellh/vouch for details.
4+
#
5+
# Syntax:
6+
# - One handle per line (without @), sorted alphabetically.
7+
# - Optional platform prefix: platform:username (e.g., github:user).
8+
# - Denounce with minus prefix: -username or -platform:username.
9+
# - Optional details after a space following the handle.
10+
adamdotdevin
11+
-agusbasari29 AI PR slop
12+
ariane-emory
13+
-atharvau AI review spamming literally every PR
14+
-borealbytes
15+
-danieljoshuanazareth
16+
-danieljoshuanazareth
17+
edemaine
18+
-florianleibert
19+
fwang
20+
iamdavidhill
21+
jayair
22+
kitlangton
23+
kommander
24+
-opencode2026
25+
-opencodeengineer bot that spams issues
26+
r44vc0rp
27+
rekram1-node
28+
-ricardo-m-l
29+
-robinmordasiewicz
30+
rubdos
31+
shantur
32+
simonklee
33+
-spider-yamet clawdbot/llm psychosis, spam pinging the team
34+
thdxr
35+
-toastythebot
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: "Setup Bun"
2+
description: "Setup Bun with caching and install dependencies"
3+
inputs:
4+
install-flags:
5+
description: "Additional flags to pass to 'bun install'"
6+
required: false
7+
default: ""
8+
runs:
9+
using: "composite"
10+
steps:
11+
- name: Get baseline download URL
12+
id: bun-url
13+
shell: bash
14+
run: |
15+
if [ "$RUNNER_ARCH" = "X64" ]; then
16+
V=$(node -p "require('./package.json').packageManager.split('@')[1]")
17+
case "$RUNNER_OS" in
18+
macOS) OS=darwin ;;
19+
Linux) OS=linux ;;
20+
Windows) OS=windows ;;
21+
esac
22+
echo "url=https://github.com/oven-sh/bun/releases/download/bun-v${V}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
23+
fi
24+
25+
- name: Setup Bun
26+
uses: oven-sh/setup-bun@v2
27+
with:
28+
bun-version-file: ${{ !steps.bun-url.outputs.url && 'package.json' || '' }}
29+
bun-download-url: ${{ steps.bun-url.outputs.url }}
30+
31+
- name: Get cache directory
32+
id: cache
33+
shell: bash
34+
run: echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"
35+
36+
- name: Cache Bun dependencies
37+
uses: actions/cache@v4
38+
with:
39+
path: ${{ steps.cache.outputs.dir }}
40+
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
41+
restore-keys: |
42+
${{ runner.os }}-bun-
43+
44+
- name: Install setuptools for distutils compatibility
45+
run: python3 -m pip install setuptools || pip install setuptools || true
46+
shell: bash
47+
48+
- name: Install dependencies
49+
run: |
50+
# Workaround for patched peer variants
51+
# e.g. ./patches/ for standard-openapi
52+
# https://github.com/oven-sh/bun/issues/28147
53+
if [ "$RUNNER_OS" = "Windows" ]; then
54+
bun install --linker hoisted ${{ inputs.install-flags }}
55+
else
56+
bun install ${{ inputs.install-flags }}
57+
fi
58+
shell: bash
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: "Setup Git Committer"
2+
description: "Create app token and configure git user"
3+
inputs:
4+
opencode-app-id:
5+
description: "OpenCode GitHub App ID"
6+
required: true
7+
opencode-app-secret:
8+
description: "OpenCode GitHub App private key"
9+
required: true
10+
outputs:
11+
token:
12+
description: "GitHub App token"
13+
value: ${{ steps.apptoken.outputs.token }}
14+
app-slug:
15+
description: "GitHub App slug"
16+
value: ${{ steps.apptoken.outputs.app-slug }}
17+
runs:
18+
using: "composite"
19+
steps:
20+
- name: Create app token
21+
id: apptoken
22+
uses: actions/create-github-app-token@v2
23+
with:
24+
app-id: ${{ inputs.opencode-app-id }}
25+
private-key: ${{ inputs.opencode-app-secret }}
26+
owner: ${{ github.repository_owner }}
27+
28+
- name: Configure git user
29+
run: |
30+
slug="${{ steps.apptoken.outputs.app-slug }}"
31+
git config --global user.name "${slug}[bot]"
32+
git config --global user.email "${slug}[bot]@users.noreply.github.com"
33+
shell: bash
34+
35+
- name: Clear checkout auth
36+
run: |
37+
git config --local --unset-all http.https://github.com/.extraheader || true
38+
shell: bash
39+
40+
- name: Configure git remote
41+
run: |
42+
git remote set-url origin https://x-access-token:${{ steps.apptoken.outputs.token }}@github.com/${{ github.repository }}
43+
shell: bash

.github/publish-python-sdk.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#
2+
# This file is intentionally in the wrong dir, will move and add later....
3+
#
4+
5+
# name: publish-python-sdk
6+
7+
# on:
8+
# release:
9+
# types: [published]
10+
# workflow_dispatch:
11+
12+
# jobs:
13+
# publish:
14+
# runs-on: ubuntu-latest
15+
# permissions:
16+
# contents: read
17+
# steps:
18+
# - name: Checkout repository
19+
# uses: actions/checkout@v4
20+
21+
# - name: Setup Bun
22+
# uses: oven-sh/setup-bun@v1
23+
# with:
24+
# bun-version: 1.2.21
25+
26+
# - name: Install dependencies (JS/Bun)
27+
# run: bun install
28+
29+
# - name: Install uv
30+
# shell: bash
31+
# run: curl -LsSf https://astral.sh/uv/install.sh | sh
32+
33+
# - name: Generate Python SDK from OpenAPI (CLI)
34+
# shell: bash
35+
# run: |
36+
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/generate.py --source cli
37+
38+
# - name: Sync Python dependencies
39+
# shell: bash
40+
# run: |
41+
# ~/.local/bin/uv sync --dev --project packages/sdk/python
42+
43+
# - name: Set version from release tag
44+
# shell: bash
45+
# run: |
46+
# TAG="${GITHUB_REF_NAME:-}"
47+
# if [ -z "$TAG" ]; then
48+
# TAG="$(git describe --tags --abbrev=0 || echo 0.0.0)"
49+
# fi
50+
# echo "Using version: $TAG"
51+
# VERSION="$TAG" ~/.local/bin/uv run --project packages/sdk/python python - <<'PY'
52+
# import os, re, pathlib
53+
# root = pathlib.Path('packages/sdk/python')
54+
# pt = (root / 'pyproject.toml').read_text()
55+
# version = os.environ.get('VERSION','0.0.0').lstrip('v')
56+
# pt = re.sub(r'(?m)^(version\s*=\s*")[^"]+("\s*)$', f"\\1{version}\\2", pt)
57+
# (root / 'pyproject.toml').write_text(pt)
58+
# # Also update generator config override for consistency
59+
# cfgp = root / 'openapi-python-client.yaml'
60+
# if cfgp.exists():
61+
# cfg = cfgp.read_text()
62+
# cfg = re.sub(r'(?m)^(package_version_override:\s*)\S+$', f"\\1{version}", cfg)
63+
# cfgp.write_text(cfg)
64+
# PY
65+
66+
# - name: Build and publish to PyPI
67+
# env:
68+
# PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
69+
# shell: bash
70+
# run: |
71+
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/publish.py

0 commit comments

Comments
 (0)