Conceitos GitLab Duo - Amazon Q Developer

Conceitos GitLab Duo

Confira a seguir alguns conceitos e termos que você precisa conhecer ao usar o GitLab Duo com Amazon Q.

Configurar o GitLab Duo com Amazon Q

Antes de usar os recursos de inteligência artificial (IA) do Amazon Q no GitLab Duo, você precisa preencher os pré-requisitos e criar recursos da AWS. Para obter mais informações, consulte Set up GitLab Duo with Amazon Q na documentação do GitLab.

Integrar com recursos e políticas de permissão da AWS

Como parte do processo de integração do GitLab Duo, você precisa criar um perfil no Amazon Q Developer por meio do console do Amazon Q Developer. O perfil permite que você crie configurações de personalização e controle para todos ou um subconjunto de usuários em seu provedor de identidade. Após criar um perfil, você precisará de um provedor de identidades (IdP) OpenID Connect (OIDC), bem como de um perfil de serviço do IAM, para estabelecer confiança entre o GitLab Duo e sua conta da AWS. Para saber como criar os recursos necessários e configurar o GitLab Duo com Amazon Q, consulte Set up GitLab Duo with Amazon Q na documentação do GitLab.

Quando o novo perfil do IAM é criado, a política de confiança necessária com as permissões necessárias também é criada. Uma política de confiança da função é uma política com base em recurso necessária anexada a uma função no IAM.

Você precisa adicionar uma política de permissões, que permite a conexão com o Amazon Q e a utilização dos recursos na integração do GitLab Duo com Amazon Q. A política deve ser adicionada ao criar o perfil do IAM. Para saber mais sobre as permissões fornecidas pela política de permissões, consulte GitLabDuoWithAmazonQPermissionsPolicy.

Você também pode criar uma política em linha e adicionar as permissões necessárias. Você pode optar por criar uma política em linha se quiser personalizar o controle de acesso. Para obter mais informações, consulte Políticas gerenciadas e em linha e Políticas e permissões no AWS Identity and Access Management no Guia do usuário do IAM.

Política de confiança

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}}" } } } ] }

Política de permissões

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/*" } ] }

Opcionalmente, você também pode usar chaves gerenciadas pelo cliente (CMK) para criptografar seus recursos se quiser controle total sobre o ciclo de vida e o uso de sua chave. A chave de condição kms:ViaService permite limitar quem pode usar a CMK para criptografar e descriptografar conteúdo. Para obter mais informações, consulte Gerenciar o acesso ao Amazon Q Developer para integração com terceiros.

Ações rápidas do GitLab

Quando invocadas, as ações rápidas executam tarefas para você nos problemas do GitLab e nas solicitações de mesclagem. Para saber como invocar ações rápidas no GitLab, consulte a documentação do GitLab.

Geração e iteração de solicitações de mesclagem

  • /q dev: permite que você passe de uma ideia de alto nível capturada em um problema do GitLab para a geração de uma solicitação de mesclagem pronta para revisão pelo Amazon Q com a implementação de código proposta. Isso ajuda a otimizar o processo de transformar conceitos em código funcional. A solicitação de mesclagem é criada em uma nova ramificação e o Amazon Q atribui o criador do problema como revisor da solicitação de mesclagem. Você também recebe um resumo da solicitação de mesclagem. Para obter mais informações, consulte Turn an idea into a merge request.

  • /q dev (revise): permite que você itere a implementação de código proposta fornecida pelo Amazon Q em vez de começar de novo com base em um problema. O Amazon Q revisa seu feedback e faz atualizações no código gerado originalmente. Você também recebe mensagens de confirmação para cada alteração feita. A descrição após cada iteração é atualizada e um comentário descrevendo o feedback é incorporado à iteração. Em seguida, você pode revisar e mesclar as sugestões ao seu código. Para obter mais informações, consulte Make code changes based on feedback.

Transformação de código

  • /q transform: permite iniciar o processo de atualização do projeto Java Maven 8 ou Java Maven 11 para Java Maven 17. Com base em um problema do GitLab, o Amazon Q analisa o código para determinar as atualizações ou modernizações necessárias do Java, atualiza o problema, abre automaticamente uma nova solicitação de mesclagem com as alterações propostas e designa o criador do problema como revisor. Você precisa de uma configuração do GitLab Runner para compilar, e ela precisa ser personalizada para transformação de código. Para obter mais informações, consulte Personalizar um pipeline de CI/CD para transformação de código e Upgrade Java.

    nota

    A versão de origem de um projeto Maven precisa ser identificada antes que você possa transformar o código, portanto, as configurações do compilador precisam ser definidas em um arquivo pom.xml. Portanto, seu arquivo pom.xml deve ter uma origem e um destino.

Geração de teste de unidade

  • /q test: permite que você gere testes de unidade para novas linhas adicionadas de código-fonte na solicitação de mesclagem. O Amazon Q comenta com sugestões de testes de unidade que podem ser adicionados ao arquivo de teste. Você pode aplicar os testes gerados de uma só vez ou revisar cada teste individualmente antes de aplicar. Se um arquivo de teste não for encontrado na solicitação de mesclagem, o Amazon Q fornecerá os testes de unidade que você poderá adicionar manualmente a um arquivo de teste. Para obter mais informações, consulte Create test coverage.

Revisão de código

  • /q review: permite que você inicie uma revisão de solicitação de mesclagem no GitLab Duo com Amazon Q. Uma revisão automática de código é iniciada para novas solicitações de mesclagem. Como administrador do GitLab, você também pode configurar o Amazon Q para desativar as revisões automáticas. As revisões automatizadas de código identificam e corrigem possíveis problemas à medida que o Amazon Q gera e sugere correções de código para a solicitação de mesclagem. Elas fornecem verificações de qualidade, analisando problemas, erros lógicos, antipadrões, duplicação de código e muito mais.

    O Amazon Q oferece análise de código com comentários, com cada comentário fornecendo uma descoberta separada. Essa ação rápida está disponível para todos os idiomas. As revisões automáticas de código são iniciadas quando você abre novas solicitações de mesclagem ou reabre as fechadas anteriormente. No entanto, as revisões automáticas de código não serão acionadas por confirmações subsequentes feitas em uma solicitação de mesclagem existente. É possível acionar manualmente uma revisão de código usando a ação rápida /q review.

    Você pode configurar as revisões de código para serem executadas automaticamente em cada nova solicitação de mesclagem na sua instância ou grupo do GitLab. Para obter mais informações, Review a merge request.

Sessão de chat na IU da web e em IDEs

  • O GitLab Duo Chat e o GitLab Duo Code Suggestions trabalham com o Amazon Q para fornecer suporte para configuração de CI/CD, explicações de erros e respostas a perguntas. Você pode usar comandos de barra em uma sessão de chat para invocar os recursos de chat do GitLab Duo com Amazon Q. Para obter mais informações, consulte Ask GitLab Duo Chat.