Concepts GitLab Duo - Amazon Q Developer

Concepts GitLab Duo

Voici quelques concepts et termes à connaître lors de l’utilisation de GitLab Duo avec Amazon Q.

Configuration de GitLab Duo avec Amazon Q

Avant de pouvoir utiliser les capacités d’intelligence artificielle (IA) d’Amazon Q dans GitLab Duo, vous devez remplir les conditions préalables et créer des ressources AWS. Pour plus d’informations, consultez Set up GitLab Duo with Amazon Q dans la documentation GitLab.

Intégration avec les ressources et les politiques d’autorisation AWS

Dans le cadre du processus d’intégration de GitLab Duo, vous devez créer un profil Amazon Q Developer via la console Amazon Q Developer. Ce profil vous permet de créer des paramètres de personnalisation et de contrôle pour tous les utilisateurs ou pour un sous-ensemble d’utilisateurs de votre fournisseur d’identité. Après avoir créé un profil, vous avez besoin d’un fournisseur d’identité (IdP) OpenID Connect (OIDC), ainsi que d’un rôle de service IAM, pour établir une relation de confiance entre GitLab Duo et votre compte AWS. Pour découvrir comment créer les ressources requises et configurer GitLab Duo avec Amazon Q, consultez Set up GitLab Duo with Amazon Q dans la documentation GitLab.

Lorsque le nouveau rôle IAM est créé, la politique de confiance requise avec les autorisations nécessaires est également créée. Une politique d’approbation de rôle est une politique basée sur les ressources requise qui est attachée à un rôle dans IAM.

Vous devez ajouter une politique d’autorisation permettant de vous connecter à Amazon Q et d’utiliser les fonctionnalités dans l’intégration de GitLab Duo avec Amazon Q. La politique doit être ajoutée lors de la création du rôle IAM. Pour en savoir plus sur les autorisations fournies par la politique d’autorisation, consultez GitLabDuoWithAmazonQPermissionsPolicy.

Vous pouvez également créer une politique intégrée et ajouter les autorisations requises. Vous pouvez choisir de créer une politique intégrée si vous souhaitez personnaliser le contrôle d’accès. Pour plus d’informations, consultez Politiques gérées et politiques en ligne et Policies and permissions in AWS Identity and Access Management dans le Guide de l’utilisateur IAM.

Politique d’approbation

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithWebIdentity", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/auth.token.gitlab.com/cc/oidc/{{Instance_ID}}" }, "Condition": { "StringEquals": { "auth.token.gitlab.com/cc/oidc/{{Instance_ID}}:aud": "gitlab-cc-{{Instance_ID}}" } } } ] }

