

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

# GitLab.com 連線
<a name="connections-gitlab"></a>

連線可讓您授權和建立將第三方供應商與 AWS 資源建立關聯的組態。若要將第三方儲存庫關聯為管道的來源，請使用 連線。

**注意**  
您可以使用另一個 之間的共用連線，而不是在帳戶中建立或使用現有的連線 AWS 帳戶。請參閱 [使用與其他 帳戶共用的連線](connections-shared.md)。

**注意**  
此功能不適用於亞太區域 （香港）、亞太區域 （海德拉巴）、亞太區域 （雅加達）、亞太區域 （墨爾本）、亞太區域 （大阪）、非洲 （開普敦）、中東 （巴林）、中東 （阿拉伯聯合大公國）、歐洲 （西班牙）、歐洲 （蘇黎世）、以色列 （特拉維夫） 或 AWS GovCloud （美國西部） 區域。若要參考其他可用的動作，請參閱 [與 CodePipeline 的產品和服務整合](integrations.md)。如需歐洲 （米蘭） 區域中此動作的考量，請參閱 中的備註[適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)。

若要在 CodePipeline 中新增 GitLab.com 來源動作，您可以選擇：
+ 使用 CodePipeline 主控台**建立管道**精靈或**編輯動作**頁面，選擇 **GitLab** 提供者選項。請參閱 [建立 GitLab.com 的連線 （主控台）](#connections-gitlab-console) 以新增 動作。主控台可協助您建立連線資源。
+ 使用 CLI 向`GitLab`提供者新增`CreateSourceConnection`動作的動作組態，如下所示：
  + 若要建立連線資源，請參閱[建立 GitLab.com (CLI) 的連線](#connections-gitlab-cli)使用 CLI 建立連線資源。
  + 使用 中`CreateSourceConnection`的範例動作組態[適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)來新增動作，如 所示[建立管道 (CLI)](pipelines-create.md#pipelines-create-cli)。

**注意**  
您也可以使用**設定**下的開發人員工具主控台建立連線。請參閱[建立連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

**注意**  
透過在 GitLab.com,您可以授予我們的服務許可，透過存取您的帳戶來處理您的資料，而且您可以隨時解除安裝應用程式來撤銷許可。

開始之前：
+ 您必須已使用 GitLab.com.
**注意**  
連線只能存取用於建立和授權連線之帳戶擁有的儲存庫。
**注意**  
您可以對在 GitLab 中具有**擁有者**角色的儲存庫建立連線，然後該連線可以與具有 CodePipeline 等資源的儲存庫搭配使用。如果是群組中的儲存庫，您不需要為群組擁有者。
+ 若要指定管道的來源，您必須已在 https：//gitlab.com 上建立儲存庫。

**Topics**
+ [建立 GitLab.com 的連線 （主控台）](#connections-gitlab-console)
+ [建立 GitLab.com (CLI) 的連線](#connections-gitlab-cli)

## 建立 GitLab.com 的連線 （主控台）
<a name="connections-gitlab-console"></a>

使用這些步驟來使用 CodePipeline 主控台，在 GitLab 中為您的專案 （儲存庫） 新增連線動作。

**建立或編輯管道**

1. 登入 CodePipeline 主控台。

1. 選擇下列其中一項。
   + 選擇 以建立管道。依照*建立管道*中的步驟完成第一個畫面，然後選擇**下一步**。在**來源**頁面的**來源提供者**下，選擇 **GitLab**。
   + 選擇 以編輯現有的管道。選擇**編輯**，然後選擇**編輯階段**。選擇 以新增或編輯來源動作。在**編輯動作**頁面**的動作名稱**下，輸入動作的名稱。在**動作提供者**中，選擇 **GitLab**。

1. 執行以下任意一項：
   + 在**連線**下，如果您尚未建立與提供者的連線，請選擇**連線至 GitLab**。繼續進行步驟 4 以建立連線。
   + 在**連線**下，如果您已建立與供應商的連線，請選擇連線。繼續步驟 9。
**注意**  
如果您在建立 GitLab.com 連線之前關閉快顯視窗，則需要重新整理頁面。

1. 若要建立與 GitLab.com 儲存庫的連線，請在**選取提供者**下選擇 **GitLab**。在 **Connection name (連線名稱)** 底下，輸入您要建立的連線名稱。選擇**連線至 GitLab**。  
![\[主控台螢幕擷取畫面中顯示針對 GitLab 選擇的連線選項。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/connections-create-gitlab.png)

1. 當 GitLab.com 的登入頁面顯示時，使用您的登入資料登入，然後選擇**登入**。

1. 如果這是您第一次授權連線，則會顯示授權頁面，其中包含請求連線授權以存取 GitLab.com 帳戶的訊息。

   選擇 **Authorize** (授權)。  
![\[顯示訊息的螢幕擷取畫面，以授權 GitLab.com 帳戶的連線。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/gitlab-authorization.png)

1. 瀏覽器會返回連線主控台頁面。新連線會出現在**建立 GitLab 連線**底下的**連線名稱**中。

1. 選擇**連線至 GitLab**。

   您將返回 CodePipeline 主控台。
**注意**  
成功建立 GitLab.com 連線後，主視窗會顯示成功橫幅。  
 如果您先前尚未在目前的機器上登入 GitLab，則需要手動關閉快顯視窗。

1. 在**儲存庫名稱**中，使用 命名空間指定專案路徑，以選擇 GitLab 中的專案名稱。例如，對於群組層級儲存庫，以下列格式輸入儲存庫名稱：`group-name/repository-name`。如需路徑和命名空間的詳細資訊，請參閱 https：//[https://docs.gitlab.com/ee/api/projects.html\$1get-single-project](https://docs.gitlab.com/ee/api/projects.html#get-single-project) 中的 `path_with_namespace` 欄位。如需 GitLab 中命名空間的詳細資訊，請參閱 https：//[https://docs.gitlab.com/ee/user/namespace/](https://docs.gitlab.com/ee/user/namespace/)。
**注意**  
對於 GitLab 中的群組，您必須使用 命名空間手動指定專案路徑。例如，針對群組 `myrepo`中名為 的儲存庫`mygroup`，輸入下列項目：`mygroup/myrepo`。您可以在 GitLab 的 URL 中找到具有 命名空間的專案路徑。

1. 如果您的動作是 CodeConnections 動作，您可以在**管道觸發**下新增觸發。若要設定管道觸發組態並選擇性地使用觸發來篩選，請參閱 中的更多詳細資訊[使用程式碼推送或提取請求事件類型新增觸發](pipelines-filter.md)。

1. 在 **Branch name (分支名稱)** 中，選擇您要讓管道偵測來源變更的分支。
**注意**  
如果分支名稱未自動填入，則您沒有儲存庫的**擁有者**存取權。專案名稱無效，或所使用的連線無法存取專案/儲存庫。

1. 在 **Output artifact format (輸出成品格式)** 中，您必須選擇成品的格式。
   + 若要使用預設方法儲存 GitLab.com 動作的輸出成品，請選擇 **CodePipeline 預設**。動作會從 GitLab.com 儲存庫存取檔案，並將成品存放在管道成品存放區中的 ZIP 檔案中。
   + 若要存放包含儲存庫 URL 參考的 JSON 檔案，以便下游動作可以直接執行 Git 命令，請選擇 **Full clone (完整複製)**。此選項只能由 CodeBuild 下游動作使用。

     如果您選擇此選項，您將需要更新 CodeBuild 專案服務角色的許可，如 所示[新增連線至 Bitbucket、GitHub、GitHub Enterprise Server 或 GitLab.com 的 CodeBuild GitClone 許可 GitLab.com](troubleshooting.md#codebuild-role-connections)。如需示範如何使用**完整複製**選項的教學課程，請參閱 [教學課程：搭配 GitHub 管道來源使用完整複製](tutorials-github-gitclone.md)。

1. 選擇 以儲存來源動作並繼續。

## 建立 GitLab.com (CLI) 的連線
<a name="connections-gitlab-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 來建立連線。

若要這麼做，請使用 **create-connection** 命令。

**重要**  
根據預設，透過 AWS CLI 或 建立的連線 AWS CloudFormation 處於 `PENDING` 狀態。建立與 CLI 或 的連線後 CloudFormation，請使用 主控台來編輯連線，使其成為狀態 `AVAILABLE`。

**建立連線**

1. 開啟終端機 (Linux、macOS 或 Unix) 或命令提示 (Windows)。使用 AWS CLI 執行 **create-connection**命令，`--connection-name`為您的連線指定 `--provider-type`和 。在此範例中，第三方供應商名稱為 `GitLab`，而指定的連線名稱為 `MyConnection`。

   ```
   aws codestar-connections create-connection --provider-type GitLab --connection-name MyConnection
   ```

   如果成功，此命令會傳回類似下列內容的連線 ARN 資訊。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f"
   }
   ```

1. 使用主控台完成連線。如需詳細資訊，請參閱[更新待定連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)。

1. 管道預設為在程式碼推送至連線來源儲存庫時偵測變更。若要設定手動發行或 Git 標籤的管道觸發組態，請執行下列其中一項操作：
   + 若要將管道觸發組態設定為僅從手動版本開始，請將以下行新增至組態：

     ```
     "DetectChanges": "false",
     ```
   + 若要設定管道觸發組態以使用觸發條件進行篩選，請參閱 中的更多詳細資訊[使用程式碼推送或提取請求事件類型新增觸發](pipelines-filter.md)。例如，以下內容會新增至管道 JSON 定義的管道層級。在此範例中， `release-v0`和 `release-v1`是要包含的 Git 標籤，而 `release-v2`是要排除的 Git 標籤。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```