本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 GitHub (透過 OAuth 應用程式) 來源動作更新為 GitHub (透過 GitHub 應用程式) 來源動作
在 中 AWS CodePipeline,GitHub 來源動作支援兩種版本:
-
建議:GitHub (透過 GitHub 應用程式) 動作使用適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection 資源支援的 Github 應用程式型身分驗證。它會將 AWS CodeStar Connections 應用程式安裝到您的 GitHub 組織,讓您可以在 GitHub 中管理存取權。
-
不建議:GitHub (透過 OAuth 應用程式) 動作使用 OAuth 權杖與 GitHub 驗證,並使用單獨的 Webhook 偵測變更。這不再是建議的方法。
注意
連線不適用於亞太區域 (香港)、亞太區域 (海德拉巴)、亞太區域 (雅加達)、亞太區域 (墨爾本)、亞太區域 (大阪)、非洲 (開普敦)、中東 (巴林)、中東 (阿拉伯聯合大公國)、歐洲 (西班牙)、歐洲 (蘇黎世)、以色列 (特拉維夫) 或 AWS GovCloud (美國西部) 區域。若要參考其他可用的動作,請參閱 與 CodePipeline 的產品和服務整合。如需歐洲 (米蘭) 區域中此動作的考量事項,請參閱 中的備註適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection 。
使用 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
。 -
當您在 CLI 或 CloudFormation 中管理 GitHub (透過 GitHub 應用程式) 動作時,您不再需要在 Secrets Manager 中將個人存取字符儲存為秘密。您不再需要動態參考 CodePipeline 動作組態中存放的秘密。而是將連線 ARN 新增至動作組態。如需動作組態範例,請參閱 適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection 。
-
當您在 CodePipeline 中建立與 GitHub (透過 GitHub 應用程式) 動作搭配使用的連線資源時,您可以使用相同的連線資源將 CodeGuru Reviewer 等其他支援的服務與您的儲存庫建立關聯。
-
在 Github (透過 GitHub 應用程式) 中,您可以複製儲存庫來存取後續 CodeBuild 動作中的 git 中繼資料,而在 Github (透過 OAuth 應用程式) 中,您只能下載來源。
-
管理員會為您組織的儲存庫安裝應用程式。您不再需要追蹤 OAuth 權杖,這些權杖取決於建立權杖的個人。
所有安裝到組織的應用程式都可以存取相同的一組儲存庫。若要變更誰可以存取每個儲存庫,請修改每個連線的 IAM 政策。如需範例,請參閱範例:使用指定儲存庫連線的縮小範圍政策。
您可以使用本主題中的步驟來刪除 GitHub (透過 OAuth 應用程式) 來源動作,並從 CodePipeline 主控台新增 GitHub (透過 GitHub 應用程式) 來源動作。
步驟 1:取代您的 (透過 OAuth 應用程式) GitHub 動作
使用管道編輯頁面將 (透過 OAuth 應用程式) GitHub 動作取代為 GitHub (透過 GitHub 應用程式) 動作。
取代您的 (透過 OAuth 應用程式) GitHub 動作
-
登入 CodePipeline 主控台。
-
選擇您的管道,然後選擇編輯。選擇來源階段上的編輯階段。此時會顯示訊息,建議您更新動作。
-
在動作提供者中,選擇 GitHub (透過 GitHub 應用程式)。
-
執行以下任意一項:
-
在連線下,如果您尚未建立與提供者的連線,請選擇連線至 GitHub。繼續步驟 2:建立 GitHub 的連線。
-
在連線下,如果您已建立與提供者的連線,請選擇連線。繼續步驟 3:儲存連線的來源動作。
-
步驟 2:建立 GitHub 的連線
選擇建立連線後,會顯示連線至 GitHub 頁面。
建立連至 GitHub 的連線
-
在 GitHub 連線設定下,您的連線名稱會顯示在連線名稱中。
在 GitHub Apps (GitHub 應用程式) 底下,選擇應用程式安裝,或選擇 Install a new app (安裝新應用程式) 以建立安裝。
注意
您可以為您連至特定供應商的所有連線安裝一個應用程式。如果您已安裝 GitHub 應用程式,請選擇它並略過此步驟。
-
如果顯示 GitHub 的授權頁面,請使用您的登入資料登入,然後選擇繼續。
-
在應用程式安裝頁面上,訊息顯示 AWS CodeStar 應用程式正在嘗試連線到您的 GitHub 帳戶。
注意
您只能為每個 GitHub 帳戶安裝一次應用程式。如果您先前已安裝應用程式,可以選擇 Configure (設定),繼續前往應用程式安裝的修改頁面,或者您可以使用上一步按鈕返回主控台。
-
在安裝 AWS CodeStar頁面上,選擇安裝。
-
在連線至 GitHub 頁面上,會顯示新安裝的連線 ID。選擇連線。
步驟 3:儲存 GitHub 來源動作
在編輯動作頁面上完成更新,以儲存新的來源動作。
儲存 GitHub 來源動作
-
在儲存庫中,輸入第三方儲存庫的名稱。在分支中,輸入您希望管道偵測來源變更的分支。
注意
在儲存庫中,輸入
owner-name/repository-name
,如本範例所示:my-account/my-repository
-
在輸出成品格式中,選擇成品的格式。
-
若要使用預設方法儲存 GitHub 動作的輸出成品,請選擇 CodePipeline 預設。動作會從 GitHub 儲存庫存取檔案,並將成品存放在管道成品存放區中的 ZIP 檔案中。
-
若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。
如果您選擇此選項,您將需要更新 CodeBuild 專案服務角色的許可,如 所示為 Bitbucket、GitHub、GitHub Enterprise Server 或 GitLab.com 的連線新增 CodeBuild GitClone 許可 GitLab.com。如需示範如何使用完整複製選項的教學課程,請參閱教學課程:搭配 GitHub 管道來源使用完整複製。
-
-
在輸出成品中,您可以保留此動作的輸出成品名稱,例如
SourceArtifact
。選擇完成以關閉編輯動作頁面。 -
選擇完成以關閉階段編輯頁面。選擇儲存以關閉管道編輯頁面。