<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Merge Request Approvals > 原文:[https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) * [Optional Approvals](#optional-approvals-core-only) * [Required Approvals](#required-approvals-starter) * [Approval Rules](#approval-rules) * [Eligible Approvers](#eligible-approvers) * [Implicit Approvers](#implicit-approvers) * [Code Owners as eligible approvers](#code-owners-as-eligible-approvers) * [Adding / editing a default approval rule](#adding--editing-a-default-approval-rule) * [Editing / overriding approval rules per merge request](#editing--overriding-approval-rules-per-merge-request) * [Multiple approval rules](#multiple-approval-rules-premium) * [Scoped to Protected Branch](#scoped-to-protected-branch-premium) * [Adding or removing an approval](#adding-or-removing-an-approval) * [Merge request approvals project settings](#merge-request-approvals-project-settings) * [Prevent overriding default approvals](#prevent-overriding-default-approvals) * [Resetting approvals on push](#resetting-approvals-on-push) * [Allowing merge request authors to approve their own merge requests](#allowing-merge-request-authors-to-approve-their-own-merge-requests) * [Prevent approval of merge requests by their committers](#prevent-approval-of-merge-requests-by-their-committers) * [Require authentication when approving a merge request](#require-authentication-when-approving-a-merge-request) * [Security approvals in merge requests](#security-approvals-in-merge-requests-ultimate) * [Enabling the new approvals interface](#enabling-the-new-approvals-interface) # Merge Request Approvals[](#merge-request-approvals "Permalink") 代碼審查是每個成功項目的基本實踐,一旦合并請求狀態良好,就需要您的批準,這是審查過程的重要組成部分,因為它清楚地傳達了合并變更的能力. ## Optional Approvals[](#optional-approvals-core-only "Permalink") 在[GitLab Core 13.2 中](https://gitlab.com/gitlab-org/gitlab/-/issues/27426)引入. 具有開發者[權限](../../permissions.html)或更高[權限的](../../permissions.html)任何用戶都可以在 GitLab Core 中批準合并請求. 這為審閱者提供了一種一致的機制來提供批準,并使維護者更容易知道何時可以合并更改. Core 中的批準是可選的,并且在沒有批準的情況下不會阻止合并請求的合并. ## Required Approvals[](#required-approvals-starter "Permalink") 在[GitLab 企業版 7.12 中](https://about.gitlab.com/releases/2015/06/22/gitlab-7-12-released/#merge-request-approvers-ee-only)引入. 必需的批準通過要求指定的人在可以合并的合并請求之前批準,可以強制執行代碼審查. 所需的批準可啟用多個用例: * 強制審查所有合并到存儲庫中的代碼. * 通過[批準規則](#approval-rules)指定給定提議的代碼更改的審核者,以及最少數量的審核者. * 為所有建議的代碼更改指定審閱者的類別,例如后端,前端,質量保證,數據庫等. * 由合并請求中更改的文件確定,自動將[代碼所有者](#code-owners-as-eligible-approvers)指定[為合格的批準者](#code-owners-as-eligible-approvers) . * 在合并可能引入漏洞的代碼之前, [需要獲得安全團隊的批準](#security-approvals-in-merge-requests-ultimate) . ### Approval Rules[](#approval-rules "Permalink") 批準規則定義了合并請求在可以合并之前必須獲得多少個批準,以及可選地應該由哪些用戶進行批準. 可以定義批準: * [As project defaults](#adding--editing-a-default-approval-rule). * [Per merge request](#editing--overriding-approval-rules-per-merge-request). 如果未定義批準規則,則任何用戶都可以批準合并請求,盡管仍可以在[項目設置中為合并請求批準設置](#merge-request-approvals-project-settings)所需批準者的默認最小數量. 批準規則定義了合并請求在可以合并之前必須獲得多少個批準,以及可選地應該由哪些用戶進行批準. 可以定義批準: * [As project defaults](#adding--editing-a-default-approval-rule). * [Per merge request](#editing--overriding-approval-rules-per-merge-request). 如果未定義批準規則,則任何用戶都可以批準合并請求,盡管仍可以在[項目設置中為合并請求批準設置](#merge-request-approvals-project-settings)所需批準者的默認最小數量. #### Eligible Approvers[](#eligible-approvers "Permalink") 以下用戶可以批準合并請求: * 在項目中被添加為批準者的用戶,或將請求級別與開發者或更高[權限](../../permissions.html)合并的[用戶](../../permissions.html) . * 由合并請求更改的具有開發人員或更高[權限](../../permissions.html)的文件的[代碼所有者](#code-owners-as-eligible-approvers) . 如果單個用戶是以下成員的成員,則可以將其添加為項目的批準者: * 該項目. * 該項目的直接上級組. * 可以通過[共享](../members/share_project_with_groups.html)訪問項目的組. 也可以將一組用戶添加為批準者. 將來,小組批準者可能只[限于對項目具有共享訪問權限的小組](https://gitlab.com/gitlab-org/gitlab/-/issues/2048) . 如果將用戶添加為個人批準者,并且也是組批準者的一部分,則該用戶僅被計數一次. 如果在項目設置上啟用了" [**阻止作者批準"**](#allowing-merge-request-authors-to-approve-their-own-merge-requests) (默認情況下啟用)和" [**阻止提交者批準"**](#prevent-approval-of-merge-requests-by-their-committers) (默認情況下禁用),則合并請求作者以及已提交合并請求的用戶均不算作合格批準者. ##### Implicit Approvers[](#implicit-approvers "Permalink") 如果所需批準的數量大于分配的批準者的數量,則來自其他用戶的批準將計入滿足要求. 這些將是在項目中具有開發人員[權限](../../permissions.html)或更高[權限的](../../permissions.html)用戶,但未在批準規則中明確列出. ##### Code Owners as eligible approvers[](#code-owners-as-eligible-approvers "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5. 如果將[代碼所有者](../code_owners.html)添加到存儲庫中,則相應文件的所有者將與具有 Developer 或更高[權限的](../../permissions.html)成員一起成為合格的批準者. 要啟用此合并請求批準規則: 1. 導航到項目的**"設置">"常規",**然后展開" **合并請求批準"** . 2. 找到**任何合格的用戶,**然后選擇所需的批準數量. [![MR approvals by Code Owners](https://img.kancloud.cn/03/36/0336f0b1b4240318ffa86f56cc9eb6de_1968x564.png)](img/mr_approvals_by_code_owners_v12_7.png) 設置后,合并請求只能在您設置的批準數量批準后才能合并. manbetx 客戶端打不開將毫無區別地接受來自具有開發者或更高權限的用戶以及代碼所有者的批準. 或者,您可以**要求** [保護所有者的代碼所有者批準](../protected_branches.html#protected-branches-approval-by-code-owners-premium) . #### Adding / editing a default approval rule[](#adding--editing-a-default-approval-rule "Permalink") 要添加或編輯默認的合并請求批準規則: 1. 導航到您項目的 **設置>常規,**然后展開**合并請求批準** . 2. 單擊**添加批準規則** ,或單擊**編輯** . * 添加或更改**規則名稱** . * 設置**所需的批準號**所需的批準數量. 最小值是`0` . * (可選)搜索有[資格批準](#eligible-approvers)合并請求的用戶或組,然后單擊" **添加"**按鈕將其添加為批準者. 在搜索字段中鍵入之前,將根據合并請求更改的文件的先前作者來建議批準者. * (可選)點擊 組或用戶旁邊的" **刪除"**按鈕可將其從規則中刪除. 3. Click **添加批準規則** or **更新批準規則**. 在更改規則之前創建的任何合并請求都不會更改. 他們將保留原始批準規則,除非手動[覆蓋](#editing--overriding-approval-rules-per-merge-request) . **注意:**如果合并請求的目標是其他項目,例如從分支到上游項目,則默認批準規則將從目標(上游)項目而不是源(叉子)獲取. ##### Editing / overriding approval rules per merge request[](#editing--overriding-approval-rules-per-merge-request "Permalink") 在 GitLab 企業版 9.4 中引入. 默認情況下,MR 作者或具有足夠[權限](../../permissions.html)的用戶可以編輯每個合并請求(MR)中列出的合并請求批準規則. 可以在[合并請求批準設置中](#prevent-overriding-default-approvals)禁用此功能. 一種可能的情況是添加比默認設置中定義更多的批準者. 創建或編輯合并請求時,請找到" **批準規則"**部分,然后按照與[添加/編輯默認批準規則](#adding--editing-a-default-approval-rule)相同的步驟進行操作. #### Multiple approval rules[](#multiple-approval-rules-premium "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. 在 GitLab Premium 中,每個合并請求可以有多個批準規則,每個項目可以有多個默認批準規則. 添加或編輯多個默認規則與[添加或編輯單個默認批準規則相同](#adding--editing-a-default-approval-rule) ,不同之處在于,即使已經定義了規則," **添加批準規則"**按鈕仍可用于添加更多規則. 同樣,每個合并請求中編輯或覆蓋多個批準規則與每個合并請求中[編輯或覆蓋批準規則](#editing--overriding-approval-rules-per-merge-request)相同,只是即使已定義一個規則," **添加批準規則"**按鈕仍可用于添加更多規則. 當[合格的批準人](#eligible-approvers)批準合并請求時,它將減少批準人所屬的所有規則的剩余批準數. [![Approvals premium merge request widget](https://img.kancloud.cn/40/94/4094583469a72fcd294bed53aeeee701_1926x910.png)](img/approvals_premium_mr_widget_v12_7.png) #### Scoped to Protected Branch[](#scoped-to-protected-branch-premium "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/460) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.8. 批準規則通常僅與特定分支(例如`master` . 在配置[**默認批準規則時,**](#adding--editing-a-default-approval-rule)可以通過導航到項目的**"設置"** ,展開" **合并請求批準"** ,然后從" **目標"分支**下拉列表中選擇" **任何"分支** ,將這些作用域一下子作用于所有受保護的分支. 或者,您可以從" **目標"分支**下拉列表中選擇一個非常特定的受保護分支: [![Scoped to Protected Branch](https://img.kancloud.cn/6c/c0/6cc0b47ab49132c64d6f946329b94f07_800x929.png)](img/scoped_to_protected_branch_v12_8.png) 要啟用此配置,請參閱[代碼所有者對受保護分支的批準](../protected_branches.html#protected-branches-approval-by-code-owners-premium) . ### Adding or removing an approval[](#adding-or-removing-an-approval "Permalink") 當[合格的批準者](#eligible-approvers)訪問一個開放合并請求時,可能是以下之一: * 如果所需的批準數目*尚未*滿足,他們可以通過點擊批準它顯示的**批準**按鈕. [![Approve](https://img.kancloud.cn/11/43/1143f7593a6d9ad2bbe12ae0cd18bb5f_558x122.png)](img/approve.png) * 如果已經滿足所需的批準數量,則他們仍然可以通過單擊顯示的**"額外批準"**按鈕來**批準** . [![Add approval](https://img.kancloud.cn/e0/91/e091401969bded6b14696dbc5dc745e9_571x122.png)](img/approve_additionally.png) * **他們已經批準了此合并請求** :他們可以刪除他們的批準. [![Remove approval](https://img.kancloud.cn/7d/79/7d7932b600650b5fb6e8f585bd1f3598_551x118.png)](img/remove_approval.png) **注意:**如果在項目設置中啟用了" [**阻止作者批準",**](#allowing-merge-request-authors-to-approve-their-own-merge-requests)則不允許合并請求作者批準自己的合并請求. 滿足批準規則后,如果沒有其他阻止請求,則可以合并合并請求. 請注意,合并請求仍可能被其他條件阻止,例如合并沖突, [掛起的討論](../../discussions/index.html#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved)或[失敗的 CI / CD 管道](merge_when_pipeline_succeeds.html) . ### Merge request approvals project settings[](#merge-request-approvals-project-settings "Permalink") 可以通過以下步驟找到合并請求批準的項目設置: **設置>常規**和擴展**合并請求批準** . #### Prevent overriding default approvals[](#prevent-overriding-default-approvals "Permalink") 默認情況下,用戶可以在合并請求中編輯批準規則. 如果禁用,則所有新合并請求的[批準規則](#adding--editing-a-default-approval-rule)將由[默認批準規則](#adding--editing-a-default-approval-rule)確定. 要禁用此功能: 1. 取消選中**可以覆蓋每個合并請求所需的批準人和批準**復選框. 2. Click **保存更改**. #### Resetting approvals on push[](#resetting-approvals-on-push "Permalink") 當新的提交被推送到合并請求的源分支時,您可以強制刪除對合并請求的所有批準. 如果禁用,則即使合并請求中添加了更改,批準也將持續. 要啟用此功能: 1. Check the **將新提交推送到其源分支時,刪除合并請求中的所有批準** checkbox. 2. Click **保存更改**. **注意:**重新定義來自 UI [的合并請求](fast_forward_merge.html)時,批準不會重置. 但是,如果更改了目標分支,則批準將被重置. #### Allowing merge request authors to approve their own merge requests[](#allowing-merge-request-authors-to-approve-their-own-merge-requests "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3349) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. 您可以允許合并請求作者自行批準合并請求. 作者也必須包含在批準者列表中,以便能夠批準其合并請求. 要啟用此功能: 1. 取消選中" **阻止合并請求作者批準合并請求"**復選框,默認情況下啟用此復選框. 2. Click **保存更改**. #### Prevent approval of merge requests by their committers[](#prevent-approval-of-merge-requests-by-their-committers "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10441) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.10. 您可以阻止已提交合并請求的用戶批準它. 要啟用此功能: 1. 選中**阻止提交者批準合并請求**復選框. 2. Click **保存更改**. #### Require authentication when approving a merge request[](#require-authentication-when-approving-a-merge-request "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5981) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. **注意:**要在批準合并請求時要求身份驗證,必須在[登錄限制](../../admin_area/settings/sign_in_restrictions.html#password-authentication-enabled)下**啟用為 Web 界面**啟用的**密碼身份驗證** . 在管理區域中. 您可以強制批準者輸入密碼以進行身份??驗證,然后再添加批準. 這使電子簽名能夠獲得批準,例如[CFR Part 11](https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=11&showFR=1&subpartNode=21:1.0.1.1.8.3)所定義的簽名. 要啟用此功能: 1. 選中**需要用戶密碼批準**復選框. 2. Click **保存更改**. ### Security approvals in merge requests[](#security-approvals-in-merge-requests-ultimate "Permalink") 可以將合并請求批準配置為在合并請求引入漏洞時需要安全團隊成員的批準. 有關更多信息,請參見[合并請求中的安全性批準](../../application_security/index.html#security-approvals-in-merge-requests) . ### Enabling the new approvals interface[](#enabling-the-new-approvals-interface "Permalink") 從[GitLab v12.0 開始](https://gitlab.com/gitlab-org/gitlab/-/issues/10685) ,默認情況下會提供更新的批準界面. 在 12.0 之前的版本中,除非啟用了`approval_rules`功能標志,否則更新的界面不可用,這可由實例管理員從 Rails 控制臺中完成. 使用以下命令來啟動 Rails 控制臺: ``` # Omnibus GitLab gitlab-rails console # Installation from source cd /home/git/gitlab sudo -u git -H bin/rails console -e production ``` 然后運行`Feature.enable(:approval_rules)`以啟用更新的界面.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看