

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

# GitLab Duo 概念
<a name="gitlab-concepts"></a>

使用 [GitLab Duo with Amazon Q](https://docs.gitlab.com/ee/user/duo_amazon_q/) 时，需了解以下概念和术语。

**Topics**
+ [配置 GitLab Duo with Amazon Q](#gitlab-concepts-set-up)
+ [使用 AWS 资源和权限策略进行入门](#gitlab-concepts-onboarding)
+ [GitLab 快速行动](#gitlab-concepts-quick-actions)

## 配置 GitLab Duo with Amazon Q
<a name="gitlab-concepts-set-up"></a>

要在 GitLab Duo 中使用 Amazon Q 的人工智能（AI）功能，需先完成先决条件并创建 AWS 资源。有关更多信息，请参阅*GitLab 文档*中的[GitLab Duo使用 Amazon Q 进行设置](https://docs.gitlab.com/ee/user/duo_amazon_q/setup.html)。

## 使用 AWS 资源和权限策略进行入门
<a name="gitlab-concepts-onboarding"></a>

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

创建新 IAM 角色时，系统会同时创建包含必要权限的必填信任策略。角色信任策略是附加在 IAM 角色上的必填[基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)。

需添加一条权限策略，用于授予连接 Amazon Q 及使用 GitLab Duo with Amazon Q 功能的权限。创建 IAM 角色时必须添加该策略。要了解该权限策略提供的具体权限，请参阅 [GitLabDuoWithAmazonQPermissions政策](managed-policy.md#amazonq-policy-GitLabDuoWithAmazonQPermissionsPolicy)。

此外，您也可以创建内联策略并添加所需权限。若需自定义访问控制，可选择创建内联策略。有关更多信息，请参阅《IAM 用户指南》**中的[托管策略与内联策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_managed-vs-inline.html)和 [AWS 身份与访问管理中的策略与权限](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies.html)。

**信任策略**

------
#### [ 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 开发者版的访问权限以进行第三方集成](security_iam_manage-access-with-kms-policies.md)。

## GitLab 快速行动
<a name="gitlab-concepts-quick-actions"></a>

调用时，快速操作会为您执行 GitLab 议题和合并请求中的任务。要了解如何在中调用快速操作 GitLab，请参阅[GitLab 文档](https://docs.gitlab.com/ee/user/duo_amazon_q/index.html)。

**合并请求生成与迭代**
+ `/q dev`— 允许您从 GitLab 问题中捕捉到的高级想法转变为让 Amazon Q 使用建议的代码实现生成 ready-to-review合并请求。这有助于简化从概念到可运行代码的流程。合并请求会在新分支中创建，且 Amazon Q 会将问题创建者指定为合并请求审查者，同时还会为您提供合并请求摘要。有关更多信息，请参阅[将想法转化为合并请求](https://docs.gitlab.com/ee/user/duo_amazon_q/#turn-an-idea-into-a-merge-request)。

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

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

  您可以将代码审查配置为在 GitLab 实例或组中的每个新合并请求上自动运行。有关更多信息，请参阅[审查合并请求](https://docs.gitlab.com/ee/user/duo_amazon_q/#review-a-merge-request)。

**Web 用户界面中的聊天会话和 IDEs**
+ GitLab Duo Chat 和 Code Sugements 与 Amazon Q 配合使用，为 CI/CD 配置、错误解释和问题解决提供支持。您可以在聊天会话中使用斜杠命令调用具有 Amazon Q 聊天功能的 GitLab Duo。有关更多信息，请参阅 As [k GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/examples/)。