

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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>

您必須先完成先決條件並建立 AWS 資源，才能在 GitLab Duo 中使用 Amazon Q 人工智慧 (AI) 功能。如需詳細資訊，請參閱 *GitLab 文件*中的[設定 GitLab Duo with Amazon Q](https://docs.gitlab.com/ee/user/duo_amazon_q/setup.html)。

## 使用 AWS 資源和許可政策加入
<a name="gitlab-concepts-onboarding"></a>

在 GitLab Duo 上線過程中，您需要透過 [Amazon Q Developer 主控台](https://console.aws.amazon.com/amazonq/developer/home)建立 Amazon Q Developer 設定檔。設定檔可讓您為身分提供者中的所有或一部分使用者建立自訂和控制設定。建立設定檔後，您需要 OpenID Connect (OIDC) 身分提供者 (IdP) 以及 IAM 服務角色，才能在 GitLab Duo和 AWS 您的帳戶之間建立信任。若要了解如何建立所需的資源並設定 GitLab Duo with Amazon Q，請參閱 *GitLab 文件*中的[設定 GitLab Duo with 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 角色時，必須新增政策。若要進一步了解許可政策提供的許可，請參閱 [GitLabDuoWithAmazonQPermissionsPolicy](managed-policy.md#amazonq-policy-GitLabDuoWithAmazonQPermissionsPolicy)。

或者，您可以建立內嵌政策並新增必要的許可。如果您想要自訂存取控制，可以選擇建立內嵌政策。如需詳細資訊，請參閱《IAM 使用者指南》**中的[受管政策和內嵌政策](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_managed-vs-inline.html)及 [AWS Identity and Access Management 中的政策和許可](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 Developer 的存取權以進行第三方整合](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 使用建議的程式碼實作產生就緒可檢閱的合併請求。這有助於簡化將概念轉化成可行程式碼的程序。合併請求會在新分支中建立，而 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 UI 和 IDE 中的聊天工作階段**
+ GitLab Duo Chat and Code Suggestions 可搭配 Amazon Q 運作，以支援 CI/CD 組態、錯誤說明和解決問題。您可以在聊天工作階段中使用斜線命令，以調用 GitLab Duo with Amazon Q 聊天功能叫。如需詳細資訊，請參閱[詢問 GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/examples/)。