AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立核准規則範本
您可以建立一或多個核准規則範本,以協助您自訂跨儲存庫的開發工作流程。您可以建立多個範本,以設定自動建立核准規則,讓不同分支具有適當等級的核准和控制。例如,您可以為生產和開發分支建立不同的範本,並將這些範本套用至一或多個儲存庫。當使用者在這些儲存庫中建立提取請求時,將根據這些範本來評估請求。如果請求符合所套用範本中的條件,則會為提取請求建立核准規則。
您可以使用主控台或 AWS CLI 建立核准規則範本。如需有關核准規則範本的受管理原則和權限的詳細資訊,請參閱核准規則範本上動作的許可和AWS CodeCommit 的 受管政策。
建立核准規則範本 (主控台)
依預設,核准規則範本不會與任何儲存庫相關聯。您可以在建立範本時建立範本與一或多個儲存庫之間的關聯,或者稍後再新增關聯。
建立核准規則範本 (主控台)
請在以下位置開啟CodeCommit主控台。
https://console.aws.amazon.com/codesuite/codecommit/home -
選擇 Approval rule templates (核准規則範本),然後選擇 Create template (建立範本)。
-
在 Approval rule template name (核准規則範本名稱) 中,以描述性名稱來命名範本,讓您明白其用途。例如,如果一群資深開發人員中必須有一人核准提取請求,才能合併提取請求,您可以將規則命名為
Require 1 approver from a senior developer
。 -
(選擇性) 在 Description (描述) 中,提供此範本的用途描述。這可以幫助其他人決定此範本是否適用於其儲存庫。
-
在 Number of approvals needed (需要的核准數目) 中,輸入您要的數目。預設為 1。
-
(選擇性) 如果提取請求的核准必須來自特定使用者群組,請在 Approval rule members (核准規則成員) 中選擇 Add (新增)。在 Approver type (核准者類型) 中,選擇以下其中一項:
-
IAM 使用者名稱或假定角色:此選項會為您用來登入的帳戶預先填入 Amazon Web Services 帳戶 ID,而且只需要輸入名稱。它可用於名稱與所提供名稱相符的 IAM 使用者和聯合存取使用者。此選項非常強大,提供很大的靈活性。例如,如果您選擇此選項並使用 Amazon Web Services 帳戶 123456789012 登入,並指定
Mary_Major
,則以下所有內容都會計為來自該使用者的核准:-
帳戶中的 IAM 使用者 (
arn:aws:iam::123456789012:user/Mary_Major
) -
在 IAM 中識別為瑪麗 () 的聯合身分使用者 (
arn:aws:sts::123456789012:federated-user/Mary_Major
)
除非您包含萬用字元 (
*Mary_Major
),否則此選項無法識別擔任角色CodeCommitReview
且角色工作階段名稱為 Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major
) 的某人的作用中工作階段。您也可以明確指定角色名稱 (CodeCommitReview/Mary_Major
)。 -
-
完全合格的 ARN:此選項可讓您指定 IAM 使用者或角色的完整 Amazon 資源名稱 (ARN)。此選項也可支援其他 AWS 服務所使用的擔任角色,例如 AWS Lambda 和 AWS CodeBuild。針對擔任的角色,ARN 格式應為
arn:aws:sts::
(若為角色) 和AccountID
:assumed-role/RoleName
arn:aws:sts::
(若為函數)。AccountID
:assumed-role/FunctionName
如果您選擇 IAM 使用者名稱或假定的角色做為核准者類型,請在值中輸入 IAM 使用者或角色的名稱或使用者或角色的完整 ARN。再次選擇 Add (新增),以新增更多使用者或角色,直到核准要計入所需核准數目中的所有使用者或角色,都已新增為止。
這兩種核准者類型都允許您在值中使用萬用字元 (*)。例如,如果您選擇 IAM 使用者名稱或假定的角色選項,並指定
CodeCommitReview/*
,則所有擔任該角色的使用者CodeCommitReview
都會計入核准集區中。個別角色工作階段名稱計入所需的核准者數目中。如此一來,Mary_Major 和 Li_Juan 在登入並擔任CodeCommitReview
時都算作核准。如需 IAM ARN、萬用字元和格式的詳細資訊,請參閱 IAM 識別符。注意
核准規則不支援跨帳戶核准。
-
-
(選擇性) 在 Branch filters (分支篩選條件) 中,輸入目的地分支名稱,以用來篩選能否建立核准規則。例如,如果您指定
main
,則只有當提取請求的目的地分支是名為main
的分支時,才會為關聯儲存庫中的提取請求建立核准規則。您可以在分支名稱中使用萬用字元 (*),將核准規則套用至符合萬用字元案例的所有分支名稱。不過,您不能在分支名稱的開頭使用萬用字元。您最多可以指定 100 個分支名稱。如果您未指定任何篩選條件,範本會套用至相關聯儲存庫中的所有分支。 -
(選擇性) 在關聯的儲存庫的儲存庫清單中,選擇您要與AWS 區域此核准規則產生關聯的儲存庫。
注意
您可以選擇在建立範本之後建立儲存庫的關聯。如需詳細資訊,請參閱建立核准規則範本與儲存器的關聯。
-
選擇 Create (建立)。

建立核准規則範本 (AWS CLI)
您可以使用 AWS CLI 來建立核准規則範本。使用 AWS CLI 時,您可以指定範本的目的地參考,只在提取請求的目的地分支符合範本中的目的地分支時,才套用範本。
建立核准規則範本 (AWS CLI)
-
在終端機或命令列,執行 create-approval-rule-template 命令,並指定:
-
核准規則範本的名稱。考慮使用能描述用途的名稱。
-
核准規則範本的描述。與名稱一樣,請考慮提供詳細的描述。
-
核准規則範本的 JSON 結構。此結構可包含目的地參考的需求 (套用核准規則之提取請求的目的地分支),以及核准集區成員 (核准計入所需核准數目中的使用者)。
建立核准規則的內容時,您有兩種方式在核准集區中指定核准者:
-
CodeCommitApprovers:此選項僅需要 Amazon Web Services 帳戶和資源。它可用於名稱與提供的資源名稱相符的 IAM 使用者和聯合存取使用者。此選項非常強大,提供很大的靈活性。例如,如果您指定AWS帳戶 123456789012
Mary_Major
,並且以下所有項目都會計為來自該使用者的核准:-
帳戶中的 IAM 使用者 (
arn:aws:iam::123456789012:user/Mary_Major
) -
在 IAM 中識別為瑪麗 () 的聯合身分使用者 (
arn:aws:sts::123456789012:federated-user/Mary_Major
)
除非您包含萬用字元 (),否則此選項無法辨識假定角色為
Mary_Maj
or (arn:aws:sts::123456789012:assumed-role/
) 角色工作階段名稱的SeniorDevelopers
/Mary_Major
SeniorDevelopers
使用中工作階段。*Mary_Major
-
-
完全合格的 ARN:此選項可讓您指定 IAM 使用者或角色的完整 Amazon 資源名稱 (ARN)。
如需 IAM ARN、萬用字元和格式的詳細資訊,請參閱 IAM 識別符。
下列範例建立名為
2-approver-rule-for-main
且描述為Requires two developers from the team to approve the pull request if the destination branch is main
的核准規則範本。此範本需要兩位擔任角色CodeCommitReview
使用者核准任何提取請求,提取請求才能合併至main
分支:aws codecommit create-approval-rule-template --approval-rule-template-name
2-approver-rule-for-main
--approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main
" --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}" -
-
如果此命令成功執行,您會看到類似如下的輸出傳回:
{ "approvalRuleTemplate": { "approvalRuleTemplateName": "2-approver-rule-for-main", "creationDate": 1571356106.936, "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main", "lastModifiedDate": 1571356106.936, "ruleContentSha256": "4711b576EXAMPLE" } }