OpenCode GitLab

OpenCode 同样可以集成到 GitLab 工作流中,在 Issue、合并请求(Merge Request)以及 CI/CD 流水线中自动执行任务。

它的核心特点是:在你的 GitLab Runner 上运行,实现安全可控的 AI 自动化开发。

OpenCode GitLab = 把 AI 接入 CI/CD,让代码分析、修复和审查自动化运行。


一、集成方式概览

OpenCode 在 GitLab 中主要有两种使用方式:

  • GitLab CI(推荐):通过 CI/CD 流水线执行 OpenCode
  • GitLab Duo(评论触发):通过 @opencode 在评论中触发

二、GitLab CI 集成(核心方式)

OpenCode 可以作为 CI 组件接入你的流水线,实现自动化任务执行。

这里使用社区组件:

nagyv/gitlab-opencode

1、功能特性

  • 按任务自定义配置:支持独立配置目录
  • 最小化接入成本:无需复杂初始化
  • 高度可定制:支持多参数控制行为

2、配置步骤

① 配置认证信息

在 GitLab 项目中:

  • 进入 Settings → CI/CD → Variables
  • 添加变量:
OPENCODE_AUTH_JSON

要求:

  • 类型:File
  • 勾选 Masked 和 Hidden

② 配置流水线

在项目根目录创建或修改:

.gitlab-ci.yml

示例:

include:
  - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2
    inputs:
      config_dir: ${CI_PROJECT_DIR}/opencode-config
      auth_json: $OPENCODE_AUTH_JSON
      command: optional-custom-command
      message: "Explain the codebase structure"

③ 参数说明

参数 说明
config_dir OpenCode 配置目录
auth_json 认证信息(API Key)
command 执行命令(可选)
message 提示词(Prompt)

3、使用场景

  • 自动分析代码结构
  • 批量重构代码
  • 自动生成文档
  • CI 阶段自动检查代码质量

三、GitLab Duo 集成(评论触发)

类似 GitHub 的 /opencode,GitLab 使用 @opencode 触发。

当你在 Issue 或合并请求中评论时:

@opencode your prompt

OpenCode 会在 GitLab CI 中自动执行任务

1、功能特性

  • Issue 分析:自动理解问题
  • 自动修复:创建分支并提交 MR
  • 代码审查:分析合并请求

特点:

  • 运行在 GitLab Runner 上
  • 安全,不依赖外部执行环境

2、配置步骤

要使用 @opencode,需要完成以下配置:

  • 配置 GitLab CI/CD 流水线
  • 准备 API Key
  • 创建服务账户(Service Account)
  • 配置 CI/CD Variables
  • 创建 Flow 配置文件

说明:

具体细节可参考 GitLab CLI Agents 官方文档(不同版本略有差异)。


四、常见使用方式

1、解释 Issue

@opencode explain this issue

自动总结问题并给出解释

2、自动修复 Issue

@opencode fix this

自动:

  • 创建新分支
  • 修改代码
  • 提交 Merge Request

3、审查合并请求

@opencode review this merge request

自动分析:

  • 代码质量
  • 潜在 Bug
  • 优化建议

五、进阶技巧

1、自定义触发词

你可以将 @opencode 替换为其他触发关键词。

2、任务级配置

通过不同的 config_dir,实现:

  • 不同任务使用不同模型
  • 不同项目使用不同规则

3、结合 CI 自动化

可以实现:

  • 定时扫描代码问题
  • 自动生成周报
  • 自动修复简单 Bug

六、安全与最佳实践

  • 使用 CI/CD Variables 存储密钥
  • 避免在代码中写死 API Key
  • 合理控制 Runner 权限
  • 限制自动修改代码的范围