Ce document explique comment configurer Personnalisation du code dans Gemini Code Assist en connectant Gemini Code Assist à vos dépôts de code privés. Cette fonctionnalité vous permet de recevoir des recommandations de code, qui s'appuient sur les bibliothèques internes, les API privées et le style de codage de votre organisation.
Avant de commencer
- Contactez votre conseiller commercial pour accéder à la personnalisation du code Gemini Code Assist.
- Configurer Gemini Code Assist
- Créez ou configurez des comptes d'utilisateurs finaux. Tous les développeurs de votre organisation qui utilise Gemini Code Assist doit avoir une identité d'utilisateur dans Google Cloud autorisé à accéder à votre projet Google Cloud. Pour en savoir plus, consultez Attribuer des rôles dans la console Google Cloud. Assurez-vous que chaque utilisateur dispose des rôles suivants:
Configurez Developer Connect. Ensuite, connectez-vous à votre dépôt GitHub.com ou GitLab.com:
En outre, notez que la personnalisation du code n'est compatible qu'avec les connexions Developer Connect dans les régions suivantes :
us-central1
europe-west1
asia-southeast1
Dans un environnement shell, exécutez la commande
gcloud components update
pour vous assurer que vous avez mis à jour tous les composants installés de la gcloud CLI vers la dernière version. Pour cette étape, vous pouvez installer et initialiser gcloud CLI ou utiliser Cloud Shell.gcloud components update
Choisir les dépôts privés à connecter
Nous vous recommandons de connecter les dépôts suivants :
- Utilisez un code dont le style ou la structure est semblable à celui que vous souhaitez développeurs à écrire.
- Vous disposez de bibliothèques ou d'API privées que vous souhaitez appeler à partir de votre base de code actuelle.
(Facultatif) Sélectionner les fichiers à ne pas indexer
Par défaut, la personnalisation du code indexe tous les fichiers de code compatibles dans les dépôts que vous avez spécifiés.Dans de nombreux cas, vous pouvez avoir des fichiers ou des sous-arbres spécifiques que vous ne souhaitez pas indexer. Exemple :
- Informations hautement sensibles avec un accès limité au sein de votre organisation
- Code ancien ou obsolète
- Code généré automatiquement ou temporaire
Pour éviter l'exposition du code que vous ne souhaitez pas indexer, vous pouvez utiliser une branche
des modèles pour
contrôler l'accès à votre index
et utilisez une branche stable, telle que main
.
Vous pouvez également exclure des fichiers de l'index en
en créant un fichier .aiexclude
.
Créer un index
La personnalisation du code s'appuie sur un indice pour analyser et analyser votre dépôt afin d'obtenir des suggestions et des recherches de génération de code plus rapides.
Pour créer l'index, dans un environnement shell, utilisez la commande gemini code-repository-indexes create
:
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
Remplacez les éléments suivants :
INDEX_NAME
: nom de votre index.PROJECT_ID
: ID de votre projet Google Cloud.REGION
: région disponible, comme indiqué dans les Avant de commencer de cette page, vous avez configurés dans Developer Connect dans votre compte Google Cloud projet.
La création d'un index prend généralement 30 minutes, mais peut prendre jusqu'à une heure.
Google limite le nombre d'indices de dépôt de code à un par projet et par organisation. Si vous avez besoin d'index de dépôt de code supplémentaires, vous pouvez demander un quota plus élevé.
Contrôler l'accès à votre index à l'aide de groupes de dépôts
Pour créer un groupe de dépôts dans un environnement shell, utilisez la commande gemini code-repository-indexes repository-groups create
:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "BRANCH_NAMES"}]'
Remplacez les éléments suivants :
REPOSITORY_GROUP
: nom du groupe de dépôts, par exempledefault
.PROJECT_ID
: ID de votre projet Google Cloud.REGION
: région disponible, comme indiqué dans les Avant de commencer de cette page, vous avez que vous avez configurées dans Developer Connect dans votre compte Google Cloud projet.INDEX_NAME
: nom de l'index que vous avez créé dans un l'étape précédente pour créer un index.REPOSITORY_RESOURCE_NAME
: nom du dépôt dans la connexion Developer Connect. Pour trouver le nom du dépôt, accédez à la page Developer Connect (Developer Connect) dans la console Google Cloud, puis dans l'onglet Repositories (Dépôts), recherchez l'ID de connexion sous la colonne Connection (Connexion) du tableau. Pour copier le nom de la ressource, cliquez sur more_vert pour afficher plus d'options ; sélectionnez Copier le chemin d'accès à la ressource.BRANCH_NAMES
: nom des branches que vous souhaitez indexer, commemain|dev
.
Vous pouvez également créer un groupe de dépôts définis dans un fichier JSON (ou YAML) au format suivant:
JSON
[
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "main|dev"
},
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "dev"
}
]
YAML
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: main|dev
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: dev
Pour créer un groupe de dépôts basé sur un fichier JSON ou YAML, dans un environnement shell, utilisez la commande gemini code-repository-indexes repository-groups create
:
JSON
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.json
YAML
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.yaml
Attribuer un rôle IAM au groupe de dépôt d'un projet
Vous ne recevez que des suggestions provenant des dépôts de l'index. Chaque dépôt
appartient à un ou plusieurs groupes de dépôts. Pour accéder aux suggestions, vous devez attribuer le rôle IAM "Utilisateur des groupes de dépôts Cloud AI Companion" (roles/cloudaicompanion.repositoryGroupsUser
), qui contient l'autorisation IAM cloudaicompanion.repositoryGroups.user
requise, au groupe de dépôts de l'une des manières suivantes :
- Accordez aux principaux l'autorisation d'accéder à l'intégralité de l'index.
- Accordez aux comptes principaux l'accès à un sous-ensemble de l'index.
Accorder aux principaux l'autorisation d'accéder à l'ensemble de l'index
Pour lier une stratégie IAM à un projet dans un environnement shell, utilisez la commande
projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='PRINCIPAL' \ --role='roles/cloudaicompanion.repositoryGroupsUser'
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel se trouve le groupe de dépôts.PRINCIPAL
: adresse e-mail du compte principal nécessitant un accès, par exemple,user:test-user@gmail.com
pour une personne, ougroup:admins@example.com
pour un groupe.
Pour en savoir plus, consultez les sections sur
gcloud projects set-iam-policy
Lorsque vous êtes invité à spécifier une condition, saisissez
None
.
Accorder aux comptes principaux l'accès à un sous-ensemble de l'index
Vous pouvez créer plusieurs groupes de dépôts et attribuer des rôles IAM à différents comptes principaux IAM.
Pour configurer une stratégie IAM, vous devez préparer le fichier JSON ou YAML de la stratégie IAM, qui contiendra une liste des groupes IAM et des rôles attribués. Exemple :
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
Pour en savoir plus sur la syntaxe, consultez la section Comprendre les stratégies d'autorisation.
Pour définir la stratégie IAM dans un environnement de shell, utilisez la
Commande gemini code-repository-indexes repository-groups set-iam-policy
:
gcloud gemini code-repository-indexes repository-groups set-iam-policy GROUP_NAMEPOLICY_FILE \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME
Remplacez les éléments suivants :
GROUP_NAME
: nom du groupe de dépôts que vous avez créé dans un étape précédente pour contrôler l'accès à votre index à l'aide de groupes de dépôts.POLICY_FILE
: stratégie IAMREGION
: région compatible, comme indiqué dans la section Avant de commencer de cette page, que vous avez configurée dans Developer Connect dans votre projet Google Cloud.INDEX_NAME
: nom de l'index que vous avez créé à l'étape précédente pour créer un index.Pour en savoir plus, consultez les sections sur
gcloud gemini code-repository-indexes repository-groups set-iam-policy
Vérifier l'état de l'indexation
En fonction du nombre de dépôts que vous souhaitez indexer et de leurs l'indexation du contenu peut prendre jusqu'à 24 heures. Pour les dépôts volumineux, l'indexation peut prendre plus de temps. L'indexation a lieu toutes les 24 heures, en repérant toutes les modifications créés dans le dépôt.
Dans la console Google Cloud, accédez à Explorateur de journaux :
Utilisez le filtre des noms de journaux pour afficher les journaux
indexing
ou recherchez l'indexation en exécutant la commande suivante:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing""
Remplacez
PROJECT_ID
par l'ID du projet dans lequel se trouve le groupe de dépôts.Par exemple, pour afficher les erreurs dans les journaux
indexing
, exécutez la commande suivante :gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
Pour en savoir plus, consultez Langage de requête Logging
Examinez les états d'indexation associés, tels que les suivants:
- Début de l'indexation du dépôt (par exemple,
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
) - Fin de l'indexation de chaque dépôt (par exemple) :
- Opération réussie :
Successfully finished indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 7, failed: 0.
- Échec :
Failed to index repository REPOSITORY_NAME. Error: [<error message>]. Total number of repositories: 10, succeeded: 7, failed: 1.
- Opération réussie :
- Fin de l'indexation du dépôt, par exemple:
- Opération réussie :
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 0.
- Échec:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 1. Repositories that were not successfully fetched will be retried in the next run.
- Opération réussie :
Dans les états d'index,
REPOSITORY_NAME
correspond au dépôt que vous souhaitez examiner.- Début de l'indexation du dépôt (par exemple,
Examinez les erreurs d'indexation associées, par exemple :
- Échec de la récupération du dépôt.
- Échec de la création de la liste des fichiers du dépôt.
- Échec de la récupération des informations du dépôt à partir de l'index.
- Échec de la récupération des fichiers à partir de l'index.
- Erreur interne.
Utiliser la personnalisation du code
Une fois que vous avez configuré la personnalisation du code, les utilisateurs commencent à voir le code suggestions de saisie semi-automatique et de génération de code, qui peuvent être basées sur du code privé que vous avez indexés en plus des résultats de la découverte du codebase complet.
Désactiver la personnalisation du code
Pour répertorier tous les groupes de dépôts de l'index actuel dans un environnement shell, utilisez la commande
gemini code-repository-indexes repository-groups list
:gcloud gemini code-repository-indexes repository-groups list --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME --uri
Remplacez les éléments suivants :
REGION
: région disponible, comme indiqué dans les Avant de commencer de cette page, que que vous avez configurée dans Developer Connect dans votre projet Google Cloud.PROJECT_ID
: ID de votre projet Google Cloud.INDEX_NAME
: nom de l'index que vous avez créé à l'étape précédente pour créer un index.
Pour supprimer un groupe de dépôts de l'index actuel, utilisez la commande
gemini code-repository-indexes repository-groups delete
:gcloud gemini code-repository-indexes repository-groups delete REPOSITORY_GROUP \ --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME
Répétez l'étape 3 pour chaque groupe de dépôts jusqu'à ce que vous supprimiez tout le dépôt. des groupes de l'index.
Facultatif: Pour supprimer l'index, dans un environnement de shell, utilisez la Commande
gemini code-repository-indexes delete
:gcloud gemini code-repository-indexes delete INDEX_NAME \ --location=REGION \ --project=PROJECT_ID
Étape suivante
- Commencez à utiliser Gemini Code Assist :
- VS Code: Coder avec Gemini Code Assist
- IntelliJ: coder avec Gemini Code Assist
- Éditeur Cloud Shell: Coder avec Gemini Code Assist
- Cloud Workstations : coder avec Gemini Code Assist
- En savoir plus sur Developer Connect
- Découvrez comment et quand Gemini pour Google Cloud utilise vos données.