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 fazer 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 permite adicionar um arquivo styleguide.md à pasta .gemini/, que instrui o Gemini Code Assist com algumas regras específicas que você quer que ele siga ao fazer uma revisão de código. Para mais informações sobre guias de estilo do Gemini Code Assist, consulte Guia de estilo para revisão de código.

Campos de configuração

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

  • 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 secundárias. O Gemini Code Assist determina a gravidade de um comentário com base no tipo e na importância do problema em questão. As violações do seu guia de estilo personalizado geralmente 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 melhoria da qualidade da resposta para vários repositórios. Ao ativar a melhoria da qualidade da resposta para vários repositórios, é possível definir memory_config: disabled: true para um repositório específico no agrupamento, o que desativa o recurso para esse repositório.

config.yaml esquema

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: false.
          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. Use este snippet como 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: false
    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 para consumidores, poderá ativar ou desativar determinadas configurações para todos os repositórios associados a uma conta.

  • Se você tiver a versão empresarial, poderá ativar ou desativar determinadas configurações para vários repositórios agrupados por uma conexão do Developer Connect. Ao fazer isso, você gerencia as configurações coletivas deles no 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 de config.yaml do repositório vão substituir as configurações do grupo.

Para conferir o comportamento e as exceções específicas das configurações, analise o esquema config.yaml.

As etapas a seguir mostram como controlar um conjunto de configurações em vários repositórios. Estas etapas partem do princípio de que você já configurou 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 livre, 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 Gemini Code Assist e clique em Avançado.

    O painel Editar gerenciamento de código do Code Assist para a origem é 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 opções que você quer mudar.

  5. Clique em Salvar.

A seguir