摘要
本章聚焦於 opencode 在企業環境中的應用。你將學習如何將 opencode 整合到 GitHub Actions 與 GitLab CI 等 CI/CD 管道中,設定網路代理與自訂憑證以符合企業安全政策,利用企業版的集中管理功能,以及使用分享功能促進團隊協作。這些能力讓 opencode 不僅是個人開發工具,更能成為團隊與組織的標準化 AI 協作平台。
學習目標
- 學會安裝 GitHub Actions 整合並撰寫 workflow
- 了解 GitLab CI 整合方式與社群元件
- 設定 HTTPS 代理與自訂 CA 憑證
- 認識企業版的集中設定與 SSO 功能
- 掌握分享功能的三種模式與使用時機
- 能在團隊中部署 opencode 協作流程
GitHub Actions 整合
opencode 提供官方 GitHub Actions 整合,讓你可以直接在 CI/CD pipeline 中使用 opencode 執行自動化任務,例如程式碼審查、自動修復、文件生成等。
安裝官方 Action
使用以下指令在 GitHub 倉儲中安裝整合:
opencode github install
這個指令會自動在你的倉儲中建立必要的 workflow 檔案,並設定 GitHub App 權限。
Workflow 範例
以下是一個典型的 workflow 設定,在每次 Pull Request 時自動執行程式碼審查:
# .github/workflows/opencode-review.yml
name: OpenCode Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: anthropics/opencode-action@v1
with:
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
command: |
請審查此 PR 的變更,檢查:
- 是否有安全漏洞
- 程式碼風格是否一致
- 是否有遺漏的邊界情況
支援的事件類型
opencode GitHub Action 支援以下事件:
- pull_request:在 PR 建立或更新時觸發
- push:在推送到特定分支時觸發
- issue_comment:在 issue 或 PR 評論中包含特定指令時觸發
- schedule:定期排程執行(如每週依賴更新檢查)
- workflow_dispatch:手動觸發
常見應用場景
- 自動程式碼審查:每次 PR 自動審查變更並留言
- 自動修復:對 lint 錯誤或安全漏洞提出修復 PR
- 文件生成:根據程式碼變更自動更新 API 文件
- 測試產生:為新功能自動產生單元測試
GitLab CI 整合
雖然 opencode 目前沒有官方 GitLab Action,但社群提供了完善的 CI 整合方案。
社群 CI 元件
你可以透過 GitLab CI 的 includes 功能引用社群維護的 CI 元件:
# .gitlab-ci.yml
include:
- component: gitlab.com/opencode-community/ci-components/opencode-review@v1
opencode-review:
variables:
OPENCODE_API_KEY: $ANTHROPIC_API_KEY
OPENCODE_COMMAND: "審查此 Merge Request 的程式碼品質"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
自訂 CI Job
你也可以手動撰寫 GitLab CI job:
opencode-check:
image: node:20
script:
- npm install -g @opencode-ai/opencode
- opencode ci-review --api-key $ANTHROPIC_API_KEY
only:
- merge_requests
GitLab Duo @opencode
對於 GitLab Ultimate 用戶,opencode 可以與 GitLab Duo 整合,透過 @opencode 在 MR 評論中直接呼叫:
@opencode 請檢查此 MR 中的資料庫遷移是否安全
當 GitLab 偵測到 @opencode 提及時,會自動呼叫已設定的 opencode webhook 來處理請求。
網路功能
企業環境通常有嚴格的網路安全政策,opencode 為此提供了完整的代理與憑證支援。
HTTPS 代理伺服器
透過標準的 HTTPS_PROXY 環境變數設定代理:
# PowerShell
$env:HTTPS_PROXY="http://proxy.company.com:8080"
opencode
# Bash / Zsh
export HTTPS_PROXY=http://proxy.company.com:8080
opencode
opencode 也支援 HTTP_PROXY、NO_PROXY 等標準環境變數:
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
# 繞過內部網域的代理
export NO_PROXY=.internal.company.com,localhost,127.0.0.1
自訂憑證(CA Certificates)
如果你的企業使用內部 CA 簽發的憑證(例如在 SSL 解密代理後),可以透過 NODE_EXTRA_CA_CERTS 指定自訂 CA 憑證檔案:
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/company-ca.crt
opencode
此環境變數是 Node.js 原生支援的功能,opencode 會自動讀取並信任指定的 CA 憑證。這對於使用內部 AI 閘道或自託管模型服務的企業特別重要。
| 環境變數 | 用途 | 範例值 |
|---|---|---|
HTTPS_PROXY |
HTTPS 流量代理 | http://proxy:8080 |
HTTP_PROXY |
HTTP 流量代理 | http://proxy:8080 |
NO_PROXY |
繞過代理的網域 | .local,10.0.0.0/8 |
NODE_EXTRA_CA_CERTS |
自訂 CA 憑證路徑 | /etc/ca-certs.pem |
企業版(Enterprise)
opencode Enterprise 為組織提供了額外的管理與安全功能,適合需要集中管控的企業環境。
集中設定(Centralized Configuration)
企業版允許管理員透過中央伺服器統一分發設定,取代每個開發者手動設定 opencode.json:
- 在中央伺服器上定義全域
opencode.json - 強制執行模型使用政策(例如僅允許使用 Claude Opus)
- 統一套用外掛與代理白名單
- 設定統一的網路代理與憑證
- 版本鎖定(確保所有團隊成員使用相同版本)
// 企業集中設定範例
{
"model": "anthropic/claude-opus-4",
"enterprise": {
"configUrl": "https://config.internal.company.com/opencode",
"forceConfig": true,
"allowedPlugins": ["@company/opencode-plugin-*"],
"disallowedTools": ["bash"],
"auditLog": true
}
}
SSO 單一登入
企業版支援基於 SAML 2.0 與 OIDC 的單一登入,讓使用者可以透過公司帳號直接使用 opencode:
- 支援 Okta、Azure AD、OneLogin 等主流 IdP
- 自動同步使用者與團隊權限
- 無需管理個別 API Key
內部 AI 閘道
企業可以設定內部 AI 閘道(AI Gateway)作為所有 AI 請求的統一入口:
- 集中管理 API 金鑰與用量配額
- 記錄所有 AI 請求以供稽核
- 內容過濾與敏感資料遮罩
- 快取常見請求以降低成本
- 支援 fallback 模型(主要模型故障時自動切換)
# 設定內部 AI 閘道
export OPENCODE_API_BASE=https://ai-gateway.internal.company.com/v1
export OPENCODE_API_KEY=internal-gateway-key
自行託管(Self-Hosted)
對於資料安全要求嚴格的組織,opencode 企業版支援完全自行託管:
- 所有資料保存在企業內部網路
- 支援 air-gapped 環境(完全離線)
- 可搭配內部模型伺服器(vLLM、Triton 等)
- 提供 Helm Chart 用於 Kubernetes 部署
- 內建 Prometheus metrics 與 Grafana dashboard
分享功能
opencode 的分享功能讓開發者可以將當前的對話工作階段分享給團隊成員,促進協作與知識傳遞。
三種分享模式
| 模式 | 設定值 | 說明 |
|---|---|---|
| 手動分享 | "share": "manual" |
預設模式。使用者需要主動輸入 /share 才能分享工作階段 |
| 自動分享 | "share": "auto" |
工作階段會在結束時自動分享,適合團隊協作情境 |
| 停用分享 | "share": "disabled" |
完全停用分享功能,適合處理敏感資料的專案 |
在 opencode.json 中設定
{
"share": "manual",
"shareUrl": "https://share.internal.company.com"
}
使用分享指令
在手動模式下,使用以下指令管理分享:
# 分享當前工作階段
/share
# 取消分享
/unshare
分享後,團隊成員會收到一個唯一的分享連結,可以直接檢視對話內容與操作記錄,但無法修改原始工作階段。
分享的最佳實踐
- 使用 手動模式 作為預設,確保每個分享都是有意義的
- 對於新成員入職 training 的工作階段使用 自動分享
- 涉及客戶資料或原始憑證的專案務必使用 停用分享
- 分享 URL 可設定過期時間,避免長期暴露
實戰練習
練習 1:設定 GitHub Actions Workflow
在你的專案中執行 opencode github install,然後開啟生成的 workflow 檔案,修改提示詞使其針對你的專案語言進行程式碼審查。提交並觀察 PR 評論。
練習 2:設定代理與憑證
模擬企業環境:設定 HTTPS_PROXY 環境變數指向一個本地代理(如 mitmproxy),並透過 NODE_EXTRA_CA_CERTS 設定自訂憑證。確認 opencode 可以正常連線到 API。
練習 3:分享工作階段
與另一位開發者協作:在 opencode 中執行一個有意義的任務(如重構一個函數),然後輸入 /share 分享工作階段。請對方開啟分享連結並回饋意見。
練習 4:設計企業部署方案
假設你的組織有 50 位開發者,需要導入 opencode 企業版。撰寫一份部署計畫,包含:集中設定策略、SSO IdP 選擇、AI 閘道架構、以及分享功能的使用政策。