Politique d’autorisations

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GitLabDuoUsagePermissions", "Effect": "Allow", "Action": [ "q:SendEvent", "q:CreateAuthGrant", "q:UpdateAuthGrant", "q:GenerateCodeRecommendations", "q:SendMessage", "q:ListPlugins", "q:VerifyOAuthAppConnection" ], "Resource": "*" }, { "Sid": "GitLabDuoManagementPermissions", "Effect": "Allow", "Action": [ "q:CreateOAuthAppConnection", "q:DeleteOAuthAppConnection" ], "Resource": "*" }, { "Sid": "GitLabDuoPluginPermissions", "Effect": "Allow", "Action": [ "q:CreatePlugin", "q:DeletePlugin", "q:GetPlugin" ], "Resource": "arn:aws:qdeveloper:*:*:plugin/GitLabDuoWithAmazonQ/*" } ] }

De façon facultative, vous pouvez également utiliser des clés gérées par le client (CMK) pour chiffrer vos ressources si vous souhaitez contrôler totalement le cycle de vie et l’utilisation de votre clé. Clé de condition kms:ViaService permettant de limiter le nombre de personnes autorisées à utiliser CMK pour chiffrer et déchiffrer le contenu. Pour plus d’informations, consultez Gestion de l’accès à Amazon Q Developer pour l’intégration à des tiers.

Actions rapides de GitLab

Lorsqu’elles sont invoquées, les actions rapides exécutent pour vous des tâches liées aux problèmes et aux demandes de fusion de GitLab. Pour découvrir comment invoquer des actions rapides dans GitLab, consultez la documentation de GitLab.

Génération et itération des demandes de fusion

  • /q dev : vous permet de passer d’une idée de haut niveau capturée dans un problème de GitLab à celle de demander à Amazon Q de générer une demande de fusion prête à être révisée avec l’implémentation du code proposée. Cela permet de rationaliser le processus de transformation des concepts en code fonctionnel. La demande de fusion est créée dans une nouvelle branche et Amazon Q désigne le créateur du problème comme réviseur de la demande de fusion. Un résumé de la demande de fusion vous est également fourni. Pour plus d’informations, consultez Turn an idea into a merge request.

  • /q dev (révision) : vous permet d’itérer sur l’implémentation de code proposée par Amazon Q plutôt que de recommencer à zéro à partir d’un problème. Amazon Q examine vos commentaires et met à jour le code généré à l’origine. Vous recevez également des messages de validation pour chaque modification apportée. La description qui suit chaque itération est mise à jour et un commentaire décrivant le feedback est intégré à l’itération. Vous pouvez ensuite réviser et fusionner les suggestions avec votre code. Pour plus d’informations, consultez Make code changes based on feedback.

Transformation de code

  • /q transform : vous permet de lancer le processus de mise à niveau du projet Java Maven 8 ou Java Maven 11 vers Java Maven 17. En partant d’un problème avec GitLab, Amazon Q analyse le code pour déterminer les mises à niveau ou la modernisation de Java nécessaires, met à jour le problème, ouvre automatiquement une nouvelle demande de fusion avec les modifications proposées et désigne le créateur du problème en tant que réviseur. Vous avez besoin d’une configuration GitLab Runner pour créer, et elle doit être personnalisée pour la transformation du code. Pour plus d’informations, consultez Personnalisation d’un pipeline CI/CD pour la transformation du code et Upgrade Java.

    Note

    La version source d’un projet Maven doit être identifiée avant que vous puissiez transformer votre code. Les paramètres de votre compilateur doivent donc être définis dans un fichier pom.xml. Par conséquent, votre fichier pom.xml doit avoir une source et une cible.

Génération de tests unitaires

  • /q test : vous permet de générer des tests unitaires pour les nouvelles lignes de code source ajoutées dans votre demande de fusion. Amazon Q commente avec des suggestions de tests unitaires qui peuvent être ajoutées à votre fichier de test. Vous pouvez appliquer les tests générés en une seule fois ou réviser chaque test individuellement avant de postuler. Si aucun fichier de test n’est trouvé dans la demande de fusion, Amazon Q fournit les tests unitaires que vous pouvez ajouter manuellement à un fichier de test. Pour plus d’informations, consultez Create test coverage.

Révision du code

  • /q review : vous permet de lancer une révision de demande de fusion dans GitLab Duo avec Amazon Q. Une révision automatique du code est lancée pour les nouvelles demandes de fusion. En tant qu’administrateur GitLab, vous pouvez également configurer Amazon Q pour désactiver les révisions automatiques. Les révisions de code automatisées identifient et corrigent les problèmes potentiels au fur et à mesure qu’Amazon Q génère et suggère des corrections de code pour votre demande de fusion. Elles fournissent des contrôles de qualité, analysent les problèmes, les erreurs logiques, les anti-modèles, la duplication de code, etc.

    Amazon Q propose une analyse du code avec des commentaires, chacun d’entre eux fournissant un résultat distinct. Cette action rapide est disponible dans toutes les langues. Les révisions automatiques du code sont lancées lorsque vous ouvrez de nouvelles demandes de fusion ou si vous rouvrez des demandes précédemment clôturées. Toutefois, les révisions automatiques du code ne seront pas déclenchées par les validations ultérieures effectuées dans le cadre d’une demande de fusion existante. Vous pouvez déclencher manuellement une révision du code en utilisant l’action rapide /q review.

    Vous pouvez configurer les révisions de code de façon à ce qu’elles s’exécutent automatiquement à chaque nouvelle demande de fusion au sein de votre instance ou de votre groupe GitLab. Pour plus d’informations, consultez Review a merge request.

Session de chat dans l’interface utilisateur Web et les IDE

  • Le chat GitLab Duo et les suggestions de code fonctionnent avec Amazon Q pour fournir une assistance en matière de configuration CI/CD, d’explication des erreurs et de réponse aux questions. Vous pouvez utiliser des commandes slash dans une session de chat pour invoquer les fonctionnalités de chat de GitLab Duo avec Amazon Q. Pour plus d’informations, consultez Ask GitLab Duo Chat.