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の権限を適切に制御
- コード自動修正の範囲を制限