GitLab Duo 概念 - Amazon Q 开发者版

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GitLab Duo 概念

使用 GitLab Duo with Amazon Q 时,需了解以下概念和术语。

配置 GitLab Duo with Amazon Q

要在 GitLab Duo 中使用 Amazon Q 的人工智能(AI)功能,需先完成先决条件并创建 AWS 资源。有关更多信息,请参阅GitLab 文档中的GitLab Duo使用 Amazon Q 进行设置

使用 AWS 资源和权限策略进行入门

在 GitLab Duo 入驻流程中,需通过 Amazon Q 开发者版控制台创建 Amazon Q 开发者版配置文件。该配置文件可用于为身份提供商中的所有用户或部分用户创建自定义设置并控制相关配置。创建个人资料后,您需要一个 OpenID Connect (OIDC) 身份提供商 (IdP) 以及一个 IAM 服务角色来建立与您的账户之间的信任。GitLab Duo AWS 要了解如何创建所需资源并GitLab Duo使用 Amazon Q 进行设置,请参阅GitLab 文档中的GitLab Duo使用 Amazon Q 进行设置

创建新 IAM 角色时,系统会同时创建包含必要权限的必填信任策略。角色信任策略是附加在 IAM 角色上的必填基于资源的策略

需添加一条权限策略,用于授予连接 Amazon Q 及使用 GitLab Duo with Amazon Q 功能的权限。创建 IAM 角色时必须添加该策略。要了解该权限策略提供的具体权限,请参阅 GitLabDuoWithAmazonQPermissions政策

此外,您也可以创建内联策略并添加所需权限。若需自定义访问控制,可选择创建内联策略。有关更多信息,请参阅《IAM 用户指南》中的托管策略与内联策略AWS 身份与访问管理中的策略与权限

信任策略

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

权限策略

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

或者,如果您希望完全控制密钥的生命周期和使用,也可使用客户托管密钥(CMK)对资源进行加密。可通过 kms:ViaService 条件密钥限制谁能使用 CMK 进行内容加密和解密。有关更多信息,请参阅 管理对 Amazon Q 开发者版的访问权限以进行第三方集成

GitLab 快速行动

调用时,快速操作会为您执行 GitLab 议题和合并请求中的任务。要了解如何在中调用快速操作 GitLab,请参阅GitLab 文档

合并请求生成与迭代

  • /q dev— 允许您从 GitLab 问题中捕捉到的高级想法转变为让 Amazon Q 使用建议的代码实现生成 ready-to-review合并请求。这有助于简化从概念到可运行代码的流程。合并请求会在新分支中创建,且 Amazon Q 会将问题创建者指定为合并请求审查者,同时还会为您提供合并请求摘要。有关更多信息,请参阅将想法转化为合并请求

  • /q dev(revise):无需从问题重新开始,可直接基于 Amazon Q 提出的代码实现方案进行迭代。Amazon Q 会审查您的反馈,并对最初生成的代码进行更新,同时还会为每处修改提供提交信息。每次迭代后的描述会更新,且反馈相关说明会整合到迭代过程中。之后您可审查并将建议合并到代码中。有关更多信息,请参阅基于反馈修改代码

代码转换

  • /q transform:可启动将 Java Maven 8 或 Java Maven 11 项目升级至 Java Maven 17 的流程。从 GitLab 问题开始,Amazon Q 会分析代码以确定必要的 Java 升级或现代化,更新问题,自动打开包含提议更改的新合并请求,并将问题创建者指定为审阅者。你需要一个 GitLab Runner 设置来构建,并且需要对其进行自定义以进行代码转换。有关更多信息,请参阅自定义用于代码转换的 CI/CD 管道升级 Java 版本

    注意

    在转换代码前,需先确定 Maven 项目的源版本,因此需在 pom.xml 文件中设置编译器配置。也就是说,您的 pom.xml 文件必须包含 source 和 target 配置

单元测试生成

  • /q test:可为合并请求中新添加的源代码行生成单元测试。Amazon Q 会通过评论提供单元测试建议,您可将这些建议添加到测试文件中。既可一次性应用所有生成的测试,也可先逐一审查再应用。若在合并请求中未找到测试文件,Amazon Q 会提供单元测试代码,您可手动将其添加到测试文件中。有关更多信息,请参阅创建测试覆盖率

代码审查

  • /q review:可在 GitLab Duo with Amazon Q 中启动合并请求审查。新合并请求会自动触发代码审查。作为 GitLab 管理员,您还可以将 Amazon Q 配置为关闭自动审核。自动化代码审查会识别潜在问题并提供修复方案,Amazon Q 会生成代码修复建议并添加到您的合并请求中,同时执行质量检查,分析问题、逻辑错误、反模式、代码重复等内容。

    Amazon Q 会通过评论提供代码分析结果,每条评论对应一项单独的调查发现。该快捷操作支持所有编程语言。打开新合并请求或重新打开之前关闭的合并请求时,会自动启动代码审查;但现有合并请求中后续提交的代码不会触发自动审查,您可通过 /q review 快捷操作手动触发。

    您可以将代码审查配置为在 GitLab 实例或组中的每个新合并请求上自动运行。有关更多信息,请参阅审查合并请求

Web 用户界面中的聊天会话和 IDEs

  • GitLab Duo Chat 和 Code Sugements 与 Amazon Q 配合使用,为 CI/CD 配置、错误解释和问题解决提供支持。您可以在聊天会话中使用斜杠命令调用具有 Amazon Q 聊天功能的 GitLab Duo。有关更多信息,请参阅 As k GitLab Duo Chat