Español
Documentación
GitLab

GitLab

Usa OpenCode en issues y merge requests de GitLab.

OpenCode se integra con tu flujo de trabajo de GitLab a través de tu pipeline de CI/CD de GitLab o con GitLab Duo.

En ambos casos, OpenCode se ejecutará en tus runners de GitLab.


GitLab CI

OpenCode funciona en un pipeline de GitLab normal. Puedes integrarlo en un pipeline como un componente de CI (opens in a new tab)

Aquí usamos un componente de CI/CD para OpenCode creado por la comunidad — nagyv/gitlab-opencode (opens in a new tab).


Características

  • Usa una configuración personalizada por job : Configura OpenCode con un directorio de configuración personalizado, por ejemplo ./config/#custom-directory para habilitar o deshabilitar funcionalidades por cada invocación de OpenCode.
  • Configuración mínima : El componente de CI configura OpenCode en segundo plano; solo necesitas crear la configuración de OpenCode y la indicación inicial.
  • Flexible : El componente de CI admite varias entradas para personalizar su comportamiento

Configuración

  1. Almacena tu JSON de autenticación de OpenCode como variables de entorno de CI de tipo File en Settings > CI/CD > Variables. Asegúrate de marcarlas como "Masked and hidden".

  2. Agrega lo siguiente a tu archivo .gitlab-ci.yml.

    .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 # The variable name for your OpenCode authentication JSON
          command: optional-custom-command
          message: "Your prompt here"

Para más entradas y casos de uso consulta la documentación (opens in a new tab) de este componente.


GitLab Duo

OpenCode se integra con tu flujo de trabajo de GitLab. Menciona @opencode en un comentario y OpenCode ejecutará tareas dentro de tu pipeline de CI de GitLab.


Características

  • Triaje de issues : Pídele a OpenCode que investigue un issue y te lo explique.
  • Corregir e implementar : Pídele a OpenCode que corrija un issue o implemente una función. Creará una nueva rama y abrirá un merge request con los cambios.
  • Seguro : OpenCode se ejecuta en tus runners de GitLab.

Configuración

OpenCode se ejecuta en tu pipeline de CI/CD de GitLab; esto es lo que necesitarás para configurarlo:

Tip: Consulta la documentación de GitLab (opens in a new tab) para obtener instrucciones actualizadas.

  1. Configura tu entorno de GitLab

  2. Configura CI/CD

  3. Obtén una clave de API de un proveedor de modelos de IA

  4. Crea una cuenta de servicio

  5. Configura las variables de CI/CD

  6. Crea un archivo de configuración de flujo, aquí tienes un ejemplo:

    Configuración del flujo

    image: node:22-slim
    commands:
      - echo "Installing opencode"
      - npm install --global opencode-ai
      - echo "Installing glab"
      - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
      - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
      - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
      - apt-get install --yes glab
      - echo "Configuring glab"
      - echo $GITLAB_HOST
      - echo "Creating OpenCode auth configuration"
      - mkdir --parents ~/.local/share/opencode
      - |
        cat > ~/.local/share/opencode/auth.json << EOF
        {
          "anthropic": {
            "type": "api",
            "key": "$ANTHROPIC_API_KEY"
          }
        }
        EOF
      - echo "Configuring git"
      - git config --global user.email "[email protected]"
      - git config --global user.name "OpenCode"
      - echo "Testing glab"
      - glab issue list
      - echo "Running OpenCode"
      - |
        opencode run "
        You are an AI assistant helping with GitLab operations.
     
        Context: $AI_FLOW_CONTEXT
        Task: $AI_FLOW_INPUT
        Event: $AI_FLOW_EVENT
     
        Please execute the requested task using the available GitLab tools.
        Be thorough in your analysis and provide clear explanations.
     
        <important>
        Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
     
        If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
        You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
        </important>
        "
      - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
      - echo "Checking for git changes and pushing if any exist"
      - |
        if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
          echo "Git changes detected, adding and pushing..."
          git add .
          if git diff --cached --quiet; then
            echo "No staged changes to commit"
          else
            echo "Committing changes to branch: $CI_WORKLOAD_REF"
            git commit --message "Codex changes"
            echo "Pushing changes up to $CI_WORKLOAD_REF"
            git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
            echo "Changes successfully pushed"
          fi
        else
          echo "No git changes detected, skipping push"
        fi
    variables:
      - ANTHROPIC_API_KEY
      - GITLAB_TOKEN_OPENCODE
      - GITLAB_HOST

Puedes consultar la documentación de agentes de la CLI de GitLab (opens in a new tab) para obtener instrucciones detalladas.


Ejemplos

Aquí tienes algunos ejemplos de cómo puedes usar OpenCode en GitLab.

Tip: Puedes configurar una frase de activación diferente a @opencode.

  • Explicar un issue Agrega este comentario en un issue de GitLab.

    @opencode explain this issue

    OpenCode leerá el issue y responderá con una explicación clara.

  • Corregir un issue En un issue de GitLab, escribe:

    @opencode fix this

    OpenCode creará una nueva rama, implementará los cambios y abrirá un merge request con ellos.

  • Revisar merge requests Deja el siguiente comentario en un merge request de GitLab.

    @opencode review this merge request

    OpenCode revisará el merge request y proporcionará comentarios.