Personalizar o comportamento do Gemini Code Assist no GitHub

É possível modificar o comportamento do Gemini Code Assist no GitHub para repositórios individuais adicionando um arquivo config.yaml a uma pasta .gemini/ localizada na raiz do repositório. O arquivo config.yaml contém vários recursos configuráveis que podem ser ativados ou desativados. É possível realizar configurações de grupo em vários repositórios para um subconjunto de comportamentos do Gemini Code Assist no GitHub.

O Gemini Code Assist também oferece suporte à adição de um arquivo styleguide.md à pasta .gemini/, que instrui o Gemini Code Assist com algumas regras específicas que você quer que ele siga ao realizar uma revisão de código. Para mais informações sobre guias de estilo do Gemini Code Assist, consulte Guia de estilo de revisão de código.

Campos de configuração

Esta seção descreve considerações para campos personalizáveis específicos no Gemini Code Assist no GitHub. Para uma lista completa de campos, consulte o config.yaml esquema.

  • code_review: comment_severity_threshold: esse campo define a gravidade mínima para que o Gemini Code Assist poste comentários. Por exemplo, se você tiver definido code_review: comment_severity_threshold: HIGH, o Gemini Code Assist não vai fornecer comentários de solicitação de pull para problemas que ele considera de gravidade LOW ou MEDIUM, como refatorações menores. O Gemini Code Assist determina a gravidade de um comentário com base no tipo e na importância do problema em questão, com violações do seu guia de estilo personalizado que normalmente atendem ou excedem o limite de gravidade.

  • ignore_patterns: esse campo usa padrões glob. Ao interagir com o repositório, o Gemini Code Assist ignora arquivos que correspondem a qualquer padrão nessa lista.

  • memory_config: esse campo é aplicável se você já tiver ativado a qualidade de resposta aprimorada para vários repositórios. Ao ativar a qualidade de resposta aprimorada para vários repositórios, é possível definir memory_config: disabled: true para um repositório específico no grupo, o que desativa o recurso para esse repositório.

Esquema config.yaml

O snippet de código a seguir é o esquema do arquivo config.yaml. Ele define todas as opções de configuração possíveis e os valores aceitos:

$schema: "http://json-schema.org/draft-07/schema#"
title: RepoConfig
description: Configuration for Gemini Code Assist on a repository. All fields are optional and have default values.
type: object
properties:
  have_fun:
    type: boolean
    description: Enables fun features such as a poem in the initial pull request summary. Default: false.
  ignore_patterns:
    type: array
    items:
      type: string
    description: A list of glob patterns for files and directories that Gemini Code Assist should ignore. Default: [].
  memory_config:
    type: object
    description: Configuration for persistent memory, which is used to improve responses.
    properties:
      disabled:
        type: boolean
        description: Whether to disable persistent memory for this specific repository. Default: false.
  code_review:
    type: object
    description: Configuration for code reviews. All fields are optional and have default values.
    properties:
      disable:
        type: boolean
        description: Disables Gemini from acting on pull requests. Default: false.
      comment_severity_threshold:
        type: string
        enum:
          - LOW
          - MEDIUM
          - HIGH
          - CRITICAL
        description: The minimum severity of review comments to consider. Default: MEDIUM.
      max_review_comments:
        type: integer
        format: int64
        description: The maximum number of review comments to consider. Use -1 for unlimited. Default: -1.
      pull_request_opened:
        type: object
        description: Configuration for pull request opened events. All fields are optional and have default values.
        properties:
          help:
            type: boolean
            description: Posts a help message on pull request open. Default: false.
          summary:
            type: boolean
            description: Posts a pull request summary on the pull request open. Default: true.
          code_review:
            type: boolean
            description: Posts a code review on pull request open. Default: true.
          include_drafts:
            type: boolean
            description: Enables agent functionality on draft pull requests. Default: true.

Exemplo de config.yaml

O snippet de código a seguir é um exemplo de arquivo config.yaml. Neste exemplo, cada propriedade é definida como o valor padrão usado pelo Gemini Code Assist. Você pode usar esse snippet como um modelo para criar seu próprio arquivo config.yaml:

have_fun: false
memory_config:
  disabled: false
code_review:
  disable: false
  comment_severity_threshold: MEDIUM
  max_review_comments: -1
  pull_request_opened:
    help: false
    summary: true
    code_review: true
    include_drafts: true
ignore_patterns: []

Gerenciar configurações em vários repositórios

Alguns aspectos do Gemini Code Assist no GitHub podem ser gerenciados em vários repositórios:

  • Se você tiver a versão do consumidor, poderá ativar ou desativar determinadas configurações para todos os repositórios associados a uma conta.

  • Se você tiver a versão Enterprise, poderá ativar ou desativar determinadas configurações para vários repositórios agrupados por uma conexão do Developer Connect. Quando você faz isso, gerencia as configurações coletivas pelo console do Google Cloud.

Se um repositório for gerenciado como parte de um grupo, mas também tiver seu próprio config.yaml, as configurações config.yaml do repositório vão substituir as configurações do grupo.

Para um comportamento e exceções de configuração específicos, revise o esquema config.yaml.

As etapas a seguir mostram como controlar um conjunto de configurações em vários repositórios. Essas etapas pressupõem que você já tenha configurado o Gemini Code Assist no GitHub.

Consumidor

  1. No Gemini Code Assist, acesse a página de configurações.

    Acessar as configurações

  2. Se solicitado, clique em Fazer login com o GitHub e siga as instruções para fazer login no GitHub no Gemini Code Assist.

  3. Na página Gemini , selecione a conta que você quer usar, revise os Termos de Serviço e clique em Continuar.

  4. Na página Agente sem custo financeiro, atualize as configurações conforme necessário.

  5. Clique em Salvar.

Enterprise

  1. No console do Google Cloud, acesse a página Agentes e ferramentas do Gemini Code Assist.

    Acessar agentes e ferramentas

  2. Na seção Agentes , localize o card Gerenciamento de código-fonte do Code Assist e clique em Avançado.

    O painel Editar gerenciamento de código-fonte do Code Assist é aberto.

  3. Na tabela Conexões, clique no nome da conexão a que você quer aplicar uma configuração.

    A página de detalhes da conexão é aberta.

  4. Na guia Configurações, atualize as configurações que você quer mudar.

  5. Clique em Salvar.

A seguir