

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

# 將 GitHub （透過 OAuth 應用程式） 來源動作更新為 GitHub （透過 GitHub 應用程式） 來源動作
<a name="update-github-action-connections"></a>

在 中 AWS CodePipeline，GitHub 來源動作支援兩種版本：
+ **建議：**GitHub （透過 GitHub 應用程式） 動作使用[適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)資源支援的 Github 應用程式型身分驗證。它會將 AWS CodeStar Connections 應用程式安裝到您的 GitHub 組織，讓您可以在 GitHub 中管理存取權。
+ **不建議：**GitHub （透過 OAuth 應用程式） 動作使用 OAuth 權杖向 GitHub 驗證，並使用單獨的 Webhook 偵測變更。這不再是建議的方法。

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

使用 GitHub （透過 GitHub 應用程式） 動作而非 GitHub （透過 OAuth 應用程式） 動作有一些重要優勢：
+ 透過連線，CodePipeline 不再需要 OAuth 應用程式或個人存取字符來存取您的儲存庫。當您建立連線時，您會安裝 GitHub 應用程式來管理對 GitHub 儲存庫的身分驗證，並允許組織層級的許可。您必須以使用者身分授權 OAuth 字符才能存取儲存庫。如需 OAuth 型 GitHub 存取與應用程式型 GitHub 存取相反的詳細資訊，請參閱 [https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps](https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps)。
+ 當您在 CLI 或 CloudFormation 中管理 GitHub （透過 GitHub 應用程式） 動作時，您不再需要將個人存取字符儲存為 Secrets Manager 中的秘密。您不再需要動態參考 CodePipeline 動作組態中存放的秘密。而是將連線 ARN 新增至動作組態。如需動作組態範例，請參閱 [適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)。
+ 當您在 CodePipeline 中建立用於 GitHub （透過 GitHub 應用程式） 動作的連線資源時，您可以使用相同的連線資源，將 CodeGuru Reviewer 等其他支援的 服務與您的儲存庫建立關聯。
+ 在 Github （透過 GitHub 應用程式） 中，您可以複製儲存庫來存取後續 CodeBuild 動作中的 git 中繼資料，而在 Github （透過 OAuth 應用程式） 中，您只能下載來源。
+ 管理員會為您組織的儲存庫安裝應用程式。您不再需要追蹤取決於建立字符之個人的 OAuth 字符。

所有安裝到組織的應用程式都可以存取同一組儲存庫。若要變更誰可以存取每個儲存庫，請修改每個連線的 IAM 政策。如需範例，請參閱[範例：使用指定儲存庫連線的縮小範圍政策](https://docs.aws.amazon.com/dtconsole/latest/userguide/security_iam_id-based-policy-examples-connections.html#security_iam_id-based-policy-examples-connections-reposcope)。

您可以使用本主題中的步驟來刪除 GitHub （透過 OAuth 應用程式） 來源動作，並從 CodePipeline 主控台新增 GitHub （透過 GitHub 應用程式） 來源動作。

**Topics**
+ [步驟 1：取代您的 （透過 OAuth 應用程式） GitHub 動作](#connections-pipelines-github-action)
+ [步驟 2：建立 GitHub 的連線](#connections-pipelines-github-create)
+ [步驟 3：儲存您的 GitHub 來源動作](#connections-pipelines-github-save)

## 步驟 1：取代您的 （透過 OAuth 應用程式） GitHub 動作
<a name="connections-pipelines-github-action"></a>

使用管道編輯頁面，將 （透過 OAuth 應用程式） GitHub 動作取代為 GitHub （透過 GitHub 應用程式） 動作。

**取代您的 （透過 OAuth 應用程式） GitHub 動作**

1. 登入 CodePipeline 主控台。

1. 選擇您的管道，然後選擇**編輯**。選擇來源**階段上的編輯**階段。此時會顯示一則訊息，建議您更新動作。

1. 在**動作提供者**中，選擇 **GitHub （透過 GitHub 應用程式）**。

1. 執行以下任意一項：
   + 在**連線**下，如果您尚未建立與提供者的連線，請選擇**連線至 GitHub**。繼續步驟 2：建立與 GitHub 的連線。
   + 在**連線**下，如果您已建立與供應商的連線，請選擇連線。繼續步驟 3：儲存連線的來源動作。

## 步驟 2：建立 GitHub 的連線
<a name="connections-pipelines-github-create"></a>

選擇建立連線後，會顯示**連線至 GitHub** 頁面。

**建立連至 GitHub 的連線**

1. 在 **GitHub 連線設定**下，您的連線名稱會顯示在**連線名稱**中。

   在 **GitHub Apps (GitHub 應用程式)** 底下，選擇應用程式安裝，或選擇 **Install a new app (安裝新應用程式)** 以建立安裝。
**注意**  
您可以為您連至特定供應商的所有連線安裝一個應用程式。如果您已安裝 GitHub 應用程式，請選擇它並略過此步驟。

1. 如果顯示 GitHub 的授權頁面，請使用您的登入資料登入，然後選擇繼續。

1. 在應用程式安裝頁面上，訊息顯示 AWS CodeStar 應用程式正在嘗試連線到您的 GitHub 帳戶。
**注意**  
您只能為每個 GitHub 帳戶安裝一次應用程式。如果您先前已安裝應用程式，可以選擇 **Configure (設定)**，繼續前往應用程式安裝的修改頁面，或者您可以使用上一步按鈕返回主控台。

1. 在**安裝 AWS CodeStar**頁面上，選擇**安裝**。

1. 在**連線至 GitHub** 頁面上，會顯示新安裝的連線 ID。選擇**連線**。

## 步驟 3：儲存您的 GitHub 來源動作
<a name="connections-pipelines-github-save"></a>

在**編輯動作**頁面上完成更新，以儲存新的來源動作。

**儲存您的 GitHub 來源動作**

1. 在**儲存庫**中，輸入第三方儲存庫的名稱。在**分支**中，輸入您希望管道偵測來源變更的分支。
**注意**  
在**儲存庫**中，輸入 `owner-name/repository-name`，如本範例所示：  

   ```
   my-account/my-repository
   ```

1. 在**輸出成品格式**中，選擇成品的格式。
   + 若要使用預設方法儲存 GitHub 動作的輸出成品，請選擇 **CodePipeline 預設**。動作會從 GitHub 儲存庫存取檔案，並將成品存放在管道成品存放區中的 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. 在**輸出成品**中，您可以保留此動作的輸出成品名稱，例如 `SourceArtifact`。選擇**完成**以關閉**編輯動作**頁面。

1. 選擇**完成**以關閉階段編輯頁面。選擇**儲存**以關閉管道編輯頁面。