Personalizzare il comportamento di Gemini Code Assist in GitHub

Puoi modificare il comportamento di Gemini Code Assist su GitHub per i singoli repository aggiungendo un file config.yaml a una cartella .gemini/ che si trova nella radice del repository. Il file config.yaml contiene varie funzionalità configurabili che puoi attivare o disattivare. Puoi eseguire configurazioni di gruppo in più repository per un sottoinsieme di comportamenti di Gemini Code Assist su GitHub.

Gemini Code Assist supporta anche l'aggiunta di un file styleguide.md alla cartella .gemini/, che fornisce a Gemini Code Assist alcune regole specifiche che vuoi che segua durante l'esecuzione di una revisione del codice. Per ulteriori informazioni sulle guide di stile per Gemini Code Assist, consulta la guida di stile per la revisione del codice.

Campi di configurazione

Questa sezione descrive le considerazioni per campi personalizzabili specifici in Gemini Code Assist su GitHub. Per un elenco completo dei campi, consulta lo schema config.yaml.

  • code_review: comment_severity_threshold: questo campo imposta la gravità minima per cui Gemini Code Assist pubblica commenti. Ad esempio, se hai impostato code_review: comment_severity_threshold: HIGH, Gemini Code Assist non fornirà commenti sulle richieste di pull per problemi che considera di gravità LOW o MEDIUM, ad esempio refactoring minori. Gemini Code Assist determina la gravità di un commento in base al tipo e all'importanza del problema in esame. Le violazioni della tua guida di stile personalizzata in genere raggiungono o superano la soglia di gravità.

  • ignore_patterns: questo campo utilizza pattern glob. Quando interagisce con il repository, Gemini Code Assist ignora i file che corrispondono a qualsiasi pattern in questo elenco.

  • memory_config: questo campo è applicabile se in precedenza hai attivato la qualità della risposta migliorata per più repository. Quando attivi la qualità della risposta migliorata per più repository, puoi impostare memory_config: disabled: true per un repository specifico all'interno del raggruppamento, il che disattiva la funzionalità per quel repository.

config.yaml schema

Il seguente snippet di codice è lo schema per il file config.yaml. Definisce tutte le possibili opzioni di configurazione e i relativi valori accettati:

$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.

Esempio di config.yaml

Il seguente snippet di codice è un esempio di file config.yaml. In questo esempio, ogni proprietà è impostata sul valore predefinito utilizzato da Gemini Code Assist. Puoi utilizzare questo snippet come modello per creare il tuo file 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: []

Gestire le configurazioni in più repository

Alcuni aspetti di Gemini Code Assist su GitHub possono essere gestiti in più repository:

  • Se hai la versione consumer, puoi attivare/disattivare determinate impostazioni per tutti i repository associati a un account.

  • Se hai la versione Enterprise, puoi attivare/disattivare determinate impostazioni per più repository raggruppati in base a una connessione Developer Connect. In questo modo, gestisci le impostazioni collettive tramite la console Google Cloud.

Se un repository viene gestito come parte di un gruppo, ma ha anche un proprio config.yaml, le impostazioni config.yaml del repository sostituiscono quelle del gruppo.

Per il comportamento e le eccezioni di impostazione specifici, consulta lo schema config.yaml.

I passaggi seguenti mostrano come controllare un insieme di configurazioni in più repository. Questi passaggi presuppongono che tu abbia già configurato Gemini Code Assist su GitHub.

Consumer

  1. In Gemini Code Assist, vai alla pagina delle impostazioni.

    Vai alle impostazioni

  2. Se richiesto, fai clic su Accedi con GitHub e segui le istruzioni per accedere a GitHub da Gemini Code Assist.

  3. Nella pagina Gemini, seleziona l'account che vuoi utilizzare, esamina i termini di servizio e fai clic su Continua.

  4. Nella pagina Free agent, aggiorna le impostazioni in base alle esigenze.

  5. Fai clic su Salva.

Enterprise

  1. Nella console Google Cloud, vai alla pagina Agenti e strumenti di Gemini Code Assist.

    Vai ad Agenti e strumenti

  2. Nella sezione Agenti, individua la scheda Gestione del codice sorgente di Code Assist e fai clic su Avanzate.

    Viene visualizzato il riquadro Modifica Code Assist per la gestione del codice sorgente.

  3. Nella tabella Connessioni, fai clic sul nome della connessione a cui vuoi applicare una configurazione.

    Viene visualizzata la pagina dei dettagli della connessione.

  4. Nella scheda Impostazioni, aggiorna le impostazioni che vuoi modificare.

  5. Fai clic su Salva.

Passaggi successivi