AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立提取請求的核准規則
建立提取請求的核准規則會要求使用者核准提取請求,然後程式碼才能合併到目的地分支,有助於確保程式碼的品質。您可以指定必須核准提取請求的使用者數目。您也可以為規則指定使用者核准集區。如果您這麼做,則只有來自這些使用者的核准才計入規則所需的核准數目中。
注意
您也可以建立核准規則範本,以協助您跨儲存庫 (適用於每個提取請求的核准規則) 的建立核准規則。如需詳細資訊,請參閱 使用核准規則範本。
您可以使用 AWS CodeCommit 主控台或 AWS CLI 來為儲存庫建立分支。
建立提取請求的核准規則 (主控台)
您可以使用 CodeCommit 主控台,建立核准規則 CodeCommit 儲存庫。
開啟 CodeCommit 主控台https://console.aws.amazon.com/codesuite/codecommit/home
。 -
在 Repositories (儲存庫) 中,選擇您要為提取請求建立核准規則的儲存庫名稱。
-
在導覽窗格中,選擇 Pull requests (提取請求)。
-
從清單中選擇您要建立核准規則的提取請求。您只能對未結案的提取請求建立核准規則。
-
在提取請求中,選擇 Approvals (核准),然後選擇 Create approval rule (建立核准規則)。
-
在 Rule name (規則名稱) 中,以描述性名稱來命名規則,讓您明白其用途。例如,如果需要兩個人先核准提取請求後,才能合併提取請求,您可以將規則命名為
Require two approvals before merge
。注意
核准規則建立後就無法變更名稱。
在 Number of approvals needed (需要的核准數目) 中,輸入您要的數目。預設為 1。
-
(選擇性) 如果提取請求的核准必須來自特定使用者群組,請在 Approval rule members (核准規則成員) 中選擇 Add (新增)。在 Approver type (核准者類型) 中,選擇以下其中一項:
IAM 使用者名稱或假定角色:此選項會預先填入AWS帳戶 ID 與您用來登錄的帳戶,只需要一個名稱。對於名稱符合所提供名稱的 IAM 使用者和聯合存取使用者,可使用此選項。此選項非常強大,提供很大的靈活性。例如,如果您使用 Amazon Web Services 帳戶 123456789012 登入並選擇此選項,而且指定
Mary_Major
,以下全部算作來自該使用者的核准:帳戶中的 IAM 使用者 (
arn:aws:iam::123456789012:user/Mary_Major
)在 IAM 中識別為 Major 的聯合身分使用者 (
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 Resource Name (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 識別碼。注意
核准規則不支援跨帳戶核准。
-
核准規則設定完成後,請選擇 Submit (提交)。
建立提取請求的核准規則 (AWS CLI)
使用AWS CLI使用指令 CodeCommit,安裝AWS CLI。如需詳細資訊,請參閱 命令列參考。
在 中建立提取請求的核准規則 CodeCommit 儲存庫
-
執行 create-pull-request-approval-rule 命令,並指定:
-
提取請求的 ID (使用 --id 選項)。
-
核准規則的名稱 (使用 --approval-rule-name 選項)。
-
核准規則的內容 (使用 --approval-rule-content 選項)。
建立核准規則時,您有兩種方式在核准集區中指定核准者:
-
CodeCommitApprovers:此選項僅需要 Amazon Web Services 帳戶和資源。對於名稱符合所提供資源名稱的 IAM 使用者和聯合存取使用者,可使用此選項。此選項非常強大,提供很大的靈活性。例如,如果您指定了 Amazon Web Services 帳戶 123456789012 和
Mary_Major
,以下全部算作來自該使用者的核准:-
帳戶中的 IAM 使用者 (
arn:aws:iam::123456789012:user/Mary_Major
) -
在 IAM 中識別為 Major 的聯合身分使用者 (
arn:aws:sts::123456789012:federated-user/Mary_Major
)
除非您包含萬用字元 (
*Mary_Major
),否則此選項無法識別擔任角色CodeCommitReview
且角色工作階段名稱為 Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major
) 的某人的作用中工作階段。 -
-
完全合格的 ARN:此選項可讓您指定 IAM 使用者或角色的完整 Amazon Resource Name (ARN)。
如需 IAM ARN、萬用字元和格式的詳細資訊,請參閱IAM 識別碼。
下列範例建立名為的核准規則
Require two approved approvers
適用於 ID 為的提取請求27
。此規則指定需要有來自核准集區的兩個核准。集區包括所有存取的使用者 CodeCommit 並承擔的作用CodeCommitReview
中的123456789012
Amazon Web Services 帳戶。還包括名為的 IAM 使用者或聯合身分使用者Nikhil_Jayashankar
在同一 Amazon Web Services 帳戶:aws codecommit create-pull-request-approval-rule --pull-request-id
27
--approval-rule-name "Require two approved approvers
" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012
:Nikhil_Jayashankar
\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}" -
-
如果此命令成功執行,您會看到類似如下的輸出產生:
{ "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:
123456789012
:Nikhil_Jayashankar
\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }