OpenCode GitLab

OpenCodeはGitLabワークフローにも統合でき、Issue、マージリクエスト(Merge Request)、CI/CDパイプラインでタスクを自動実行できます。

その中核的な特徴は、あなたのGitLab Runner上で動作し、安全で制御可能なAI自動化開発を実現することです。

OpenCode GitLab = AIをCI/CDに接続し、コード分析、修正、レビューを自動化します。


一、統合方式の概要

OpenCodeはGitLabで主に2つの使用方法があります:

  • GitLab CI(推奨):CI/CDパイプラインを介してOpenCodeを実行
  • GitLab Duo(コメントトリガー):コメント内で@opencodeを使用してトリガー

二、GitLab CI 統合(主要な方法)

OpenCodeはCIコンポーネントとしてパイプラインに組み込み、自動化タスクを実行できます。

ここではコミュニティコンポーネントを使用します:

nagyv/gitlab-opencode

1、機能特性

  • タスクごとにカスタム設定:独立した設定ディレクトリをサポート
  • 導入コストを最小化:複雑な初期化が不要
  • 高度にカスタマイズ可能:複数パラメータによる動作制御をサポート

2、設定手順

① 認証情報の設定

GitLabプロジェクトで:

  • 設定 → 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

自動分析:

  • コード品質
  • 潜在的なバグ
  • 最適化の提案

五、高度なテクニック

1、トリガーワードのカスタマイズ

あなたは@opencodeを他のトリガーキーワードに置き換えることができます。

2、タスクレベルの設定

異なるconfig_dirを使用して、以下を実現:

  • タスクごとに異なるモデルを使用
  • プロジェクトごとに異なるルールを使用

3、CI自動化との連携

以下を実現できます:

  • 定期的なコード問題のスキャン
  • 週次レポートの自動生成
  • 簡単なバグの自動修正

六、セキュリティとベストプラクティス

  • CI/CD Variablesを使用してシークレットを保存
  • コードにAPI Keyをハードコードしない
  • Runnerの権限を適切に制御
  • コード自動修正の範囲を制限
その他の拡張