本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
附錄 A:第 1 GitHub 版來源動作
本附錄提供中 GitHub 動作第 1 版的相關資訊 CodePipeline。
注意
雖然我們不建議使用 GitHub 版本 1 動作,但具有第 1 GitHub 版動作的現有管道仍可繼續運作,而不會造成任何影響。對於具有 GitHub版本 1 操作的管道, CodePipeline 使用OAuth基於令牌連接到存 GitHub 儲庫。相反地, GitHub 動作 (版本 2) 會使用連線資源將資 AWS
源與 GitHub 存放庫相關聯。連接資源使用基於應用程序的令牌進行連接。如需有關將管線更新為使用連線的建議 GitHub 動作的詳細資訊,請參閱將 GitHub 版本 1 來源動作更新為 GitHub 版本 2 來源動作。若要取得有關OAuth基於 GitHub 存取的詳細資訊,請參閱〈〉https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
若要與整合 GitHub,請在管道中 CodePipeline 使用 GitHub OAuth應用程式。 CodePipeline使用 webhook 透過第 1 GitHub 版來源動作管道管理變更偵測。
注意
當您在中配置第 2 GitHub 版來源動作時 AWS CloudFormation,不會包含任何 GitHub 權杖資訊或新增 webhook 資源。您可以設定連線資源,如《 AWS CloudFormation 使用者指南》中的AWSCodeStarConnections::: Connection 所示。
此參考包含第 1 GitHub 版動作的下列章節:
-
如需有關如何將 GitHub 版本 1 來源動作和 webhook 新增至管線的資訊,請參閱新增 GitHub 版本 1 來源動作。
-
如需有關第 1 GitHub 版來源動作之組態參數和範例YAML/JSON程式碼片段的資訊,請參閱GitHub 版本 1 來源動作參考。
重要
建立 CodePipeline Webhook 時,請勿使用您自己的憑證,也不要在多個 Webhook 上重複使用相同的密碼權杖。為了獲得最佳安全性,請為您創建的每個 webhook 生成一個唯一的密鑰令牌。秘密令牌是您提供的任意字符串, GitHub用於計算和簽署發送到的 webhook 有效載荷 CodePipeline,以保護 webhook 有效載荷的完整性和真實性。使用您自己的憑據或在多個 webhook 上重複使用相同的令牌可能會導致安全漏洞。
注意
如果提供了秘密令牌,則將在響應中對其進行編輯。
新增 GitHub 版本 1 來源動作
您可以將第 1 GitHub 版來源動作新 CodePipeline 增至:
-
使用主 CodePipeline 控台「建立管線精靈」(建立管道 (主控台)) 或 「編輯」動作頁面來選擇GitHub提供者選項。控制台創建一個 webhook,當源更改時啟動管道。
-
使用新CLI增動作的動作組態並建立其他資源,如下所示:
GitHub
-
使用中的
GitHub
範例動作配置GitHub 版本 1 來源動作參考來建立動作,如中所示建立管線 (CLI)。 -
停用定期檢查並手動建立變更偵測,因為變更偵測方法預設為透過輪詢來源來啟動管線。您可以將輪詢管線移轉至 Webhook 以進行第 1 GitHub 版動作。
-
GitHub 版本 1 來源動作參考
注意
雖然我們不建議使用 GitHub 版本 1 動作,但具有第 1 GitHub 版動作的現有管道仍可繼續運作,而不會造成任何影響。對於具有 GitHub GitHub 版本 1 源動作的管道, CodePipeline 使用OAuth基於令牌連接到存 GitHub 儲庫。相反地,新 GitHub 動作 (版本 2) 會使用連線資源將資 AWS 源與 GitHub 存放庫相關聯。連接資源使用基於應用程序的令牌進行連接。如需有關將管線更新為使用連線的建議 GitHub 動作的詳細資訊,請參閱將 GitHub 版本 1 來源動作更新為 GitHub 版本 2 來源動作。
在配置的 GitHub 存儲庫和分支上進行新的提交時觸發管道。
要與之整合 GitHub,請在管道中 CodePipeline 使用OAuth應用程式或個人存取權杖。如果您使用控制台來創建或編輯管道,請創 CodePipeline 建一個 GitHub webhook,以便在存儲庫中發生更改時啟動管道。
您必須先建立 GitHub 帳戶和存放庫,然後才能透過 GitHub 動作連接管道。
如果您想限制對存儲庫的訪問 CodePipeline 權限,請創建一個 GitHub 帳戶,並僅將該帳戶訪問權限授予您要與之集成的存儲庫 CodePipeline。當您設定為 CodePipeline 將 GitHub 存放庫用於管道中的來源階段時,請使用該帳戶。
如需詳細資訊,請參閱 GitHub 網站上的GitHub 開發人員文件
動作類型
-
類別:
Source
-
擁有者:
ThirdParty
-
提供者:
GitHub
-
版本:
1
組態參數
- Owner
-
必要:是
擁有 GitHub存放庫的 GitHub 使用者或組織的名稱。
- Repo
-
必要:是
要偵測來源變更的儲存庫名稱。
- 分支
-
必要:是
要偵測來源變更的分支名稱。
- OAuthToken
-
必要:是
表示允許在 GitHub 存放庫上執 CodePipeline 行作業的 GitHub 驗證 Token。此項目永遠顯示為四個星號的遮罩。代表下列其中一個值:
-
當您使用控制台建立管道時, CodePipeline 會使用 OAuth Token 來註冊 GitHub 連線。
-
當您使用建立管道時,您可以在此欄位中傳遞您的 GitHub 個人存取權杖。 AWS CLI 用複製來源的個人訪問令牌替換星號(****)。 GitHub當您執行
get-pipeline
以檢視動作組態時,會為此數值顯示四星號遮罩。 -
使用 AWS CloudFormation 範本建立管線時,必須先將權杖作為密碼儲存在中 AWS Secrets Manager。您可以將此欄位的值納入為 Secret Manager 中已儲存密碼的動態參照,例如
{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}
。
有關 GitHub 範圍的更多信息,請參閱 GitHub 網站上的GitHub 開發人員API參考
。 -
- PollForSourceChanges
-
必要:否
PollForSourceChanges
控制是否 CodePipeline 輪詢 GitHub存放庫中的來源變更。我們建議您改用 webhook 以偵測來源變更。如需有關設定 webhook 的詳細資訊,請參閱將輪詢管線移轉至 Webhook (第 1 GitHub 版來源動作) (CLI) 或更新推送事件的管道 (第 1 GitHub 版來源動作) (AWS CloudFormation 範本)。重要
如果您想要設定 webhook,則必須將
PollForSourceChanges
設定為false
,以避免管道執行重複。此參數的有效值:
-
True
:如果設置,則 CodePipeline 輪詢您的存儲庫以進行源更改。注意
如果省略
PollForSourceChanges
,則 CodePipeline 預設會輪詢儲存庫以進行來源變更。此行為同於PollForSourceChanges
設定為true
。 -
False
:如果設定,則 CodePipeline 不會輪詢您的儲存庫是否有來源變更。如果您想要設定 webhook 以偵測來源變更,請使用此設定。
-
Input artifacts (輸入成品)
-
人工因素數目:
0
-
描述:輸入成品不適用於此動作類型。
輸出成品
-
人工因素數目:
1
-
描述:此動作的輸出成品是一個ZIP檔案,其中包含已配置儲存庫的內容,並在指定為管線執行的來源修訂版本的確認時進行分支。從存放庫產生的成品是 GitHub 動作的輸出成品。中的原始程式碼提交 ID 會顯示 CodePipeline 為觸發管線執行的來源修訂。
輸出變數
設定時,此動作會產生變數,供管道中的下游動作的動作組態所參考。即使此動作沒有命名空間,此動作產生的變數仍可視為輸出變數。您可以設定動作的命名空間,讓這些變數可供下游動作的組態使用。
如需中變數的更多資訊 CodePipeline,請參閱變數參考。
- CommitId
-
觸發管線執行的 GitHub 提交 ID。提交IDs是完整SHA的提交。
- CommitMessage
-
與觸發管道執行的遞交相關聯的描述訊息 (如果有的話)。
- CommitUrl
-
觸發管線的提交URL位址。
- RepositoryName
-
執行觸發管線之提交的 GitHub 儲存庫名稱。
- BranchName
-
進行來源變更之 GitHub 儲存庫的分支名稱。
- AuthorDate
-
遞交的撰寫日期 (時間戳記格式)。
如需 Git 中的作者和遞交者之間差異的詳細信息,請參閱 Scott Chacon 和 Ben Straub 共同撰寫的 Pro Git 中的檢視提交的歷史記錄
。 - CommitterDate
-
遞交的遞交日期 (時間戳記格式)。
如需 Git 中的作者和遞交者之間差異的詳細信息,請參閱 Scott Chacon 和 Ben Straub 共同撰寫的 Pro Git 中的檢視提交的歷史記錄
。
動作宣告 (GitHub 範例)
連接到 GitHub (OAuth)
第一次使用控制台將 GitHub 存儲庫添加到管道時,系統會要求您授權存儲庫的 CodePipeline 訪問權限。令牌需要以下 GitHub 範圍:
-
repo
範圍,用於完全控制將成品從公有和私有儲存庫讀取和提取至管道。 -
admin:repo_hook
範圍,用於完全控制儲存庫勾點。
使用CLI或 AWS CloudFormation 範本時,您必須為已在中建立的個人存取權杖提供值 GitHub。
另請參閱
以下相關資源可協助您使用此動作。
-
《AWS CloudFormation 使用者指南》的資源參考 AWS::CodePipeline::Webhook — 包括中資源的欄位定義、範例和片段 AWS CloudFormation。
-
AWS CloudFormation 使用者指南 AWS::CodeStar::GitHub儲存庫的資源參考 — 包括中資源的欄位定義、範例和程式碼片段 AWS CloudFormation。
-
教程:創建一個管道,用於構建和測試您的 Android 應用程序 AWS Device Farm— 本教學課程提供範例組建規格檔案和範例應用程式,以建立具有 GitHub 來源的管道。它使用和構建和測試 Android 應用 CodeBuild 程序 AWS Device Farm。